:root{
  --trf-primary:#31a9cf;
  --trf-primary-dark:#1687ab;
  --trf-soft:#eaf8fd;
  --trf-border:#8ad7ee;
  --trf-text:#050505;
  --trf-muted:#59636a;
  --trf-card:#ffffff;
  --trf-danger:#b42318;
  --trf-warning:#fff7e6;
  --trf-line:#e7eef2;
}
.trf-search-form{background:var(--trf-soft);border:1px solid var(--trf-border);border-radius:10px;padding:28px 30px;margin:20px 0;box-sizing:border-box}
.trf-search-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}
.trf-search-form label{display:block;font-weight:700;color:var(--trf-text);font-size:14px;line-height:1.2}
.trf-search-form label span{display:block;margin-bottom:10px}
.trf-search-form input,.trf-search-form select{width:100%;height:46px;border:0;border-radius:8px;background:#fff;color:#222;padding:0 14px;font-size:15px;box-sizing:border-box;outline:none}
.trf-search-form button,.trf-button{height:46px;border:0;border-radius:8px;background:var(--trf-primary);color:#fff!important;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;padding:0 26px;cursor:pointer;transition:.2s ease;white-space:nowrap}
.trf-search-form button:hover,.trf-button:hover{background:var(--trf-primary-dark);color:#fff!important;transform:translateY(-1px)}
.trf-vehicle-grid{display:grid;gap:26px;margin:26px 0}.trf-cols-1{grid-template-columns:1fr}.trf-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.trf-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.trf-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.trf-vehicle-card{background:var(--trf-card);border-radius:10px;box-shadow:0 2px 14px rgba(0,0,0,.10);padding:28px 30px 22px;box-sizing:border-box;display:flex;flex-direction:column;min-height:430px;overflow:hidden}
.trf-card-head h3{font-size:22px;line-height:1.15;margin:0;color:#000;font-weight:800}.trf-card-head p{margin:3px 0 18px;color:#000;font-weight:700}
.trf-card-image{height:200px;display:flex;align-items:center;justify-content:center;background:#fff;margin:0 0 20px}.trf-card-image img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.trf-card-features{display:flex;gap:15px;flex-wrap:wrap;margin:0 0 16px;font-size:14px;font-weight:700;color:#000}.trf-card-features span{display:inline-flex;align-items:center;gap:4px}
.trf-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:12px}.trf-price strong{font-size:28px;color:var(--trf-primary);font-weight:800}.trf-price span{color:#222;margin-left:5px;font-size:14px}.trf-card-mini{font-size:12px;color:var(--trf-muted);margin-top:14px;font-weight:600}
.trf-results-summary{display:flex;gap:16px;flex-wrap:wrap;background:#fff;border:1px solid #e3eef2;border-radius:8px;padding:16px 18px;margin:20px 0;color:#222}.trf-results-summary strong{color:#000}
.trf-notice{padding:16px 18px;border-radius:8px;background:#eef8fc;border:1px solid #c5eaf5;color:#123;margin:18px 0;font-weight:600}.trf-warning{background:var(--trf-warning);border-color:#ffdf99;color:#5c3a00}

/* Checkout */
.trf-checkout-hero{background:linear-gradient(135deg,#eaf8fd 0%,#ffffff 72%);border:1px solid var(--trf-border);border-radius:16px;padding:28px 30px;margin:28px 0 24px;box-shadow:0 8px 28px rgba(49,169,207,.12)}
.trf-checkout-eyebrow{display:inline-flex;align-items:center;background:#fff;border:1px solid #d9f0f8;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--trf-primary-dark);margin-bottom:10px}
.trf-checkout-hero h2{margin:0;color:#000;font-size:32px;line-height:1.15;font-weight:900}
.trf-checkout-hero p{max-width:760px;margin:10px 0 18px;color:#3f4b52;font-size:15px;line-height:1.55}
.trf-checkout-badges{display:flex;gap:10px;flex-wrap:wrap}.trf-checkout-badges span{background:#fff;border:1px solid #dcecf2;border-radius:999px;padding:8px 12px;font-weight:800;font-size:13px;color:#111}
.trf-booking-wrap{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:28px;align-items:start;margin:24px 0}
.trf-step-card,.trf-booking-summary,.trf-policies-box{background:#fff;border:1px solid #edf2f5;border-radius:16px;box-shadow:0 8px 26px rgba(0,0,0,.07);padding:28px;margin-bottom:22px;overflow:hidden}
.trf-step-card h3,.trf-booking-summary h3,.trf-policies-box h3{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-size:22px;color:#000;font-weight:900;line-height:1.2}
.trf-step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--trf-primary);color:#fff;font-size:14px;font-weight:900;flex:0 0 30px}
.trf-selected-vehicle{display:flex;gap:18px;align-items:center;background:#f8fcfe;border:1px solid #e1f2f8;border-radius:14px;padding:16px;margin-bottom:18px}
.trf-selected-vehicle img{width:190px;height:118px;object-fit:contain;background:#fff;border:1px solid #eef3f5;border-radius:12px;padding:4px}.trf-selected-vehicle h4{margin:0 0 6px;font-size:23px;font-weight:900;color:#000}.trf-selected-vehicle p{margin:4px 0;color:#333;line-height:1.45}
.trf-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.trf-rental-date-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.trf-booking-form label{font-weight:800;color:#000;display:block;font-size:14px;line-height:1.25}
.trf-booking-form input[type="text"],.trf-booking-form input[type="email"],.trf-booking-form input[type="tel"],.trf-booking-form input[type="date"],.trf-booking-form select,.trf-booking-form textarea{width:100%;box-sizing:border-box;border:1px solid #d8e5eb;border-radius:10px;padding:12px 13px;margin-top:8px;font-size:15px;background:#fff;color:#111;outline:none;transition:border-color .2s ease,box-shadow .2s ease}
.trf-booking-form input[type="date"],.trf-booking-form select{height:48px}.trf-booking-form textarea{resize:vertical;min-height:72px}.trf-booking-form input:focus,.trf-booking-form select:focus,.trf-booking-form textarea:focus{border-color:var(--trf-primary);box-shadow:0 0 0 3px rgba(49,169,207,.16)}
.trf-check-row{display:flex!important;gap:12px;align-items:flex-start;margin:12px 0;font-weight:700!important;line-height:1.45;background:#fbfdfe;border:1px solid #edf3f5;border-radius:12px;padding:12px 14px}.trf-check-row input{margin-top:3px;min-width:17px}.trf-disclosure,.trf-small-note{font-size:13px;color:#59636a;margin:10px 0 0;line-height:1.5}.trf-disclosure{background:#fff8e8;border-left:4px solid #f2b84b;padding:10px 12px;border-radius:8px;color:#4f3a0a;font-weight:700}.trf-payment-card #trf-card-element{border:1px solid #d8e5eb;border-radius:12px;padding:16px;background:#fff;margin:12px 0 14px}.trf-submit-btn{margin-top:12px;width:100%;height:52px;font-size:17px;border-radius:12px}.trf-submit-btn[disabled]{opacity:.65;cursor:not-allowed}.trf-booking-message{margin-top:14px;font-weight:800;line-height:1.45}.trf-booking-message.trf-success{color:#147a3b}.trf-booking-message.trf-error{color:var(--trf-danger)}
.trf-booking-summary{position:sticky;top:32px;border-top:5px solid var(--trf-primary)}.trf-booking-summary h3{margin-bottom:4px}.trf-summary-helper{margin:0 0 16px;color:var(--trf-muted);font-size:13px;font-weight:700}.trf-summary-line,.trf-summary-total{display:flex;justify-content:space-between;gap:10px;padding:14px 0;border-bottom:1px solid #edf1f3;color:#222;align-items:center}.trf-summary-line span{color:#4d5a62;font-weight:700}.trf-summary-line strong{color:#000;font-weight:900}.trf-summary-total{font-size:20px;font-weight:900;border-bottom:0;margin-top:6px;background:#f3fbfe;border-radius:12px;padding:16px;margin-left:-6px;margin-right:-6px}.trf-summary-total strong{color:var(--trf-primary);font-size:24px}.trf-policies-box ul{margin:0;padding-left:18px}.trf-policies-box li{margin:8px 0}
@media(max-width:1180px){.trf-rental-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trf-rental-date-grid label:last-child{grid-column:1/-1}}
@media(max-width:1024px){.trf-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trf-search-grid button{grid-column:auto}.trf-cols-3,.trf-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.trf-booking-wrap{grid-template-columns:1fr}.trf-booking-summary{position:static}.trf-rental-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.trf-search-form{padding:20px 16px}.trf-search-grid,.trf-form-grid,.trf-rental-date-grid,.trf-cols-2,.trf-cols-3,.trf-cols-4{grid-template-columns:1fr}.trf-rental-date-grid label:last-child{grid-column:auto}.trf-vehicle-card{padding:22px 20px}.trf-card-bottom{align-items:flex-start;flex-direction:column}.trf-card-bottom .trf-button{width:100%}.trf-checkout-hero{padding:22px 18px}.trf-checkout-hero h2{font-size:26px}.trf-selected-vehicle{align-items:flex-start;flex-direction:column}.trf-selected-vehicle img{width:100%;height:170px}.trf-step-card,.trf-booking-summary{padding:20px}.trf-check-row{padding:11px 12px}.trf-summary-total strong{font-size:21px}}

/* 15-minute reservation date/time controls */
.trf-date-time-field{min-width:0}
.trf-date-time-pair{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:0;margin-top:8px;overflow:hidden;background:#fff}
.trf-date-time-pair input,.trf-date-time-pair select{min-width:0}
.trf-date-time-pair input[type="date"]{border-right:1px solid #e7eef2!important}
.trf-time-select{appearance:auto}
.trf-search-grid{grid-template-columns:1.35fr 1.35fr 1fr 1fr 1.05fr}
.trf-search-form .trf-date-time-pair{height:46px;border-radius:8px;background:#fff}
.trf-search-form .trf-date-time-pair input,.trf-search-form .trf-date-time-pair select{height:46px!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0 12px!important}
.trf-search-form .trf-date-time-pair input[type="date"]{padding-right:8px!important}
.trf-search-form .trf-date-time-pair select{padding-left:10px!important}
.trf-booking-form .trf-date-time-pair{height:48px;border:1px solid #d8e5eb;border-radius:10px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.trf-booking-form .trf-date-time-pair:focus-within{border-color:var(--trf-primary);box-shadow:0 0 0 3px rgba(49,169,207,.16)}
.trf-booking-form .trf-date-time-pair input,.trf-booking-form .trf-date-time-pair select{height:46px!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0 13px!important}
.trf-booking-form .trf-date-time-pair input:focus,.trf-booking-form .trf-date-time-pair select:focus{box-shadow:none!important;border:0!important}
.trf-booking-form .trf-date-time-pair input[type="date"]{padding-right:8px!important}
.trf-booking-form .trf-date-time-pair select{padding-left:10px!important}
@media(max-width:1180px){.trf-search-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trf-search-grid button{grid-column:1/-1}}
@media(max-width:680px){.trf-date-time-pair{grid-template-columns:1fr}.trf-date-time-pair input[type="date"]{border-right:0!important;border-bottom:1px solid #e7eef2!important}.trf-search-form .trf-date-time-pair,.trf-booking-form .trf-date-time-pair{height:auto}.trf-search-form .trf-date-time-pair input,.trf-search-form .trf-date-time-pair select,.trf-booking-form .trf-date-time-pair input,.trf-booking-form .trf-date-time-pair select{height:46px!important}}

/* Clickable MN insurance disclosure */
.trf-inline-disclosure{margin:10px 0 0;font-size:13px;color:#59636a;font-weight:700}
.trf-mn-disclosure-link{font-size:12px;font-weight:900;color:var(--trf-primary-dark)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.trf-check-row .trf-mn-disclosure-link{font-size:inherit}
.trf-modal{display:none;position:fixed;inset:0;z-index:999999;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}
.trf-modal.is-open{display:flex}
.trf-modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.54)}
.trf-modal-panel{position:relative;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28);max-width:560px;width:100%;padding:28px 30px;box-sizing:border-box;z-index:1;border-top:5px solid var(--trf-primary)}
.trf-modal-panel h3{margin:0 40px 12px 0;color:#000;font-size:24px;font-weight:900;line-height:1.2}
.trf-modal-panel p{margin:0;color:#313b42;font-size:15px;line-height:1.6;font-weight:600}
.trf-modal-close{position:absolute;right:16px;top:14px;width:34px;height:34px;border:0;border-radius:50%;background:#eef8fc;color:#000;font-size:24px;line-height:1;cursor:pointer;font-weight:800}
.trf-modal-close:hover{background:var(--trf-primary);color:#fff}
@media(max-width:680px){.trf-modal-panel{padding:24px 20px}.trf-modal-panel h3{font-size:21px}}
