/* =========================================================
   FAMRIDE Car Rental — Frontend Styles
   Dark theme with orange accent, matching the provided screenshots.
   ========================================================= */
:root{
	--fr-bg:#0c0c0d;
	--fr-bg-2:#151517;
	--fr-card:#1a1a1c;
	--fr-line:#2b2b2e;
	--fr-text:#f4f3f0;
	--fr-muted:#a3a19d;
	--fr-orange:#ff6a1a;
	--fr-orange-2:#ff8a45;
	--fr-green:#3ecf6a;
	--fr-red:#e5484d;
	--fr-radius:10px;
}
.famride-search-widget,
.famride-listing-widget,
.famride-detail-page,
.famride-checkout-page,
.famride-thankyou-page{
	font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
	color:var(--fr-text);
	box-sizing:border-box;
}
.famride-search-widget *,
.famride-listing-widget *,
.famride-detail-page *,
.famride-checkout-page *,
.famride-thankyou-page *{ box-sizing:border-box; }

/* ---------------- Search Widget ---------------- */
.famride-search-widget{ position:relative; background:var(--fr-bg); padding:20px; border-radius:var(--fr-radius); }
.fr-toggle-row{ display:flex; gap:8px; margin-bottom:14px; }
.fr-toggle{
	background:transparent; border:1px solid var(--fr-line); color:var(--fr-text);
	padding:9px 18px; border-radius:6px; font-size:13px; font-weight:600; cursor:pointer; transition:.2s;
}
.fr-toggle.active{ background:#fff; color:#111; border-color:#fff; }
.fr-toggle:not(.active):hover{ border-color:var(--fr-orange); }

.fr-fields-row{ display:flex; align-items:stretch; border:1px solid var(--fr-line); border-radius:8px; overflow:visible; background:var(--fr-bg); }
.fr-field{ position:relative; flex:1; display:flex; align-items:center; gap:10px; padding:12px 16px; border-right:1px solid var(--fr-line); cursor:pointer; min-width:0; }
.fr-field:last-of-type{ border-right:none; }
.fr-field:hover{ background:rgba(255,255,255,.02); }
.fr-field.fr-active{ background:rgba(255,106,26,.06); }
.fr-icon{ width:20px; height:20px; flex:0 0 20px; opacity:.8; background-size:contain; background-repeat:no-repeat; background-position:center; }
.fr-icon-pin{ background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8'%3E%3Cpath d='M12 22s7-7.58 7-12a7 7 0 1 0-14 0c0 4.42 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E"); }
.fr-icon-calendar{ background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E"); }
.fr-icon-clock{ background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E"); }
.fr-icon-search{ background-image:url("https://famridecarrental.royalnetworth.com/wp-content/uploads/2026/08/searchicon.svg"); width:22px; height:22px; }
.fr-field-text{ min-width:0; }
.fr-field-text strong{ display:block; font-size:14px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fr-field-sub{ display:block; font-size:12px; color:var(--fr-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fr-search-btn{ flex:0 0 60px; display:flex; align-items:center; justify-content:center; background:transparent; border:none; border-left:1px solid var(--fr-line); cursor:pointer; border-radius:0 8px 8px 0; transition:.2s; }
.fr-search-btn:hover{ background:rgba(255,255,255,.04); }
.fr-only-different{ display:none; }
.fr-only-different.fr-visible{ display:flex !important; }

/* Dropdown panels (locations / calendar / time) */
.fr-dropdown{
	display:none; position:absolute; top:calc(100% + 8px); left:0; z-index:60;
	background:var(--fr-bg); border:1px solid var(--fr-line); border-radius:12px;
	box-shadow:0 25px 50px rgba(0,0,0,.5); min-width:340px; max-width:420px; padding:10px 0;
}
.fr-field.fr-active .fr-dropdown{ display:block; }
.fr-dropdown-locations{ max-height:320px; overflow-y:auto; }
.fr-loc-item{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 18px; cursor:pointer; transition:.15s; }
.fr-loc-item:hover{ background:rgba(255,255,255,.04); }
.fr-loc-item .fr-loc-icon{ width:16px; height:16px; flex:0 0 16px; }
.fr-loc-name{ font-size:14px; font-weight:600; flex:1; }
.fr-loc-fee{ font-size:13px; color:var(--fr-muted); white-space:nowrap; }

/* Calendar */
.fr-dropdown-calendar{ min-width:600px; max-width:94vw; padding:18px; }
.fr-cal-legend{ display:flex; gap:18px; font-size:12px; color:var(--fr-muted); margin-bottom:14px; flex-wrap:wrap; }
.fr-cal-legend span{ display:inline-flex; align-items:center; gap:6px; }
.fr-cal-legend i{ width:16px; height:3px; border-radius:2px; display:inline-block; }
.fr-legend-available i{ background:var(--fr-green); }
.fr-legend-partial i{ background:#e5a83e; }
.fr-legend-unavailable i{ background:var(--fr-red); }
.fr-cal-months{ display:flex; gap:24px; }
.fr-cal-month{ flex:1; min-width:0; }
.fr-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-weight:700; font-size:14px; }
.fr-cal-nav{ background:none; border:none; color:var(--fr-text); cursor:pointer; font-size:16px; padding:4px 8px; }
.fr-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; text-align:center; }
.fr-cal-dow{ font-size:11px; color:var(--fr-muted); padding-bottom:6px; }
.fr-cal-day{ position:relative; padding:6px 0 10px; font-size:13px; cursor:pointer; border-radius:6px; }
.fr-cal-day:hover{ background:rgba(255,255,255,.06); }
.fr-cal-day::after{ content:""; position:absolute; left:15%; right:15%; bottom:2px; height:2px; border-radius:2px; background:var(--fr-green); }
.fr-cal-day.fr-status-partial::after{ background:#e5a83e; }
.fr-cal-day.fr-status-unavailable::after{ background:var(--fr-red); pointer-events:none; opacity:.5; }
.fr-cal-day.fr-status-unavailable{ color:#555; cursor:not-allowed; }
.fr-cal-day.fr-status-past{ color:#444; cursor:not-allowed; }
.fr-cal-day.fr-status-past::after{ display:none; }
.fr-cal-day.fr-status-past:hover{ background:transparent; }
.fr-cal-day.fr-empty{ visibility:hidden; }
.fr-cal-day.fr-selected{ background:var(--fr-orange); color:#111; font-weight:700; }
.fr-cal-day.fr-in-range{ background:rgba(255,106,26,.18); }
.fr-cal-save{ display:block; width:100%; margin-top:16px; padding:14px; background:#fff; color:#111; border:none; border-radius:8px; font-weight:700; font-size:14px; cursor:pointer; }
.fr-cal-save:hover{ background:var(--fr-orange-2); color:#fff; }

/* Time picker */
.fr-dropdown-time{ padding:18px; min-width:320px; }
.fr-time-cols{ display:flex; gap:20px; }
.fr-time-col{ flex:1; }
.fr-time-col-label{ font-weight:700; font-size:14px; margin-bottom:8px; display:block; }
.fr-time-list{ max-height:160px; overflow-y:auto; border:1px solid var(--fr-line); border-radius:6px; }
.fr-time-opt{ padding:9px 12px; font-size:13px; cursor:pointer; }
.fr-time-opt:hover{ background:rgba(255,255,255,.05); }
.fr-time-opt.fr-selected{ background:var(--fr-orange); color:#111; font-weight:700; }
.fr-time-save{ display:block; width:100%; margin-top:16px; padding:14px; background:#fff; color:#111; border:none; border-radius:8px; font-weight:700; font-size:14px; cursor:pointer; }
.fr-time-save:hover{ background:var(--fr-orange-2); color:#fff; }

/* ---------------- Listing Widget ---------------- */
.famride-listing-widget{ background:var(--fr-bg); padding:40px 0; }
.fr-listing-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom:26px; }
.fr-listing-title{ font-size:28px; font-weight:800; margin:0; }
.fr-filters{ display:flex; gap:12px; }
.fr-filter{ position:relative; }
.fr-filter-btn{ background:transparent; border:1px solid var(--fr-line); color:var(--fr-text); padding:10px 16px; border-radius:6px; font-size:13px; cursor:pointer; display:flex; align-items:center; gap:8px; }
.fr-filter-btn:hover{ border-color:var(--fr-orange); }
.fr-chev{ font-size:10px; opacity:.7; }
.fr-filter-panel{ display:none; position:absolute; top:calc(100% + 8px); right:0; z-index:40; background:var(--fr-bg); border:1px solid var(--fr-line); border-radius:10px; padding:16px; min-width:260px; box-shadow:0 20px 40px rgba(0,0,0,.5); }
.fr-filter.fr-open .fr-filter-panel{ display:block; }
.fr-checkbox-row{ display:flex; align-items:center; gap:10px; padding:8px 0; font-size:13px; cursor:pointer; }
.fr-select-all{ border-bottom:1px solid var(--fr-line); margin-bottom:6px; font-weight:700; }
.fr-filter-actions{ display:flex; justify-content:space-between; gap:10px; margin-top:12px; }
.fr-price-panel{ min-width:280px; }
.fr-price-slider{ position:relative; height:30px; margin:14px 0; }
.fr-price-slider input[type=range]{ position:absolute; width:100%; top:10px; pointer-events:none; -webkit-appearance:none; appearance:none; background:transparent; }
.fr-price-slider input[type=range]::-webkit-slider-runnable-track{ height:2px; background:#fff; }
.fr-price-slider input[type=range]::-moz-range-track{ height:2px; background:#fff; }
.fr-price-slider input[type=range]::-webkit-slider-thumb{ pointer-events:all; -webkit-appearance:none; appearance:none; width:16px; height:16px; border-radius:50%; background:#fff; border:none; cursor:pointer; margin-top:-7px; }
.fr-price-slider input[type=range]::-moz-range-thumb{ pointer-events:all; width:16px; height:16px; border-radius:50%; background:#fff; border:none; cursor:pointer; }
.fr-price-inputs{ display:flex; gap:12px; }
.fr-price-inputs label{ flex:1; font-size:11px; color:var(--fr-muted); }
.fr-price-inputs input{ width:100%; margin-top:4px; background:var(--fr-card); border:1px solid var(--fr-line); border-radius:6px; padding:8px; color:var(--fr-text); }

.fr-car-grid{ display:grid; gap:20px; }
.fr-columns-4{ grid-template-columns:repeat(4,1fr); }
.fr-columns-3{ grid-template-columns:repeat(3,1fr); }
.fr-columns-2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:980px){ .fr-columns-4,.fr-columns-3{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .fr-columns-4,.fr-columns-3,.fr-columns-2{ grid-template-columns:1fr; } }

.fr-car-card{ background:var(--fr-card); border:1px solid var(--fr-line); border-radius:12px; overflow:hidden; transition:border-color .25s; }
.fr-car-card:hover{ border-color:#3a3a3e; }
.fr-car-img{ display:block; height:170px; background-size:cover; background-position:center; background-color:#242428; position:relative; transition:transform .4s ease; }
.fr-car-card:hover .fr-car-img{ transform:scale(1.1); }
.fr-car-img-fallback{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:48px; }
.fr-car-body{ padding:18px; }
.fr-car-body h4{ margin:0 0 16px; padding-bottom:16px; font-size:19px; border-bottom:1px solid var(--fr-line); }
.fr-car-body h4 a{ color:var(--fr-text); text-decoration:none; }
.fr-car-card:hover h4 a{ text-decoration:underline; }
.fr-car-meta{ display:flex; justify-content:space-between; text-align:center; margin-bottom:22px; }
.fr-meta-item{ display:flex; flex-direction:column; align-items:center; gap:8px; font-size:13px; color:var(--fr-muted); flex:1; }
.fr-meta-item i{ width:22px; height:22px; display:inline-block; background-size:contain; background-repeat:no-repeat; background-position:center; opacity:.9; }
.fr-ic-seat{ background-image:url("https://famridecarrental.royalnetworth.com/wp-content/uploads/2026/08/seat.svg"); }
.fr-ic-door{ background-image:url("https://famridecarrental.royalnetworth.com/wp-content/uploads/2026/08/door.svg"); }
.fr-ic-color{ background-image:url("https://famridecarrental.royalnetworth.com/wp-content/uploads/2026/08/color.svg"); }
.fr-rent-btn{ display:block; text-align:center; padding:12px; border:1px solid var(--fr-line); border-radius:6px; color:var(--fr-text); text-decoration:none; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; transition:.2s; }
.fr-rent-btn:hover{ background:var(--fr-orange); border-color:var(--fr-orange); color:#111; }
.fr-view-more-wrap{ display:flex; justify-content:center; margin-top:32px; }
.fr-btn-outline{ background:transparent; border:1px solid var(--fr-line); color:var(--fr-text); padding:13px 28px; border-radius:6px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; transition:.2s; }
.fr-btn-outline:hover{ border-color:var(--fr-orange); color:var(--fr-orange-2); }
.fr-car-card.fr-hidden-extra{ display:none; }

/* ---------------- Detail Page ---------------- */
.famride-detail-page{ background:var(--fr-bg); padding:30px 0; max-width:1180px; margin:0 auto; }
.fr-back-link{ display:inline-flex; align-items:flex-start; gap:10px; color:var(--fr-text); text-decoration:none; margin-bottom:22px; }
.fr-back-link:hover{ color:var(--fr-text); }
.fr-back-arrow{ font-size:30px; line-height:1.1; font-weight:300; color:var(--fr-text); }
.fr-back-text{ display:flex; flex-direction:column; }
.fr-back-text strong{ font-size:19px; font-weight:800; line-height:1.2; }
.fr-back-sub{ font-weight:400; font-size:13px; color:var(--fr-muted); margin-top:2px; }
.fr-detail-title{ font-size:30px; margin:0 0 20px; }

.fr-gallery{ display:grid; grid-template-columns:1.6fr 1fr; gap:12px; margin-bottom:30px; height:340px; }
.fr-gallery-main{ position:relative; border-radius:12px; background-size:cover; background-position:center; background-color:#242428; cursor:pointer; }
.fr-show-all-photos{ position:absolute; left:14px; bottom:14px; background:rgba(255,255,255,.92); color:#111; border:none; border-radius:6px; padding:8px 14px; font-size:12.5px; font-weight:700; cursor:pointer; display:flex; gap:6px; align-items:center; }
.fr-ic-grid{ width:14px; height:14px; display:inline-block; background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E"); background-size:contain; background-repeat:no-repeat; background-position:center; }
.fr-gallery-thumbs{ display:grid; grid-template-rows:1fr 1fr; gap:12px; }
.fr-gallery-thumb{ border-radius:12px; background-size:cover; background-position:center; background-color:#242428; cursor:pointer; }
@media(max-width:820px){ .fr-gallery{ grid-template-columns:1fr; height:auto; } .fr-gallery-main{ height:260px; } .fr-gallery-thumbs{ grid-template-columns:1fr 1fr; grid-template-rows:none; height:120px; } }

.fr-lightbox{ position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9999; display:flex; align-items:center; justify-content:center; }
.fr-lightbox[hidden]{ display:none; }
.fr-lightbox-img{ max-width:88vw; max-height:86vh; border-radius:8px; }
.fr-lightbox-close{ position:absolute; top:22px; right:28px; background:none; border:none; color:#fff; font-size:32px; cursor:pointer; }
.fr-lightbox-arrow{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:none; color:#fff; font-size:34px; width:52px; height:52px; border-radius:50%; cursor:pointer; }
.fr-lightbox-prev{ left:26px; } .fr-lightbox-next{ right:26px; }
.fr-lightbox-arrow:hover{ background:rgba(255,255,255,.2); }

.fr-detail-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:26px; align-items:start; }
@media(max-width:900px){ .fr-detail-grid{ grid-template-columns:1fr; } }

.fr-box{ background:var(--fr-card); border:1px solid var(--fr-line); border-radius:12px; padding:22px; margin-bottom:20px; }
.fr-box h3{ margin:0 0 16px; font-size:17px; }
.fr-description-table{ width:100%; border-collapse:collapse; }
.fr-description-table td{ padding:9px 0; border-bottom:1px dashed var(--fr-line); font-size:13.5px; }
.fr-description-table td:first-child{ color:var(--fr-muted); letter-spacing:.05em; font-size:11.5px; }
.fr-description-table td:last-child{ text-align:right; font-weight:600; }

.fr-toggle-dropoff{ background:none; border:none; color:var(--fr-orange-2); font-size:12.5px; font-weight:700; cursor:pointer; padding:8px 0; text-align:left; }

.fr-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fr-form-grid input{ background:var(--fr-bg); border:1px solid var(--fr-line); border-radius:6px; padding:12px 14px; color:var(--fr-text); font-size:13.5px; width:100%; }
.fr-form-grid input:focus{ outline:none; border-color:var(--fr-orange); }
.fr-form-grid .fr-full{ grid-column:1/-1; }
@media(max-width:560px){ .fr-form-grid{ grid-template-columns:1fr; } }

/* Labeled field boxes (Renter Information) */
.fr-form-field{ border:1px solid var(--fr-line); border-radius:10px; padding:14px 16px; transition:border-color .2s; }
.fr-form-field:focus-within{ border-color:var(--fr-orange); }
.fr-form-field label{ display:block; font-size:13px; color:var(--fr-muted); margin-bottom:8px; }
.fr-form-field input{ background:transparent; border:none; padding:0; color:var(--fr-text); font-size:15px; width:100%; }
.fr-form-field input:focus{ outline:none; border:none; }

/* Phone input with country-code flag selector */
.fr-phone-input{ position:relative; display:flex; align-items:center; gap:10px; }
.fr-phone-flag-btn{ display:flex; align-items:center; gap:6px; background:none; border:none; cursor:pointer; padding:0; flex:0 0 auto; }
.fr-phone-flag{ width:22px; height:16px; border-radius:2px; overflow:hidden; display:inline-block; background-size:cover; background-position:center; }
.fr-phone-flag.fi{ width:22px; height:16px; }
.fr-phone-caret{ font-size:10px; color:var(--fr-muted); }
.fr-phone-dialcode{ font-size:15px; color:var(--fr-text); flex:0 0 auto; }
.fr-phone-number{ flex:1; min-width:0; }

.fr-phone-country-list{
	display:none; position:absolute; top:calc(100% + 10px); left:0; z-index:70;
	background:var(--fr-bg); border:1px solid var(--fr-line); border-radius:10px;
	width:280px; max-width:90vw; box-shadow:0 25px 50px rgba(0,0,0,.5); padding:10px 0;
}
.fr-phone-country-list.fr-open{ display:block; }
.fr-country-search{ display:block; width:calc(100% - 24px); margin:0 12px 8px; background:var(--fr-card); border:1px solid var(--fr-line); border-radius:6px; padding:9px 12px; color:var(--fr-text); font-size:13px; }
.fr-country-search:focus{ outline:none; border-color:var(--fr-orange); }
.fr-phone-country-list ul{ list-style:none; margin:0; padding:0; max-height:260px; overflow-y:auto; }
.fr-phone-country-list li{ display:flex; align-items:center; gap:10px; padding:9px 16px; cursor:pointer; font-size:13px; }
.fr-phone-country-list li:hover{ background:rgba(255,255,255,.05); }
.fr-phone-country-list li .fi{ width:20px; height:14px; flex:0 0 20px; }
.fr-phone-country-list li .fr-country-name{ flex:1; color:var(--fr-text); }
.fr-phone-country-list li .fr-country-dial{ color:var(--fr-muted); font-size:12px; }

.fr-insurance-card{ position:relative; display:flex; flex-direction:column; border:1px solid var(--fr-line); border-radius:10px; padding:16px; margin-bottom:14px; cursor:pointer; transition:border-color .2s; max-width:100%; overflow:hidden; }
.fr-insurance-card:last-child{ margin-bottom:0; }
.fr-insurance-real{ position:absolute; opacity:0; width:0; height:0; }
.fr-insurance-top{ display:flex; align-items:flex-start; width:100%; }
.fr-insurance-check{ width:28px; height:28px; border-radius:7px; border:1px solid var(--fr-line); display:flex; align-items:center; justify-content:center; flex:0 0 28px; margin-right:16px; transition:.2s; }
.fr-insurance-check svg{ width:18px; height:18px; visibility:hidden; color:var(--fr-orange); }
.fr-insurance-real:checked ~ .fr-insurance-top .fr-insurance-check{ border-color:var(--fr-orange); background:rgba(255,106,26,.15); }
.fr-insurance-real:checked ~ .fr-insurance-top .fr-insurance-check svg{ visibility:visible; }
.fr-insurance-body{ flex:1; min-width:0; }
.fr-insurance-body h4{ margin:0 0 8px; font-size:17px; font-weight:700; }
.fr-insurance-note{ font-size:13.5px; color:var(--fr-muted); margin:0; line-height:1.6; }
.fr-insurance-note.fr-note-red{ color:#ef4444; font-weight:600; }
.fr-insurance-note a{ color:#5b9dff; text-decoration:none; }
.fr-insurance-note a:hover{ text-decoration:underline; }
.fr-insurance-price-row{ width:100%; display:flex; justify-content:flex-end; align-items:baseline; margin-top:16px; }
.fr-price-big{ font-size:22px; font-weight:800; }
.fr-price-unit{ color:var(--fr-muted); font-size:15px; margin-left:2px; }

.fr-summary-box{ position:sticky; top:20px; }

.fr-box h3.fr-heading-lg{ font-size:26px; font-weight:800; margin:0 0 20px; }
.fr-box h3.fr-heading-medium{ font-size:19px; font-weight:600; margin-bottom:6px; }

.fr-bd-timeline{ display:flex; gap:16px; margin-bottom:28px; }
.fr-bd-line-col{ display:flex; flex-direction:column; align-items:center; flex:0 0 auto; padding:2px 0; }
.fr-bd-dot{ width:22px; height:22px; border-radius:50%; border:1px solid var(--fr-line); flex:0 0 22px; }
.fr-bd-connector{ flex:1; width:0; border-left:1px dashed var(--fr-line); margin:6px 0; min-height:54px; }
.fr-bd-text-col{ display:flex; flex-direction:column; justify-content:space-between; flex:1; min-width:0; }
.fr-bd-entry{ display:flex; flex-direction:column; gap:4px; font-size:13.5px; }
.fr-bd-label{ color:var(--fr-muted); }
.fr-bd-value{ font-weight:700; }

.fr-bill-note{ font-size:13px; color:var(--fr-muted); margin:0 0 16px; }

.fr-summary-inner-box{ border:1px solid var(--fr-line); border-radius:14px; padding:22px; margin-bottom:18px; }
.fr-summary-title-lg{ font-size:19px; font-weight:800; margin:0 0 20px; letter-spacing:-.01em; }

.fr-summary-title{ font-weight:700; margin-bottom:4px; }

.fr-line-item{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:10px 0; }
.fr-line-item-left{ flex:1; min-width:0; }
.fr-line-item-title{ font-weight:700; font-size:14.5px; margin:0 0 3px; }
.fr-line-item-sub{ font-size:13px; color:var(--fr-muted); margin:0; }
.fr-line-item-price{ font-weight:700; font-size:14.5px; white-space:nowrap; }
.fr-line{ display:flex; justify-content:space-between; align-items:flex-start; font-size:14px; padding:9px 0; gap:10px; }
.fr-line small{ color:var(--fr-muted); }
.fr-discount span:last-child{ color:var(--fr-red); font-weight:700; }
.fr-total{ font-size:17px; padding:12px 0; }
.fr-total strong:last-child{ font-size:20px; }
.fr-deposit{ color:var(--fr-muted); font-size:12.5px; }
.fr-deposit span:last-child{ color:var(--fr-text); font-weight:800; font-size:18px; }
.fr-summary-lines hr{ border:none; border-top:1px solid var(--fr-line); margin:14px 0; }

.fr-btn-pay-outline{ display:block; width:100%; text-align:center; background:transparent; color:var(--fr-text); border:1px solid #fff; padding:15px; border-radius:6px; font-weight:600; font-size:14.5px; cursor:pointer; margin-top:4px; text-decoration:none; transition:.2s; }
.fr-btn-pay-outline:hover{ background:#fff; color:#121212; }
.fr-btn-pay-outline:disabled{ opacity:.5; cursor:not-allowed; }

.fr-btn-primary{ display:block; width:100%; text-align:center; background:var(--fr-orange); color:#111; border:none; padding:15px; border-radius:8px; font-weight:800; font-size:14px; cursor:pointer; margin-top:18px; text-decoration:none; transition:.2s; }
.fr-btn-primary:hover{ background:var(--fr-orange-2); }
.fr-btn-primary:disabled{ opacity:.5; cursor:not-allowed; }

/* ---------------- Checkout Page ---------------- */
.famride-checkout-page{ background:var(--fr-bg); padding:30px 0; max-width:800px; margin:0 auto; }

.fr-checkout-summary-top{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; min-width:0; }
.fr-checkout-summary-top > *{ min-width:0; }
.fr-checkout-img-col{ border-radius:8px; overflow:hidden; }
.fr-checkout-car-img{ width:100%; height:100%; min-height:140px; object-fit:cover; display:block; background:#242428; }
.fr-checkout-trip-info{ display:flex; flex-direction:column; gap:20px; justify-content:center; min-width:0; }
.fr-checkout-trip-title{ font-weight:800; font-size:16px; margin:0 0 4px; }
.fr-checkout-trip-loc{ margin:0 0 6px; font-size:13.5px; color:var(--fr-text); word-break:break-word; }
.fr-checkout-trip-datetime{ display:flex; justify-content:space-between; gap:10px; font-size:13px; color:var(--fr-muted); max-width:260px; }
@media(max-width:640px){ .fr-checkout-summary-top{ grid-template-columns:1fr; } .fr-checkout-trip-datetime{ max-width:none; } }

/* Terms & Conditions item cards */
.fr-tc-card{ position:relative; display:flex; align-items:flex-start; gap:14px; border:1px solid var(--fr-line); border-radius:10px; padding:16px; margin-top:14px; cursor:pointer; }
.fr-tc-card:first-of-type{ margin-top:18px; }
.fr-tc-real{ position:absolute; opacity:0; width:0; height:0; }
.fr-tc-check{ width:28px; height:28px; border-radius:7px; border:1px solid var(--fr-line); display:flex; align-items:center; justify-content:center; flex:0 0 28px; transition:.2s; }
.fr-tc-check svg{ width:18px; height:18px; visibility:hidden; color:var(--fr-orange); }
.fr-tc-real:checked ~ .fr-tc-check{ border-color:var(--fr-orange); background:rgba(255,106,26,.15); }
.fr-tc-real:checked ~ .fr-tc-check svg{ visibility:visible; }
.fr-tc-body{ flex:1; display:block; font-size:14.5px; line-height:1.6; }
.fr-tc-copy{ display:block; color:var(--fr-text); }
.fr-tc-link{ display:inline-block; margin-top:6px; font-weight:700; text-decoration:underline; color:var(--fr-text); }
.fr-tc-link:hover{ color:var(--fr-orange-2); }
.fr-tc-amp{ margin:0 4px; font-weight:700; }
.fr-tc-card-accept{ background:transparent; }
.fr-tc-accept-title{ display:block; margin-bottom:4px; font-size:14.5px; }
.fr-tc-accept-sub{ display:block; font-size:13px; color:var(--fr-muted); }

/* Combined Summary + Billing + Payment card */
.fr-checkout-lower .fr-summary-inner-box{ margin-bottom:0; }
.fr-checkout-section{ margin-top:32px; padding-top:0; }
.fr-checkout-section-divider{ margin-top:32px; padding-top:28px; border-top:1px solid var(--fr-line); }
.fr-checkout-section-heading{ display:block; font-size:16px; font-weight:600; color:var(--fr-text); margin-bottom:16px; }

.fr-promo-row{ display:flex; gap:10px; margin-top:18px; }
.fr-promo-row input{ flex:1; background:var(--fr-bg) !important; border:1px solid var(--fr-line) !important; border-radius:6px; padding:12px; color:var(--fr-text) !important; box-shadow:none !important; }
.fr-btn-promo-apply{ background:#fff !important; color:#111 !important; border:none !important; box-shadow:none !important; padding:0 22px; border-radius:6px; font-weight:700; font-size:13.5px; cursor:pointer; transition:.2s; }
.fr-btn-promo-apply:hover{ background:#e6e6e6 !important; }

.fr-stripe-element{ background:var(--fr-bg); border:1px solid var(--fr-line); border-radius:8px; padding:14px; margin-bottom:12px; }
.fr-stripe-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fr-stripe-half{ margin-bottom:6px; }
.fr-stripe-errors{ color:var(--fr-red); font-size:12.5px; min-height:18px; margin-bottom:6px; }

.fr-checkout-lower .fr-pay-now{ margin-top:32px; }

/* ---------------- Thank You ---------------- */
.famride-thankyou-page{ text-align:center; padding:60px 20px; max-width:520px; margin:0 auto; }
.fr-thankyou-icon{ width:64px; height:64px; border-radius:50%; background:var(--fr-green); color:#fff; font-size:32px; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.fr-thankyou-box{ text-align:left; margin:24px 0; }

/* Misc */
.famride-notice{ background:var(--fr-card); border:1px solid var(--fr-line); padding:20px; border-radius:8px; color:var(--fr-text); }

/* ---------------- Progressive reveal (Detail page) ---------------- */
.fr-field[data-progressive]{ display:none; }
.fr-field[data-progressive].fr-show{ display:flex; }
.fr-block-progressive{ display:none; }
.fr-block-progressive.fr-show{ display:block; }

/* ---------------- Leave-page confirmation modal ---------------- */
.fr-leave-modal{ position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:9998; display:flex; align-items:center; justify-content:center; padding:20px; }
.fr-leave-modal[hidden]{ display:none; }
.fr-leave-modal-box{ background:#141416 !important; border:1px solid var(--fr-line) !important; border-radius:12px; padding:0; max-width:460px; width:100%; position:relative; overflow:hidden; }
.fr-leave-modal-box h3{ margin:0; font-size:20px; font-weight:800; text-align:center; padding:22px 26px 20px; border-bottom:1px solid var(--fr-line) !important; }
.fr-leave-modal-box p{ color:var(--fr-muted) !important; font-size:14px; margin:0; padding:22px 26px 4px; line-height:1.6; }
.fr-leave-close{ position:absolute !important; top:16px !important; left:18px !important; right:auto !important; background:none !important; border:none !important; box-shadow:none !important; color:var(--fr-muted) !important; font-size:22px; line-height:1; cursor:pointer; padding:4px !important; border-radius:0 !important; }
.fr-leave-close:hover{ color:var(--fr-text) !important; }
.fr-leave-actions{ display:flex; justify-content:flex-end; gap:12px; padding:22px 26px 26px; }
.fr-leave-actions .fr-btn-outline{ background:transparent !important; border:1px solid var(--fr-line) !important; color:var(--fr-text) !important; box-shadow:none !important; }
.fr-leave-actions .fr-btn-outline:hover{ border-color:#fff !important; color:#fff !important; background:transparent !important; }
.fr-btn-leave{ background:#e5484d !important; color:#fff !important; border:1px solid #e5484d !important; box-shadow:none !important; padding:11px 26px; border-radius:6px; font-weight:700; font-size:14px; cursor:pointer; transition:.2s; }
.fr-btn-leave:hover{ background:#c93c40 !important; border-color:#c93c40 !important; }

/* =========================================================
   Detail page — prevent grid/table content from overflowing
   the viewport on mobile (min-content width fix). Safe on desktop too.
   ========================================================= */
.famride-detail-page{ overflow-x:hidden; }
.fr-detail-grid > *{ min-width:0; }
.fr-form-grid > *{ min-width:0; }
.fr-line-item,
.fr-line,
.fr-bd-entry,
.fr-bd-text-col,
.fr-checkout-trip-datetime,
.fr-insurance-top,
.fr-insurance-body,
.fr-tc-card,
.fr-tc-body,
.fr-description-table td{ min-width:0; }
.fr-description-table{ table-layout:fixed; }
.fr-description-table td{ word-break:break-word; }
.fr-line-item-title, .fr-line-item-sub, .fr-tc-copy, .fr-insurance-note{ word-break:break-word; }

@media(max-width:640px){
	.famride-detail-page{ padding-left:14px; padding-right:14px; }
	.famride-checkout-page{ padding-left:14px; padding-right:14px; }
	.fr-summary-box{ position:static; top:auto; }
	.fr-stripe-row{ grid-template-columns:1fr; }
	.fr-line-item{ flex-wrap:wrap; }
	.fr-line-item-price{ margin-left:auto; }
}

/* =========================================================
   MOBILE — Search Widget only (desktop layout untouched above)
   ========================================================= */
.fr-search-btn-text{ display:none; }

@media(max-width:640px){
	.fr-search-widget{ padding:16px; }

	.fr-toggle-row{
		background:#161c26; border-radius:14px; padding:6px; gap:0; margin-bottom:16px;
	}
	.fr-toggle{
		flex:1; border:none; background:transparent; color:#fff;
		padding:14px 8px; border-radius:10px; font-size:13.5px; font-weight:600; text-align:center;
	}
	.fr-toggle.active{ background:#fff; color:#111; }

	.fr-fields-row{
		flex-direction:column; border:none; background:transparent; gap:12px;
	}
	.fr-field{
		border:1px solid var(--fr-line); border-radius:12px; padding:16px; width:100%;
	}
	.fr-field:hover{ background:transparent; }
	.fr-field:last-of-type{ border:1px solid var(--fr-line); }

	.fr-search-btn{
		flex:none; width:100%; border:1px solid #fff; border-left:1px solid #fff;
		border-radius:12px; padding:18px; background:transparent; gap:10px;
	}
	.fr-search-btn:hover{ background:rgba(255,255,255,.08); }
	.fr-search-btn .fr-icon-search{ display:none; }
	.fr-search-btn-text{ display:inline-block; color:#fff; font-weight:800; font-size:15.5px; }

	.fr-dropdown-calendar{ min-width:0; width:92vw; left:50%; transform:translateX(-50%); }
	.fr-cal-months{ flex-direction:column; gap:20px; }
	.fr-dropdown-locations,
	.fr-dropdown-time{ min-width:0; width:92vw; left:50%; transform:translateX(-50%); }
}
