/* ==========================================================================
   Trailer Rentals — Public-Facing Styles
   Design language shares its steel + safety-orange industrial vocabulary
   with the staff dashboard, so the public booking experience and the
   internal tools read as one product. Orange is reserved for the one
   action that matters on any given screen (Book / Reserve); everything
   else stays quiet steel and canvas so that accent keeps its weight.
   ========================================================================== */

.trm-public{
	--trm-ink:#151A18;
	--trm-ink-soft:#5C665F;
	--trm-canvas:#F6F7F3;
	--trm-surface:#FFFFFF;
	--trm-steel:#233333;
	--trm-steel-dark:#182424;
	--trm-line:#E4E7DF;
	--trm-signal:#E85D04;
	--trm-signal-dark:#C74C02;
	--trm-signal-soft:#FDEEE1;
	--trm-hauler:#2E7D4F;
	--trm-hauler-soft:#E6F4EB;
	--trm-danger:#B3261E;
	--trm-danger-soft:#FBEAE8;
	--trm-radius:12px;
	--trm-radius-sm:8px;
	--trm-shadow:0 1px 2px rgba(21,26,24,.04), 0 10px 28px rgba(21,26,24,.07);
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
	color:var(--trm-ink);
	line-height:1.5;
}
.trm-public *{box-sizing:border-box;}
.trm-public h1,.trm-public h2,.trm-public h3{color:var(--trm-ink);line-height:1.25;}

/* ---------- Buttons ---------- */
.trm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 22px;border-radius:8px;border:1px solid transparent;cursor:pointer;text-decoration:none;font-size:14px;font-weight:600;transition:background .15s ease,border-color .15s ease,transform .05s ease;}
.trm-btn:active{transform:translateY(1px);}
.trm-btn-primary{background:var(--trm-signal);color:#fff;}
.trm-btn-primary:hover{background:var(--trm-signal-dark);color:#fff;}
.trm-btn-secondary{background:var(--trm-surface);color:var(--trm-steel);border-color:var(--trm-line);}
.trm-btn-secondary:hover{background:var(--trm-canvas);color:var(--trm-steel);border-color:#ccd1c6;}

/* ---------- Trailer grid / cards (search, featured, archive) ---------- */
.trm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px;margin:20px 0;}
.trm-card{border:1px solid var(--trm-line);border-radius:var(--trm-radius);padding:18px;background:var(--trm-surface);box-shadow:var(--trm-shadow);display:flex;flex-direction:column;position:relative;}
.trm-card-cart-btn{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.94);border:1px solid var(--trm-line);color:var(--trm-steel);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(21,26,24,.12);transition:background .15s ease,color .15s ease,transform .1s ease;}
.trm-card-cart-btn svg{width:17px;height:17px;}
.trm-card-cart-btn:hover{background:var(--trm-signal);color:#fff;border-color:var(--trm-signal);}
.trm-card-cart-btn.trm-cart-added{background:var(--trm-hauler);color:#fff;border-color:var(--trm-hauler);transform:scale(1.08);}
.trm-card-image{display:block;margin:-18px -18px 14px;border-radius:var(--trm-radius) var(--trm-radius) 0 0;overflow:hidden;background:var(--trm-canvas);}
.trm-card-image img{width:100%;height:170px;object-fit:cover;display:block;}
.trm-card-title{margin:0 0 8px;font-size:17px;font-weight:700;}
.trm-card-title a{color:var(--trm-ink);text-decoration:none;}
.trm-card-title a:hover{color:var(--trm-signal);}
.trm-card-meta{list-style:none;margin:0 0 12px;padding:0;font-size:13px;color:var(--trm-ink-soft);}
.trm-card-meta li{padding:2px 0;}
.trm-card-meta li strong{color:var(--trm-ink);}
.trm-card-excerpt{font-size:13px;color:var(--trm-ink-soft);margin-bottom:14px;flex:1;}
.trm-card .trm-btn{width:100%;margin-top:6px;}
.trm-search-available{color:var(--trm-hauler);font-weight:600;}

/* ---------- Single trailer detail page ---------- */
.trm-single-trailer{margin-top:8px;max-width:1080px;}
.trm-single-title{font-size:28px;font-weight:800;letter-spacing:-.01em;margin:0 0 20px;color:var(--trm-ink);line-height:1.2;}
.trm-single-hero{display:flex;gap:36px;align-items:flex-start;margin-bottom:36px;flex-wrap:wrap;}
.trm-single-gallery{flex:1 1 480px;min-width:280px;}
.trm-single-gallery-main{border-radius:var(--trm-radius);overflow:hidden;box-shadow:var(--trm-shadow);background:var(--trm-canvas);}
.trm-single-gallery-main img{width:100%;height:auto;object-fit:cover;display:block;}
.trm-single-gallery-thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}
.trm-single-gallery-thumb{width:64px;height:64px;padding:0;border-radius:8px;overflow:hidden;border:2px solid transparent;background:var(--trm-canvas);cursor:pointer;flex-shrink:0;opacity:.7;transition:opacity .15s ease,border-color .15s ease;}
.trm-single-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.trm-single-gallery-thumb:hover{opacity:1;}
.trm-single-gallery-thumb.active{opacity:1;border-color:var(--trm-signal);}
.trm-single-description{font-size:15px;line-height:1.7;color:var(--trm-ink);}
.trm-single-description p{margin:0 0 14px;}
.trm-single-description p:last-child{margin-bottom:0;}
.trm-single-cta-card{flex:1 1 320px;min-width:280px;position:sticky;top:20px;background:var(--trm-surface);border:1px solid var(--trm-line);border-radius:var(--trm-radius);box-shadow:var(--trm-shadow);padding:22px 24px;}
.trm-single-type{display:inline-block;background:var(--trm-hauler-soft);color:var(--trm-hauler);font-weight:700;font-size:12px;letter-spacing:.03em;text-transform:uppercase;padding:5px 12px;border-radius:20px;margin:0 0 14px;}
.trm-single-price-row{display:flex;align-items:baseline;gap:8px;margin-bottom:2px;}
.trm-single-price{font-size:32px;font-weight:800;color:var(--trm-steel-dark);}
.trm-single-price-unit{font-size:14px;color:var(--trm-ink-soft);font-weight:600;}
.trm-single-price-secondary{font-size:14px;color:var(--trm-ink-soft);margin:0 0 18px;}
.trm-single-meta{list-style:none;margin:0 0 18px;padding:14px 0 0;border-top:1px solid var(--trm-line);font-size:14px;}
.trm-single-meta li{display:flex;justify-content:space-between;padding:7px 0;}
.trm-single-meta li strong{color:var(--trm-ink-soft);font-weight:500;}
.trm-single-meta li span{font-weight:600;color:var(--trm-ink);}
.trm-single-cta-card .trm-btn{width:100%;padding:14px 22px;font-size:15px;}
.trm-single-cta-card .trm-add-to-cart-btn{margin-top:10px;}
.trm-single-cta-note{margin:10px 0 0;font-size:12px;color:var(--trm-ink-soft);text-align:center;}

.trm-single-section{margin:36px 0;padding-top:32px;border-top:1px solid var(--trm-line);}
.trm-single-section:first-of-type{border-top:none;padding-top:0;}
.trm-single-section h3{margin:0 0 16px;font-size:20px;}

.trm-specs-table{width:100%;border-collapse:collapse;}
.trm-specs-table tr{border-bottom:1px solid var(--trm-line);}
.trm-specs-table tr:last-child{border-bottom:none;}
.trm-specs-table th,.trm-specs-table td{text-align:left;padding:11px 4px;font-size:14px;font-weight:400;}
.trm-specs-table th{color:var(--trm-ink-soft);font-weight:500;width:42%;}
.trm-specs-table td{color:var(--trm-ink);font-weight:600;}

.trm-single-uses{display:flex;gap:20px;flex-wrap:wrap;}
.trm-uses-card{flex:1 1 240px;border-radius:var(--trm-radius-sm);padding:16px 18px;}
.trm-uses-card.trm-uses-accepted{background:var(--trm-hauler-soft);}
.trm-uses-card.trm-uses-restricted{background:var(--trm-danger-soft);}
.trm-uses-card h4{margin:0 0 10px;font-size:14px;text-transform:uppercase;letter-spacing:.02em;}
.trm-uses-accepted h4{color:var(--trm-hauler);}
.trm-uses-restricted h4{color:var(--trm-danger);}
.trm-uses-card ul{list-style:none;margin:0;padding:0;font-size:14px;}
.trm-uses-card li{padding:4px 0 4px 22px;position:relative;}
.trm-uses-accepted li::before{content:"\2713";position:absolute;left:0;color:var(--trm-hauler);font-weight:700;}
.trm-uses-restricted li::before{content:"\2715";position:absolute;left:0;color:var(--trm-danger);font-weight:700;}

.trm-single-booking-card{background:var(--trm-canvas);border-radius:var(--trm-radius);padding:28px;}
.trm-single-booking-card .trm-wizard{margin:16px 0 0;box-shadow:none;}

@media (max-width:760px){
	.trm-single-hero{flex-direction:column;}
	.trm-single-cta-card{position:static;}
	.trm-single-uses{flex-direction:column;}
	.trm-single-booking-card{padding:18px;}
}

/* Mobile sticky "book now" bar - only shown on small screens, links straight
   to the booking wizard already on the page. */
.trm-mobile-book-bar{display:none;}
@media (max-width:760px){
	.trm-mobile-book-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--trm-surface);border-top:1px solid var(--trm-line);box-shadow:0 -6px 18px rgba(21,26,24,.08);padding:12px 16px;}
	.trm-mobile-book-bar .trm-mobile-book-price{font-weight:800;font-size:16px;color:var(--trm-steel-dark);}
	.trm-mobile-book-bar .trm-mobile-book-price small{display:block;font-weight:500;font-size:11px;color:var(--trm-ink-soft);}
	.trm-mobile-book-bar .trm-btn{flex-shrink:0;}
	.trm-single-trailer{padding-bottom:76px;}
}

/* ---------- Booking wizard ---------- */
.trm-wizard{max-width:760px;margin:20px auto;border:1px solid var(--trm-line);border-radius:var(--trm-radius);padding:24px;background:var(--trm-surface);box-shadow:var(--trm-shadow);}
.trm-wizard-steps-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.trm-step-dot{font-size:12px;padding:6px 12px;border-radius:20px;background:var(--trm-canvas);color:var(--trm-ink-soft);}
.trm-step-dot.active{background:var(--trm-steel);color:#fff;}
.trm-wizard-step label{display:block;margin-bottom:14px;font-size:14px;font-weight:600;color:var(--trm-ink);}
.trm-wizard-step input,.trm-wizard-step select,.trm-wizard-step textarea{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid var(--trm-line);border-radius:var(--trm-radius-sm);font-weight:400;box-sizing:border-box;font-size:14px;color:var(--trm-ink);background:var(--trm-surface);}
.trm-wizard-step input:focus,.trm-wizard-step select:focus,.trm-wizard-step textarea:focus{outline:2px solid var(--trm-signal);outline-offset:1px;border-color:var(--trm-signal);}
.trm-form-row{display:flex;gap:14px;}
.trm-form-row label{flex:1;}
.trm-wizard-actions{display:flex;justify-content:space-between;margin-top:20px;}
.trm-msg{font-size:13px;padding:8px;border-radius:var(--trm-radius-sm);}
.trm-msg.error{background:var(--trm-danger-soft);color:var(--trm-danger);}
.trm-msg.success{background:var(--trm-hauler-soft);color:var(--trm-hauler);}
.trm-extras-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.trm-extra-item{font-weight:400 !important;display:flex;align-items:center;gap:8px;}
.trm-extra-item input{width:auto;display:inline;margin:0;}
.trm-extra-item .description{color:var(--trm-ink-soft);font-size:12px;margin-left:6px;}
#trm-w-review table{width:100%;border-collapse:collapse;margin-bottom:14px;}
#trm-w-review td{padding:8px 4px;border-bottom:1px solid var(--trm-line);font-size:14px;}
#trm-w-review td.amount{text-align:right;}
#trm-w-review tr.total td{font-weight:700;font-size:16px;border-top:2px solid var(--trm-ink);}
.trm-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:16px;}
.trm-calendar-day{border:1px solid var(--trm-line);border-radius:var(--trm-radius-sm);padding:6px;min-height:60px;font-size:12px;}
.trm-calendar-day.booked{background:var(--trm-danger-soft);}
.trm-calendar-day.pending{background:#fff8e1;}
.trm-calendar-day.maintenance{background:#e8eaf6;}
.trm-calendar-day.reserved_fleet{background:#e0f2f1;}
.trm-calendar-day.holiday{background:#f3e5f5;}
.trm-calendar-legend{display:flex;gap:10px;margin-top:14px;font-size:12px;flex-wrap:wrap;}
.trm-legend{padding:3px 8px;border-radius:3px;}
.trm-legend.booked{background:var(--trm-danger-soft);}
.trm-legend.pending{background:#fff8e1;}
.trm-legend.maintenance{background:#e8eaf6;}
.trm-legend.reserved_fleet{background:#e0f2f1;}
.trm-legend.holiday{background:#f3e5f5;}
.trm-quote-form{max-width:600px;}

/* ---------- Trailer search: hero + type tiles + results ---------- */
.trm-search-hero{background:linear-gradient(135deg,var(--trm-steel-dark) 0%,var(--trm-steel) 100%);border-radius:var(--trm-radius);padding:40px 32px;margin-bottom:32px;}
.trm-search-hero-inner{max-width:900px;margin:0 auto;}
.trm-search-hero .trm-search-title{color:#fff;font-size:26px;font-weight:800;margin:0 0 6px;letter-spacing:-.01em;}
.trm-search-subtitle{color:#B7C2BC;font-size:14.5px;margin:0 0 26px;}

.trm-search-type-tiles{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;margin-bottom:20px;-webkit-overflow-scrolling:touch;}
.trm-type-tile{position:relative;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:8px;width:104px;padding:14px 8px 12px;border-radius:12px;background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.12);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease;}
.trm-type-tile input{position:absolute;opacity:0;width:1px;height:1px;}
.trm-type-tile-icon{color:#DCE3DE;width:40px;height:28px;display:flex;align-items:center;justify-content:center;}
.trm-type-tile-icon svg{width:100%;height:100%;}
.trm-type-tile-label{color:#DCE3DE;font-size:11.5px;font-weight:600;text-align:center;line-height:1.25;}
.trm-type-tile:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);}
.trm-type-tile.active,.trm-type-tile:has(input:checked){background:var(--trm-signal);border-color:var(--trm-signal);transform:translateY(-2px);}
.trm-type-tile.active .trm-type-tile-icon,.trm-type-tile:has(input:checked) .trm-type-tile-icon,
.trm-type-tile.active .trm-type-tile-label,.trm-type-tile:has(input:checked) .trm-type-tile-label{color:#fff;}

.trm-search-fields{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;background:var(--trm-surface);border-radius:12px;padding:18px;box-shadow:var(--trm-shadow);}
.trm-search-field{flex:1 1 150px;min-width:130px;}
.trm-search-field span{display:block;font-size:12px;font-weight:700;color:var(--trm-ink-soft);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;}
.trm-search-field input{width:100%;padding:10px 12px;border:1px solid var(--trm-line);border-radius:8px;font-size:14px;box-sizing:border-box;color:var(--trm-ink);}
.trm-search-field input:focus{outline:2px solid var(--trm-signal);outline-offset:1px;}
.trm-search-submit{flex:0 0 auto;padding:12px 26px;white-space:nowrap;}
.trm-search-submit svg{width:16px;height:16px;}

.trm-search-results{scroll-margin-top:20px;}
.trm-search-results-summary{margin:8px 0 20px;}
.trm-search-results-summary h3{font-size:20px;margin:0 0 4px;}
.trm-search-results-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--trm-ink-soft);margin:0;}
.trm-search-results-meta span{background:var(--trm-canvas);padding:4px 10px;border-radius:14px;}
.trm-search-empty{text-align:center;padding:50px 20px;color:var(--trm-ink-soft);}
.trm-search-empty svg{width:64px;height:auto;color:var(--trm-line);margin-bottom:14px;}
.trm-search-empty p{max-width:360px;margin:0 auto;font-size:14px;line-height:1.6;}
.trm-search-loading{text-align:center;padding:50px 20px;color:var(--trm-ink-soft);font-size:14px;}
.trm-search-loading .trm-spinner{width:26px;height:26px;border:3px solid var(--trm-line);border-top-color:var(--trm-signal);border-radius:50%;margin:0 auto 12px;animation:trm-spin .7s linear infinite;}
@keyframes trm-spin{to{transform:rotate(360deg);}}
#trm-search-results-inner{transition:opacity .15s ease;}
#trm-search-results-inner.trm-search-fetching{opacity:.45;}

@media (max-width:600px){
	.trm-search-hero{padding:26px 18px;}
	.trm-search-title{font-size:21px;}
	.trm-search-fields{flex-direction:column;align-items:stretch;}
	.trm-search-submit{width:100%;}
}
.trm-woo-price-note{font-style:italic;color:var(--trm-ink-soft);font-size:14px;}
.trm-woo-reserve{margin-top:20px;}
.trm-woo-debug-mode{background:#fff3cd;border:1px dashed #c99a00;color:#5c4400;padding:8px 12px;border-radius:var(--trm-radius-sm);font-size:12px;margin-bottom:12px;}
.trm-wizard-calendar{margin:14px 0;}
.trm-wcal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:5px;max-height:260px;overflow-y:auto;padding:4px;border:1px solid var(--trm-line);border-radius:var(--trm-radius-sm);}
.trm-wcal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--trm-line);border-radius:6px;padding:6px 2px;font-size:11px;cursor:pointer;background:var(--trm-canvas);user-select:none;}
.trm-wcal-day .trm-wcal-daynum{font-size:14px;font-weight:700;line-height:1.1;}
.trm-wcal-day .trm-wcal-month{color:var(--trm-ink-soft);text-transform:uppercase;}
.trm-wcal-day:hover:not(.trm-wcal-busy){border-color:var(--trm-signal);}
.trm-wcal-day.trm-wcal-busy{background:var(--trm-danger-soft);color:var(--trm-danger);cursor:not-allowed;opacity:0.7;}
.trm-wcal-day.trm-wcal-start,.trm-wcal-day.trm-wcal-end{background:var(--trm-signal);color:#fff;border-color:var(--trm-signal);}
.trm-wcal-day.trm-wcal-in-range{background:var(--trm-signal-soft);}
.trm-wizard-total-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;background:var(--trm-canvas);border:1px solid var(--trm-line);border-radius:var(--trm-radius-sm);padding:10px 16px;margin-bottom:18px;}
.trm-wizard-total-label{font-size:13px;text-transform:uppercase;letter-spacing:0.03em;color:var(--trm-ink-soft);font-weight:700;}
.trm-wizard-total-amount{font-size:20px;font-weight:700;color:var(--trm-steel-dark);}
.trm-wizard-rates{margin:10px 0;}
.trm-wizard-rate-text{font-weight:600;color:var(--trm-hauler);margin:6px 0;}
.trm-wizard-tiers{margin:10px 0 18px;}
.trm-tier-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.trm-tier-btn{padding:8px 14px;border:1px solid var(--trm-line);border-radius:20px;background:var(--trm-surface);color:var(--trm-ink);font-size:13px;cursor:pointer;}
.trm-tier-btn:hover{border-color:var(--trm-signal);color:var(--trm-signal);}
.trm-tier-btn.trm-tier-selected{background:var(--trm-signal);color:#fff;border-color:var(--trm-signal);}
.trm-use-tool{border:1px solid var(--trm-line);border-radius:var(--trm-radius-sm);padding:10px 14px;margin-bottom:16px;background:var(--trm-canvas);}
.trm-use-tool summary{cursor:pointer;font-weight:600;color:var(--trm-steel);}
.trm-use-tool-body{margin-top:12px;}
.trm-cargo-checks{display:flex;flex-wrap:wrap;gap:8px 16px;margin:8px 0 14px;font-weight:400;}
.trm-cargo-checks label{display:flex;align-items:center;gap:4px;font-weight:400;margin:0;}
.trm-cargo-checks input{width:auto;display:inline;margin:0;}
.trm-coupon-row{display:flex;align-items:flex-end;gap:10px;margin:16px 0 6px;}
.trm-coupon-row label{flex:1;margin-bottom:0;}
.trm-coverage-map-wrap{margin:20px 0;}
#trm-coverage-map{width:100%;border-radius:var(--trm-radius-sm);border:1px solid var(--trm-line);z-index:1;}
