/* Shared Quảng Thuận palette. Legacy teal tokens remain compatible with page styles. */
:root {
    --brand-red: #c8202f;
    --brand-red-dark: #a71926;
    --ink: #202024;
    --muted: #626269;
    --teal: var(--brand-red);
    --teal-dark: var(--brand-red-dark);
    --line: #e4e4e7;
    --soft: #f7f7f8;
    --shadow: 0 14px 40px #18181b12;
}
::selection { background: #c8202f; color: #fff; }
.topbar { background: #202024; color: #fff; }
.site-header { border-bottom: 1px solid var(--line); }
.button { background: var(--brand-red); color: #fff; border-color: var(--brand-red); }
.button:is(:hover, :active, :focus-visible) { background: var(--brand-red-dark); color: #fff; border-color: var(--brand-red-dark); }
.button:is(.white, .secondary) { background: #fff; color: var(--brand-red); border-color: #e3bdc1; }
.button:is(.white, .secondary):is(:hover, :active, :focus-visible) { background: var(--ink); color: #fff; border-color: var(--ink); }
button, .button, .contact-chip, .circle-button { transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
button:not(:disabled):is(:hover, :focus-visible), .contact-links .contact-chip:is(:hover, :focus-visible), .circle-button:is(:hover, :focus-visible) { background-color: var(--brand-red-dark); color: #fff; border-color: var(--brand-red-dark); }
button:disabled, .button[aria-disabled=true] { opacity: .5; cursor: not-allowed; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--brand-red); outline-offset: 4px; }
input, select, textarea { accent-color: var(--brand-red); }
.assistant-banner { background: #fff5f5; border-color: #f0d5d8; }
.destination-icon, .destination-arrow, .service-icon, .circle-button { background: #fff0f1; color: var(--brand-red); }
.destination-visual { background: linear-gradient(135deg,#fff0f1,#e9b7bd); }
.destination-theme-1, .destination-theme-3 { background: linear-gradient(135deg,#f4f4f5,#bcbcc3); }
.destination-theme-2 { background: linear-gradient(135deg,#ffe8eb,#dc939d); }
.destination-card:is(:hover,:focus-visible), .service-card:is(:hover,:focus-within) { border-color: var(--brand-red); box-shadow: 0 14px 32px #c8202f14; }
.contact-dock summary, .home-slide-controls button, .floating-call { background: var(--brand-red); color: #fff; }
.contact-dock summary:hover, .floating-call:hover { background: var(--brand-red-dark); }
.mobile-booking-bar a:first-child { background: #fff0f1; color: var(--brand-red); }
.mobile-booking-bar a:hover { background: var(--brand-red-dark); color: #fff; }
.sidebar nav a:is(:hover,.active), .admin-quick-filters a[aria-current=page] { background: var(--brand-red); color: #fff; }
@media (prefers-reduced-motion: reduce) {
    button, .button, .contact-chip, .circle-button { transition: none; }
}

/* Wide logo and a readable self-drive storefront. */
.nav .brand-logo,.sidebar .brand-logo,.footer-grid .brand-logo{width:110px;height:58px;object-fit:contain;border-radius:8px}
.brand-name,.nav .brand-name,.sidebar .brand-name,.footer-grid .brand-name{font-family:'Be Vietnam Pro',sans-serif;font-size:18px;letter-spacing:-.5px;color:var(--ink);font-weight:800}
.brand-name small{color:var(--brand-red);font-size:10px;letter-spacing:5px;font-weight:700}
.self-drive-highlight{background:linear-gradient(180deg,#fff,#fff6f6);border-bottom:1px solid #f0d5d8}
.self-drive-highlight h1{font-size:clamp(28px,3vw,42px);margin-bottom:14px}
.self-drive-highlight .section-heading p{max-width:680px}
.vehicle-card{display:flex;flex-direction:column;container-type:inline-size}.vehicle-card .card-body{display:flex;flex-direction:column;flex:1}.vehicle-card .card-bottom{align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:10px;background:#fff5f5;border-radius:12px;padding:12px;margin-top:auto}.vehicle-card .rental-price{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.vehicle-card .card-bottom .button{flex-shrink:0;padding:10px 12px;font-size:13px}
.vehicle-card .card-bottom strong{font-size:20px;line-height:1.25;color:var(--brand-red);font-variant-numeric:tabular-nums}
.vehicle-card .card-bottom small{font-size:12px;margin:0;color:var(--muted)}
.vehicle-card .specs{gap:8px;margin-bottom:12px}
.vehicle-card .specs span{background:var(--soft);border:1px solid var(--line);padding:5px 9px;border-radius:6px;font-size:12px}
.rental-price-note{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:24px}
.rental-price-note p{margin:0;font-size:14px;max-width:800px}
@media(max-width:1100px){.nav .brand-logo{width:86px}.nav .brand-name{font-size:15px}}
@media(max-width:600px){.nav .brand-logo{width:88px;height:48px}.nav .brand-name{font-size:16px}.self-drive-highlight .section-heading{align-items:stretch;flex-direction:column}.rental-price-note{flex-direction:column;align-items:start}.vehicle-card .card-bottom strong{font-size:20px}}

/* Quiet neutral surfaces, red accents, and clear vehicle specifications. */
.self-drive-highlight{background:linear-gradient(180deg,#fff,#f7f7f8);border-bottom-color:var(--line)}
.assistant-banner{background:#faf8f8;border-color:#eadfe0}
.vehicle-card{box-shadow:0 4px 18px #20202406}
.vehicle-card .card-bottom{background:#fafafa;border:1px solid #ececee}
.vehicle-card .specs span,.spec-pills span{background:#fff3f4;color:#8f1927;border:1px solid #efd1d6;border-radius:8px;padding:7px 11px;font-size:13px;font-weight:600;line-height:1.5}
.spec-pills{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.booking-aside{border-top:3px solid var(--brand-red);box-shadow:0 12px 36px #2020240a}
.booking-aside .price-large{font-size:24px;line-height:1.4;color:var(--brand-red);font-weight:700}
.booking-aside .price-large small{font-size:13px;color:var(--muted);font-weight:400}
.journey-banner{background:linear-gradient(120deg,#242428,#3c2429)}
.gallery-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}
.gallery-controls button{border:1px solid var(--line);background:white;color:var(--ink);padding:8px 14px;min-height:42px;font-size:13px}
.gallery-controls [data-gallery-counter]{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.gallery-controls [aria-pressed=true]{background:var(--ink);color:#fff}
.vehicle-gallery .detail-photo{aspect-ratio:16/10;object-fit:contain;background:#f5f5f6;width:100%;height:auto;border:1px solid var(--line)}
.gallery-thumbs button[aria-pressed=true]{box-shadow:0 0 0 2px #c8202f20}
@media(max-width:600px){.booking-aside .price-large{font-size:22px}.vehicle-card .specs span{font-size:12px;padding:6px 9px}}

/* Keep the booking row compact inside narrow cards, including tablet columns. */
@container (max-width:330px){.vehicle-card .card-body{padding:16px}.vehicle-card .card-bottom{padding:10px 8px;gap:6px}.vehicle-card .card-bottom strong{font-size:17px}.vehicle-card .card-bottom small{font-size:11px}.vehicle-card .card-bottom .button{padding:10px 8px;font-size:12px}}

.rental-price-group{min-width:0}.rental-old-price{display:block;font-size:12px;line-height:1.4;color:var(--muted);font-weight:400;text-decoration-thickness:1px;margin-bottom:4px}.vehicle-card .rental-price-group .rental-price{gap:4px}.summary-row .rental-old-price{text-align:right}

/* Rental browsing and mobile booking share the compact search-form language. */
.rental-quick-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}
.rental-quick-filters a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid #e4e4e7;border-radius:999px;background:#fff;font-size:14px;font-weight:600;transition:background .2s,color .2s,border-color .2s}
.rental-quick-filters a:hover,.rental-quick-filters a[aria-current=true]{background:var(--brand-red);border-color:var(--brand-red);color:#fff}
@media(max-width:700px){
.rental-quick-filters{gap:8px}.rental-quick-filters a{font-size:13px;padding:9px 14px}
#booking-form>.form-card,.rental-filter-form{padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 10px 32px #20202408}
#booking-form .booking-step-nav{margin-bottom:24px;gap:4px}
#booking-form .booking-step-nav li{font-size:11px;padding:10px 4px}
#booking-form h2{font-size:20px;margin-bottom:20px}
#booking-form [data-booking-step="0"] .form-grid{gap:20px}
#booking-form [data-booking-step="0"] label,.rental-filter-form label{gap:5px;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.4px}
#booking-form [data-booking-step="0"] input,#booking-form [data-booking-step="0"] select,.rental-filter-form input,.rental-filter-form select{border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;padding:8px 0;min-height:46px;font-size:16px;color:var(--ink);width:100%;min-width:0;max-width:100%}
#booking-form [data-booking-step="0"] select,.rental-filter-form select{color:var(--brand-red)}
#booking-form input[type=datetime-local]::-webkit-date-and-time-value{min-height:24px;text-align:left}
#booking-form .booking-step-actions{margin-top:24px;padding-top:18px}
#booking-form .booking-step-actions .button,.rental-filter-form>.button{min-height:50px;border-radius:10px;width:100%;font-size:15px}
.rental-filter-form{display:flex;flex-direction:column;align-items:stretch;gap:18px}.rental-filter-form label{flex-basis:auto;min-width:0}
}

.vehicle-detail-gallery{grid-column:1;grid-row:1;min-width:0}
.vehicle-detail-overview{grid-column:1;grid-row:2;min-width:0}
.vehicle-detail-overview .spec-pills{margin-bottom:0}
.vehicle-detail-description{grid-column:1;grid-row:3;min-width:0}
.vehicle-detail-layout>.booking-aside{grid-column:2;grid-row:1 / span 3;align-self:start}
.selected-booking-car{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px;margin-bottom:24px;background:#fff7f7;border:1px solid #f0d5d8;border-radius:14px}
.selected-booking-car strong{font-size:16px}
@media(max-width:900px){
.vehicle-detail-layout{grid-template-columns:minmax(0,1fr);gap:24px}
.vehicle-detail-layout>.vehicle-detail-gallery{grid-column:1;grid-row:1}
.vehicle-detail-layout>.vehicle-detail-overview{grid-column:1;grid-row:2}
.vehicle-detail-layout>.booking-aside{grid-column:1;grid-row:3;position:static}
.vehicle-detail-layout>.vehicle-detail-description{grid-column:1;grid-row:4}
}

.rental-topic-links{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 24px}.rental-topic-links a{padding:12px 16px;border:1px solid #e5d8d8;border-radius:12px;background:#fff;color:#a81524;font-weight:650}.rental-topic-links a:hover{background:#fff1f2;border-color:#c51d2b}.rental-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.rental-policy-grid article{padding:24px;background:#fff;border:1px solid #eee;border-radius:16px}.rental-policy-grid h3{font-size:18px;color:#a81524}.preserve-lines{white-space:pre-line}.rental-faq{padding:18px;border-bottom:1px solid #ddd}.rental-faq summary{cursor:pointer;font-weight:700}.rental-mobile-actions{display:none}
@media(max-width:700px){.rental-policy-grid{grid-template-columns:1fr}.rental-topic-links a{font-size:13px}}

/* A quiet footer with distinct navigation and contact columns. */
.site-footer{background:#f8f8fa;border-top:1px solid #e7e7eb;padding-top:52px}
footer .managed-footer-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.05fr);gap:36px;align-items:start}
footer .managed-footer-grid>div,footer .managed-footer-grid>div:first-child,footer .managed-footer-grid>div:last-child{min-width:0;grid-column:auto}
.site-footer .brand{display:flex;align-items:flex-start;flex-direction:column;gap:16px;white-space:normal;font-family:'Be Vietnam Pro',sans-serif;font-size:21px;letter-spacing:-.5px;line-height:1.45;color:var(--ink)}
.site-footer .brand-logo{width:120px;height:64px;background:#fff;border:1px solid #e7e7eb;border-radius:12px;padding:5px}
.site-footer .footer-grid h4{font-family:'Manrope','Be Vietnam Pro',sans-serif;font-size:15px;font-weight:800;letter-spacing:0;line-height:1.5;margin:0 0 16px;color:var(--ink)}
.site-footer .footer-grid p{font-size:13px;line-height:1.85;color:var(--muted);margin:16px 0 0}
.site-footer .footer-grid a:not(.brand){overflow-wrap:anywhere}
.site-footer .footer-grid>div>a:not(.brand),.site-footer .footer-rental-info a{display:block;font-size:13px;color:var(--muted);line-height:1.6;padding:8px 0;margin:0;text-decoration:none}
.site-footer .footer-grid a:not(.brand):hover{color:var(--brand-red);text-decoration:none}
.site-footer .footer-contact{padding:22px;background:#fff;border:1px solid #e7e7eb;border-top:3px solid var(--brand-red);border-radius:16px;box-shadow:0 6px 20px #20202404}
.site-footer .contact-links{display:flex;flex-wrap:wrap;gap:8px}
.site-footer .contact-chip{font-size:13px;min-height:42px;border-radius:9px;max-width:100%;padding:9px 11px}
.site-footer .contact-chip[href^="tel:"]{width:100%;justify-content:flex-start;font-weight:700;color:var(--brand-red);background:#fff5f5;border-color:#f0d5d8}
.site-footer .contact-chip:hover{background:#fff0f1;color:var(--brand-red)}
.site-footer .footer-map{height:180px;border:1px solid #e7e7eb;border-radius:12px}
.site-footer .footer-bottom{border-top:1px solid #e1e1e6;margin-top:36px;gap:16px;font-size:11px;line-height:1.7}
.footer-rental-info{margin:0}
.rental-policies [id],.prose h2[id]{scroll-margin-top:100px}
@media(max-width:1050px){footer .managed-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}}
@media(max-width:600px){.site-footer{padding-top:32px}footer .managed-footer-grid{grid-template-columns:minmax(0,1fr);gap:24px}.site-footer .brand{flex-direction:row;align-items:center;font-size:19px;gap:14px}.site-footer .brand-logo{width:96px;height:58px;flex-shrink:0}.site-footer .managed-footer-grid>div+div{border-top:1px solid #e1e1e6;padding-top:24px}.site-footer .managed-footer-grid>.footer-contact{padding:20px;border-top:3px solid var(--brand-red)}.site-footer .footer-grid>div>a:not(.brand),.site-footer .footer-rental-info a{min-height:44px;display:flex;align-items:center}.site-footer .footer-grid h4{margin-bottom:10px}.site-footer .footer-bottom{margin-top:28px}}

/* Animated underline for footer navigation; keyboard focus gets the same cue. */
.site-footer .footer-grid>div>a:not(.brand),.site-footer .footer-rental-info a{position:relative;width:fit-content;max-width:100%}
.site-footer .footer-grid>div>a:not(.brand)::after,.site-footer .footer-rental-info a::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:2px;background:var(--brand-red);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;pointer-events:none}
.site-footer .footer-grid>div>a:not(.brand):is(:hover,:focus-visible),.site-footer .footer-rental-info a:is(:hover,:focus-visible){text-decoration:none;color:var(--brand-red)}
.site-footer .footer-grid>div>a:not(.brand):is(:hover,:focus-visible)::after,.site-footer .footer-rental-info a:is(:hover,:focus-visible)::after{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){.site-footer .footer-grid>div>a:not(.brand)::after,.site-footer .footer-rental-info a::after{transition:none}}

/* Shared underline motion for text links and linked service titles. */
a.text-link,a.driver-outline,.language-switch a,.service-card-link h2,.site-footer .contact-chip{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 2px;background-position:left bottom;transition:background-size .25s ease,color .2s ease}
a.text-link,a.driver-outline,.language-switch a,.service-card-link h2{ text-decoration:none }
a.text-link:is(:hover,:focus-visible),a.driver-outline:is(:hover,:focus-visible),.language-switch a:is(:hover,:focus-visible),.service-card-link:is(:hover,:focus-visible) h2,.site-footer .contact-chip:is(:hover,:focus-visible){background-size:100% 2px;text-decoration:none}
.language-switch a[aria-current=true]{text-decoration:none;background-size:100% 2px}
.site-footer .contact-chip:hover{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:100% 2px}
@media(prefers-reduced-motion:reduce){a.text-link,a.driver-outline,.language-switch a,.service-card-link h2,.site-footer .contact-chip{transition:none}}

/* Keep the service underline within the title text width. */
.service-card-link h2{width:fit-content;max-width:100%}

/* Rental storefront: consistent typography, clear prices and compact mobile cards. */
body,h1,h2,h3,h4,button,input,select,textarea,.site-footer .footer-grid h4{font-family:'Be Vietnam Pro',sans-serif}
.rental-home-intro{padding-top:48px;padding-bottom:28px}.rental-home-intro h1{max-width:850px;font-size:clamp(28px,4vw,46px);line-height:1.3;letter-spacing:-1px;margin:14px 0}.rental-home-intro p{color:var(--muted);max-width:700px;line-height:1.8}.rental-home-intro .text-link{display:inline-block;margin:16px 20px}
.rental-home-intro+.search-wrap{margin-top:0}.vehicle-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px #20202408}.vehicle-picture{aspect-ratio:4/3;overflow:hidden}.vehicle-picture>img{width:100%;height:100%;object-fit:cover}.vehicle-card .card-body{padding:22px}.vehicle-card h3{line-height:1.5;font-weight:700}.vehicle-card .specs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px}.vehicle-card .card-bottom{gap:12px;flex-wrap:wrap}.vehicle-detail-link{display:inline-block;margin:12px 0}.rental-price small{white-space:nowrap}.rental-process ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:0}.rental-process li{border:1px solid var(--line);border-radius:16px;padding:24px}.rental-process li>span{color:var(--brand-red);font-weight:700}.rental-process h3{font-size:18px;line-height:1.5}.rental-process p{color:var(--muted);line-height:1.8;font-size:14px}.rental-policy-grid article{min-width:0}.rental-policies p{overflow-wrap:anywhere}
@media(max-width:600px){.rental-home-intro{padding-top:28px}.rental-home-intro .text-link{margin-left:0;display:block;width:fit-content}.rental-process ol{grid-template-columns:1fr;gap:12px}.vehicle-card .card-body{padding:18px}.rental-mobile-actions{padding-bottom:max(10px,env(safe-area-inset-bottom))}body:has(.rental-mobile-actions){padding-bottom:80px}}

/* Compact rental-card content without resizing the image or gallery thumbnails. */
.vehicle-card .card-body{padding:14px 16px}
.vehicle-card h3{margin:0 0 8px;line-height:1.35}
.vehicle-card .specs{gap:6px;margin:0 0 12px}
.vehicle-card .specs span{padding:4px 8px;font-size:12px}
.vehicle-card .card-bottom{padding:8px;gap:8px}
.vehicle-card .card-bottom .button{min-height:44px}
.home-rental-conditions{scroll-margin-top:110px;padding-top:24px}.home-conditions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.home-conditions-grid article{min-width:0;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.condition-number{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#fff1f2;color:var(--brand-red);font-size:14px;font-weight:700}.home-conditions-grid h3{font-size:18px;line-height:1.5;margin:16px 0 10px}.home-conditions-grid p{font-size:14px;line-height:1.8;color:var(--muted);margin:0;overflow-wrap:anywhere}.home-conditions-note{font-size:13px;color:var(--muted);line-height:1.7;margin-top:18px}@media(max-width:1000px){.home-conditions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.home-conditions-grid{grid-template-columns:1fr;gap:12px}.home-conditions-grid article{padding:20px}.home-rental-conditions .section-heading{align-items:flex-start;gap:16px}}

/* Avoid remote font downloads and font-swap layout work on mobile. */
@media(max-width:800px){
 body,h1,h2,h3,h4,button,input,select,textarea,
 .brand,.brand-name,.nav .brand-name,.footer-grid .brand-name,
 .site-footer .brand,.site-footer .footer-grid h4{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 }
}
