/* Final layout layer: retain the theme's artwork, palette and content. */
html { scroll-padding-top:100px; }
body { overflow-wrap:break-word; }
:where(.container, .container *, .booking-panel *) { min-width:0; }
img { height:auto; }
iframe, video, embed, object { max-width:100%; }
.brand { max-width:100%; }
.custom-logo-link { display:block; max-width:100%; }
.custom-logo { width:auto; max-width:100%; max-height:60px; object-fit:contain; }
.brand-text { white-space:normal; overflow-wrap:anywhere; }
.field input, .field select, .field textarea { max-width:100%; }
.gold-btn, .outline-btn, .white-btn { max-width:100%; padding-block:12px; text-align:center; white-space:normal; }
.modal-close { flex-shrink:0; }
.booking-modal { z-index:1100; }
.trust-card { max-width:100%; }
.trust-copy { min-width:0; }
.trust-divider { flex-shrink:0; }
.trustindex-badge { max-width:100%; text-align:center; }
.premium-carousel-viewport { min-width:0; }
.footer-col a, .footer-col p, .wysiwyg-content { overflow-wrap:anywhere; }
.footer-socials { flex-wrap:wrap; }
.page-content pre, .wysiwyg-content pre { max-width:100%; overflow:auto; }
.page-content table, .wysiwyg-content table { display:block; max-width:100%; overflow:auto; }
.wp-caption, .wp-block-image, .wp-block-video { max-width:100%; }
.home-fleet-card-image:not(.home-fleet-sprite) img,
.vehicle-card-image:not(.vehicle-sprite):not([class*="vehicle-crop-"]) img { position:static; width:100%; max-width:100%; height:100%; object-fit:cover; transform:none; }
.menu-toggle:focus-visible, .primary-nav a:focus-visible, .services-trigger:focus-visible { outline:2px solid var(--brand-primary); outline-offset:3px; }
.admin-bar .site-header { top:32px; }

/* Switch before the full desktop navigation starts crowding the brand. */
@media (max-width:1250px) {
  .site-header { backdrop-filter:none; -webkit-backdrop-filter:none; }
  .navline { grid-template-columns:minmax(0,1fr) auto; gap:20px; }
  .brand, .nav-actions { position:relative; z-index:2; }
  .nav-phone { display:none; }
  .menu-toggle { display:block; flex:none; position:relative; }
  .menu-toggle span { height:1px; margin:6px 0; }
  .menu-open .menu-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  .menu-open .menu-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .primary-nav {
    position:fixed; z-index:1; inset:0; height:100vh; height:100dvh;
    padding:100px max(24px,env(safe-area-inset-right)) max(28px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
    overflow-y:auto; overscroll-behavior:contain; background:rgba(7,7,7,.985);
    opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-12px);
    transition:opacity .25s ease,transform .25s ease,visibility .25s;
  }
  .menu-open .primary-nav { opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .primary-nav > ul { display:block; max-width:720px; margin-inline:auto; }
  .primary-nav > ul > li > a, .primary-nav .services-trigger {
    display:flex; width:100%; align-items:center; justify-content:space-between;
    padding:16px 0; font-size:clamp(20px,3vw,27px); line-height:1.35;
    text-transform:none; letter-spacing:0; border-bottom:1px solid var(--line);
  }
  .primary-nav > ul > li > a::after, .primary-nav > ul > li > .services-trigger::after { display:none; }
  .primary-nav .services-panel {
    position:static; width:100%; display:none; grid-template-columns:minmax(0,1fr);
    margin:8px 0; padding:6px; max-height:none; overflow:visible;
    opacity:0; visibility:hidden; transform:none; border:0; box-shadow:none;
  }
  .primary-nav .menu-item-services.open .services-panel { display:grid; max-height:none; padding:6px; opacity:1; visibility:visible; transform:none; }
  .primary-nav .services-panel-item { display:flex; padding:14px 10px; font-size:14px; }
  .services-copy strong { font-size:15px; }
  .services-copy small { font-size:12px; }
  .services-arrow, .services-chevron { flex-shrink:0; }
  .admin-bar .primary-nav { top:32px; height:calc(100vh - 32px); height:calc(100dvh - 32px); }
}

@media (min-width:761px) and (max-width:1050px) {
  .reference-card-grid, .vehicle-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reference-service-card { width:100%; max-width:none; margin:0; }
  .why-grid, .contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-grid { grid-template-columns:1fr; }
  .contact-map-embed, .contact-map-embed iframe { min-height:360px; }
  .reference-cta .container, .ccs-about-cta__inner { flex-wrap:wrap; }
  .three-steps article, .service-directory article { padding:24px; }
}

@media (max-width:782px) {
  .admin-bar .site-header { top:46px; }
  .admin-bar .primary-nav { top:46px; height:calc(100vh - 46px); height:calc(100dvh - 46px); }
}
@media (max-width:760px) {
  :root { --container:calc(100% - 36px); }
  .navline { width:var(--container); height:auto; min-height:72px; gap:12px; padding-block:10px; }
  .brand-text { font-size:clamp(13px,3.8vw,18px); line-height:1.3; }
  .nav-actions { gap:0; }
  .nav-book { display:none; }
  .custom-logo { max-height:48px; }
  .primary-nav { padding-top:92px; }
  .reference-hero { min-height:0; }
  .reference-hero-content { width:var(--container); padding-block:56px; }
  .reference-hero h1, .inner-hero h1, .service-hero-banner h1, .ccs-about-hero h1 { font-size:clamp(28px,7.5vw,42px); overflow-wrap:anywhere; }
  .reference-fleet, .reference-reviews, .faq-page, .contact-page, .fleet-page, .services-page,
  .dark-section, .page-content, .about-intro, .values-section, .service-detail-intro, .service-steps, .service-benefits { padding-block:56px; }
  .reference-title, .section-head { margin-bottom:30px; }
  .reference-card-grid, .vehicle-grid, .home-fleet-grid, .home-fleet-grid[data-visible-count="2"],
  .service-directory, .three-steps, .about-grid, .service-detail-grid, .contact-grid { grid-template-columns:minmax(0,1fr); }
  .reference-service-card { width:100%; }
  .trust-card { padding:16px 12px; gap:12px; }
  .trust-card strong { font-size:16px; }
  .home-fleet-tabs { gap:10px; }
  .home-fleet-tab, .fleet-filter-pill { min-height:44px; }
  .fleet-filter-bar { flex-wrap:wrap; justify-content:center; border-radius:20px; overflow:visible; }
  .fleet-filter-pill { padding:10px 14px; }
  .corporate-cta-buttons { width:100%; align-items:stretch; }
  .corporate-cta-buttons .gold-btn { white-space:normal; }
  .reference-cta .gold-btn { width:100%; }
  .service-directory article, .three-steps article { padding:26px 20px; }
  .faq-question { gap:16px; font-size:21px; }
  .faq-question span { flex-shrink:0; }
  .booking-modal { padding:12px; }
  .booking-panel { max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); padding:24px 18px; }
  .field input, .field select, .field textarea, .contact-form input, .contact-form textarea { font-size:16px; }
  .floating-actions { right:12px; bottom:max(12px,env(safe-area-inset-bottom)); }
  .floating-action { width:44px; height:44px; }
  .footer-bottom-bar { padding:18px 66px 18px 18px; }
}
@media (max-width:600px) {
  .admin-bar .site-header { top:0; }
  .admin-bar .primary-nav { top:0; height:100vh; height:100dvh; }
}
@media (max-width:380px) {
  :root { --container:calc(100% - 28px); }
  .footer-main, .reference-footer, .fleet-stats-grid { grid-template-columns:minmax(0,1fr); }
  .trust-card { flex-wrap:wrap; }
  .trust-divider { display:none; }
  .trust-copy { flex-basis:100%; }
  .vehicle-features { grid-template-columns:1fr; }
  .services-icon { width:30px; height:30px; }
  .services-panel-item { gap:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .primary-nav, .menu-toggle span { transition:none; }
}
