/* =========================================================================
   Taxi Sherwood Park — Redesign stylesheet
   All redesigned sections are scoped under .tsp so they never clash with
   the legacy theme / Bootstrap styles.
   Edit the variables below to control colours, spacing and icon size/colour.
   ========================================================================= */


:root{
  /* Brand palette (from the logo: deep navy + sky blue + gold) */
  --tsp-navy:        #0d2c64;
  --tsp-navy-2:      #0a2350;
  --tsp-blue:        #1f5fb0;
  --tsp-blue-bright: #2b7de0;
  --tsp-gold:        #f6b51e;
  --tsp-gold-dark:   #e0a311;
  --tsp-ink:         #16233d;
  --tsp-muted:       #37433d;
  --tsp-line:        #e3e9f2;
  --tsp-bg-soft:     #f4f7fc;

  /* Layout */
  --tsp-maxw:        1400px;
  --tsp-radius:      14px;

  /* ---- ICONS: edit these to change every uploaded icon at once ---- */
  --tsp-icon-size:   26px;   /* the icon glyph itself (svg/img) */
  --tsp-icon-box:    60px;   /* the round badge behind the icon */
  --tsp-icon-color:  #ffffff;/* colour applied to SVG icons (currentColor) */
}

/* ---- Shared building blocks ---- */
.tsp{
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  color:var(--tsp-ink);
  line-height:1.6;
  font-size:16px;
}
.tsp *{box-sizing:border-box;}
.tsp p{font-size:1rem;line-height:1.85;}

/* Force Font Awesome 6 fonts (override any legacy FontAwesome rules). */
.tsp .fa-solid, .tsp .fas{font-family:"Font Awesome 6 Free" !important;font-weight:900 !important;}
.tsp .fa-regular, .tsp .far{font-family:"Font Awesome 6 Free" !important;font-weight:400 !important;}
.tsp .fa-brands, .tsp .fab{font-family:"Font Awesome 6 Brands" !important;font-weight:400 !important;}

/* Inline SVG icon sizing (chrome / buttons / social). */
.tsp-i{display:inline-flex;align-items:center;justify-content:center;width:1.05em;height:1.05em;line-height:0;vertical-align:-.12em;}
.tsp-i svg{width:100%;height:100%;display:block;}
.tsp-topbar .tsp-i{width:25px;height:25px;}
.tsp-btn .tsp-i{width:25px;height:25px;}

/* Sticky WhatsApp button (bottom-right). */
.tsp-wa-float{position:fixed;right:20px;bottom:24px;width:56px;height:56px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 8px 22px rgba(37,211,102,.45);z-index:995;transition:transform .2s,box-shadow .2s;}
.tsp-wa-float:hover{transform:scale(1.07);box-shadow:0 10px 28px rgba(37,211,102,.55);}
.tsp-wa-float svg{width:32px;height:32px;display:block;}

/* Back-to-top floating button (added via redesign.js) — sits above WhatsApp. */
.tsp-totop{position:fixed;right:25px;bottom:92px;width:46px;height:46px;border-radius:50%;border:none;background:var(--tsp-blue);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 22px rgba(13,44,100,.28);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,transform .25s,visibility .25s,background .2s;z-index:990;}
.tsp-totop.show{opacity:1;visibility:visible;transform:translateY(0);}
.tsp-totop:hover{background:var(--tsp-navy);}
.tsp-totop svg{width:24px;height:24px;}

/* ==========================================================================
   Auth pages (login / register / reset password) — centred card.
   ========================================================================== */
html.tsp-auth .hm-banner-other,html.tsp-auth .hm-banner-bg-other{display:none !important;}
html.tsp-auth .sherwood-grd-innr{
  max-width:430px;margin:60px auto;background:#fff;
  border:1px solid var(--tsp-line);border-radius:18px;
  box-shadow:0 16px 44px rgba(13,44,100,.12);padding:38px 34px;
}
html.tsp-auth #block-wcsb-page-title{margin:0;}
html.tsp-auth #block-wcsb-page-title h1,html.tsp-auth .page-title{
  font-family:'Poppins',sans-serif;font-size:1.55rem;font-weight:800;
  color:var(--tsp-navy);text-align:center;margin:0 0 22px;
}
/* Local-task tabs become pill links (Log in / Create account / Reset). */
html.tsp-auth .block-local-tasks-block{margin:0 0 20px;}
html.tsp-auth ul.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;list-style:none;padding:0;margin:0;border:none;}
html.tsp-auth ul.tabs li{margin:0;border:none;}
html.tsp-auth ul.tabs a,html.tsp-auth ul.tabs a:link{display:inline-block;padding:7px 15px;border-radius:30px;font-size:.84rem;font-weight:600;color:var(--tsp-muted);text-decoration:none;border:1px solid var(--tsp-line);background:#fff;}
html.tsp-auth ul.tabs a.is-active,html.tsp-auth ul.tabs a:hover{background:var(--tsp-blue);color:#fff;border-color:var(--tsp-blue);}
/* Fields. */
html.tsp-auth form .js-form-item,html.tsp-auth form .form-item{margin:0 0 16px;}
html.tsp-auth form label{display:block;font-weight:600;font-size:.85rem;color:var(--tsp-navy);margin-bottom:6px;}
html.tsp-auth form input[type=text],html.tsp-auth form input[type=password],html.tsp-auth form input[type=email]{
  width:100%;padding:12px 13px;border:1.5px solid var(--tsp-line);border-radius:10px;
  font-size:.95rem;font-family:inherit;color:var(--tsp-ink);background:#fff;box-sizing:border-box;transition:.18s;
}
html.tsp-auth form input[type=text]:focus,html.tsp-auth form input[type=password]:focus,html.tsp-auth form input[type=email]:focus{
  outline:none;border-color:var(--tsp-blue);box-shadow:0 0 0 3px rgba(31,95,176,.12);
}
html.tsp-auth form .description{font-size:.77rem;color:var(--tsp-muted);margin-top:5px;line-height:1.5;}
/* Submit button. */
html.tsp-auth form .form-actions{margin-top:22px;}
html.tsp-auth form input[type=submit],html.tsp-auth form .button--primary,html.tsp-auth form .button{
  width:100%;padding:13px;border:none;border-radius:10px;background:var(--tsp-blue);color:#fff;
  font-family:'Poppins',sans-serif;font-weight:700;font-size:.95rem;cursor:pointer;transition:.2s;
}
html.tsp-auth form input[type=submit]:hover,html.tsp-auth form .button--primary:hover{background:var(--tsp-navy);color:#fff;}
html.tsp-auth .sherwood-grd-innr a{color:var(--tsp-blue);}
body.simplelogin{background:#0d2c64;}
.tsp-socials a svg{width:25px;height:25px;display:block;}
.tsp-menu-btn .tsp-bars{font-size:1.6rem;line-height:1;color:var(--tsp-navy);}

/* =========================================================================
   Refinements
   ========================================================================= */
/* Bolder headings */
.tsp .tsp-sec-head h2{font-weight:800;}
.tsp-about-txt h2{font-weight:800;}
.tsp-area h3{font-weight:700;}
.tsp-card-body h3{font-weight:700;}
.tsp-why-item h4{font-weight:700;}

/* Stats: vertical padding */
.tsp-stats-grid{padding:42px 22px;}

/* Service-area list check marks */
.tsp-area-list li::before{font-weight:800;}

/* FAQ: tighter spacing */
.tsp-faq-grid{gap:10px 26px;}

/* Button icons inline */
.tsp-hero-actions .tsp-btn,.tsp-nav-cta .tsp-btn,.tsp-contact-acts .tsp-btn,.tsp-card-body .tsp-btn{display:inline-flex;align-items:center;gap:8px;}

/* Review avatar — margin-top:auto pins the reviewer to the card bottom so the
   name/role line aligns across every card regardless of review length. */
.tsp-reviewer{display:flex;align-items:center;gap:12px;margin-top:auto;}
.tsp-av{width:44px;height:44px;border-radius:50%;background:var(--tsp-blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.05rem;flex:none;}
.tsp-reviewer > div{display:flex;flex-direction:column;}

/* Booking form heading + modern fields */
.tsp-book-head{padding:0 0 6px;}
.tsp-book-head h3{color:var(--tsp-navy);font-size:1.3rem;font-weight:700;margin:0;}
.tsp-book-head p{color:var(--tsp-muted);font-size:.86rem;margin:4px 0 0;}
.tsp-book-card .webform-flexbox{display:flex;flex-wrap:wrap;gap:12px;margin:0;}
.tsp-book-card .webform-flexbox > .webform-flex{flex:1 1 calc(50% - 6px);margin:0;}
.tsp-book-card .form-item{margin:0 0 12px;}
.tsp-book-card label{display:block;font-size:.76rem;font-weight:600;color:var(--tsp-muted);text-transform:uppercase;letter-spacing:.02em;margin-bottom:5px;}
.tsp-book-card input,.tsp-book-card select,.tsp-book-card textarea{width:100%;padding:12px 13px;border:1.5px solid var(--tsp-line);border-radius:10px;font-size:.92rem;font-family:inherit;color:var(--tsp-ink);background:#fff;transition:.18s;}
.tsp-book-card input:focus,.tsp-book-card select:focus,.tsp-book-card textarea:focus{outline:none;border-color:var(--tsp-blue);box-shadow:0 0 0 3px rgba(31,95,176,.12);}
.tsp-book-card select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6b82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:38px;cursor:pointer;}
.tsp-book-card .webform-button--submit,.tsp-book-card input[type=submit],.tsp-book-card button[type=submit]{width:100%;background:var(--tsp-blue);color:#fff;border:0;padding:14px;border-radius:10px;font-family:'Poppins',sans-serif;font-weight:600;font-size:1rem;cursor:pointer;margin-top:6px;opacity:1 !important;filter:none !important;}
.tsp-book-card .webform-button--submit:hover,.tsp-book-card input[type=submit]:hover{background:#1a4f93;}
/* Readable dark typed text in the Book a Taxi banner form on EVERY page
   (legacy banner CSS made it light gray / blue on focus). Match the
   Request a Delivery form: dark ink text, muted-gray placeholder. */
.tsp-book-card input,
.tsp-book-card select,
.tsp-book-card textarea{color:var(--tsp-ink) !important;}
.tsp-book-card input:focus,
.tsp-book-card select:focus,
.tsp-book-card textarea:focus{color:var(--tsp-ink) !important;}
.tsp-book-card select option{color:var(--tsp-ink);}
input::placeholder,textarea::placeholder{color:#0d2c64;opacity:1;}
.tsp-book-card input::placeholder,
.tsp-book-card textarea::placeholder{color:#0d2c64 !important;opacity:1;}

/* =========================================================================
   Refinements (round 2)
   ========================================================================= */
/* Service-area card: icon + heading on one row */
.tsp-area-head{display:flex;gap:13px;margin-bottom:14px;}
.tsp-area-head .tsp-area-ic{margin-bottom:0;}
.tsp-area-head h3{margin:0;}
.tsp-area-list li{padding-left:28px;}
.tsp-area-list li::before{content:"\2713";display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--accent-bg);color:var(--accent);font-size:.6rem;font-weight:800;top:1px;left:0;line-height:1;}

/* Stats: clear top/bottom padding (beats the .tsp .tsp-wrap rule) */
.tsp-stats .tsp-stats-grid{padding:46px 22px !important;}

/* Reviews: avatar on the right, initial centred */
.tsp-reviewer{flex-direction:row-reverse;justify-content:space-between;}
.tsp-av{display:flex;align-items:center;justify-content:center;line-height:1;}

/* FAQ: tighter spacing */
.tsp-faq-grid{gap:0 24px !important;}
.tsp-faq-grid .tsp-faq-item{margin-bottom:0;}

/* Booking webform: full-width 2-column layout, hide broken field icons */
.tsp-book-card form,.tsp-book-card .bnr-form-grup-wrp{width:100%;}
.tsp-book-card .bnr-form-grup-wrp{display:flex;flex-wrap:wrap;gap:12px 12px;align-items:start;}
.tsp-book-card .bnr-form-grup{flex:1 1 calc(50% - 6px);min-width:0;margin:0;}
.tsp-book-card .bnr-form-grup:has(.form-item-name){flex-basis:100%;order:1;}
.tsp-book-card .bnr-form-grup:has(.form-item-phone-number){order:2;}
.tsp-book-card .bnr-form-grup:has(.form-item-email-address){order:3;}
.tsp-book-card .bnr-form-grup:has(.form-item-pickup-location){order:4;}
.tsp-book-card .bnr-form-grup:has(.form-item-drop-location){order:5;}
.tsp-book-card .bnr-form-grup:has(.form-item-total-passenger){order:6;}
.tsp-book-card .bnr-form-grup:has(.form-item-flight-no-){order:7;}
.tsp-book-card .bnr-form-grup:has(.form-item-car-type){flex-basis:100%;order:8;}
.tsp-book-card .bnr-form-grup:has(.form-item-time){order:9;}
.tsp-book-card .bnr-form-grup:has(.form-item-date){order:10;}
.tsp-book-card .bnr-form-grup:has(input[type=submit]),.tsp-book-card .bnr-form-grup:has(.form-actions){order:11;flex-basis:100%;}
/* Time + Date share one group -> lay them out side by side */
.tsp-book-card .bnr-form-grup:has(.form-item-time){flex-basis:100% !important;}
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr{display:flex !important;gap:12px;}
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > *{flex:1 1 50%;min-width:0;}
/* Car Type: style the bootstrap-select widget to match the other inputs */
.tsp-book-card .form-item-car-type .bootstrap-select{width:100% !important;}
.tsp-book-card .form-item-car-type .bootstrap-select button,.tsp-book-card .form-item-car-type .bootstrap-select .dropdown-toggle{width:100% !important;height:auto !important;background-color:#fff !important;border:1.5px solid var(--tsp-line) !important;border-radius:10px !important;padding:12px 38px 12px 40px !important;font-family:inherit !important;font-size:.92rem !important;color:var(--tsp-ink) !important;box-shadow:none !important;text-align:left !important;outline:none !important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l1.5-4.5A2 2 0 0 1 8.4 7h7.2a2 2 0 0 1 1.9 1.5L19 13'/%3E%3Crect x='3' y='13' width='18' height='5' rx='1'/%3E%3Ccircle cx='7' cy='18' r='1.5'/%3E%3Ccircle cx='17' cy='18' r='1.5'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6b82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;background-repeat:no-repeat,no-repeat !important;background-position:13px center,right 13px center !important;background-size:17px,14px !important;}
.tsp-book-card .form-item-car-type .bootstrap-select button::after,.tsp-book-card .form-item-car-type .bootstrap-select .dropdown-toggle::after{display:none !important;}
/* Placeholder state: match the other fields' placeholder colour (was a faded 0.7 opacity). */
.tsp-book-card .form-item-car-type .bootstrap-select button.bs-placeholder{opacity:1 !important;color:#0d2c64 !important;}
/* Remove the bootstrap-select default 0.7 opacity on placeholder buttons. */
.bootstrap-select>.dropdown-toggle.bs-placeholder,
.bootstrap-select>.dropdown-toggle.bs-placeholder:hover,
.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,
.bootstrap-select>.dropdown-toggle.bs-placeholder:active{opacity:1 !important;}
/* Date: use our calendar icon; hide native indicator but keep it clickable */
.tsp-book-card .form-item-date input{position:relative;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4'/%3E%3C/svg%3E") !important;background-repeat:no-repeat !important;background-position:13px center !important;background-size:17px 17px !important;padding-left:40px !important;}
.tsp-book-card .form-item-date input::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;}

/* =========================================================================
   Contact info cards
   ========================================================================= */
.tsp-cinfo-sec{padding:100px 0;}
.tsp-cinfo{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.tsp-cinfo-card{background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:32px 22px;text-align:center;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:.25s;}
.tsp-cinfo-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-cinfo-ic{width:64px;height:64px;border-radius:50%;background:var(--tsp-blue);color:#fff;display:grid;place-items:center;margin:0 auto 16px;}
.tsp-cinfo-ic svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-cinfo-card h4{color:var(--tsp-blue);font-size:.95rem;margin:0 0 12px;font-weight:700;}
.tsp-cinfo-big{font-family:'Poppins',sans-serif;font-weight:700;color:var(--tsp-navy);font-size:1.05rem;margin-bottom:8px;word-break:break-word;}
.tsp-cinfo-big a{color:var(--tsp-navy);}
.tsp-cinfo-card small{color:var(--tsp-muted);font-size:.82rem;display:block;line-height:1.5;}

/* =========================================================================
   Serve areas (list + radius map)
   ========================================================================= */
.tsp-serve-sec{padding:100px 0;}
.tsp-serve{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
.tsp-serve-list{display:flex;flex-direction:column;gap:14px;}
.tsp-serve-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--tsp-line);border-radius:12px;padding:14px 16px;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:.2s;}
.tsp-serve-item:hover{box-shadow:0 10px 30px rgba(13,44,100,.10);transform:translateX(4px);}
.tsp-serve-ic{width:56px;height:56px;color:var(--tsp-blue);display:grid;place-items:center;flex:none;}
.tsp-serve-ic svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-serve-txt{flex:1;}
.tsp-serve-txt h4{font-size:.96rem;margin:0 0 2px;color:var(--tsp-navy);}
.tsp-serve-txt p{color:var(--tsp-muted);font-size:.8rem;margin:0;}
.tsp-serve-tag{font-size:.7rem;font-weight:700;padding:5px 12px;border-radius:20px;background:var(--tsp-blue);color:#fff;white-space:nowrap;}
.tsp-serve-map{background:#eef3fb;border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);}
.tsp-serve-map svg{width:100%;height:auto;display:block;}
.tsp-serve-img{border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-serve-img img{width:100%;height:100%;object-fit:cover;display:block;min-height:360px;}

/* =========================================================================
   "Need a Taxi" CTA band
   ========================================================================= */
.tsp-need{position:relative;overflow:hidden;}
.tsp-need-bg{position:absolute;inset:0;z-index:0;}
.tsp-need-bg img{width:100%;height:100%;object-fit:cover;border-radius:0;}
.tsp-need-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,28,66,.96),rgba(10,35,80,.72) 58%,rgba(13,44,100,.2));}
.tsp.tsp-need .tsp-wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:22px;padding:120px 22px;}
.tsp-need h2{color:#fff;font-size:1.95rem;margin:0 0 6px;font-weight:800;}
.tsp-need p{color:#d4e0f4;font-size:.95rem;margin:0;}
.tsp-need-acts{display:flex;gap:12px;flex-wrap:wrap;}
.tsp-need-acts .tsp-btn{display:inline-flex;align-items:center;gap:8px;}

@media(max-width:992px){
  .tsp-cinfo{grid-template-columns:1fr 1fr;}
  .tsp-serve{grid-template-columns:1fr;gap:30px;}
  /* Contact "Serving Sherwood Park": show the image first when stacked. */
  .tsp-serve-img{order:-1;}
}
@media(max-width:768px){
  .tsp-cinfo-sec,.tsp-serve-sec{padding:54px 0;}
  .tsp-need h2{font-size:1.6rem;}
}
@media(max-width:560px){
  .tsp-cinfo{grid-template-columns:1fr;}
  .tsp-need-acts .tsp-btn{flex:1;justify-content:center;}
}

/* jQuery timepicker dropdown styling */
.ui-timepicker-wrapper{border:1px solid var(--tsp-line);border-radius:10px;box-shadow:0 12px 34px rgba(13,44,100,.18);background:#fff;max-height:220px;overflow-y:auto;z-index:99999;}
.ui-timepicker-list{list-style:none;margin:0;padding:6px;}
.ui-timepicker-list li{list-style:none;padding:8px 14px;border-radius:7px;font-size:.9rem;color:var(--tsp-ink);cursor:pointer;font-family:'Poppins',sans-serif;}
.ui-timepicker-list li:hover,.ui-timepicker-list li.ui-timepicker-selected{background:var(--tsp-blue);color:#fff;}
/* Required note + CAPTCHA just before the submit button (visitor view) */
.tsp-book-card .webform-required{order:10 !important;}
.tsp-book-card form > .captcha,.tsp-book-card form > [class*="captcha"],.tsp-book-card .bnr-form-grup:has([class*="captcha"]){order:10 !important;flex-basis:100% !important;}
.tsp-book-card .bnr-form-grup-innr,.tsp-book-card .form-item{margin:0 !important;width:100% !important;float:none !important;}
.tsp-book-card .form-item i,.tsp-book-card .bnr-form-grup-innr > i{display:none;}
/* Keep the submit button at the bottom */
.tsp-book-card form{display:flex;flex-direction:column;}
.tsp-book-card .webform-required{order:0;}
.tsp-book-card .bnr-form-grup-wrp{order:1;}
.tsp-book-card .form-actions,.tsp-book-card .webform-actions,.tsp-book-card input[type=submit],.tsp-book-card button[type=submit],.tsp-book-card .webform-button--submit{order:9;}
/* Labels hidden — placeholders are used instead */
.tsp-book-card .form-item label{display:none !important;}
/* Inputs + field icons */
.tsp-book-card .bnr-form-grup input,.tsp-book-card .bnr-form-grup select,.tsp-book-card .bnr-form-grup textarea{width:100% !important;box-sizing:border-box;background-repeat:no-repeat;background-position:13px center;background-size:17px 17px;padding-left:40px !important;}
/* Icons rendered on an overlay layer (::before) instead of the input background, so a
   Chrome saved-data / autofill selection cannot hide them. Input keeps its left padding. */
.tsp-book-card .form-item-name,.tsp-book-card .form-item-phone-number,.tsp-book-card .form-item-email-address,.tsp-book-card .form-item-pickup-location,.tsp-book-card .form-item-drop-location,.tsp-book-card .form-item-total-passenger,.tsp-book-card .form-item-flight-no-{position:relative;}
.tsp-book-card .form-item-name::before,.tsp-book-card .form-item-phone-number::before,.tsp-book-card .form-item-email-address::before,.tsp-book-card .form-item-pickup-location::before,.tsp-book-card .form-item-drop-location::before,.tsp-book-card .form-item-total-passenger::before,.tsp-book-card .form-item-flight-no-::before{content:"";position:absolute;left:13px;top:0;bottom:0;width:17px;background-repeat:no-repeat;background-position:left center;background-size:17px 17px;pointer-events:none;z-index:2;}
.tsp-book-card .form-item-name::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-phone-number::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h3l2 5-2 1.5a12 12 0 0 0 5 5L16 12l5 2v3a2 2 0 0 1-2 2A16 16 0 0 1 4 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-email-address::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-pickup-location::before,.tsp-book-card .form-item-drop-location::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-total-passenger::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 19v-1a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v1'/%3E%3Ccircle cx='9.5' cy='8' r='3.5'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-flight-no-::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16v-2l-8-5V4a1.5 1.5 0 0 0-3 0v5l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-3.5z'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-time input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 15 14'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-date input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4'/%3E%3C/svg%3E");}
.tsp-book-card .form-item-car-type select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l1.5-4.5A2 2 0 0 1 8.4 7h7.2a2 2 0 0 1 1.9 1.5L19 13'/%3E%3Crect x='3' y='13' width='18' height='5' rx='1'/%3E%3Ccircle cx='7' cy='18' r='1.5'/%3E%3Ccircle cx='17' cy='18' r='1.5'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6b82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;background-repeat:no-repeat,no-repeat !important;background-position:13px center,right 13px center !important;background-size:17px,14px !important;padding-left:40px !important;padding-right:38px !important;}
/* Keep field icons visible when Chrome autofills / a saved-data suggestion is picked.
   Chrome paints its autofill highlight via an animated background-color that covers the
   input's background-image icon. An effectively-infinite transition delay stops that
   highlight from ever painting, so the white background + SVG icon stay visible. Covers
   every form variant (banner default + tsp-dlv / tsp-corp / tsp-flat) via .tsp-book-card. */
.tsp-book-card input:-webkit-autofill,
.tsp-book-card input:-webkit-autofill:hover,
.tsp-book-card input:-webkit-autofill:focus,
.tsp-book-card input:-webkit-autofill:active,
.tsp-book-card textarea:-webkit-autofill,
.tsp-book-card textarea:-webkit-autofill:hover,
.tsp-book-card textarea:-webkit-autofill:focus,
.tsp-book-card select:-webkit-autofill,
.tsp-book-card select:-webkit-autofill:focus{
  transition:background-color 600000s 0s,color 600000s 0s !important;
  -webkit-text-fill-color:var(--tsp-ink) !important;
  caret-color:var(--tsp-ink);
}
@media(max-width:560px){.tsp-book-card .bnr-form-grup-wrp{grid-template-columns:1fr;}}
/* Mobile (≤768px): one field per row in the banner booking form. */
@media(max-width:768px){
  .tsp-book-card .bnr-form-grup,
  .tsp-book-card .webform-flexbox > .webform-flex{flex:1 1 100% !important;max-width:100% !important;}
  .tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr{flex-direction:column !important;}
  .tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > *{flex:1 1 auto !important;width:100% !important;}
}
.tsp .tsp-wrap{max-width:var(--tsp-maxw);margin:0 auto;padding:0 22px;}
/* <picture> wrappers (WebP + fallback): fill the container like the <img> did
   (so containers that size via height:100% keep working). */
.tsp picture,.tsp-need picture,.tsp-footer picture{display:block;width:100%;height:100%;}
/* Images that flow at natural height (not 100%) keep auto-height wrappers. */
.tsp-comm-map picture,.tsp-story-img picture,.tsp-blog picture{height:auto;}
/* …and on the airport split layout the story image fills a fixed-height cell. */
html.tsp-air .tsp-story-img picture{height:100%;}
/* PERMANENT ROOT FONT-SIZE FIX (applies to EVERY page, now and future).
   The legacy theme sets html{font-size:10px} (62.5%), which renders any
   non-redesign page (e.g. /why-taxi-sherwood-park, or a future plain page)
   at ~60% size. Restore a normal 16px root everywhere. :root + !important
   guarantees it beats the legacy html{font-size:10px} regardless of load
   order. Redesigned .tsp content uses its own absolute 16px, so it is
   unaffected. */
:root{font-size:16px !important;}
html.tsp-front{font-size:16px;}

/* Remove the legacy inner-page banner (our hero/sections replace it) */
#block-otherpagesbanner,#block-bannermessageblock{display:none !important;}
html.tsp-front .region-slider-images{display:none;}
/* Hide the node page-title on redesigned pages (the hero provides the title) */
html.tsp-front #block-wcsb-page-title,html.tsp-front .page-title,html.tsp-front h1.page-title{display:none !important;}

.tsp h1,.tsp h2,.tsp h3,.tsp h4{font-family:'Poppins',sans-serif;line-height:1.2;}
.tsp-hero h1{font-family:'Poppins',sans-serif;}

.tsp .tsp-sec-head{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;margin:0 auto 44px;color:var(--tsp-muted);font-size:var(--fs-body);line-height:1.65;}
.tsp .tsp-sec-head h2{
  font-size:2.05rem;font-weight:700;color:var(--tsp-navy);
  position:relative;display:inline-block;padding-bottom:18px;margin:0;
}
.tsp .tsp-sec-head h2::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;
  width:64px;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));
}
.tsp .tsp-sec-head p{color:var(--tsp-muted);margin:0;}

/* =========================================================================
   Why Us
   ========================================================================= */
.tsp-why{
  background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));
  color:#fff;padding:100px 0;
}
.tsp-why .tsp-sec-head{color:#c3d2ee;}
.tsp-why .tsp-sec-head h2{color:#fff;}
.tsp-why .tsp-sec-head p{color:#c3d2ee;}
/* Outro line + yellow CTA button below the points. */
.tsp-why-foot{text-align:center;margin-top:44px;}
.tsp-why-outro{color:#c3d2ee;max-width:760px;margin:0 auto 22px;line-height:1.65;}
.tsp-why-outro p{margin:0;}
.tsp-why-cta{padding:15px 34px;font-size:1rem;}
@media(max-width:560px){.tsp-why-foot{margin-top:32px;}.tsp-why-cta{width:100%;justify-content:center;}}

.tsp-why-grid{
  display:flex;flex-wrap:wrap;justify-content:center;gap:24px;
}
/* Items share the row evenly and grow to fill it, so any number of points
   (4, 5 or 6) covers the space — and a partial row stays centred. */
.tsp-why-item{flex:1 1 150px;max-width:320px;text-align:center;}
.tsp-why-item .tsp-ic{
  width:var(--tsp-icon-box);height:var(--tsp-icon-box);
  border-radius:50%;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  display:grid;place-items:center;margin:0 auto 14px;
  color:var(--tsp-icon-color);
}
.tsp-why-item .tsp-ic svg{
  width:var(--tsp-icon-size);height:var(--tsp-icon-size);
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.tsp-why-item .tsp-ic img{
  width:var(--tsp-icon-size);height:var(--tsp-icon-size);
  object-fit:contain;
}
.tsp-why-item h4{color:#fff;font-size:1rem;margin:0 0 8px;}
.tsp-why-item p{color:#bcccea;font-size:.83rem;margin:0;}
/* Vertical separators between the "Why Choose Us" points. */
.tsp-why-grid .tsp-why-item:not(:last-child){border-right:1px solid rgba(255,255,255,.16);padding-right:18px;}
.tsp-why-grid .tsp-why-item{padding-left:18px;}

/* ---- Responsive ---- */
@media(max-width:1200px){
  .tsp-why-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:768px){
  .tsp-why{padding:54px 0;}
  .tsp .tsp-sec-head{margin-bottom:34px;}
  .tsp .tsp-sec-head h2{font-size:1.7rem;}
  .tsp-why-grid{grid-template-columns:repeat(3,1fr);gap:18px;}
}
@media(max-width:560px){
  .tsp-why-grid{grid-template-columns:1fr 1fr;gap:22px 14px;}
}
@media(max-width:360px){
  .tsp-why-grid{grid-template-columns:1fr;}
}

/* =========================================================================
   Global small-screen refinements: tighter section spacing, scaled
   headings, comfortable gutters, clean points lists.
   ========================================================================= */
@media(max-width:560px){
  .tsp-sec{padding:46px 0;}
  .tsp .tsp-sec-head{margin-bottom:26px;}
  .tsp .tsp-sec-head h2{font-size:1.5rem;padding-bottom:14px;}
  .tsp .tsp-sec-head{gap:10px;}
  .tsp .tsp-sec-head p{font-size:.92rem;margin:0;}
  .tsp .tsp-lead-h2{font-size:1.45rem;}
  .tsp-community-points{gap:16px;}
}
@media(max-width:380px){
  .tsp-sec{padding:38px 0;}
  .tsp .tsp-wrap{padding-left:16px;padding-right:16px;}
  .tsp .tsp-sec-head h2{font-size:1.38rem;}
}

/* =========================================================================
   Buttons (shared)
   ========================================================================= */
.tsp .tsp-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'Poppins',sans-serif;font-weight:600;font-size:.95rem;
  padding:13px 24px;border-radius:10px;border:0;cursor:pointer;
  transition:.2s;white-space:nowrap;text-decoration:none;
}
.tsp .tsp-btn-blue{background:var(--tsp-blue);color:#fff;}
.tsp .tsp-btn-blue:hover{background:#1a4f93;color:#fff;}
.tsp .tsp-btn-gold{background:var(--tsp-gold);color:var(--tsp-navy);}
.tsp .tsp-btn-gold:hover{background:var(--tsp-gold-dark);}

/* =========================================================================
   Services (card grid)
   ========================================================================= */
.tsp-services{background:var(--tsp-bg-soft);padding:100px 0;}
.tsp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.tsp-card{
  background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);
  overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);
  transition:.25s;display:flex;flex-direction:column;
}
.tsp-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-card-ph{height:180px;overflow:hidden;}
.tsp-card-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:.4s;}
.tsp-card:hover .tsp-card-ph img{transform:scale(1.06);}
.tsp-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.tsp-card-body h3{font-size:1.15rem;color:var(--tsp-navy);margin:0;}
.tsp-card-body p{color:var(--tsp-muted);font-size:.9rem;margin:0;flex:1;}
.tsp-card-body .tsp-btn{align-self:flex-start;margin-top:6px;}

@media(max-width:992px){.tsp-cards{grid-template-columns:1fr 1fr;}}
@media(max-width:768px){.tsp-services{padding:54px 0;}}
@media(max-width:560px){.tsp-cards{grid-template-columns:1fr;}}

.tsp .tsp-btn-ghost{background:transparent;border:2px solid rgba(255,255,255,.5);color:#fff;}
.tsp .tsp-btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff;}

/* =========================================================================
   Hero + Booking
   ========================================================================= */
.tsp-hero{position:relative;color:#fff;overflow:hidden;background:var(--tsp-navy);}
.tsp-hero-bg{position:absolute;inset:0;z-index:0;}
.tsp-hero-bg img{width:100%;height:100%;object-fit:cover;}
.tsp-hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(3,10,24,.86) 0%,rgba(5,18,42,.74) 50%,rgba(8,26,60,.6) 100%);}
.tsp-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;padding:100px 0;}
.tsp-hero h1{color:#fff;font-size:2.65rem;font-weight:800;margin:0 0 18px;}
.tsp-hero .tsp-lead{color:#d4e0f4;font-size:1.02rem;max-width:540px;margin:0 0 26px;}
.tsp-hero-feats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px;}
.tsp-hero-feats span{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);padding:8px 14px;border-radius:30px;font-size:.85rem;font-weight:500;}
.tsp-hero-feats span::before{content:"\2713";color:var(--tsp-gold);font-weight:700;}
.tsp-hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.tsp-book-card{background:#fff;border-radius:16px;box-shadow:0 24px 60px rgba(5,20,55,.4);overflow:hidden;padding:22px 24px;color:var(--tsp-ink);}
.tsp-book-card .form-item{margin:0 0 12px;}
.tsp-book-card label{font-size:.78rem;font-weight:600;color:var(--tsp-muted);text-transform:uppercase;letter-spacing:.03em;}
.tsp-book-card input,.tsp-book-card select,.tsp-book-card textarea{width:100%;padding:11px 12px;border:1.4px solid var(--tsp-line);border-radius:9px;font-size:.9rem;font-family:inherit;color:var(--tsp-ink);background:#fff;}
.tsp-book-card .webform-button--submit,.tsp-book-card input[type=submit]{width:100%;background:var(--tsp-blue);color: #fff!important;border:0;padding:14px;border-radius:10px;font-family:'Poppins',sans-serif;font-weight:600;font-size:1rem;cursor:pointer;}
.tsp-book-card .webform-button--submit:hover{background:#1a4f93;}

/* =========================================================================
   Stats strip
   ========================================================================= */
.tsp-stats{background:linear-gradient(90deg,var(--tsp-navy) 0%,var(--tsp-blue) 100%);}
.tsp-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px 0;padding:30px 22px;}
.tsp-stat{display:flex;align-items:center;gap:12px;color:#fff;justify-content:center;padding:6px 8px;border-right:1px solid rgba(255,255,255,.22);}
.tsp-stat:last-child{border-right:none;}
.tsp-stat-ic{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;color:#fff;flex:none;}
.tsp-stat-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;}
.tsp-stat-ic img{width:25px;height:25px;object-fit:contain;}
.tsp-stat b{font-family:'Poppins',sans-serif;font-size:1.35rem;font-weight:700;display:block;line-height:1;}
.tsp-stat small{font-size:.78rem;color:#cdd9ef;}

/* =========================================================================
   Service areas
   ========================================================================= */
.tsp-areas{padding:100px 0;}
.tsp-areas-box{border:2px solid var(--tsp-blue);border-radius:20px;background:#fff;padding:26px;box-shadow:0 14px 36px rgba(31,95,176,.12);}
.tsp-areas-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
.tsp-area{background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:22px 20px;display:flex;flex-direction:column;
  --accent:var(--tsp-blue);--accent-bg:#e6eef9;}
.tsp-accent-green{--accent:#12b265;--accent-bg:#e1f8ed;}
.tsp-accent-orange{--accent:#f4732e;--accent-bg:#fdeae0;}
.tsp-accent-purple{--accent:#8a5cf6;--accent-bg:#f0eafe;}
.tsp-area-ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--accent-bg);color:var(--accent);margin-bottom:14px;}
.tsp-area-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-area-ic img{width:25px;height:25px;object-fit:contain;}
.tsp-area h3{font-size:.98rem;margin:0 0 14px;line-height:1.25;color:var(--accent);}
.tsp-area-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px;flex:1;}
.tsp-area-list li{font-size:.85rem;color:var(--tsp-muted);display:flex;align-items:center;gap:8px;padding-left:0;}
.tsp-area-list li::before{content:"\2713";flex:none;color:var(--accent);font-weight:700;font-size:.8rem;}
.tsp-area-tag{align-self:flex-start;margin-top:16px;font-size:.74rem;font-weight:700;padding:5px 14px;border-radius:20px;background:var(--accent-bg);color:var(--accent);}
.tsp-area-cta{justify-content:center;align-items:center;text-align:center;}
.tsp-area-cta .tsp-area-ic{width:52px;height:52px;margin-bottom:16px;}
.tsp-area-cta h3{color:var(--tsp-navy);font-size:1.05rem;margin-bottom:8px;}
.tsp-area-cta p{color:var(--tsp-muted);font-size:.86rem;margin-bottom:18px;}

/* =========================================================================
   About
   ========================================================================= */
.tsp-about{padding:100px 0;}
.tsp-about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:46px;align-items:center;}
.tsp-about-img{border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-about-img{overflow:hidden;}
.tsp-about-img img{width:100%;height:100%;object-fit:cover;display:block;}
.tsp-about-txt h2{font-size:2.05rem;margin:0 0 22px;color:var(--tsp-navy);position:relative;display:inline-block;padding-bottom:16px;}
/* Responsive heading for the home/about split heading. */
@media(max-width:768px){.tsp-about-txt h2{font-size:1.7rem;}}
@media(max-width:560px){.tsp-about-txt h2{font-size:1.45rem;margin:0 0 16px;}}
@media(max-width:380px){.tsp-about-txt h2{font-size:1.32rem;}}
.tsp-about-txt h2::after{content:"";position:absolute;left:0;bottom:0;width:60px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));}
.tsp-about-body{color:var(--tsp-muted);}
.tsp-about-body p{margin:0 0 14px;}
.tsp-tagline{color:var(--tsp-blue);font-weight:600;font-style:italic;margin:0 0 16px;}

/* =========================================================================
   Testimonials
   ========================================================================= */
.tsp-testimonials{background:var(--tsp-bg-soft);padding:100px 0;}
.tsp-slider{position:relative;padding:0 8px;}
.tsp-reviews{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 12px;scrollbar-width:none;}
.tsp-reviews::-webkit-scrollbar{display:none;}
.tsp-review{flex:0 0 calc(33.333% - 15px);min-width:280px;scroll-snap-align:start;background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:24px;box-shadow:0 4px 14px rgba(13,44,100,.08);display:flex;flex-direction:column;}
.tsp-slider-btn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:#fff;border:1px solid var(--tsp-line);box-shadow:0 10px 30px rgba(13,44,100,.10);cursor:pointer;color:var(--tsp-navy);font-size:1.4rem;line-height:1;z-index:3;display:grid;place-items:center;transition:.2s;}
.tsp-slider-btn:hover{background:var(--tsp-blue);color:#fff;border-color:var(--tsp-blue);}
.tsp-slider-prev{left:-14px;}
.tsp-slider-next{right:-14px;}
@media(max-width:560px){.tsp-review{flex-basis:100%;}}
/* Mobile (≤768px): move the slider arrows BELOW the cards, centered, so it's
   obvious the reviews are a slider (the side arrows have no room on small
   screens). */
@media(max-width:768px){
  .tsp-slider{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;}
  .tsp-reviews{order:0;flex:1 1 100%;width:100%;}
  .tsp-slider-btn{position:static;transform:none;width:44px;height:44px;margin:16px 8px 0;display:grid !important;}
  .tsp-slider-prev{order:1;left:auto;}
  .tsp-slider-next{order:2;right:auto;}
}
.tsp-stars{color:#ffb400;font-size:1.2rem;margin-bottom:14px;letter-spacing:3px;}
.tsp-review p{font-size:.9rem;color:var(--tsp-ink);margin:0 0 16px;}
.tsp-reviewer b{font-size:.9rem;display:block;color:var(--tsp-navy);}
.tsp-reviewer small{color:var(--tsp-muted);font-size:.78rem;}

/* =========================================================================
   FAQ
   ========================================================================= */
.tsp-faq{padding:100px 0;}
.tsp-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 26px;align-items:start;}
.tsp-faq-item{border:1px solid var(--tsp-line);border-radius:10px;background:#fff;overflow:hidden;}
.tsp-faq-item summary{list-style:none;cursor:pointer;padding:16px 18px;font-family:'Poppins',sans-serif;font-weight:500;font-size:.95rem;color:var(--tsp-navy);display:flex;justify-content:space-between;align-items:center;gap:12px;}
.tsp-faq-item summary::-webkit-details-marker{display:none;}
.tsp-faq-item summary::after{content:"\203A";transform:rotate(90deg);color:var(--tsp-blue);font-size:1.2rem;transition:.25s;}
.tsp-faq-item[open] summary{color:var(--tsp-blue);}
.tsp-faq-item[open] summary::after{transform:rotate(-90deg);}
.tsp-faq-ans{padding:0 18px 16px;color:var(--tsp-muted);font-size:.9rem;}

/* =========================================================================
   Map + Contact
   ========================================================================= */
.tsp-mapsec-wrap{background:#fff;padding:100px 0;}
.tsp-mapsec{display:grid;grid-template-columns:.85fr 1.15fr;gap:30px;align-items:stretch;}
.tsp-contact-card{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-blue));color:#fff;border-radius:var(--tsp-radius);padding:30px;display:flex;flex-direction:column;gap:16px;}
.tsp-contact-card h3{color:#fff;font-size:1.3rem;margin:0;}
.tsp-contact-row{display:flex;align-items:center;gap:12px;font-size:.9rem;color:#dce7f8;}
.tsp-contact-row a{color:#fff;}
.tsp-row-ic{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.14);display:grid;place-items:center;flex:none;color:#fff;}
.tsp-row-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-row-ic img{width:25px;height:25px;object-fit:contain;}
.tsp-contact-acts{display:flex;gap:10px;margin-top:6px;flex-wrap:wrap;}
.tsp-map-embed{position:relative;border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);min-height:340px;}
.tsp-map-link{position:absolute;inset:0;z-index:2;cursor:pointer;}
.tsp-map-embed iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}

/* =========================================================================
   Responsive (new sections)
   ========================================================================= */
@media(max-width:1200px){
  .tsp-areas-grid{grid-template-columns:repeat(3,1fr);}
  .tsp-hero h1{font-size:2.4rem;}
}
@media(max-width:992px){
  .tsp-hero-grid{grid-template-columns:1fr;gap:34px;padding:48px 0 56px;}
  .tsp-about-grid{grid-template-columns:1fr;gap:30px;}
  .tsp-mapsec{grid-template-columns:1fr;}
  .tsp-reviews{grid-template-columns:1fr 1fr;}
  .tsp-stats-grid{grid-template-columns:repeat(3,1fr);gap:30px 12px;}
  .tsp-stat{border-right:none;}
}
@media(max-width:768px){
  .tsp-areas,.tsp-about,.tsp-faq,.tsp-mapsec-wrap,.tsp-testimonials{padding:54px 0;}
  .tsp-areas-grid{grid-template-columns:1fr 1fr;}
  .tsp-faq-grid{grid-template-columns:1fr;}
  .tsp-hero h1{font-size:2rem;}
}
@media(max-width:560px){
  .tsp-areas-grid,.tsp-reviews{grid-template-columns:1fr;}
  .tsp-stats-grid{grid-template-columns:repeat(2,1fr);}
  .tsp-about-img img{height:100%;}
}

/* =========================================================================
   Header / top bar / nav
   ========================================================================= */
.tsp-topbar{background:var(--tsp-navy-2);color:#cdd9ef;font-size:.83rem;}
.tsp-topbar .tsp-wrap{display:flex;align-items:center;justify-content:space-between;padding:9px 22px;flex-wrap:wrap;gap:6px;}
.tsp-topbar .tsp-loc{display:flex;align-items:center;gap:7px;}
.tsp-topbar .tsp-loc .tsp-i{display:inline-flex;width:25px;height:25px;flex:none;}
.tsp-topbar .tsp-loc .tsp-i svg{width:25px;height:25px;}
.tsp-topbar a{color:#fff;text-decoration:none;}
.tsp-topbar .tsp-topbar-phone b{color:#fff;}

.tsp-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 2px 12px rgba(13,44,100,.07);}
.tsp-header .tsp-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 22px;gap:18px;}
.tsp-brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.tsp-brand img{width:auto;height:64px;object-fit:contain;}
.tsp-brand b{font-family:'Poppins',sans-serif;color:var(--tsp-navy);font-size:1.05rem;line-height:1.1;font-weight:700;}
.tsp-brand span{display:block;font-size:.72rem;color:var(--tsp-muted);font-weight:500;letter-spacing:.04em;text-transform:uppercase;}
.tsp-menu ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:26px;}
.tsp-menu li{margin:0;position:relative;}
.tsp-menu a{font-family:'Poppins',sans-serif;font-weight:500;font-size:.95rem;color:var(--tsp-ink);text-decoration:none;transition:.2s;}
.tsp-menu a:hover{color:var(--tsp-blue);}
/* Caret on items that have a submenu (megamenu) */
/* Single, crisp chevron (CSS triangle) — and kill the legacy ::before caret
   that the old theme added on .dropdown > a (it mis-positions on mobile). */
.tsp-menu li.dropdown > a::before{content:none !important;display:none !important;border:0 !important;}
.tsp-menu li.dropdown > a::after{content:"";display:inline-block;margin-left:7px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--tsp-muted);vertical-align:middle;transition:transform .2s ease,border-top-color .2s ease;}
.tsp-menu li.dropdown:hover > a::after{border-top-color:var(--tsp-blue);transform:rotate(180deg);}
/* Megamenu → clean vertical hover dropdown */
.tsp-menu li.dropdown{position:relative;}
.tsp-menu .megaMenuContainer{
  position:absolute;top:100%;left:0;z-index:60;padding-top:12px;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease;
}
.tsp-menu li.dropdown:hover .megaMenuContainer{opacity:1;visibility:visible;transform:none;}
.tsp-menu .megamenu-grid{
  display:block !important;width:auto !important;min-width:250px;
  background:#fff;border:1px solid var(--tsp-line);border-radius:12px;
  box-shadow:0 18px 44px rgba(13,44,100,.18);padding:8px;
}
.tsp-menu .megamenu-grid .dropdown-toggle{display:none !important;}
.tsp-menu ul.dropdown-menu{
  display:flex !important;flex-direction:column !important;align-items:stretch;gap:0;
  position:static !important;float:none !important;margin:0;padding:0;
  border:none !important;box-shadow:none !important;background:transparent !important;min-width:0 !important;
  list-style:none;transform:none;
}
/* Keep the closed panel non-interactive so it can't be triggered from the banner. */
.tsp-menu .megaMenuContainer{pointer-events:none;}
.tsp-menu li.dropdown:hover .megaMenuContainer{pointer-events:auto;}
.tsp-menu ul.dropdown-menu li{width:100%;margin:0;}
.tsp-menu ul.dropdown-menu a{display:block;padding:10px 14px;border-radius:8px;font-size:.9rem;font-weight:500;white-space:nowrap;color:var(--tsp-ink);}
.tsp-menu ul.dropdown-menu a:hover{background:var(--tsp-bg-soft);color:var(--tsp-blue);}
.tsp-nav-cta{display:flex;align-items:center;gap:10px;}
.tsp-menu-btn{display:none;background:none;border:0;cursor:pointer;font-size:1.6rem;color:var(--tsp-navy);}

@media(max-width:1024px){
  .tsp-header .tsp-nav{position:relative;}
  .tsp-menu{display:none;position:absolute;top:100%;right:22px;min-width:220px;background:#fff;padding:14px 20px;border-radius:12px;box-shadow:0 10px 30px rgba(13,44,100,.18);z-index:60;}
  .tsp-menu.open{display:block;}
  .tsp-menu ul{flex-direction:column;align-items:flex-start;gap:6px;}
  .tsp-menu ul li{width:100%;}
  .tsp-menu ul a{display:block;padding:8px 0;width:100%;}
  .tsp-menu .megaMenuContainer{position:static;opacity:1;visibility:visible;transform:none;padding-top:0;}
  .tsp-menu .megamenu-grid{box-shadow:none;border:none;padding:2px 0 2px 14px;min-width:0;}
  .tsp-menu li.dropdown > a::after{display:none;}
  .tsp-menu-btn{display:block;}
}
@media(max-width:560px){
  .tsp-topbar{display:none;}
  .tsp-brand span{display:none;}
  /* Show the Call button (not Text Us) when only one CTA fits in the navbar. */
  .tsp-nav-cta .tsp-btn-gold{display:none;}
}

/* =========================================================================
   Footer
   ========================================================================= */
.tsp-footer{background:var(--tsp-navy-2);color:#aebcd6;font-size:.88rem;}
.tsp-foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:32px;padding:56px 0 40px;}
.tsp-foot-brand img{height:82px;margin-bottom:16px;width:auto;}
.tsp-foot-brand p{color:#9fb0cf;font-size:.85rem;max-width:300px;margin:0 0 18px;}
.tsp-socials{display:flex;gap:10px;}
.tsp-socials a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.10);display:grid;place-items:center;color:#fff;transition:.2s;text-decoration:none;}
.tsp-socials a:hover{background:var(--tsp-blue);transform:translateY(-3px);}
.tsp-foot-col h4{color:#fff;font-size:1rem;margin:0 0 18px;position:relative;padding-bottom:10px;}
.tsp-foot-col h4::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:3px;border-radius:3px;background:var(--tsp-gold);}
.tsp-foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.tsp-foot-col a{color:#aebcd6;transition:.2s;display:inline-flex;align-items:center;gap:8px;text-decoration:none;}
.tsp-foot-col a::before{content:"\203A";color:var(--tsp-blue-bright);font-weight:700;font-size:1rem;line-height:1;}
.tsp-foot-col a:hover{color:var(--tsp-gold);transform:translateX(3px);}
/* Active / current footer menu link: white (was dark) + subtle effect. */
.tsp-foot-col a.is-active,
.tsp-foot-col li.menu-item--active-trail > a,
.tsp-foot-col a.is-active:hover{color:#fff !important;font-weight:600;transform:translateX(3px);}
.tsp-foot-col a.is-active::before,
.tsp-foot-col li.menu-item--active-trail > a::before{color:var(--tsp-gold);}
.tsp-pay{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.tsp-pay span{background:#fff;color:var(--tsp-navy);font-weight:700;font-size:.72rem;padding:5px 10px;border-radius:6px;}
.tsp-pay img{height:30px;width:auto;background:#fff;border-radius:6px;padding:5px 8px;display:block;}
.tsp-foot-bottom{border-top:1px solid rgba(255,255,255,.10);}
.tsp-foot-bottom .tsp-wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 22px;flex-wrap:wrap;font-size:.82rem;color:#8fa0c0;}
.tsp-foot-bottom a{color:#8fa0c0;text-decoration:none;}
.tsp-foot-bottom a:hover{color:var(--tsp-gold);}
.tsp-foot-links{display:flex;gap:18px;}
.tsp-foot-credit{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.tsp-credit-txt{color:#8fa0c0;font-size:.8rem;line-height:1.35;}
.tsp-credit-txt a{color:var(--tsp-gold);}
.tsp-credit-logo img{height:34px;width:auto;display:block;}

@media(max-width:1100px){
  .tsp-foot-grid{grid-template-columns:repeat(3,1fr);gap:28px;}
  .tsp-foot-brand{grid-column:1 / -1;}
}
@media(max-width:768px){
  .tsp-foot-grid{grid-template-columns:1fr 1fr;gap:30px;}
  .tsp-foot-brand{grid-column:auto;}
  .tsp-foot-bottom .tsp-wrap{flex-direction:column;text-align:center;}
}
@media(max-width:480px){
  .tsp-foot-grid{grid-template-columns:1fr;}
}

/* =========================================================================
   ABOUT PAGE SECTIONS
   ========================================================================= */
.tsp-sec{padding:100px 0;}
.tsp-sec.tsp-community{padding:100px 0;}

/* Left-aligned section heading with underline */
.tsp .tsp-lead-h2{
  font-size:2rem;font-weight:800;color:var(--tsp-navy);
  position:relative;display:inline-block;padding-bottom:16px;margin:0 0 16px;
}
.tsp .tsp-lead-h2::after{
  content:"";position:absolute;left:0;bottom:0;width:60px;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));
}

/* ---- Our Story ---- */
.tsp-story{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center;}
.tsp-story-img{border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-story-img img{width:100%;height:100%;object-fit:cover;display:block;}
.tsp-story-txt p{color:var(--tsp-muted);margin:0 0 14px;}
.tsp-story-check{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:11px;}
.tsp-story-check li{display:flex;align-items:flex-start;gap:8px;font-size:.95rem;color:var(--tsp-ink);}
.tsp-story-check li::before{display:none;}
/* Inline tick icon (uploaded tick-circle.svg) before each list item. */
.tsp-story-check .tsp-tag-ic{display:inline-flex;flex:none;width:20px;height:20px;margin-top:1px;}
.tsp-story-check .tsp-tag-ic svg{width:100%;height:100%;display:block;stroke:none;}

/* ---- Transportation modes ---- */
.tsp-modes-box{
  display:grid;grid-template-columns:repeat(6,1fr);
  background:#fff;border:1px solid var(--tsp-line);border-radius:18px;
  box-shadow:0 4px 14px rgba(13,44,100,.08);overflow:hidden;
}
.tsp-mode{padding:30px 16px;text-align:center;border-right:1px solid var(--tsp-line);transition:.2s;}
.tsp-mode:last-child{border-right:none;}
.tsp-mode:hover{background:var(--tsp-bg-soft);}
.tsp-mode-ic{color:var(--tsp-blue);margin:0 auto 14px;display:flex;justify-content:center;}
.tsp-mode-ic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-mode-ic img{width:30px;height:30px;object-fit:contain;}
.tsp-mode h4{font-size:.95rem;font-weight:700;color:var(--tsp-navy);margin:0 0 6px;}
.tsp-mode p{color:var(--tsp-muted);font-size:.8rem;line-height:1.45;margin:0;}
/* Mobile: horizontal divider between stacked "modes" points on EVERY page that
   uses this point-grid (service-area, default-styled sections, etc.). Corporate/
   battery/senior have their own !important rule lower down; card-style variants
   (delivery / flat-rate) already carry full borders, so this is a no-op there. */
@media(max-width:992px){
  .tsp-modes-box .tsp-mode{border-bottom:1px solid var(--tsp-line);}
}

/* ---- VS comparison ---- */
.tsp-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;}
.tsp-vs-card{border-radius:var(--tsp-radius);padding:30px;box-shadow:0 4px 14px rgba(13,44,100,.08);}
.tsp-vs-card h3{font-size:1.15rem;font-weight:800;margin:0 0 20px;text-align:center;}
.tsp-vs-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.tsp-vs-card li{position:relative;padding-left:32px;font-size:.92rem;line-height:1.6;}
/* Circular icon badges (formatting per reference) — colours unchanged. */
.tsp-vs-card li::before{position:absolute;left:0;top:2px;width:19px;height:19px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:800;color:#fff;line-height:1;}
.tsp-vs-bad{background:#eaf2fc;border:1px solid #cfe0f6;}
.tsp-vs-bad h3{color:#d64545;}
.tsp-vs-bad li::before{content:"\2715";background:#d64545;}
.tsp-vs-good{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-blue));color:#fff;}
.tsp-vs-good h3{color:#fff;}
.tsp-vs-good li{color:#e8f0fb;}
.tsp-vs-good li::before{content:"";width:20px;height:20px;border-radius:0;background:url(../images/icons/tick-circle-green.svg) center/contain no-repeat;}
.tsp-vs-badge{
  width:66px;height:66px;border-radius:50%;background:var(--tsp-gold);color:var(--tsp-navy);
  display:grid;place-items:center;font-weight:800;font-size:1.05rem;
  box-shadow:0 10px 30px rgba(13,44,100,.10);
}

/* ---- Feature cards (drivers & vehicles) ---- */
.tsp-frow2{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.tsp-fcard{display:grid;grid-template-columns:1.1fr .9fr;background:#f3f3f7;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);overflow:hidden;transition:.2s;}
.tsp-fcard:hover{transform:translateY(-4px);}
.tsp-fcard-txt{padding:28px;}
.tsp-fcard-txt h3{font-size:1.12rem;font-weight:700;color:var(--tsp-navy);margin:0 0 10px;}
.tsp-fcard-txt p{color:var(--tsp-muted);font-size:.88rem;margin:0 0 14px;}
.tsp-fcard-img img{width:100%;height:100%;object-fit:cover;display:block;}
.tsp-flist{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.tsp-flist li{position:relative;padding-left:26px;font-size:.86rem;line-height:1.45;}
.tsp-flist li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;background:url(../images/icons/tick-circle.svg) center/contain no-repeat;}

/* ---- Community band ---- */
.tsp-community{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));color:#fff;}
.tsp-community-grid{display:grid;grid-template-columns:280px 1fr;gap:50px;align-items:center;}
.tsp-community-img img{width:260px;height:260px;border-radius:50%;object-fit:cover;margin:0 auto;border:5px solid rgba(255,255,255,.12);}
.tsp-community-txt .tsp-lead-h2{color:#fff;}
.tsp-community-txt>p{color:#c3d2ee;margin:0 0 6px;}
.tsp-community-points{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px;}
.tsp-cpoint{display:flex;gap:13px;}
.tsp-cpoint-ic{width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;flex:none;color:var(--tsp-gold);}
.tsp-cpoint-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-cpoint-ic img{width:25px;height:25px;object-fit:contain;}
.tsp-cpoint h4{color:#fff;font-size:.96rem;font-weight:700;margin:0 0 3px;}
.tsp-cpoint p{color:#bcccea;font-size:.82rem;margin:0;}

/* ---- "Need a taxi" band feature points ---- */
.tsp-need-points{display:flex;flex-wrap:wrap;gap:14px 22px;margin-top:18px;}
.tsp-need-points span{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:.92rem;font-weight:500;}
.tsp-need-points span::before{content:"\2713";color:var(--tsp-gold);font-weight:800;}

/* ---- About responsive ---- */
@media(max-width:1200px){
  .tsp-modes-box{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:992px){
  .tsp-story{grid-template-columns:1fr;gap:30px;}
  .tsp-vs{grid-template-columns:1fr;gap:18px;}
  .tsp-vs-badge{margin:0 auto;}
  .tsp-frow2{grid-template-columns:1fr;}
  .tsp-community-grid{grid-template-columns:1fr;gap:30px;text-align:center;}
  .tsp-community-points{text-align:left;}
}
@media(max-width:768px){
  .tsp-sec{padding:54px 0;}
  .tsp .tsp-lead-h2{font-size:1.6rem;}
  .tsp-modes-box{grid-template-columns:1fr 1fr;}
  .tsp-community-points{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .tsp-modes-box{grid-template-columns:1fr;}
  .tsp-fcard{grid-template-columns:1fr;}
  .tsp-fcard-img{aspect-ratio:3/2;}
  .tsp-community-img img{width:200px;height:200px;}
}

/* =========================================================================
   BLOG LISTING
   ========================================================================= */
/* Page heading (plain, no background) */
.tsp-blog-hero{background:#fff;text-align:center;padding:58px 0 8px;}
.tsp-blog-hero h1{
  color:var(--tsp-navy);font-size:2.4rem;font-weight:800;margin:0;line-height:1.15;
  position:relative;display:inline-block;padding-bottom:18px;
}
.tsp-blog-hero h1::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;
  width:64px;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));
}

/* Listing wrapper */
.tsp-blog{background:#fff;padding:40px 0 72px;}
.tsp-blog .tsp-wrap,.tsp-blog-hero .tsp-wrap{max-width:var(--tsp-maxw);}
.tsp-blog .views-view-responsive-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:28px !important;align-items:stretch;}
.tsp-blog .views-view-responsive-grid::before,
.tsp-blog .views-view-responsive-grid::after{display:none !important;}

/* Card (vertical: image on top, text below) */
html.tsp-front .tsp-blog .sherwood-blog{
  display:block !important;background:#fff;border:1px solid var(--tsp-line);
  border-radius:16px;overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);
  transition:transform .2s, box-shadow .2s;margin:0;height:100%;
}
html.tsp-front .tsp-blog .sherwood-blog:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(13,44,100,.16);}
html.tsp-front .tsp-blog .sherwoodService-item{
  display:flex;flex-direction:column;align-items:stretch;
  margin:0;border-radius:0;gap:0;height:100%;
}
html.tsp-front .tsp-blog .sherwoodService-item .col-lg-4,
html.tsp-front .tsp-blog .sherwoodService-item .col-lg-8{
  max-width:none;flex:none;padding:0;width:100%;float:none;
}
/* Image on top, text below (force order so legacy classes can't reorder). */
html.tsp-front .tsp-blog .sherwoodService-item .col-lg-4{order:0;overflow:hidden;}
html.tsp-front .tsp-blog .sherwoodService-item .sherwoodService-des{order:1;flex:1 1 auto;}
html.tsp-front .tsp-blog .sherwoodService-item .col-lg-4{overflow:hidden;background:#eef3fa;}
html.tsp-front .tsp-blog .sherwoodService-item img{width:100%;height:auto;object-fit:contain;display:block;}
html.tsp-front .tsp-blog .sherwoodService-item .sherwoodService-des{
  margin:0;padding:22px 26px 26px;display:flex;flex-direction:column;
}
/* The View outputs empty <p> wrappers — collapse them so spacing stays even. */
html.tsp-front .tsp-blog .sherwoodService-des p:empty{display:none;margin:0;}
html.tsp-front .tsp-blog .sherwoodService-des h2{font-size:1.2rem;font-weight:700;line-height:1.3;margin:0 0 10px;}
html.tsp-front .tsp-blog .sherwoodService-des h2 a{color:var(--tsp-navy);text-decoration:none;transition:color .2s;}
html.tsp-front .tsp-blog .sherwoodService-des h2 a:hover{color:var(--tsp-blue);}
html.tsp-front .tsp-blog .sherwoodService-des .date{
  display:inline-flex;align-items:center;gap:6px;color:var(--tsp-blue);
  font-size:.85rem;font-weight:600;margin:0 0 12px;
}
html.tsp-front .tsp-blog .sherwoodService-des .date::before{content:"";display:inline-block;width:14px;height:14px;margin-right:5px;vertical-align:-2px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center/contain no-repeat;}
html.tsp-front .tsp-blog .sherwoodService-des p{color:var(--tsp-muted);font-size:.95rem;line-height:1.7;margin:0;}

/* Pager */
.tsp-blog .pager__items{display:flex;gap:8px;justify-content:center;list-style:none;padding:0;margin:36px 0 0;flex-wrap:wrap;}
.tsp-blog .pager__item a{
  display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;
  border-radius:10px;border:1px solid var(--tsp-line);background:#fff;color:var(--tsp-navy);
  font-weight:600;text-decoration:none;transition:.2s;
}
.tsp-blog .pager__item a:hover,.tsp-blog .pager__item.is-active a{background:var(--tsp-blue);color:#fff;border-color:var(--tsp-blue);}

/* Blog responsive */
@media(max-width:1100px){
  .tsp-blog .views-view-responsive-grid{grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:768px){
  .tsp-blog-hero{padding:48px 0 54px;}
  .tsp-blog-hero h1{font-size:1.9rem;}
  html.tsp-front .tsp-blog .sherwoodService-item img{height:auto;}
  html.tsp-front .tsp-blog .sherwoodService-des{padding:22px 24px;}
}
/* Phones: single column, but cap the image so it never upscales (= no blur). */
@media(max-width:600px){
  .tsp-blog .views-view-responsive-grid{grid-template-columns:1fr !important;}
  html.tsp-front .tsp-blog .sherwoodService-item .col-lg-4{max-width:440px;margin-left:auto;margin-right:auto;}
}

/* =========================================================================
   BLOG ARTICLE (single post)
   ========================================================================= */
.tsp-article-hero{
  background:linear-gradient(105deg,var(--tsp-navy) 0%,var(--tsp-navy-2) 55%,var(--tsp-blue) 135%);
  color:#fff;padding:54px 0 58px;
}
.tsp-crumb{display:flex;align-items:center;gap:8px;font-size:.85rem;color:#bcd0ee;margin-bottom:16px;flex-wrap:wrap;}
.tsp-crumb a{color:#bcd0ee;text-decoration:none;}
.tsp-crumb a:hover{color:#fff;}
.tsp-crumb span{color:#7e93bd;}
.tsp-article-hero h1{color:#fff;font-size:2.4rem;font-weight:800;line-height:1.18;margin:0 0 16px;max-width:900px;}
.tsp-article-meta{display:flex;align-items:center;gap:10px;color:#d4e0f4;font-size:.9rem;font-weight:500;}
.tsp-article-meta .tsp-i{width:25px;height:25px;color:var(--tsp-gold);}
.tsp-article-meta .tsp-dot{color:#7e93bd;}

html.tsp-front .tsp-article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:48px;padding:52px 22px 76px;align-items:start;}

/* Article body typography */
.tsp-article-main{min-width:0;}
/* Blog detail body: all paragraphs 17px (overrides the global "p under h3 =
   14px" rule, which shouldn't apply inside article copy). */
html.tsp-front .tsp-article-main p{color:#33415c;font-size:17px !important;line-height:1.85;margin:0 0 18px;}
html.tsp-front .tsp-article-main h2{color:var(--tsp-navy);font-size:1.7rem;font-weight:800;line-height:1.25;margin:38px 0 14px;}
html.tsp-front .tsp-article-main h3{color:var(--tsp-navy);font-size:1.3rem;font-weight:700;margin:28px 0 12px;}
html.tsp-front .tsp-article-main ul,html.tsp-front .tsp-article-main ol{margin:0 0 20px;padding-left:0;list-style:none;}
html.tsp-front .tsp-article-main ul li{position:relative;padding-left:28px;margin-bottom:10px;color:#33415c;font-size:1.02rem;line-height:1.7;}
html.tsp-front .tsp-article-main ul li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;background:url(../images/icons/tick-circle.svg) center/contain no-repeat;}
html.tsp-front .tsp-article-main ol{counter-reset:tsp;}
html.tsp-front .tsp-article-main ol li{position:relative;padding-left:34px;margin-bottom:10px;color:#33415c;font-size:1.02rem;counter-increment:tsp;}
html.tsp-front .tsp-article-main ol li::before{content:counter(tsp);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--tsp-blue);color:#fff;font-size:.78rem;font-weight:700;display:grid;place-items:center;}
html.tsp-front .tsp-article-main a{color:var(--tsp-blue);text-decoration:underline;text-underline-offset:2px;}
html.tsp-front .tsp-article-main strong{color:var(--tsp-navy);font-weight:700;}
html.tsp-front .tsp-article-main img{max-width:100%;height:auto;border-radius:14px;margin:14px 0 22px;box-shadow:0 10px 30px rgba(13,44,100,.12);}
/* Right/left aligned (floated) images: keep a gap from the wrapping text and
   cap their width so they don't crowd the article copy. */
html.tsp-front .tsp-article-main .align-right{float:right;max-width:42%;height:auto;margin:6px 0 14px 18px;}
html.tsp-front .tsp-article-main .align-left{float:left;max-width:42%;height:auto;margin:6px 18px 14px 0;}
@media(max-width:600px){
  html.tsp-front .tsp-article-main .align-right,
  html.tsp-front .tsp-article-main .align-left{float:none;max-width:100%;margin:14px 0;}
}
/* This specific post (node 82): float the image LEFT so the body text wraps
   and fills the space to its right (was empty white space before). */
html.tsp-front .tsp-article--n82 .tsp-article-main .align-right,
html.tsp-front .tsp-article--n82 .tsp-article-main .align-left{
  float:left !important;clear:left;max-width:42%;height:auto;margin:6px 22px 14px 0 !important;
}

/* This specific post (node 88): image centred, full width of the article. */
html.tsp-front .tsp-article--n88 .tsp-article-main img{
  float:none !important;display:block;width:100% !important;max-width:100% !important;height:auto;margin:18px auto !important;
}
html.tsp-front .tsp-article-main blockquote{margin:22px 0;padding:16px 22px;border-left:4px solid var(--tsp-gold);background:var(--tsp-bg-soft);border-radius:0 10px 10px 0;color:var(--tsp-navy);font-style:italic;}
.tsp-article-foot{margin-top:30px;padding-top:22px;border-top:1px solid var(--tsp-line);}

/* Ghost-blue button (for light backgrounds) */
.tsp .tsp-btn-ghost-blue{background:transparent;border:2px solid var(--tsp-blue);color:var(--tsp-blue);}
.tsp .tsp-btn-ghost-blue:hover{background:var(--tsp-blue);color:#fff;}
.tsp .tsp-btn-block{display:flex;width:100%;justify-content:center;}

/* Sticky aside */
.tsp-article-aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:20px;}
.tsp-aside-card{background:#fff;border:1px solid var(--tsp-line);border-radius:16px;padding:24px;box-shadow:0 4px 14px rgba(13,44,100,.08);}
.tsp-aside-card h3{color:var(--tsp-navy);font-size:1.2rem;font-weight:800;margin:0 0 8px;}
.tsp-aside-card>p{color:var(--tsp-muted);font-size:.9rem;margin:0 0 16px;}
.tsp-aside-card .tsp-btn{margin-bottom:10px;}
.tsp-aside-card .tsp-btn:last-child{margin-bottom:0;}
.tsp-aside-areas h4{color:var(--tsp-navy);font-size:1rem;font-weight:700;margin:0 0 14px;}
.tsp-aside-areas ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.tsp-aside-areas a{display:flex;gap:8px;color:#33415c;text-decoration:none;font-size:.92rem;transition:color .2s;}
.tsp-aside-areas a::before{content:"›";color:var(--tsp-blue);font-weight:800;}
.tsp-aside-areas a:hover{color:var(--tsp-blue);}

@media(max-width:1024px){
  /* Needs the html.tsp-front prefix to outweigh the desktop grid rule above,
     otherwise the blog detail never collapses to one column on tablet. */
  html.tsp-front .tsp-article-wrap{grid-template-columns:1fr !important;gap:34px;}
  .tsp-article-aside{position:static;}
}
@media(max-width:768px){
  .tsp-article-hero{padding:40px 0 44px;}
  .tsp-article-hero h1{font-size:1.8rem;}
  .tsp-article-wrap{padding:38px 16px 56px;}
  html.tsp-front .tsp-article-main h2{font-size:1.45rem;}
}

/* =========================================================================
   CABS PAGE + GALLERY
   ========================================================================= */
.tsp-cabs-lead{color:#d4e0f4;font-size:1.05rem;line-height:1.7;max-width:680px;margin:0 0 22px;}
.tsp-page-hero-acts{display:flex;gap:12px;flex-wrap:wrap;}
.tsp-page-hero-acts .tsp-btn{display:inline-flex;align-items:center;gap:8px;}

html.tsp-front .tsp-cabs-body{padding:52px 22px 8px;}
html.tsp-front .tsp-cabs-body .tsp-article-main{max-width:none;}

/* Gallery */
.tsp-gallery-sec{background:var(--tsp-bg-soft);padding:100px 0;}
.tsp-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.tsp-gallery-item{position:relative;display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 6px 18px rgba(13,44,100,.10);}
.tsp-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.tsp-gallery-item:hover img{transform:scale(1.07);}
.tsp-gallery-item{cursor:pointer;}

@media(max-width:992px){.tsp-gallery-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){
  .tsp-gallery-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  html.tsp-front .tsp-cabs-body{padding:38px 16px 4px;}
}
@media(max-width:430px){.tsp-gallery-grid{grid-template-columns:1fr;}}

/* =========================================================================
   SERVICES LISTING PAGE
   ========================================================================= */
.tsp-services-page{background:#fff;padding:56px 0 74px;}
.tsp-services-page .views-view-responsive-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:28px !important;}
.tsp-services-page .views-view-responsive-grid::before,
.tsp-services-page .views-view-responsive-grid::after{display:none !important;}
.tsp-services-page .views-view-responsive-grid > div{display:flex;}

html.tsp-front .tsp-services-page .sherwoodService-item{
  display:flex;flex-direction:column;width:100%;margin:0;background:#fff;
  border:1px solid var(--tsp-line);border-radius:16px;overflow:hidden;
  box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s, box-shadow .2s;
}
html.tsp-front .tsp-services-page .sherwoodService-item:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(13,44,100,.16);}
html.tsp-front .tsp-services-page .sherwoodService-item [class*="col-"]{max-width:none;flex:none;padding:0;width:100%;float:none;}
html.tsp-front .tsp-services-page .sherwoodService-item .col-lg-4{order:0;overflow:hidden;aspect-ratio:900/420;}
html.tsp-front .tsp-services-page .sherwoodService-item img{width:100%;height:100%;object-fit:cover;display:block;}
html.tsp-front .tsp-services-page .sherwoodService-item .sherwoodService-des{order:1;flex:1 1 auto;display:flex;flex-direction:column;margin:0;padding:22px 24px 24px;width:100%;}
html.tsp-front .tsp-services-page .sherwoodService-des h4{font-size:1.2rem;font-weight:700;line-height:1.3;margin:0 0 10px;}
html.tsp-front .tsp-services-page .sherwoodService-des h4 a{color:var(--tsp-navy);text-decoration:none;transition:color .2s;}
html.tsp-front .tsp-services-page .sherwoodService-des h4 a:hover{color:var(--tsp-blue);}
html.tsp-front .tsp-services-page .sherwoodService-des p{color:var(--tsp-muted);font-size:.92rem;line-height:1.65;margin:0 0 14px;}
html.tsp-front .tsp-services-page .sherwoodService-des p:empty{display:none;margin:0;}
html.tsp-front .tsp-services-page .sherwoodService-des > a{
  margin-top:auto;align-self:flex-start;background:var(--tsp-blue);color:#fff;
  font-weight:600;font-size:.92rem;padding:11px 22px;border-radius:9px;text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;transition:background .2s;
}
html.tsp-front .tsp-services-page .sherwoodService-des > a:hover{background:#1a4f93;color:#fff;}

@media(max-width:1100px){.tsp-services-page .views-view-responsive-grid{grid-template-columns:repeat(2,1fr) !important;}}
@media(max-width:680px){.tsp-services-page .views-view-responsive-grid{grid-template-columns:1fr !important;}}

/* Home "Services" section now embeds the same Services view (block) — give it
   the same card grid + card design as the services page. */
.tsp-services-auto .views-view-responsive-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:28px !important;}
.tsp-services-auto .views-view-responsive-grid::before,
.tsp-services-auto .views-view-responsive-grid::after{display:none !important;}
.tsp-services-auto .views-view-responsive-grid > div{display:flex;}
.tsp-services-auto .sherwoodService-item{display:flex;flex-direction:column;width:100%;margin:0;background:#fff;border:1px solid var(--tsp-line);border-radius:16px;overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s, box-shadow .2s;}
.tsp-services-auto .sherwoodService-item:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(13,44,100,.16);}
.tsp-services-auto .sherwoodService-item [class*="col-"]{max-width:none;flex:none;padding:0;width:100%;float:none;}
.tsp-services-auto .sherwoodService-item .col-lg-4{order:0;overflow:hidden;aspect-ratio:900/420;}
.tsp-services-auto .sherwoodService-item img{width:100%;height:100%;object-fit:cover;display:block;}
.tsp-services-auto .sherwoodService-item .sherwoodService-des{order:1;flex:1 1 auto;display:flex;flex-direction:column;margin:0;padding:22px 24px 24px;width:100%;}
.tsp-services-auto .sherwoodService-des h4{font-size:1.2rem;font-weight:700;line-height:1.3;margin:0 0 10px;}
.tsp-services-auto .sherwoodService-des h4 a{color:var(--tsp-navy);text-decoration:none;transition:color .2s;}
.tsp-services-auto .sherwoodService-des h4 a:hover{color:var(--tsp-blue);}
.tsp-services-auto .sherwoodService-des p{color:var(--tsp-muted);font-size:.92rem;line-height:1.65;margin:0 0 14px;}
.tsp-services-auto .sherwoodService-des p:empty{display:none;margin:0;}
.tsp-services-auto .sherwoodService-des > a{margin-top:auto;align-self:flex-start;background:var(--tsp-blue);color:#fff;font-weight:600;font-size:.92rem;padding:11px 22px;border-radius:9px;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:background .2s;}
.tsp-services-auto .sherwoodService-des > a:hover{background:#1a4f93;color:#fff;}
/* "Starting from $X" price line on the service cards (home + services page). */
.tsp-card-price{color:var(--tsp-blue) !important;font-weight:700;font-size:.95rem;margin:0 0 8px;}
.tsp-services-all{text-align:center;margin-top:36px;}

/* =========================================================================
   SECTION SPACING — two consecutive WHITE sections (each 100px top+bottom)
   made a 200px gap that looked odd. js/redesign.js reads each section's real
   background and, when a white section directly follows another white section,
   adds .tsp-flush-top here to drop its top padding -> a single ~100px gap.
   Coloured / soft-tint bands keep their full padding (never collapsed), so
   their content never hugs the band edge. (JS-driven so context-dependent
   backgrounds are handled correctly.)
   ========================================================================= */
.tsp-flush-top{padding-top:0 !important;}
@media(max-width:1100px){.tsp-services-auto .views-view-responsive-grid{grid-template-columns:repeat(2,1fr) !important;}}
@media(max-width:680px){.tsp-services-auto .views-view-responsive-grid{grid-template-columns:1fr !important;}}

/* =========================================================================
   SERVICE AREA PAGE
   ========================================================================= */
/* Communities + map */
.tsp-comm{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start;}
.tsp-comm-cats{display:flex;flex-direction:column;gap:20px;}
.tsp-comm-card{background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:24px;box-shadow:0 4px 14px rgba(13,44,100,.08);}
.tsp-comm-card h3{display:flex;align-items:center;gap:12px;font-size:1.05rem;font-weight:700;color:var(--tsp-navy);margin:0 0 18px;}
.tsp-comm-ic{width:44px;height:44px;border-radius:11px;background:#e6eef9;color:var(--tsp-blue);display:grid;place-items:center;flex:none;}
.tsp-comm-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-comm-ic img{width:25px;height:25px;object-fit:contain;}
.tsp-taglist{display:flex;flex-wrap:wrap;gap:10px;}
.tsp-taglist span{display:inline-flex;align-items:center;gap:7px;background:transparent;border:1px solid #e6eef9;color:var(--tsp-blue);font-weight:600;font-size:.82rem;padding:8px 15px;border-radius:30px;transition:.2s;}
.tsp-taglist span:hover{background:var(--tsp-blue);color:#fff;}
.tsp-taglist a.tsp-tag-link{text-decoration:none;display:inline-flex;}
.tsp-taglist a.tsp-tag-link span{cursor:pointer;border-color:var(--tsp-blue);}
.tsp-taglist a.tsp-tag-link:hover span{background:var(--tsp-blue);color:#fff;}
.tsp-comm-map{border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);position:sticky;top:112px;align-self:start;}
/* Show the uploaded map exactly as designed (full image, natural ratio, no crop). */
.tsp-comm-map img{width:100%;height:auto;display:block;}
/* Inline (interactive) SVG map — rendered RAW so it looks identical to the
   uploaded file, but its hover/cursor/links now work. */
.tsp-comm-map--svg svg{width:100%;height:auto;display:block;max-width:100%;}
/* District-map interactivity in the theme stylesheet so it works regardless of
   whether the inlined SVG's own <style> is applied in the page context. Static
   paint (white borders, centred/readable labels) lives in the SVG as
   presentation attributes; these rules add the hover zoom + hidden-label reveal. */
.tsp-comm-map--svg .samap-region{cursor:pointer;transition:transform .25s ease,filter .25s ease;}
.tsp-comm-map--svg .samap-region:hover{transform:translateY(-2px);filter:brightness(1.04) drop-shadow(0 4px 8px rgba(0,0,0,.28));}
.tsp-comm-map--svg .samap-group:hover .samap-label2{opacity:1;}
.tsp-comm-map--svg a{cursor:pointer;}

/* Popular routes */
.tsp-routes{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.tsp-route{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--tsp-line);border-radius:12px;padding:16px 18px;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s, box-shadow .2s;}
.tsp-route:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(13,44,100,.14);}
.tsp-route-path{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--tsp-navy);font-size:.95rem;}
.tsp-route-path .tsp-i{width:35px;height:35px;color:var(--tsp-blue);flex:none;}
.tsp-route-path .tsp-i svg{width:35px;height:35px;}
.tsp-route-tag{font-size:.72rem;font-weight:700;padding:5px 12px;border-radius:20px;background:var(--tsp-blue);color:#fff;white-space:nowrap;flex:none;}

@media(max-width:992px){
  .tsp-comm{grid-template-columns:1fr;gap:30px;}
  /* Mobile order: map first (right after the heading/description), community
     list below it. Drop the sticky so it doesn't float over the list. */
  .tsp-comm-map{order:-1;position:static;top:auto;}
  .tsp-comm-cats{order:0;}
  .tsp-routes{grid-template-columns:1fr;}
}

/* Service Area: soft background on the County feature + Popular Routes. */
html.tsp-sa .tsp-story-sec{background:var(--tsp-bg-soft);}
.tsp-routes-sec{background:var(--tsp-bg-soft);}

/* Service Area: destinations render as separate cards that lift on hover. */
html.tsp-sa .tsp-modes-box{background:transparent;border:none;box-shadow:none;overflow:visible;gap:18px;}
html.tsp-sa .tsp-mode{
  background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);
  box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s, box-shadow .2s;
}
html.tsp-sa .tsp-mode{border-right:1px solid var(--tsp-line);}
html.tsp-sa .tsp-mode:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(13,44,100,.16);background:#fff;}

/* Tag icon is only shown when the Story list renders as tags (Service Area). */
/* Service Area: render the Story checklist as location tags instead of checks. */
html.tsp-sa .tsp-story-check{display:flex;flex-wrap:wrap;gap:10px;}
html.tsp-sa .tsp-story-check li{
  display:inline-flex;align-items:center;gap:7px;
  padding-left:0;font-size:.82rem;font-weight:600;color:var(--tsp-blue);
  border:1px solid #e6eef9;border-radius:30px;padding:8px 15px;transition:.2s;
}
html.tsp-sa .tsp-story-check li::before{display:none;}
html.tsp-sa .tsp-story-check .tsp-tag-ic{display:inline-flex;width:25px;height:25px;flex:none;}
html.tsp-sa .tsp-story-check .tsp-tag-ic svg{width:100%;height:100%;stroke:none;}
html.tsp-sa .tsp-story-check li:hover{background:var(--tsp-blue);color:#fff;}

/* =========================================================================
   AIRPORT SERVICE PAGE
   ========================================================================= */
/* Prose intro */
.tsp-prose-sec{padding:100px 0;}
.tsp-prose{max-width:none;}
html.tsp-front .tsp-prose p{color:var(--tsp-muted);font-size:1rem;line-height:1.85;margin:0 0 16px;}
html.tsp-front .tsp-prose p:last-child{margin-bottom:0;}

/* Why-choose grid */
.tsp-svc-sec{background:var(--tsp-bg-soft);padding:100px 0;}
.tsp-svc{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:30px;align-items:stretch;}
.tsp-svc-col{display:flex;flex-direction:column;gap:18px;}
.tsp-svc-item{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--tsp-line);border-radius:12px;padding:18px;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s, box-shadow .2s;}
.tsp-svc-item:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(13,44,100,.14);}
.tsp-svc-ic{width:56px;height:56px;border-radius:50%;background:var(--tsp-navy);color:#fff;display:grid;place-items:center;flex:none;}
.tsp-svc-ic svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;}
.tsp-svc-item h4{font-size:.95rem;font-weight:700;color:var(--tsp-navy);position:relative;padding-bottom:8px;margin:0 0 7px;}
.tsp-svc-item h4::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:3px;border-radius:3px;background:var(--tsp-gold);}
.tsp-svc-item p{color:var(--tsp-muted);font-size:.82rem;margin:0;line-height:1.55;}
.tsp-svc-center{position:relative;border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 10px 30px rgba(13,44,100,.18);min-height:340px;}
.tsp-svc-center img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.tsp-svc-overlay{position:absolute;left:0;right:0;bottom:0;padding:54px 20px 20px;background:linear-gradient(to top,rgba(8,24,60,.94),rgba(8,24,60,.55) 55%,rgba(8,24,60,0));}
.tsp-svc-cap{color:#fff;font-weight:800;font-size:1.05rem;line-height:1.22;text-align:center;margin:0 0 18px;}
.tsp-svc-cap span{display:block;font-size:30px;line-height:1.15;}
.tsp-svc-cap strong{display:block;color:var(--tsp-gold);font-weight:800;font-size:30px;line-height:1.15;margin-top:4px;}
/* Two badges spread to the left/right, the third centred on a line below. */
.tsp-svc-badges{display:grid;grid-template-columns:auto auto;justify-content:space-between;align-items:start;gap:12px 8px;}
.tsp-svc-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:30px;padding:8px 9px;color:#fff;font-size:16px;font-weight:600;white-space:nowrap;}
.tsp-svc-badge:nth-child(3){grid-column:1 / -1;justify-self:center;}
.tsp-svc-badge svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;}
/* Below a wide desktop (~1300px) the 3-column layout turns the center image into
   a tall narrow strip. Instead: image full width on top, reasons in TWO columns
   below it. Caption scales to width; badges wrap so they never overflow. */
@media(max-width:1300px){
  .tsp-svc{grid-template-columns:1fr 1fr;gap:22px 24px;}
  .tsp-svc-center{order:-1;grid-column:1 / -1;min-height:clamp(340px,40vw,440px);}
  .tsp-svc-overlay{padding:36px 16px 16px;}
  .tsp-svc-cap{font-size:.9rem;margin-bottom:12px;}
  .tsp-svc-cap span,.tsp-svc-cap strong{font-size:clamp(22px,2.6vw,30px);line-height:1.18;}
  .tsp-svc-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
  .tsp-svc-badge{font-size:13px;padding:6px 11px;gap:5px;}
  .tsp-svc-badge svg{width:18px;height:18px;}
}
/* Phone: reasons one per row; image a touch taller for the portrait viewport. */
@media(max-width:680px){
  .tsp-svc{grid-template-columns:1fr;}
  .tsp-svc-center{min-height:clamp(380px,84vw,460px);}
  .tsp-svc-cap span,.tsp-svc-cap strong{font-size:clamp(19px,5.4vw,24px);}
}

/* Process steps */
.tsp-process-sec{position:relative;background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));color:#fff;padding:100px 0;}
.tsp-process-sec .tsp-sec-head h2{color:#fff;}
.tsp-process-sec .tsp-sec-head p{color:#c3d2ee;}
.tsp-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.tsp-step{text-align:center;position:relative;}
.tsp-step:not(:last-child)::after{
  content:"";position:absolute;top:26px;right:-26px;width:48px;height:28px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 28' fill='none' stroke='%23aecbf0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 22 C 14 4, 32 4, 43 13'/%3E%3Cpath d='M35 8 L44 13 L36 19'/%3E%3C/svg%3E") no-repeat center/contain;
}
.tsp-step-tile{width:80px;height:80px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;margin:0 auto 18px;color:#fff;}
.tsp-step-tile svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-step-no{display:block;color:var(--tsp-blue-bright);font-weight:800;font-size:1.15rem;margin-bottom:5px;}
.tsp-step h4{color:#fff;font-size:1.02rem;margin:0 0 6px;}
.tsp-step p{color:#bcccea;font-size:.83rem;max-width:230px;margin:0 auto;line-height:1.55;}

/* Local knowledge navy panel */
.tsp-localk-sec{background:#fff;padding:100px 0;}
.tsp-localk-panel{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));color:#fff;border-radius:18px;padding:42px 46px;box-shadow:0 10px 30px rgba(13,44,100,.18);}
.tsp-localk-inner{display:grid;grid-template-columns:1.5fr 1.7fr;gap:20px;align-items:center;}
.tsp-localk-txt h2{color:#fff;font-size:1.6rem;font-weight:800;position:relative;display:inline-block;padding-bottom:14px;margin:0 0 14px;}
.tsp-localk-txt h2::after{content:"";position:absolute;left:0;bottom:0;width:54px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--tsp-blue-bright),var(--tsp-gold));}
.tsp-localk-txt p{color:#c3d2ee;font-size:.9rem;margin:0;}
.tsp-localk-items{display:grid;grid-template-columns:repeat(4,1fr);}
.tsp-lk{text-align:center;padding:0 18px;border-right:1px solid rgba(255,255,255,.16);}
.tsp-lk:last-child{border-right:none;}
.tsp-lk-ic{width:58px;height:58px;border-radius:14px;background:transparent;border:0;display:grid;place-items:center;margin:0 auto 12px;color:#fff;}
.tsp-lk-ic svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-lk h4{color:#fff;font-size:.92rem;margin:0 0 4px;}
.tsp-lk p{color:#bcccea;font-size:.78rem;margin:0;}

/* Airport: bordered feature box (image + text in one container). */
html.tsp-air .tsp-story{grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border:1px solid var(--tsp-line);border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);background:#fff;}
html.tsp-air .tsp-story-img{border-radius:0;box-shadow:none;}
/* "Edmonton International Airport" sign sits on the LEFT of this photo — keep
   the left anchored so the wordmark is never cropped (crop from the right). */
html.tsp-air .tsp-story-img img{width:100%;height:100%;min-height:380px;object-fit:cover;object-position:left center;}
html.tsp-air .tsp-story-txt{padding:42px 46px;display:flex;flex-direction:column;justify-content:center;}
/* "Why Choose" feature photo: the airport wordmark runs to the right edge, so
   anchor right (and slightly up) so that text stays visible when the box crops. */
html.tsp-air .tsp-svc-center img{object-position:right top;}

@media(max-width:992px){
  .tsp-steps{grid-template-columns:1fr 1fr;gap:34px;}
  .tsp-step::after{display:none;}
  .tsp-localk-inner{grid-template-columns:1fr;gap:28px;}
  .tsp-localk-items{grid-template-columns:1fr 1fr;gap:26px 0;}
  .tsp-lk:nth-child(2){border-right:none;}
  html.tsp-air .tsp-story{grid-template-columns:1fr;}
  html.tsp-air .tsp-story-img img{min-height:280px;}
  html.tsp-air .tsp-story-txt{padding:32px;}
}
@media(max-width:560px){
  .tsp-steps{grid-template-columns:1fr;}
  .tsp-localk-items{grid-template-columns:1fr;}
  .tsp-lk{border-right:none;padding:0;}
}

/* =========================================================================
   SENIOR TRANSPORTATION PAGE
   ========================================================================= */
/* Second split (Medical) gets a soft background + image on the right. */
html.tsp-snr .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-sec{background:var(--tsp-bg-soft);}
html.tsp-snr .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:2;}
/* Senior splits: 2-column checklist + CTA button */
html.tsp-snr .tsp-story-check{grid-template-columns:1fr 1fr;}
.tsp-story-cta{margin-top:24px;}
/* "Who this helps" / "Why families choose" render as flat icon rows. */
html.tsp-snr .tsp-modes-box{background:transparent;border:none;box-shadow:none;overflow:visible;}
html.tsp-snr .tsp-mode-ic svg{width:36px;height:36px;}
/* Hover: lift the icon + colour the title instead of a background tint. */
html.tsp-snr .tsp-mode{transition:transform .2s;}
html.tsp-snr .tsp-mode:hover{background:transparent;transform:translateY(-5px);}
html.tsp-snr .tsp-mode:hover .tsp-mode-ic{color:var(--tsp-gold);}
html.tsp-snr .tsp-mode:hover h4{color:var(--tsp-blue);}
/* Keep long section headings on one line where space allows. */
html.tsp-snr .tsp-sec-head{max-width:900px;}
@media(max-width:992px){
  html.tsp-snr .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:0;}
  html.tsp-snr .tsp-story-check{grid-template-columns:1fr;}
}

/* =========================================================================
   DELIVERY PAGE
   ========================================================================= */
/* Split image on the right; flat icon rows like the senior page. */
html.tsp-dlv .tsp-story-img{order:2;}
html.tsp-dlv .tsp-modes-box{background:transparent;border:none;box-shadow:none;overflow:visible;}
html.tsp-dlv .tsp-mode{transition:transform .2s;}
html.tsp-dlv .tsp-mode:hover{background:#ffffff;transform:translateY(-5px);}
html.tsp-dlv .tsp-mode:hover .tsp-mode-ic{color:var(--tsp-gold);}
html.tsp-dlv .tsp-mode:hover h4{color:var(--tsp-blue);}

/* Delivery webform styled like the booking card. */
html.tsp-dlv .tsp-book-card .webform-flexbox{display:flex;gap:12px;}
html.tsp-dlv .tsp-book-card .webform-flex{flex:1;}
html.tsp-dlv .tsp-book-card .webform-flexbox,
html.tsp-dlv .tsp-book-card > form .form-item,
html.tsp-dlv .tsp-book-card > form .js-form-item{margin-bottom:14px !important;}
html.tsp-dlv .tsp-book-card .webform-flex .js-form-item,
html.tsp-dlv .tsp-book-card .webform-flex .form-item{margin-bottom:0 !important;}
html.tsp-dlv .tsp-book-card label{font-size:.74rem;font-weight:600;color:var(--tsp-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 5px;display:block;}
html.tsp-dlv .tsp-book-card input[type=text],
html.tsp-dlv .tsp-book-card input[type=tel],
html.tsp-dlv .tsp-book-card input[type=email],
html.tsp-dlv .tsp-book-card select,
html.tsp-dlv .tsp-book-card textarea{width:100%;padding:11px 12px;border:1.4px solid var(--tsp-line);border-radius:9px;font-size:.9rem;font-family:inherit;color:var(--tsp-ink);background:#fff;}
html.tsp-dlv .tsp-book-card input:focus,
html.tsp-dlv .tsp-book-card select:focus,
html.tsp-dlv .tsp-book-card textarea:focus{outline:none;border-color:var(--tsp-blue);}
html.tsp-dlv .tsp-book-card .webform-button--submit,
html.tsp-dlv .tsp-book-card .form-actions .form-submit{width:100%;justify-content:center;background:var(--tsp-blue);color:#fff;border:0;border-radius:10px;padding:14px;font-weight:600;font-size:1rem;cursor:pointer;font-family:'Poppins',sans-serif;transition:.2s;}
html.tsp-dlv .tsp-book-card .webform-button--submit:hover,
html.tsp-dlv .tsp-book-card .form-actions .form-submit:hover{background:#1a4f93;}
/* Fix webform flexbox overlap + hide labels (placeholder-driven like booking). */
html.tsp-dlv .tsp-book-card .webform-flexbox{margin:0;display:flex;gap:12px;}
html.tsp-dlv .tsp-book-card .webform-flex{margin:0;padding:0;flex:1 1 0;min-width:0;}
html.tsp-dlv .tsp-book-card .webform-element label,
html.tsp-dlv .tsp-book-card .js-form-item > label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
/* Field icons */
html.tsp-dlv .tsp-book-card input[type=text],
html.tsp-dlv .tsp-book-card input[type=tel],
html.tsp-dlv .tsp-book-card input[type=email],
html.tsp-dlv .tsp-book-card select,
html.tsp-dlv .tsp-book-card textarea{padding-left:38px;background-repeat:no-repeat;background-position:13px center;background-size:16px 16px;}
html.tsp-dlv .tsp-book-card textarea{background-position:13px 13px;}
/* Icons on ::before overlay so Chrome autofill can't hide them (see banner form note). */
html.tsp-dlv .tsp-book-card .js-form-item-name,
html.tsp-dlv .tsp-book-card .js-form-item-phone,
html.tsp-dlv .tsp-book-card .js-form-item-pickup,
html.tsp-dlv .tsp-book-card .js-form-item-dropoff{position:relative;}
html.tsp-dlv .tsp-book-card .js-form-item-name::before,
html.tsp-dlv .tsp-book-card .js-form-item-phone::before,
html.tsp-dlv .tsp-book-card .js-form-item-pickup::before,
html.tsp-dlv .tsp-book-card .js-form-item-dropoff::before{content:"";position:absolute;left:13px;top:0;bottom:0;width:16px;background-repeat:no-repeat;background-position:left center;background-size:16px 16px;pointer-events:none;z-index:2;}
html.tsp-dlv .tsp-book-card .js-form-item-name::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");}
html.tsp-dlv .tsp-book-card .js-form-item-phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
html.tsp-dlv .tsp-book-card .js-form-item-pickup::before,
html.tsp-dlv .tsp-book-card .js-form-item-dropoff::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");}
html.tsp-dlv .tsp-book-card .js-form-item-package-type select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3C/svg%3E");}
html.tsp-dlv .tsp-book-card .js-form-item-preferred-time select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");}
html.tsp-dlv .tsp-book-card .js-form-item-notes textarea{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");}

/* Story feature rows (icon + title + description) */
.tsp-story-feats{display:grid;gap:18px;}
.tsp-story-feat{display:flex;gap:14px;align-items:flex-start;padding-left:0;}
.tsp-story-feat::before{display:none !important;}
.tsp-feat-ic{width:48px;height:48px;border-radius:12px;background:#e6eef9;color:var(--tsp-blue);display:grid;place-items:center;flex:none;}
.tsp-feat-ic svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-story-feat h4{font-size:1rem;font-weight:700;color:var(--tsp-navy);margin:0 0 4px;}
.tsp-story-feat p{color:var(--tsp-muted);font-size:.88rem;line-height:1.6;margin:0;}

/* Delivery services: image cards in a 3-col grid */
html.tsp-dlv .tsp-modes-box{grid-template-columns:repeat(3,1fr) !important;gap:24px;}
html.tsp-dlv .tsp-mode--img{padding:0 0 22px;background:#fff;border:1px solid var(--tsp-line);border-radius:14px 14px 0 0;box-shadow:0 4px 14px rgba(13,44,100,.08);overflow:hidden;transition:transform .2s, box-shadow .2s;}
html.tsp-dlv .tsp-mode--img:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(13,44,100,.16);}
html.tsp-dlv .tsp-mode-photo{height:160px;overflow:hidden;margin-bottom:16px;border-radius:14px 14px 0 0;}
html.tsp-dlv .tsp-mode-photo img{width:100%;height:100%;object-fit:cover;display:block;}
html.tsp-dlv .tsp-mode--img h4,html.tsp-dlv .tsp-mode--img p{padding:0 18px;}

/* Community heading sits on top (white on the navy band/panel). */
.tsp-community .tsp-community-head{margin-bottom:34px;}
.tsp-community .tsp-community-head h2{color:#fff;}
.tsp-community .tsp-community-head p{color:#c3d2ee;}

/* Why-choose: contained navy panel, rectangular image left, points in one column right. */
html.tsp-dlv .tsp-community{background:transparent;padding:100px 0;}
/* Compact navy band: person cutout flush bottom-left, heading on top,
   6 blue-icon tiles in a row (cleared from the person). */
html.tsp-dlv .tsp-community-panel{position:relative;overflow:hidden;min-height:280px;background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));border-radius:18px;padding:30px 46px;box-shadow:0 10px 30px rgba(13,44,100,.18);}
html.tsp-dlv .tsp-community-head{margin:0 0 22px;text-align:center;}
html.tsp-dlv .tsp-community-head p{display:none;}
html.tsp-dlv .tsp-community-grid{display:block;}
/* Delivery person cutout, enlarged (zoomed so the figure fills the box, no
   grey side margins) and flush to the bottom-left corner. */
html.tsp-dlv .tsp-community-img{position:absolute;left:8px;bottom:0;width:300px;aspect-ratio:738/972;margin:0;overflow:hidden;}
html.tsp-dlv .tsp-community-img img{width:100%;height:auto;object-fit:contain;object-position:bottom center;transform-origin:top center;border:none;border-radius:0;display:block;}
html.tsp-dlv .tsp-community-txt{width:100%;}
html.tsp-dlv .tsp-community-points{display:flex;flex-wrap:wrap;gap:0;margin:0;padding-left:320px;}
/* Each point shares the row evenly, so 4, 5 or 6 points fill the space with no
   empty column. */
html.tsp-dlv .tsp-community-points .tsp-cpoint{flex:1 1 0;min-width:150px;}
html.tsp-dlv .tsp-cpoint{flex-direction:column;text-align:center;align-items:stretch;gap:0;padding:0 12px;border-right:1px solid rgba(255,255,255,.16);}
html.tsp-dlv .tsp-cpoint:last-child{border-right:none;}
html.tsp-dlv .tsp-cpoint-ic{width:52px;height:52px;border-radius:50%;margin:0 auto 10px;background:var(--tsp-blue);color:#fff;display:grid;place-items:center;}
html.tsp-dlv .tsp-cpoint-ic svg{width:25px;height:25px;stroke:#fff;}
html.tsp-dlv .tsp-cpoint h4{font-size:.85rem;line-height:1.25;margin:0 0 5px;white-space:normal;}
html.tsp-dlv .tsp-cpoint p{font-size:.74rem;line-height:1.4;margin:0;}
/* Delivery Services section background */
html.tsp-dlv .tsp-modes-sec{background:var(--tsp-bg-soft);}
/* Remove webform flexbox container default margin */
html.tsp-dlv .tsp-book-card .webform-flex--container{margin:0 !important;}
/* Delivery service cards: round the image's top-left & top-right corners. */
html.tsp-dlv .tsp-mode-photo{border-radius:14px 14px 0 0;}
html.tsp-dlv .tsp-mode-photo img{border-radius:14px 14px 0 0;}

/* Delivery cards: icon becomes a circular badge that straddles the bottom edge
   of the image (per the "Delivery Services We Offer" design). The negative top
   margin pulls it up so it sits half on the image, centred, at any image height. */
html.tsp-dlv .tsp-mode--img .tsp-mode-ic{
  width:76px !important;height:76px !important;border-radius:50% !important;
  background:var(--tsp-navy) !important;color:#fff !important;
  display:grid !important;place-items:center !important;
  margin:-54px auto 18px !important;position:relative;z-index:3;
  border:0 !important;box-shadow:0 8px 18px rgba(13,44,100,.30);
}
html.tsp-dlv .tsp-mode--img .tsp-mode-ic svg{
  width:40px !important;height:40px !important;stroke:#fff !important;color:#fff !important;
}
/* Card body spacing + description font size */
html.tsp-dlv .tsp-mode--img h3,
html.tsp-dlv .tsp-mode--img h4{margin:0 0 8px;}
html.tsp-dlv .tsp-mode--img p{font-size:14px;line-height:1.55;}

/* Below ~1100px the delivery-person image crowds the points, so hide it and let
   the points use the full width (they auto-arrange via flex). */
@media(max-width:1100px){
  html.tsp-dlv .tsp-community-img{display:none;}
  html.tsp-dlv .tsp-community-points{padding-left:0;justify-content:center;gap:26px 16px;}
  /* 3 points on the first row, 2 on the second (e.g. iPad / 1024px). */
  html.tsp-dlv .tsp-community-points .tsp-cpoint{flex:1 1 30%;min-width:0;max-width:calc(33.333% - 11px);}
}
@media(max-width:768px){
  /* Mobile: one point per row (stacked). */
  html.tsp-dlv .tsp-community-points .tsp-cpoint{flex:1 1 100%;max-width:none;}
  html.tsp-dlv .tsp-cpoint{border-right:none;}
}
@media(max-width:992px){
  html.tsp-dlv .tsp-story-img{order:0;}
  html.tsp-dlv .tsp-modes-box{grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:600px){
  html.tsp-dlv .tsp-modes-box{grid-template-columns:1fr !important;}
  html.tsp-dlv .tsp-book-card .webform-flexbox{flex-direction:column;gap:0;}
  html.tsp-dlv .tsp-book-card .webform-flex .js-form-item{margin-bottom:14px !important;}
  html.tsp-dlv .tsp-community-points{grid-template-columns:1fr 1fr;}
  html.tsp-dlv .tsp-cpoint{border-right:none;}
}

/* =========================================================================
   BATTERY BOOST PAGE
   ========================================================================= */
/* First two splits image-right; the last (Why Choose) image-left. */
html.tsp-bat .tsp-story-img{order:2;}
html.tsp-bat .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:0;}
/* Common Issues: 3-column cards. */
html.tsp-bat .tsp-modes-box{grid-template-columns:repeat(3,1fr);gap:24px;background:transparent;border:none;box-shadow:none;overflow:visible;}
html.tsp-bat .tsp-mode{background:#fff;border:1px solid var(--tsp-line);border-radius:14px;box-shadow:0 4px 14px rgba(13,44,100,.08);padding:28px 20px;transition:transform .2s, box-shadow .2s;}
html.tsp-bat .tsp-mode:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(13,44,100,.16);background:#fff;}
@media(max-width:992px){
  html.tsp-bat .tsp-modes-box{grid-template-columns:repeat(2,1fr);}
  html.tsp-bat .tsp-story-img,
  html.tsp-bat .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:0;}
}
@media(max-width:600px){html.tsp-bat .tsp-modes-box{grid-template-columns:1fr;}}
/* Section backgrounds: Common Issues + Winter split = soft. */
html.tsp-bat .tsp-modes-sec{background:var(--tsp-bg-soft);}
html.tsp-bat .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-sec{background:var(--tsp-bg-soft);}
html.tsp-bat .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-sec{background:transparent;}
/* All split checklists in two columns (left + right). */
html.tsp-bat .tsp-story-check{grid-template-columns:1fr 1fr;}
@media(max-width:768px){html.tsp-bat .tsp-story-check{grid-template-columns:1fr;}}
/* Split images match the text-content height (no extra/short space). */
html.tsp-bat .tsp-story{align-items:stretch;}
html.tsp-bat .tsp-story-img{position:relative;}
html.tsp-bat .tsp-story-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
@media(max-width:992px){
  html.tsp-bat .tsp-story-img{position:static;min-height:280px;}
  html.tsp-bat .tsp-story-img img{position:static;}
}

/* =========================================================================
   Corporate Taxi Service page (tsp-corp)
   ========================================================================= */
/* Split checklists in two columns; images match the text-content height. */
html.tsp-corp .tsp-story-check{grid-template-columns:1fr 1fr;}
html.tsp-corp .tsp-story{align-items:stretch;}
html.tsp-corp .tsp-story-img{position:relative;}
html.tsp-corp .tsp-story-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* Feature cards (1st modes) = soft bg, 3 cards with navy icon tiles. */
html.tsp-corp .tsp-modes-sec{background:var(--tsp-bg-soft);}
html.tsp-corp .tsp-modes-box{grid-template-columns:repeat(3,1fr);gap:24px;background:transparent;border:none;box-shadow:none;overflow:visible;}
html.tsp-corp .tsp-mode{background:#fff;border:1px solid var(--tsp-line);border-radius:14px;box-shadow:0 4px 14px rgba(13,44,100,.08);padding:28px 22px;transition:transform .2s,box-shadow .2s;}
html.tsp-corp .tsp-mode:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(13,44,100,.16);background:#fff;}
html.tsp-corp .tsp-mode-ic{width:58px;height:58px;border-radius:14px;background:var(--tsp-navy);color:#fff;display:grid;place-items:center;margin:0 auto 16px;}
html.tsp-corp .tsp-mode-ic svg{width:25px;height:25px;}
html.tsp-corp .tsp-mode h4{font-size:1.05rem;}
html.tsp-corp .tsp-mode p{font-size:.88rem;}

/* Who we serve (2nd modes) = gradient bg, compact 6-col, blue icons. */
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-modes-sec{background:linear-gradient(135deg,#e7eefb 0%,#f6f9fe 55%,#e9f1fc 100%);}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-modes-box{grid-template-columns:repeat(6,1fr);gap:0;background:transparent;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode{background:transparent;border:none;border-right:1px solid #d8e2f1;border-radius:0;box-shadow:none;padding:6px 16px;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode:last-child{border-right:none;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode:hover{transform:none;box-shadow:none;background:transparent;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode-ic{width:auto;height:auto;background:transparent;color:var(--tsp-blue);border-radius:0;margin:0 auto 12px;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode-ic svg{width:34px;height:34px;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode h4{font-size:.92rem;}
html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode p{font-size:.78rem;}

/* Corporate airport (2nd story) = navy band, image on the right. */
html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-sec{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));color:#fff;}
html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-lead-h2{color:#fff;}
html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-txt p{color:#c3d2ee;}
html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-check li{color:#dce7f8;}
html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:2;}

/* Process: five steps in one row. */
html.tsp-corp .tsp-steps{grid-template-columns:repeat(5,1fr);gap:24px;}

/* "How Corporate Account Works" = heading | vertical steps | feature box. */
/* "How Corporate Account Works" — eyebrow + heading, a horizontal row of 5
   numbered steps, and a cream feature card on the right. */
.tsp-acct2{display:grid;grid-template-columns:1fr 340px;gap:42px;align-items:center;}
.tsp-acct2-main{min-width:0;}
.tsp-acct2-head{text-align:center;}
.tsp-acct2-head h2{color:#fff;font-size:2rem;font-weight:800;margin:0 0 10px;}
.tsp-acct2-head h2::after{content:"";display:block;width:64px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));margin:16px auto 0;}
.tsp-acct2-head p{color:#c3d2ee;font-size:.98rem;line-height:1.6;max-width:660px;margin:0 auto 36px;}
.tsp-acct2-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;align-items:start;}
.tsp-astep2{position:relative;text-align:center;display:grid;grid-template-rows:auto auto 1fr;}
.tsp-astep2:not(:last-child)::after{content:"";position:absolute;top:27px;left:calc(50% + 34px);right:calc(-50% + 34px);height:2px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.3) 0 6px,transparent 6px 12px);}
.tsp-astep2-badge{position:relative;width:56px;height:56px;margin:0 auto 16px;border-radius:14px;background:linear-gradient(160deg,var(--tsp-blue),#163f80);display:grid;place-items:center;box-shadow:0 8px 20px rgba(0,0,0,.32);z-index:1;}
.tsp-astep2-ic{display:inline-flex;color:#fff;}
.tsp-astep2-ic svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-astep2-num{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:var(--tsp-gold);color:var(--tsp-navy);font-family:'Poppins',sans-serif;font-weight:800;font-size:.72rem;display:grid;place-items:center;border:2px solid #0b1f47;}
.tsp-astep2 h3{color:#fff;font-size:.98rem;font-weight:700;margin:0 0 6px;min-height:2.6em;display:flex;align-items:flex-start;justify-content:center;}
.tsp-astep2 p{color:#aebfdf;font-size:.8rem;line-height:1.5;margin:0;}
/* Right feature card — white. */
.tsp-acct-box{background:#ffffff;border:1px solid #e6edf7;border-radius:18px;padding:28px;box-shadow:0 16px 40px rgba(0,0,0,.28);}
.tsp-acct-box-head{display:flex;align-items:center;gap:12px;margin-bottom:2px;}
.tsp-acct-boxic{flex:none;display:inline-flex;color:var(--tsp-gold);}
.tsp-acct-boxic svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-acct-box h3{color:var(--tsp-navy);font-size:1.2rem;font-weight:800;margin:0 0 2px;}
.tsp-acct-sub{color:var(--tsp-muted);font-size:.85rem;margin-bottom:20px;}
.tsp-acct-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:13px;}
.tsp-acct-list li{display:flex;gap:10px;align-items:center;color:var(--tsp-ink);font-size:.92rem;font-weight:500;}
.tsp-acct-check{flex:none;display:inline-flex;color:var(--tsp-blue);}
.tsp-acct-check svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-acct-cta{width:100%;justify-content:center;}
@media(max-width:992px){
  .tsp-acct2{grid-template-columns:1fr;gap:30px;}
  .tsp-acct2-steps{grid-template-columns:1fr 1fr;gap:26px 14px;}
  .tsp-astep2:not(:last-child)::after{display:none;}
}
@media(max-width:520px){
  .tsp-acct2-steps{grid-template-columns:1fr;}
}

/* Corporate webform styled like the Request a Delivery form. */
html.tsp-corp .tsp-book-card .webform-flexbox{margin:0 0 14px;display:flex;gap:12px;}
html.tsp-corp .tsp-book-card .webform-flex{margin:0;padding:0;flex:1 1 0;min-width:0;}
html.tsp-corp .tsp-book-card .webform-flex--container{margin:0 !important;}
html.tsp-corp .tsp-book-card > form .form-item,
html.tsp-corp .tsp-book-card > form .js-form-item{margin-bottom:14px !important;}
html.tsp-corp .tsp-book-card .webform-flex .js-form-item,
html.tsp-corp .tsp-book-card .webform-flex .form-item{margin-bottom:0 !important;}
html.tsp-corp .tsp-book-card .webform-element label,
html.tsp-corp .tsp-book-card .js-form-item > label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
html.tsp-corp .tsp-book-card input[type=text],
html.tsp-corp .tsp-book-card input[type=tel],
html.tsp-corp .tsp-book-card input[type=email],
html.tsp-corp .tsp-book-card select,
html.tsp-corp .tsp-book-card textarea{width:100%;padding:11px 12px 11px 38px;border:1.4px solid var(--tsp-line);border-radius:9px;font-size:.9rem;font-family:inherit;color:var(--tsp-ink);background-color:#fff;background-repeat:no-repeat;background-position:13px center;background-size:16px 16px;}
html.tsp-corp .tsp-book-card textarea{background-position:13px 13px;}
html.tsp-corp .tsp-book-card input:focus,
html.tsp-corp .tsp-book-card select:focus,
html.tsp-corp .tsp-book-card textarea:focus{outline:none;border-color:var(--tsp-blue);}
html.tsp-corp .tsp-book-card .webform-button--submit,
html.tsp-corp .tsp-book-card .form-actions .form-submit{width:100%;justify-content:center;background:var(--tsp-blue);color:#fff;border:0;border-radius:10px;padding:14px;font-weight:600;font-size:1rem;cursor:pointer;font-family:'Poppins',sans-serif;transition:.2s;}
html.tsp-corp .tsp-book-card .webform-button--submit:hover,
html.tsp-corp .tsp-book-card .form-actions .form-submit:hover{background:#1a4f93;}
/* Field icons (blue, matching the Delivery form). */
/* Icons on ::before overlay so Chrome autofill can't hide them (see banner form note). */
html.tsp-corp .tsp-book-card .js-form-item-company,
html.tsp-corp .tsp-book-card .js-form-item-contact-person,
html.tsp-corp .tsp-book-card .js-form-item-phone,
html.tsp-corp .tsp-book-card .js-form-item-email{position:relative;}
html.tsp-corp .tsp-book-card .js-form-item-company::before,
html.tsp-corp .tsp-book-card .js-form-item-contact-person::before,
html.tsp-corp .tsp-book-card .js-form-item-phone::before,
html.tsp-corp .tsp-book-card .js-form-item-email::before{content:"";position:absolute;left:13px;top:0;bottom:0;width:16px;background-repeat:no-repeat;background-position:left center;background-size:16px 16px;pointer-events:none;z-index:2;}
html.tsp-corp .tsp-book-card .js-form-item-company::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-contact-person::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-email::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 7L2 7'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-employees select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-account-type select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E");}
html.tsp-corp .tsp-book-card .js-form-item-message textarea{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z'/%3E%3C/svg%3E");}
@media(max-width:600px){
  html.tsp-corp .tsp-book-card .webform-flexbox{flex-direction:column;gap:0;}
  html.tsp-corp .tsp-book-card .webform-flex .js-form-item{margin-bottom:14px !important;}
}

@media(max-width:992px){
  html.tsp-corp .tsp-modes-box{grid-template-columns:repeat(2,1fr);}
  html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-modes-box{grid-template-columns:repeat(3,1fr);gap:30px 12px;}
  html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode{border-right:none;}
  html.tsp-corp .tsp-steps{grid-template-columns:repeat(2,1fr);}
  html.tsp-corp .tsp-story-img,
  html.tsp-corp .field__item:has(.tsp-story-sec) ~ .field__item:has(.tsp-story-sec) .tsp-story-img{order:0;position:static;min-height:280px;}
  html.tsp-corp .tsp-story-img img{position:static;}
}
@media(max-width:768px){
  html.tsp-corp .tsp-story-check{grid-template-columns:1fr;}
  html.tsp-corp .field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-modes-box{grid-template-columns:1fr 1fr;}
}
@media(max-width:600px){
  html.tsp-corp .tsp-modes-box{grid-template-columns:1fr;}
  html.tsp-corp .tsp-steps{grid-template-columns:1fr;}
}

/* =========================================================================
   Flat Rate Taxi page (tsp-flat)
   ========================================================================= */
/* Why-choose cards: 4-col cards with navy icon tiles. */
html.tsp-flat .tsp-modes-sec{background:var(--tsp-bg-soft);}
html.tsp-flat .tsp-modes-box{grid-template-columns:repeat(4,1fr);gap:24px;background:transparent;border:none;box-shadow:none;overflow:visible;}
html.tsp-flat .tsp-mode{background:#fff;border:1px solid var(--tsp-line);border-radius:14px;box-shadow:0 4px 14px rgba(13,44,100,.08);padding:28px 22px;transition:transform .2s,box-shadow .2s;}
html.tsp-flat .tsp-mode:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(13,44,100,.16);background:#fff;}
html.tsp-flat .tsp-mode-ic{width:72px;height:72px;border-radius:50%;background:var(--tsp-navy);color:#fff;display:grid;place-items:center;margin:0 auto 16px;}
html.tsp-flat .tsp-mode-ic svg{width:40px;height:40px;}
html.tsp-flat .tsp-mode h4{font-size:1.02rem;}
html.tsp-flat .tsp-mode p{font-size:.86rem;}
@media(max-width:1100px){html.tsp-flat .tsp-modes-box{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){html.tsp-flat .tsp-modes-box{grid-template-columns:1fr;}}

/* Popular fare price cards. */
.tsp-pricecards{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;align-items:stretch;}
.tsp-pricecard{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:28px 20px;box-shadow:0 4px 14px rgba(13,44,100,.08);transition:transform .2s,box-shadow .2s;height:100%;}
.tsp-pricecard:hover{transform:translateY(-5px);box-shadow:0 10px 30px rgba(13,44,100,.10);}
.tsp-pricecard-ic{color:var(--tsp-blue);margin:0 auto 14px;display:flex;align-items:center;justify-content:center;width:100%;}
.tsp-pricecard-ic svg{width:42px;height:42px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.tsp-pricecard-ic img{width:42px;height:42px;object-fit:contain;display:block;}
.tsp-pricecard h4{font-size:1.05rem;margin:0 0 10px;color:var(--tsp-navy);}
.tsp-pricecard-from{display:block;color:var(--tsp-muted);font-size:.78rem;margin-bottom:2px;}
.tsp-pricecard-price{font-family:'Poppins',sans-serif;font-weight:800;color:var(--tsp-blue);font-size:1.7rem;line-height:1;margin-bottom:24px;}
.tsp-pricecard-cta{width:100%;justify-content:center;margin-top:auto;}
@media(max-width:1100px){.tsp-pricecards{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.tsp-pricecards{grid-template-columns:1fr;}}

/* Fare price tables. */
.tsp-fare-tables{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.tsp-fare-table{background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);overflow:hidden;box-shadow:0 4px 14px rgba(13,44,100,.08);}
.tsp-fare-table table{width:100%;border-collapse:collapse;}
.tsp-fare-table th{background:var(--tsp-navy);color:#fff;text-align:left;padding:13px 16px;font-family:'Poppins',sans-serif;font-size:.82rem;letter-spacing:.02em;}
.tsp-fare-table th:last-child{text-align:right;}
.tsp-fare-table td{padding:12px 16px;border-top:1px solid var(--tsp-line);font-size:.88rem;color:var(--tsp-ink);}
.tsp-fare-table td:last-child{text-align:right;font-weight:700;color:var(--tsp-blue);font-family:'Poppins',sans-serif;}
.tsp-fare-table tbody tr:nth-child(even){background:var(--tsp-bg-soft);}
.tsp-fare-note{text-align:center;color:var(--tsp-muted);font-size:.84rem;margin-top:22px;display:flex;align-items:center;justify-content:center;gap:7px;}
.tsp-fare-note svg{width:25px;height:25px;fill:none;stroke:var(--tsp-blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;}
@media(max-width:992px){.tsp-fare-tables{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.tsp-fare-tables{grid-template-columns:1fr;}}

/* Quote webform styled like the Request a Delivery form. */
html.tsp-flat .tsp-book-card .webform-flexbox{margin:0 0 14px;display:flex;gap:12px;}
html.tsp-flat .tsp-book-card .webform-flex{margin:0;padding:0;flex:1 1 0;min-width:0;}
html.tsp-flat .tsp-book-card .webform-flex--container{margin:0 !important;}
html.tsp-flat .tsp-book-card > form .form-item,
html.tsp-flat .tsp-book-card > form .js-form-item{margin-bottom:14px !important;}
html.tsp-flat .tsp-book-card .webform-flex .js-form-item,
html.tsp-flat .tsp-book-card .webform-flex .form-item{margin-bottom:0 !important;}
html.tsp-flat .tsp-book-card .webform-element label,
html.tsp-flat .tsp-book-card .js-form-item > label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
html.tsp-flat .tsp-book-card input[type=text],
html.tsp-flat .tsp-book-card input[type=tel],
html.tsp-flat .tsp-book-card select{width:100%;padding:11px 12px 11px 38px;border:1.4px solid var(--tsp-line);border-radius:9px;font-size:.9rem;font-family:inherit;color:var(--tsp-ink);background-color:#fff;background-repeat:no-repeat;background-position:13px center;background-size:16px 16px;}
html.tsp-flat .tsp-book-card input:focus,
html.tsp-flat .tsp-book-card select:focus{outline:none;border-color:var(--tsp-blue);}
html.tsp-flat .tsp-book-card .webform-button--submit,
html.tsp-flat .tsp-book-card .form-actions .form-submit{width:100%;justify-content:center;background:var(--tsp-blue);color:#fff;border:0;border-radius:10px;padding:14px;font-weight:600;font-size:1rem;cursor:pointer;font-family:'Poppins',sans-serif;transition:.2s;}
html.tsp-flat .tsp-book-card .webform-button--submit:hover,
html.tsp-flat .tsp-book-card .form-actions .form-submit:hover{background:#1a4f93;}
/* Icons on ::before overlay so Chrome autofill can't hide them (see banner form note). */
html.tsp-flat .tsp-book-card .js-form-item-name,
html.tsp-flat .tsp-book-card .js-form-item-phone,
html.tsp-flat .tsp-book-card .js-form-item-pickup,
html.tsp-flat .tsp-book-card .js-form-item-dropoff{position:relative;}
html.tsp-flat .tsp-book-card .js-form-item-name::before,
html.tsp-flat .tsp-book-card .js-form-item-phone::before,
html.tsp-flat .tsp-book-card .js-form-item-pickup::before,
html.tsp-flat .tsp-book-card .js-form-item-dropoff::before{content:"";position:absolute;left:13px;top:0;bottom:0;width:16px;background-repeat:no-repeat;background-position:left center;background-size:16px 16px;pointer-events:none;z-index:2;}
html.tsp-flat .tsp-book-card .js-form-item-name::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");}
html.tsp-flat .tsp-book-card .js-form-item-phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");}
html.tsp-flat .tsp-book-card .js-form-item-passengers select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");}
html.tsp-flat .tsp-book-card .js-form-item-pickup::before,
html.tsp-flat .tsp-book-card .js-form-item-dropoff::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f5fb0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");}
@media(max-width:600px){
  html.tsp-flat .tsp-book-card .webform-flexbox{flex-direction:column;gap:0;}
  html.tsp-flat .tsp-book-card .webform-flex .js-form-item{margin-bottom:14px !important;}
}

/* =========================================================================
   Service Area content type pages (tsp-areapage)
   ========================================================================= */
/* Split: text left, image right, two-column checklist. */
html.tsp-areapage .tsp-story-check{grid-template-columns:1fr 1fr;}
html.tsp-areapage .tsp-story-img{order:2;}

/* Trio columns. */
html.tsp-areapage .tsp-trio-sec{background:var(--tsp-bg-soft);}
html.tsp-areapage .tsp-trio{display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px;align-items:stretch;}
html.tsp-areapage .tsp-trio-col{background:#fff;border:1px solid var(--tsp-line);border-radius:var(--tsp-radius);padding:28px 24px;box-shadow:0 4px 14px rgba(13,44,100,.08);display:flex;flex-direction:column;}
html.tsp-areapage .tsp-trio-col h3{font-size:20px !important;font-weight:700 !important;margin:0 0 18px;color:var(--tsp-navy);}
html.tsp-areapage .tsp-trio-col--navy{background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));color:#fff;border:0;}
html.tsp-areapage .tsp-trio-col--navy h3{color:#fff;}
html.tsp-areapage .tsp-trio-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
html.tsp-areapage .tsp-trio-list li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--tsp-ink);}
html.tsp-areapage .tsp-trio-i{flex:none;display:inline-flex;color:var(--tsp-blue);margin-top:2px;}
html.tsp-areapage .tsp-trio-i svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
/* "Why Travelers Choose Us" (checks list) icons only: smaller 20px. */
html.tsp-areapage .tsp-trio-list--checks .tsp-trio-i svg{width:25px;height:25px;stroke:none;}
html.tsp-areapage .tsp-trio-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--tsp-line);color:var(--tsp-muted);font-size:.84rem;}
html.tsp-areapage .tsp-trio-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
html.tsp-areapage .tsp-trio-links a{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.14);color:#fff;transition:.2s;}
html.tsp-areapage .tsp-trio-links li:last-child a{border-bottom:0;}
html.tsp-areapage .tsp-trio-lic{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;color:var(--tsp-gold);flex:none;}
html.tsp-areapage .tsp-trio-lic svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
html.tsp-areapage .tsp-trio-tx{flex:1;}
html.tsp-areapage .tsp-trio-tx b{display:block;font-size:.92rem;}
html.tsp-areapage .tsp-trio-tx small{color:#bcccea;font-size:.76rem;}
html.tsp-areapage .tsp-trio-chev{color:var(--tsp-gold);display:inline-flex;flex:none;}
html.tsp-areapage .tsp-trio-chev svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
html.tsp-areapage .tsp-trio-links a:hover .tsp-trio-tx b{color:var(--tsp-gold);}

/* Nearby community pill tags. */
html.tsp-areapage .tsp-commtags{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
html.tsp-areapage .tsp-commtags a,
html.tsp-areapage .tsp-commtags .tsp-commtag{display:inline-flex;flex-direction:column;align-items:center;text-align:center;gap:8px;background:#fff;border:1px solid var(--tsp-line);border-radius:14px;padding:16px 20px;font-family:'Poppins',sans-serif;font-weight:600;font-size:.85rem;color:var(--tsp-navy);box-shadow:0 4px 14px rgba(13,44,100,.08);transition:.2s;text-decoration:none;}
html.tsp-areapage .tsp-commtags a.tsp-commtag,
html.tsp-areapage .tsp-commtags .tsp-commtag{cursor:pointer;}
html.tsp-areapage .tsp-commtags .tsp-commtag:hover{background:var(--tsp-blue);color:#fff;border-color:var(--tsp-blue);transform:translateY(-2px);}
html.tsp-areapage .tsp-commtag-i{display:inline-flex;}
html.tsp-areapage .tsp-commtag-i svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
html.tsp-areapage .tsp-commtags .tsp-commtag:hover .tsp-commtag-i{color:#fff;}
html.tsp-areapage .tsp-areatags-cta{text-align:center;margin-top:30px;}

/* Map section on a soft background to match the mockup. */
html.tsp-areapage .tsp-mapsec-wrap{background:var(--tsp-bg-soft);}

@media(max-width:992px){
  html.tsp-areapage .tsp-trio{grid-template-columns:1fr;}
  html.tsp-areapage .tsp-story-img{order:0;}
}
@media(max-width:768px){
  html.tsp-areapage .tsp-story-check{grid-template-columns:1fr;}
}

/* =========================================================================
   "How It Works" step-by-step process — applied to every process section
   (Airport, Senior, Battery Boost, Flat Rate). Navy theme band, white icon
   circles with blue icons, big light numbers, curved gold connector arrows.
   ========================================================================= */
/* Spec orange accent. */
.tsp-process-sec{--tsp-proc-orange:#d99047;}
/* Light beige reference band (corporate "account" layout keeps its navy band). */
/* Theme navy/blue band. */
.tsp-process-sec:not(.tsp-acct-sec){background:linear-gradient(160deg, rgb(26 62 126 / 82%), rgb(5 16 40 / 32%)), url(/themes/custom/wcsb/images/process-background.png);background-size:cover;background-position:center;background-repeat:no-repeat;color:#fff;}
/* Eyebrow removed. Heading white on the navy band, standard size like other sections. */
.tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head{color:#c3d2ee;}
.tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head h2{color:#fff;}
.tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head p{color:#c3d2ee;}
.tsp-steps{grid-template-columns:repeat(4,1fr);gap:20px;align-items:start;position:relative;margin-top:18px;}
.tsp-process-sec .tsp-step{position:relative;background:transparent;box-shadow:none;border-radius:0;padding:0;text-align:center;overflow:visible;}
.tsp-process-sec .tsp-step:hover{transform:none;box-shadow:none;}
/* Circle: solid white circle (no ring), orange icon centered, soft shadow. */
.tsp-process-sec .tsp-step-tile{
  width:152px;height:152px;border-radius:50%;background:#fff;border:none;
  display:grid;place-items:center;margin:0 auto;
  position:relative;z-index:2;transition:transform .25s ease;
  box-shadow:0 20px 45px rgba(80,60,30,.13);
}
.tsp-process-sec .tsp-step-tile::before{display:none;}
.tsp-process-sec .tsp-step:hover .tsp-step-tile{transform:translateY(-5px);}
.tsp-process-sec .tsp-step-tile svg{width:60px;height:60px;fill:none;stroke:var(--tsp-blue);stroke-width:1.8;}
/* The white process circle inherits color:#fff, which makes an uploaded solid
   (.tsp-upicon--fill) icon paint white-on-white and disappear. Force the icon
   colour to brand blue so currentColor-based fill/line uploads render, matching
   the stroked fallback icons. */
.tsp-process-sec .tsp-step-tile{color:var(--tsp-blue);}
.tsp-process-sec .tsp-step-tile svg.tsp-upicon--fill,
.tsp-process-sec .tsp-step-tile svg.tsp-upicon--fill *{fill:var(--tsp-blue) !important;stroke:none !important;}
.tsp-process-sec .tsp-step-tile svg.tsp-upicon--line,
.tsp-process-sec .tsp-step-tile svg.tsp-upicon--line *{stroke:var(--tsp-blue) !important;fill:none !important;}
.tsp-process-sec .tsp-step .tsp-step-tile::after{display:none !important;}
/* Connector to the next circle uses the supplied arrow images, alternating:
   ODD steps  -> arrow-img1.png (arc ABOVE the circles, over the top);
   EVEN steps -> arrow-img.png  (arc BELOW the circles, under).
   Files live in themes/custom/wcsb/images/. */
.tsp-steps .tsp-step::after{
  content:"";position:absolute;left:calc(44% - 80px);width:236px;
  top:-40px;height:118px;z-index:1;pointer-events:none;
  background-repeat:no-repeat;background-position:center bottom;background-size:contain;
  background-image:url("/themes/custom/wcsb/images/arrow-img1.png");
}
.tsp-steps .tsp-step:nth-of-type(even)::after{
  top:74px;background-position:center top;
  background-image:url("/themes/custom/wcsb/images/arrow-img.png");
}
/* Keep step number, title and text above the connector image (no overlap). */
.tsp-process-sec .tsp-step-no,
.tsp-process-sec .tsp-step h4,
.tsp-process-sec .tsp-step p{position:relative;z-index:2;}
/* Big faded number below the circle (light peach, recedes behind the caption). */
.tsp-process-sec .tsp-step-no{
  position:relative;z-index:2;display:block;margin:35px 0 14px;text-align:center;
  font-family:'Poppins',sans-serif;font-weight:800;font-size:2.4rem;line-height:1;color:rgba(255,255,255,.30);
}
/* Caption is the prominent element (light text on the navy band). */
.tsp-process-sec:not(.tsp-acct-sec) .tsp-step h4{color:#fff;font-size:1.12rem;font-weight:700;margin:0 0 7px;text-align:center;}
.tsp-process-sec:not(.tsp-acct-sec) .tsp-step p{color:#cdd9ef;font-size:.97rem;line-height:1.6;max-width:230px;margin:0 auto;text-align:center;}
/* Tablet/desktop-narrow: keep all four steps in ONE clean row by shrinking
   the circles (instead of dropping to two oversized circles). */
@media(max-width:1200px){
  .tsp-process-sec .tsp-step-tile{width:124px;height:124px;}
  .tsp-process-sec .tsp-step-tile svg{width:44px;height:44px;}
}
@media(max-width:992px){
  .tsp-steps{grid-template-columns:repeat(4,1fr);gap:20px 10px;}
  .tsp-steps .tsp-step::after{display:none !important;}
  .tsp-process-sec .tsp-step-tile{width:84px;height:84px;box-shadow:0 12px 26px rgba(80,60,30,.13);}
  .tsp-process-sec .tsp-step-tile svg{width:32px;height:32px;}
  .tsp-process-sec .tsp-step-no{font-size:1.7rem;margin:16px 0 4px;}
  .tsp-process-sec .tsp-step h4{font-size:1rem;}
  .tsp-process-sec .tsp-step p{font-size:.86rem;max-width:none;}
  .tsp-process-sec .tsp-sec-head h2{font-size:2rem;}
}
/* Phones: two clean columns. */
@media(max-width:600px){
  .tsp-steps{grid-template-columns:1fr 1fr;gap:28px 12px;}
  .tsp-process-sec .tsp-step-tile{width:94px;height:94px;}
  .tsp-process-sec .tsp-step-tile svg{width:34px;height:34px;}
  .tsp-process-sec .tsp-step-no{font-size:1.8rem;margin:14px 0 4px;}
}
@media(max-width:360px){
  .tsp-steps{gap:22px 8px;}
  .tsp-process-sec .tsp-step-tile{width:84px;height:84px;}
}

/* Auto-load loader */
.tsp-blog-loader{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:34px 0 0;color:var(--tsp-muted);font-weight:600;font-size:.95rem;
}
.tsp-blog-spinner{
  width:20px;height:20px;border-radius:50%;
  border:3px solid var(--tsp-line);border-top-color:var(--tsp-blue);
  animation:tsp-spin .7s linear infinite;
}
@keyframes tsp-spin{to{transform:rotate(360deg);}}
.tsp-blog-sentinel{height:1px;width:100%;}

/* =========================================================================
   AUTHORITATIVE MOBILE PASS — keep this LAST in the file.
   Goals: (a) one consistent vertical rhythm between all sections (no section
   keeps the desktop 100px on phones, none collapses to 0); (b) a single
   heading hierarchy (hero H1 > section H2 = lead H2) so every section title
   is the same size; (c) readable, not oversized, type on phones; (d) the
   mobile menu's submenus are collapsed by default (tap to expand).
   ========================================================================= */

/* ---- Mobile menu: collapsible service submenu (accordion) ---- */
@media(max-width:1024px){
  .tsp-menu li.dropdown > .megaMenuContainer{
    max-height:0;overflow:hidden;transition:max-height .28s ease;
  }
  .tsp-menu li.dropdown.open > .megaMenuContainer{max-height:660px;}
  /* show the caret again so it's clearly expandable, and flip it when open */
  .tsp-menu li.dropdown > a::after{display:inline-block !important;}
  .tsp-menu li.dropdown.open > a::after{transform:rotate(180deg);border-top-color:var(--tsp-blue);}
}

/* ---- Consistent section spacing + heading hierarchy ---- */
@media(max-width:768px){
  .tsp-sec,.tsp-faq,.tsp-mapsec-wrap,.tsp-testimonials,
  .tsp-why,.tsp-community,.tsp-stats,.tsp-services{
    padding-top:56px !important;padding-bottom:56px !important;
  }
  .tsp-flush-top{padding-top:56px !important;}
  .tsp.tsp-need .tsp-wrap{padding-top:64px;padding-bottom:64px;}
  .tsp-hero h1{font-size:1.95rem;line-height:1.25;}
  .tsp .tsp-sec-head h2,
  .tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head h2,
  .tsp-faq h2,.tsp .tsp-lead-h2{font-size:1.6rem !important;line-height:1.3;}
  .tsp .tsp-sec-head{margin-bottom:30px;}
}
@media(max-width:560px){
  .tsp-sec,.tsp-faq,.tsp-mapsec-wrap,.tsp-testimonials,
  .tsp-why,.tsp-community,.tsp-stats,.tsp-services{
    padding-top:46px !important;padding-bottom:46px !important;
  }
  .tsp-flush-top{padding-top:46px !important;}
  .tsp.tsp-need .tsp-wrap{padding-top:52px;padding-bottom:52px;}
  .tsp-hero h1{font-size:1.8rem;}
  .tsp .tsp-sec-head h2,
  .tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head h2,
  .tsp-faq h2,.tsp .tsp-lead-h2{font-size:1.45rem !important;}
  .tsp .tsp-sec-head{margin-bottom:24px;}
  .tsp .tsp-sec-head p{font-size:.92rem;}
}
@media(max-width:380px){
  .tsp-sec,.tsp-faq,.tsp-mapsec-wrap,.tsp-testimonials,
  .tsp-why,.tsp-community,.tsp-stats,.tsp-services{
    padding-top:38px !important;padding-bottom:38px !important;
  }
  .tsp-flush-top{padding-top:38px !important;}
  .tsp .tsp-wrap{padding-left:16px;padding-right:16px;}
  .tsp-hero h1{font-size:1.65rem;}
  .tsp .tsp-sec-head h2,
  .tsp-process-sec:not(.tsp-acct-sec) .tsp-sec-head h2,
  .tsp-faq h2,.tsp .tsp-lead-h2{font-size:1.35rem !important;}
}

/* =========================================================================
   About page — "Community Focused Transportation" matches the airport
   "Local Knowledge. Better Rides." panel EXACTLY: white section, navy rounded
   panel, heading + intro on the LEFT, icon tiles on the RIGHT. No image.
   ========================================================================= */
html.tsp-about-page .tsp-community{background:#fff;color:var(--tsp-ink);}
html.tsp-about-page .tsp-community-panel{
  background:linear-gradient(160deg,var(--tsp-navy),var(--tsp-navy-2));
  color:#fff;border-radius:18px;padding:42px 46px;
  box-shadow:0 10px 30px rgba(13,44,100,.18);
  display:grid;grid-template-columns:.9fr 1.6fr;gap:46px;align-items:center;
}
/* No image in this section. */
html.tsp-about-page .tsp-community-img{display:none !important;}
/* Heading + intro on the left, like localk. */
html.tsp-about-page .tsp-community-head{text-align:left;margin:0;max-width:none;}
html.tsp-about-page .tsp-community-head h2{
  color:#fff;font-size:1.6rem;font-weight:800;position:relative;
  display:inline-block;padding-bottom:14px;margin:0 0 14px;
}
html.tsp-about-page .tsp-community-head h2::after{
  content:"";position:absolute;left:0;bottom:0;transform:none;
  width:54px;height:4px;border-radius:4px;
  background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));
}
html.tsp-about-page .tsp-community-head p{color:#c3d2ee;font-size:.9rem;margin:0;}
/* Right column: the points as Local-Knowledge tiles in one row. */
html.tsp-about-page .tsp-community-grid{display:block;}
html.tsp-about-page .tsp-community-txt{width:100%;}
html.tsp-about-page .tsp-community-points{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;
}
html.tsp-about-page .tsp-cpoint{
  display:block;text-align:center;padding:0 18px;
  border-right:1px solid rgba(255,255,255,.16);
}
html.tsp-about-page .tsp-cpoint:last-child{border-right:none;}
html.tsp-about-page .tsp-cpoint-ic{
  width:58px;height:58px;border-radius:14px;margin:0 auto 12px;flex:none;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff;
  display:grid;place-items:center;
}
html.tsp-about-page .tsp-cpoint-ic svg{width:25px;height:25px;}
html.tsp-about-page .tsp-cpoint-ic img{width:25px;height:25px;}
html.tsp-about-page .tsp-cpoint h4{color:#fff;font-size:.92rem;margin:0 0 4px;}
html.tsp-about-page .tsp-cpoint p{color:#bcccea;font-size:.78rem;margin:0;}
@media(max-width:768px){
  html.tsp-about-page .tsp-community-panel{grid-template-columns:1fr;gap:24px;}
  html.tsp-about-page .tsp-community-points{grid-template-columns:1fr 1fr;gap:26px 0;}
}
@media(max-width:560px){
  html.tsp-about-page .tsp-community-points{grid-template-columns:1fr;gap:24px;}
  html.tsp-about-page .tsp-cpoint{border-right:none;}
}

/* =========================================================================
   Unify "modes" feature sections on Corporate, Battery and Senior with the
   About "Transportation for Every Need" look: ONE bordered white box, 6
   columns split by vertical dividers, plain blue inline icons, NO bg tint.
   (Delivery is intentionally excluded — it keeps its own image cards.)
   ========================================================================= */
html.tsp-corp .tsp-modes-sec,
html.tsp-bat .tsp-modes-sec,
html.tsp-snr .tsp-modes-sec{background:transparent !important;}
html.tsp-corp .tsp-modes-box,
html.tsp-bat .tsp-modes-box,
html.tsp-snr .tsp-modes-box{
  grid-template-columns:repeat(6,1fr) !important;gap:0 !important;
  background:#fff !important;border:1px solid var(--tsp-line) !important;border-radius:18px !important;
  box-shadow:0 4px 14px rgba(13,44,100,.08) !important;overflow:hidden !important;
}
html.tsp-corp .tsp-mode,
html.tsp-bat .tsp-mode,
html.tsp-snr .tsp-mode{
  background:transparent !important;border:0 !important;border-right:1px solid var(--tsp-line) !important;
  border-radius:0 !important;box-shadow:none !important;padding:30px 16px !important;
}
html.tsp-corp .tsp-mode:last-child,
html.tsp-bat .tsp-mode:last-child,
html.tsp-snr .tsp-mode:last-child{border-right:0 !important;}
html.tsp-corp .tsp-mode:hover,
html.tsp-bat .tsp-mode:hover,
html.tsp-snr .tsp-mode:hover{background:var(--tsp-bg-soft) !important;transform:none !important;box-shadow:none !important;}
html.tsp-corp .tsp-mode-ic,
html.tsp-bat .tsp-mode-ic,
html.tsp-snr .tsp-mode-ic{
  width:auto !important;height:auto !important;background:transparent !important;color:var(--tsp-blue) !important;
  border-radius:0 !important;margin:0 auto 14px !important;display:flex !important;justify-content:center !important;
}
html.tsp-corp .tsp-mode-ic svg,
html.tsp-bat .tsp-mode-ic svg,
html.tsp-snr .tsp-mode-ic svg,
html.tsp-about-page .tsp-mode-ic svg{width:40px !important;height:40px !important;}
html.tsp-corp .tsp-mode h4,html.tsp-bat .tsp-mode h4,html.tsp-snr .tsp-mode h4{font-size:.95rem !important;}
html.tsp-corp .tsp-mode p,html.tsp-bat .tsp-mode p,html.tsp-snr .tsp-mode p{font-size:14px !important;}
@media(max-width:992px){
  html.tsp-corp .tsp-modes-box,html.tsp-bat .tsp-modes-box,html.tsp-snr .tsp-modes-box{grid-template-columns:repeat(3,1fr) !important;}
  /* On mobile the points wrap into rows, so the vertical right-borders alone
     leave no separator between rows — add a horizontal divider too. The card's
     overflow:hidden clips the outer/last-row borders, keeping a clean grid. */
  html.tsp-corp .tsp-mode,html.tsp-bat .tsp-mode,html.tsp-snr .tsp-mode{border-bottom:1px solid var(--tsp-line) !important;}
}
@media(max-width:768px){
  html.tsp-corp .tsp-modes-box,html.tsp-bat .tsp-modes-box,html.tsp-snr .tsp-modes-box{grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:480px){
  html.tsp-corp .tsp-modes-box,html.tsp-bat .tsp-modes-box,html.tsp-snr .tsp-modes-box{grid-template-columns:1fr !important;}
}

/* =========================================================================
   Delivery "Delivery Services We Offer": original image cards (photo + icon +
   title + text), 3 per row, with the last incomplete row CENTRED
   (5 = 3 + 2 centred, 6 = 3 + 3).
   ========================================================================= */
html.tsp-dlv .tsp-modes-box{
  display:flex !important;flex-wrap:wrap !important;justify-content:center !important;
  gap:24px !important;background:transparent !important;border:0 !important;
  box-shadow:none !important;border-radius:0 !important;overflow:visible !important;
}
html.tsp-dlv .tsp-mode--img,html.tsp-dlv .tsp-mode{
  flex:0 0 calc(33.333% - 16px) !important;max-width:calc(33.333% - 16px) !important;
}
@media(max-width:992px){
  html.tsp-dlv .tsp-mode--img,html.tsp-dlv .tsp-mode{flex:0 0 calc(50% - 12px) !important;max-width:calc(50% - 12px) !important;}
}
@media(max-width:600px){
  html.tsp-dlv .tsp-mode--img,html.tsp-dlv .tsp-mode{flex:0 0 100% !important;max-width:100% !important;}
}

/* =========================================================================
   HOME-PAGE CHANGES (md list) — applied globally where the component appears.
   ========================================================================= */

/* #2 Header: larger logo */
.tsp-brand img{height:80px;}
@media(max-width:560px){.tsp-brand img{height:64px;}}

/* #6 Trust stats bar: no circle background, ~45px icon box with a 1px border */
.tsp-stat-ic{width:auto;height:auto;border:0;background:transparent;border-radius:0;}
.tsp-stat-ic svg{width:45px;height:45px;stroke-width:1;}
.tsp-stat-ic img{width:45px;height:45px;}

/* #7 "We Serve" section: drop the outer blue box border; make the inner
   cards' borders blue instead. */
.tsp-areas-box{border:0;box-shadow:none;padding:0;border-radius:0;}
.tsp-areas .tsp-area{border:1.5px solid var(--tsp-blue);}
.tsp-areas .tsp-area-cta{border:1.5px solid var(--tsp-blue);}

/* #8 "We Serve" icons were too small — enlarge the badge and the glyph. */
.tsp-areas .tsp-area-ic{width:54px;height:54px;}
.tsp-areas .tsp-area-ic svg{width:35px;height:35px;}
.tsp-areas .tsp-area-ic img{width:26px;height:26px;}
.tsp-areas .tsp-area-cta .tsp-area-ic{width:60px;height:60px;background:none;color:var(--tsp-blue);}
/* "Don't see your destination?" icon is a FILL-based uploaded SVG; the base
   rule forces fill:none (invisible). Give it an explicit visible colour. */
.tsp-areas .tsp-area-cta .tsp-area-ic svg{width:60px;height:60px;fill:var(--tsp-blue) !important;stroke:none !important;}
.tsp-areas .tsp-area-cta .tsp-area-ic svg path,
.tsp-areas .tsp-area-cta .tsp-area-ic svg g{fill:var(--tsp-blue) !important;}

/* #12 "Why Choose Us": white icon badges, larger box + glyph. */
.tsp-why-item .tsp-ic{width:74px;height:74px;background:#fff;border-color:#fff;color:var(--tsp-blue);}
.tsp-why-item .tsp-ic svg{width:45px;height:45px;}
.tsp-why-item .tsp-ic img{width:32px;height:32px;}
/* #13 "Why Choose Us": looser line-height on the point headings. */
.tsp-why-item h4,.tsp-why-item h3{line-height:1.4;}

/* #20 Heading structure: section headings were retagged to match the correct
   hierarchy (booking form -> h2, Why-Choose items -> h3, FAQ question wrapped
   in h3, contact card -> h2). Preserve the original visual styling. */
.tsp-book-head h2{color:var(--tsp-navy);font-size:1.3rem;font-weight:700;margin:0;}
.tsp-why-item h3{color:#fff;font-size:1rem;font-weight:700;margin:0 0 8px;}
.tsp-contact-card h2{color:#fff;font-size:1.3rem;margin:0;font-weight:800;}
.tsp-faq-item summary h3{flex:1;margin:0;padding:0;font-family:'Poppins',sans-serif;font-weight:500;font-size:.95rem;color:inherit;line-height:1.4;}
/* Service cards: title retagged h4 -> h3 (keep the card-title look). */
.tsp-services-auto .sherwoodService-des h3{font-size:1.2rem;font-weight:700;line-height:1.3;margin:0 0 10px;}
.tsp-services-auto .sherwoodService-des h3 a{color:var(--tsp-navy);text-decoration:none;transition:color .2s;}
.tsp-services-auto .sherwoodService-des h3 a:hover{color:var(--tsp-blue);}

/* #16/#17 Map section buttons: bigger button icons; keep the Google logo
   in its brand colours (don't tint it). */
.tsp-contact-acts .tsp-btn .tsp-i{width:30px;height:30px;}
.tsp-contact-acts .tsp-btn .tsp-i-google svg{width:100%;height:100%;}

/* #19 Footer credit: tighter gap to the WebCube logo + a larger logo. */
.tsp-foot-credit{gap:8px;}
.tsp-credit-logo img{height:46px;}

/* #11 "Sherwood Park Taxi Services" cards: the legacy 25px image radius made
   the image corners round (white card corners + rounded bottom). Square them so
   the photo fills the card top cleanly (the card itself keeps its rounding). */
.tsp-services-auto .sherwoodService-item img,
html.tsp-front .tsp-services-page .sherwoodService-item img,
html.tsp-front .tsp-blog .sherwoodService-item img{border-radius:0 !important;}

/* Remove the legacy 25px image curve site-wide. The old theme's
   `article img{border-radius:25px}` rounded EVERY node photo (about, service,
   article, etc.) — including future pages. Flatten the <img> itself; redesign
   sections that look rounded do so via their container (overflow:hidden), so
   their intended rounding is preserved. */
html article img,html .gallery-image img{border-radius:0;}

/* #5 Booking form: make the Date/Time row sit flush with the full-width
   "Select Car Type" field. The legacy inner flex centred two fixed-width
   children, leaving a 12px gap at each outer edge — force them to grow and
   fill the full width instead. */
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr{display:grid !important;grid-template-columns:1fr 1fr !important;grid-template-rows:auto !important;gap:12px !important;padding:0 !important;margin:0 !important;}
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > .bnr-form-subgrup{width:auto !important;max-width:none !important;min-width:0 !important;padding:0 !important;margin:0 !important;}
/* Force Date + Time onto ONE row (they were landing in different rows, leaving
   an empty top cell / white space). */
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > .bnr-form-subgrup:nth-of-type(1){grid-column:1 !important;grid-row:1 !important;}
.tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > .bnr-form-subgrup:nth-of-type(2){grid-column:2 !important;grid-row:1 !important;}
.tsp-book-card .form-item-time input,.tsp-book-card .form-item-date input{width:100% !important;text-align:left !important;}
/* Mobile: put the date/time pair on separate rows (the rule above makes them a
   2-column grid). Placed after it so it wins. */
@media(max-width:768px){
  .tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr{grid-template-columns:1fr !important;}
  .tsp-book-card .bnr-form-grup:has(.form-item-time) > .bnr-form-grup-innr > .bnr-form-subgrup:nth-of-type(2){grid-column:1 !important;grid-row:2 !important;}
}

/* #4 /why-taxi-sherwood-park: the legacy "sherwood-grd" card list rendered the
   title LAST (a blue bar stuck at the bottom) in a block-flow <ul>, giving
   uneven, awkward cards. Lay the cards out as an even responsive grid with the
   title at the top. Scoped to the page + the specific list (the .ulc class is
   shared with the main menu). */
/* Legacy / non-redesigned pages (e.g. /why-taxi-sherwood-park, and any future
   plain page) use a Bootstrap .container capped at 1200px. Widen it to the
   same 1400px the redesign uses (.tsp-wrap) so every page's content container
   matches. This file loads on every page, so it applies now and in future. */
.content-region .container,
main .container,
.region-content .container{max-width:1400px;}

body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main){display:grid;grid-template-columns:repeat(3,1fr);gap:26px;list-style:none;margin:0 auto 10px;padding:0;max-width:none;}
/* The .clearfix ::before/::after become stray grid cells (empty first column) */
body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main)::before,
body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main)::after{content:none !important;display:none !important;}
body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main) > li{list-style:none;display:flex;margin:0;padding:0;width:100% !important;min-width:0;justify-self:stretch;}
body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main) > li::before{content:none;}
body.path-why-taxi-sherwood-park .sherwood-grd-main{width:100% !important;display:flex;}
body.path-why-taxi-sherwood-park .sherwood-grd-main-innr{display:flex;flex-direction:column;width:100%;height:auto !important;background:#fff;border:1px solid #e3e9f2;border-radius:14px;box-shadow:0 4px 14px rgba(13,44,100,.08);padding:28px 22px 26px;text-align:center;}
body.path-why-taxi-sherwood-park .sherwood-grd-icon{order:1;margin:0 auto 14px;}
body.path-why-taxi-sherwood-park .sherwood-grd-title{position:static !important;order:2;background:transparent;color:#0d2c64;font-family:'Poppins',sans-serif;font-size:1.1rem;font-weight:700;text-transform:none;letter-spacing:0;padding:0;margin:0 0 12px;display:block;width:auto;}
/* The legacy icon/title were absolutely positioned; keep all card parts in flow. */
body.path-why-taxi-sherwood-park .sherwood-grd-icon{position:static !important;}
body.path-why-taxi-sherwood-park .sherwood-grd-main-innr{position:relative;}
body.path-why-taxi-sherwood-park .sherwood-grd-main-innr p{order:3;color:#5d6b82;font-size:.92rem;line-height:1.7;margin:0 0 10px;}
@media(max-width:992px){body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main){grid-template-columns:1fr 1fr;}}
@media(max-width:600px){body.path-why-taxi-sherwood-park ul.ulc:has(.sherwood-grd-main){grid-template-columns:1fr;}}

/* =========================================================================
   HEADING STRUCTURE (cont.): sub-item titles across every section were
   retagged H4 -> H3 so all pages match the home hierarchy (H1 > H2 > H3).
   Re-apply the original H4 styling to H3 so nothing changes visually.
   ========================================================================= */
.tsp-cinfo-card h3{color:var(--tsp-blue);font-size:.95rem;margin:0 0 12px;font-weight:700;}
.tsp-serve-txt h3{font-size:.96rem;margin:0 0 2px;color:var(--tsp-navy);}
.tsp-mode h3{font-size:.95rem;font-weight:700;color:var(--tsp-navy);margin:0 0 6px;}
html.tsp-snr .tsp-mode:hover h3,html.tsp-dlv .tsp-mode:hover h3{color:var(--tsp-blue);}
html.tsp-corp .tsp-mode h3,html.tsp-bat .tsp-mode h3,html.tsp-snr .tsp-mode h3{font-size:17px !important;}
html.tsp-flat .tsp-mode h3{font-size:1.02rem;}
html.tsp-dlv .tsp-mode--img h3{padding:0 18px;}
.tsp-cpoint h3{color:#fff;font-size:.96rem;font-weight:700;margin:0 0 3px;}
html.tsp-dlv .tsp-cpoint h3{font-size:.85rem;line-height:1.25;margin:0 0 5px;white-space:normal;}
html.tsp-about-page .tsp-cpoint h3{color:#fff;font-size:.92rem;margin:0 0 4px;}
.tsp-svc-item h3{font-size:.95rem;font-weight:700;color:var(--tsp-navy);position:relative;padding-bottom:8px;margin:0 0 7px;}
.tsp-svc-item h3::after{content:"";position:absolute;left:0;bottom:0;width:28px;height:3px;border-radius:3px;background:var(--tsp-gold);}
.tsp-step h3{color:#fff;font-size:1.02rem;margin:0 0 6px;}
.tsp-process-sec .tsp-step h3,.tsp-process-sec:not(.tsp-acct-sec) .tsp-step h3{color:#fff;font-size:1.12rem;font-weight:700;margin:0 0 7px;text-align:center;}
.tsp-lk h3{color:#fff;font-size:.92rem;margin:0 0 4px;}
.tsp-story-feat h3{font-size:1rem;font-weight:700;color:var(--tsp-navy);margin:0 0 4px;}
.tsp-astep-txt h3{color:#fff;font-size:1rem;margin:0 0 3px;}
.tsp-pricecard h3{font-size:1.05rem;margin:0 0 10px;color:var(--tsp-navy);}
@media(max-width:768px){.tsp-process-sec .tsp-step h3{font-size:1rem;}}

/* These titles are intentionally NOT headings (not part of the defined heading
   structure): "What Our Customers Say" (testimonials) and the footer column
   titles. Rendered as <span> but styled to look exactly like the old h2/h4. */
.tsp .tsp-sec-head .tsp-faux-h2{display:inline-block;font-family:'Poppins',sans-serif;font-size:2.05rem;font-weight:700;color:var(--tsp-navy);position:relative;padding-bottom:18px;margin:0;line-height:1.2;}
.tsp .tsp-sec-head .tsp-faux-h2::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:64px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--tsp-blue),var(--tsp-gold));}
@media(max-width:768px){.tsp .tsp-sec-head .tsp-faux-h2{font-size:1.7rem;}}
@media(max-width:560px){.tsp .tsp-sec-head .tsp-faux-h2{font-size:1.5rem;padding-bottom:14px;}}
@media(max-width:380px){.tsp .tsp-sec-head .tsp-faux-h2{font-size:1.38rem;}}
.tsp-foot-col .tsp-foot-h{display:block;font-family:'Poppins',sans-serif;color:#fff;font-size:1rem;font-weight:700;margin:0 0 18px;position:relative;padding-bottom:10px;line-height:1.2;}
.tsp-foot-col .tsp-foot-h::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:3px;border-radius:3px;background:var(--tsp-gold);}

/* /why-taxi-sherwood-park: breathing room + title sized like other pages.
   - cards had no top padding (icon touched the card top)
   - section had no bottom padding (cards touched the footer)
   - page title sized to match the redesign hero h1 (was a fixed 45px). */
body.path-why-taxi-sherwood-park .sherwood-grd-main-innr{padding:28px 22px 28px !important;}
body.path-why-taxi-sherwood-park .sherwood-grd-sec.content-region{padding-bottom:90px !important;}
body.path-why-taxi-sherwood-park h1.page-title{font-size:2.65rem !important;font-weight:800;line-height:1.15;color:var(--tsp-navy);text-align:center;margin:0 0 10px;}
@media(max-width:1200px){body.path-why-taxi-sherwood-park h1.page-title{font-size:2.4rem !important;}}
@media(max-width:768px){body.path-why-taxi-sherwood-park h1.page-title{font-size:2rem !important;}}

/* "How Corporate Account Works" section: full navy band with the SUV photo
   (corporate-account.png) as the background, fading from the navy on the left. */
.tsp-acct-sec{position:relative;overflow:hidden;
  background:linear-gradient(100deg,rgba(11,31,71,.88) 0%,rgba(11,31,71,.7) 45%,rgba(11,31,71,.4) 72%,rgba(11,31,71,.22) 100%),
    url(/sites/default/files/home/about/corporate-account.png) right center/cover no-repeat;
}
.tsp-acct-sec .tsp-wrap{position:relative;z-index:1;}

/* Corporate page — "Corporate Airport Transportation to Edmonton International
   Airport" story section only (the story block that holds the CTA button).
   Tick badges and the CTA button use the brand gold/yellow. */
html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-check .tsp-tag-ic svg path:first-of-type{fill:var(--tsp-gold);}
html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-check .tsp-tag-ic svg path:last-of-type{fill:var(--tsp-navy);}
html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-cta .tsp-btn{
  background:var(--tsp-gold);
  color:var(--tsp-navy);
}
html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-cta .tsp-btn:hover{
  background:var(--tsp-gold-dark);
  color:var(--tsp-navy);
}
/* Make the image fill the FULL height of the navy band — including the section's
   100px top/bottom padding — and crop with object-fit:cover (no stretching).
   Scoped to this corporate "Corporate Airport Transportation" section only. */
html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story{align-items:stretch;}
@media(min-width:993px){
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta){position:relative;overflow:hidden;}
  /* The image becomes a full-height band on the RIGHT half of the section that
     bleeds out to the viewport edge (top/bottom/right all hit the navy band's
     edges). Sizing the container — not the <img> — avoids the replaced-element
     auto-width quirk, then the image fills it with object-fit:cover. */
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-img{
    position:absolute;top:0;bottom:0;right:0;left:50%;margin:0;
    overflow:hidden;border-radius:0;box-shadow:none;
  }
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-img picture{position:absolute;inset:0;display:block;}
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-img img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;
  }
}

/* Section headings: cap the width to ~the "Flat Rate Taxi Service in Sherwood
   Park" heading width (688px) so any longer section title wraps onto two lines
   (centred, with comfortable line-height) instead of stretching full width. */
.tsp .tsp-sec-head h2,
.tsp .tsp-sec-head .tsp-faux-h2{max-width:690px;margin-left:auto;margin-right:auto;line-height:1.3;}

/* =========================================================================
   TYPE SCALE — one consistent typography system across the whole site.
   • Body copy (p, li) is ONE size: 16px / line-height 1.65.
   • Small UI (tags, badges, meta, fine print) = 14px.
   • Blog long-form body = 17px for reading comfort.
   • Headings: h3 = 18px (clear gap above body); h2/h1 unchanged.
   ========================================================================= */
:root{ --fs-body:16px; --fs-list:15px; --fs-desc:15px; --fs-small:14px; --fs-h3:18px; }

/* Headings — h3 a clean step above body copy. */
html h3{font-size:var(--fs-h3) !important;line-height:1.4 !important;}

/* Body copy — paragraphs at one size; list items a touch smaller (15px). */
html .tsp p,
html .tsp .tsp-sec-head p{font-size:var(--fs-body) !important;line-height:1.65 !important;}
html .tsp li{font-size:var(--fs-list) !important;line-height:1.6 !important;}
/* Comparison ("Ride vs Reliable Transportation") list items — 16px. */
html .tsp .tsp-vs-card li{font-size:16px !important;}
/* Description paragraph directly under a heading = 15px. */
html .tsp h3 + p,
html .tsp h3 ~ p{font-size:var(--fs-desc) !important;}
/* Older per-component description overrides → follow the 15px description size. */
html.tsp-corp .tsp-mode p,html.tsp-bat .tsp-mode p,html.tsp-snr .tsp-mode p{font-size:var(--fs-desc) !important;}

/* Small / meta text — tags, badges, dates, fine print — stays small. */
html .tsp .tsp-fare-note,
html .tsp .tsp-route-path,
html .tsp .tsp-article-meta,
html .tsp figcaption,
html .tsp small{font-size:var(--fs-small) !important;}

/* Blog long-form body — a touch larger for comfortable reading. */
html .tsp-front .tsp-article-main p,
html .tsp-front .tsp-article-main li{font-size:17px !important;line-height:1.8 !important;}

/* When a page has TWO "modes" feature sections, the 2nd one's icons sit in a
   dark navy circle with white icons (e.g. Corporate "Who We Serve", Senior
   "Why Families Choose…"). Generalised so any future 2nd section gets it too. */
.field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode-ic{
  width:72px !important;height:72px !important;background:var(--tsp-navy) !important;color:#fff !important;
  border-radius:50% !important;display:grid !important;place-items:center !important;margin:0 auto 14px !important;
}
.field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode-ic svg{
  width:40px !important;height:40px !important;stroke:#fff !important;color:#fff !important;fill:none !important;
}
.field__item:has(.tsp-modes-sec) ~ .field__item:has(.tsp-modes-sec) .tsp-mode-ic img{
  filter:brightness(0) invert(1) !important;
}

/* =========================================================================
   About page (node 14) only.
   ========================================================================= */
/* "Local Drivers / Professional Drivers" feature cards: content on the LEFT,
   image as the FULL-BLEED card background, with the text overlaid in white on
   a dark gradient scrim (darker on the text side, lighter on the right so the
   photo stays visible). The <picture>/<img> is kept for webp + alt; it's just
   positioned to fill the whole card instead of sitting in its own column. */
html.tsp-about-page .tsp-frow2 .tsp-fcard{
  position:relative;display:block;min-height:430px;
  border:0;border-radius:var(--tsp-radius);overflow:hidden;background:var(--tsp-navy);
}
html.tsp-about-page .tsp-frow2 .tsp-fcard-img{
  position:absolute;inset:0;z-index:0;margin:0;aspect-ratio:auto;background:transparent;
}
html.tsp-about-page .tsp-frow2 .tsp-fcard-img,
html.tsp-about-page .tsp-frow2 .tsp-fcard-img picture,
html.tsp-about-page .tsp-frow2 .tsp-fcard-img img{width:100%;height:100%;}
html.tsp-about-page .tsp-frow2 .tsp-fcard-img img{object-fit:cover;object-position:center;display:block;}
/* dark gradient scrim for text legibility (left → right fade) */
html.tsp-about-page .tsp-frow2 .tsp-fcard::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,24,55,.93) 0%,rgba(8,24,55,.78) 42%,rgb(8 24 55 / 47%) 100%);
}
html.tsp-about-page .tsp-frow2 .tsp-fcard-txt{position:relative;z-index:2;padding:32px 34px;color:#fff;}
html.tsp-about-page .tsp-frow2 .tsp-fcard-txt h3{font-weight:800;color:#fff;font-size:20px !important;}
html.tsp-about-page .tsp-frow2 .tsp-fcard-txt p{color:rgba(255,255,255,.9);}
html.tsp-about-page .tsp-frow2 .tsp-fcard-txt .tsp-flist li{color:#fff;}
/* gold ticks so the checklist reads clearly on the dark photo */
html.tsp-about-page .tsp-frow2 .tsp-fcard-txt .tsp-flist li::before{
  background-image:url(../images/icons/tick-circle-gold.svg);
}
/* Mobile (≤768px): same overlay card, a touch shorter. */
@media(max-width:768px){
  html.tsp-about-page .tsp-frow2 .tsp-fcard{min-height:340px;}
  html.tsp-about-page .tsp-frow2 .tsp-fcard-txt{padding:26px 24px;}
}

/* Community panel ("Community Focused Transportation") icons: no background,
   no border, icon sized to 40px. */
html.tsp-about-page .tsp-community-panel .tsp-cpoint-ic{background:transparent !important;border:0 !important;box-shadow:none !important;}
html.tsp-about-page .tsp-community-panel .tsp-cpoint-ic svg{width:40px !important;height:40px !important;}

/* Uploaded SVG icons only: render strokes at a constant on-screen width so line
   icons with large viewBoxes (where the theme's stroke-width:2 would scale down
   to near-zero) stay visible. Theme icons are left untouched. */
.tsp .tsp-upicon,
.tsp .tsp-upicon *{vector-effect:non-scaling-stroke;}

/* Delivery "Why Choose … for Delivery?" icons: no background, no border,
   plain 40px brand-blue icon. */
html.tsp-dlv .tsp-cpoint-ic{background:transparent !important;border:0 !important;box-shadow:none !important;}
html.tsp-dlv .tsp-cpoint-ic svg{width:40px !important;height:40px !important;stroke:#fff !important;color:#fff !important;}

/* =========================================================================
   Story-section images: show FULL at their natural height on EVERY page (like
   the Senior page) — not cropped/stretched to the text column. The one
   exception is the Corporate "Airport Transportation" full-bleed band.
   ========================================================================= */
.tsp .tsp-story{align-items:center !important;}
.tsp .tsp-story-img{position:static !important;}
.tsp .tsp-story-img img{position:static !important;width:100% !important;height:auto !important;min-height:0 !important;object-fit:cover;display:block;}

/* Exception: keep the Corporate "Airport Transportation" section full-bleed. */
@media(min-width:993px){
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story{align-items:stretch !important;}
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-img{position:absolute !important;}
  html.tsp-corp .tsp-story-sec:has(.tsp-story-cta) .tsp-story-img img{position:absolute !important;inset:0;height:100% !important;min-height:0 !important;}
}

/* Airport "Edmonton International Airport Transportation Experts": stretch the
   image to exactly the text-column height so the big gap is gone, with only a
   tiny side crop (keeps the image content readable). */
@media(min-width:993px){
  html.tsp-air .tsp-story-sec{padding-top:40px !important;padding-bottom:40px !important;}
  html.tsp-air .tsp-story-sec .tsp-story{align-items:stretch !important;}
  html.tsp-air .tsp-story-sec .tsp-story-img{align-self:stretch !important;overflow:hidden;}
  html.tsp-air .tsp-story-sec .tsp-story-img img{width:100% !important;height:100% !important;min-height:0 !important;object-fit:cover;object-position:left center;}
}

/* Delivery page only: present the story like the About page — the image floats
   to the right and the heading + text wrap around it (and continue below it),
   so there is no leftover white space beside a short image. */
@media(min-width:993px){
  html.tsp-dlv .tsp-story-sec .tsp-story{display:block !important;}
  html.tsp-dlv .tsp-story-sec .tsp-story-img{float:right;width:42%;max-width:470px;margin:0 0 22px 34px !important;align-self:auto !important;position:static !important;}
  html.tsp-dlv .tsp-story-sec .tsp-story-img img{position:static !important;width:100% !important;height:auto !important;min-height:0 !important;object-fit:cover;display:block;}
  html.tsp-dlv .tsp-story-sec .tsp-story-txt{display:block;overflow:visible;}
  /* The heading is inline-block (for its underline); as a wide box it can't sit
     beside the float and drops below it. Make it a block so its text wraps
     around the image instead, filling the top-left space. */
  html.tsp-dlv .tsp-story-sec .tsp-story-txt h2{display:block !important;width:auto !important;}
}

/* Corporate page: same float-wrap treatment for the main story image. The
   "Airport Transfers" full-bleed band (has .tsp-story-cta) is excluded so it
   keeps its existing presentation. */
@media(min-width:993px){
  html.tsp-corp .tsp-story-sec:not(:has(.tsp-story-cta)) .tsp-story{display:block !important;align-items:initial !important;}
  html.tsp-corp .tsp-story-sec:not(:has(.tsp-story-cta)) .tsp-story-img{float:right !important;width:42% !important;max-width:470px !important;margin:0 0 22px 34px !important;align-self:auto !important;position:static !important;order:0 !important;}
  html.tsp-corp .tsp-story-sec:not(:has(.tsp-story-cta)) .tsp-story-img img{position:static !important;width:100% !important;height:auto !important;min-height:0 !important;object-fit:cover;display:block;}
  html.tsp-corp .tsp-story-sec:not(:has(.tsp-story-cta)) .tsp-story-txt{display:block;overflow:visible;}
  html.tsp-corp .tsp-story-sec:not(:has(.tsp-story-cta)) .tsp-story-txt h2{display:block !important;width:auto !important;}
}

/* ==========================================================================
   Uploaded icons (field_sx_icon) — universal normaliser.
   The preprocess in wcsb.theme tags every inlined upload with .tsp-upicon plus
   a style modifier: .tsp-upicon--fill (solid/silhouette icons, e.g. PNG->SVG
   conversions from Flaticon) or .tsp-upicon--line (true outline SVGs). These
   rules force the correct paint on the <svg> AND every descendant so that any
   uploaded icon displays in the theme colour, regardless of the per-container
   line-icon rules (.tsp-mode-ic svg, .tsp-pricecard-ic svg, .tsp-why-item svg,
   …). This removes the need to hand-edit each SVG's fill/stroke before upload.
   Size/colour still come from each container (width/height + currentColor).
   ========================================================================== */
svg.tsp-upicon--fill,
svg.tsp-upicon--fill *{fill:currentColor !important;stroke:none !important;}
svg.tsp-upicon--line,
svg.tsp-upicon--line *{fill:none !important;stroke:currentColor !important;}

/* ==========================================================================
   Multi-paragraph WYSIWYG (text_long) fields
   Editor fields (intro / text) may contain several <p> paragraphs. Templates
   render the formatted markup so the paragraphs survive; these rules give the
   2nd+ paragraph vertical separation. Single-paragraph blocks are untouched
   (the `p + p` selector only matches a paragraph that follows another).
   ========================================================================== */
.tsp p + p{margin-top:.9em;}
.tsp-hero .tsp-lead p{margin:0;}
.tsp-hero .tsp-lead p + p{margin-top:.9em;}
.tsp-trio-foot p{margin:0;}
.tsp-trio-foot p + p{margin-top:.6em;}

/* ==========================================================================
   System / webform status messages (success, error, warning, info).
   Modern themed card replaces Drupal's old default message boxes. Applies to
   the post-submit "Your message has been sent." confirmation and to validation
   errors on every form. Scoped to html.tsp-front so the admin theme is
   untouched and so it beats the base theme's lower-specificity rules.
   ========================================================================== */
html.tsp-front .messages,
html.tsp-front .messages--status,
html.tsp-front .messages--error,
html.tsp-front .messages--warning{
  max-width:min(var(--tsp-maxw), calc(100% - 32px));
  margin:20px auto;
  padding:16px 22px 16px 60px;
  border:1px solid var(--tsp-line);
  border-left-width:4px;
  border-radius:var(--tsp-radius);
  background:#fff;
  box-shadow:0 12px 32px rgba(13,44,100,.10);
  font-family:'Poppins',sans-serif;
  font-size:.96rem;
  line-height:1.55;
  font-weight:500;
  color:var(--tsp-ink);
  position:relative;
  background-image:none;            /* kill the base theme's left icon sprite */
}
/* round icon badge */
html.tsp-front .messages::before{
  content:"";
  position:absolute;left:18px;top:18px;
  width:28px;height:28px;border-radius:50%;
  background-repeat:no-repeat;background-position:center;background-size:17px 17px;
}
html.tsp-front .messages [role="alert"]{margin:0;}
html.tsp-front .messages a{color:var(--tsp-blue);font-weight:600;text-decoration:underline;}
html.tsp-front .messages a:hover{color:var(--tsp-navy);}

/* SUCCESS / status — green */
html.tsp-front .messages--status{
  border-color:rgba(31,157,87,.30);border-left-color:#1f9d57;
  background:linear-gradient(0deg,rgba(31,157,87,.06),rgba(31,157,87,.06)),#fff;
  color:#0f5a32;
}
html.tsp-front .messages--status::before{
  background-color:#1f9d57;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
/* ERROR — red */
html.tsp-front .messages--error{
  border-color:rgba(217,45,32,.30);border-left-color:#d92d20;
  background:linear-gradient(0deg,rgba(217,45,32,.05),rgba(217,45,32,.05)),#fff;
  color:#8a1c14;
}
html.tsp-front .messages--error::before{
  background-color:#d92d20;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
/* WARNING — gold */
html.tsp-front .messages--warning{
  border-color:rgba(224,163,17,.35);border-left-color:var(--tsp-gold-dark);
  background:linear-gradient(0deg,rgba(246,181,30,.08),rgba(246,181,30,.08)),#fff;
  color:#7a560a;
}
html.tsp-front .messages--warning::before{
  background-color:var(--tsp-gold-dark);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='7' x2='12' y2='14'/%3E%3Cline x1='12' y1='17.5' x2='12' y2='17.6'/%3E%3C/svg%3E");
}
/* error list (multiple validation errors) */
html.tsp-front .messages ul{margin:6px 0 0;padding-left:18px;}
html.tsp-front .messages ul li{margin:3px 0;}
