/* Vitrine location : palette, polices et surfaces du site Le Chill'Truck. */
:root {
    --chill-orange: #e89c3d;
    --chill-brown: #673a1c;
    --chill-action-ink: #24160d;
    --chill-cream: #fff9f2;
    --chill-heading: #a35e2d;
    --chill-green: #6ba368;
    --chill-green-ink: #446b42;
    --chill-blue: #003f5d;
    --chill-card-shadow: 0 0 15px rgba(0, 0, 0, .05);
    --rental-accent: #c7192d;
    --rental-cta-border: transparent;
}
/* Palette d’essai partagée par la vitrine et le parcours de demande uniquement. */
.rental-page {
    --chill-orange: #ffd43b;
    --chill-brown: #242424;
    --chill-action-ink: #171717;
    --chill-cream: #f4f4f4;
    --chill-heading: var(--rental-accent);
    --chill-green: #ffdb45;
    --chill-green-ink: #c7192d;
    --chill-blue: #242424;
    --chill-card-shadow: 0 6px 22px rgba(0, 0, 0, .09);
    --rental-hero-overlay: rgba(0, 0, 0, .58);
    --rental-soft-accent: #fff5cf;
    --rental-divider: #dedede;
    --rental-cta-border: transparent;
}
.rental-page .navbar-custom { background-color: var(--chill-brown); }
.rental-page .navbar-custom .navbar-toggler { border-color: var(--rental-divider); }
.rental-page .navbar-custom .navbar-toggler-icon { filter: brightness(0) invert(1); }
.rental-page .navbar-custom .nav-link[aria-current="page"] { background: var(--chill-green); color: var(--chill-action-ink) !important; }
.chill-rental-entry { position: relative; display: inline-flex; margin-top: 2rem; }
.chill-new-badge {
    display: inline-block; border-radius: 999px; padding: .35rem .7rem;
    background: var(--chill-orange); color: var(--chill-brown);
    font-size: .68rem; font-weight: 800; letter-spacing: .09em;
    line-height: 1; text-shadow: none;
}
.chill-rental-entry .chill-new-badge {
    position: absolute; top: -.65rem; right: -.5rem;
    border: 2px solid var(--chill-cream); z-index: 1;
}
.chill-rental-entry .btn { color: var(--chill-brown); border-radius: .75rem; padding: .8rem 1.65rem; font-weight: 700; text-shadow: none; }
.navbar-custom .nav-link[aria-current="page"] { color: var(--chill-brown) !important; background: var(--chill-cream); border-radius: .6rem; }
.rental-page { color: #000; background: #fff; }
.rental-page .skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 4000; background: #fff; color: var(--chill-brown); padding: .75rem; border-radius: .5rem; }
.rental-page .skip-link:focus { top: 1rem; }
.has-location-cta a.location-floating-cta:focus-visible, .rental-page a:focus-visible, .rental-page summary:focus-visible, .chill-rental-entry a:focus-visible { outline: 3px solid var(--chill-blue); outline-offset: 4px; }
.rental-page main { margin-top: 0; }
.rental-page section[id] { scroll-margin-top: 7rem; }
.rental-page #hero.location-hero {
    min-height: 740px; height: auto; padding: 10rem 0 5rem;
    background: var(--chill-brown); overflow: hidden;
}
.location-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.rental-page #hero .overlay { background: var(--rental-hero-overlay); }
.rental-page #hero .content { max-width: 960px; }
.rental-page #hero .content h1 { font-size: clamp(3.75rem, 7.5vw, 7rem); line-height: .95; margin: 1.2rem 0; }
.location-hero h1 span { display: block; color: var(--chill-green); }
.location-eyebrow { font-size: .85rem; font-weight: 700; letter-spacing: .06em; margin: .9rem 0; }
.location-hero-copy { font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.6; max-width: 750px; margin: 1.5rem auto; }
.location-actions { display: flex; justify-content: center; align-items: stretch; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.location-actions .btn { display: inline-flex; flex-direction: column; justify-content: center; border-radius: .75rem; font-size: 1rem; padding: .85rem 1.5rem; font-weight: 700; min-height: 58px; text-shadow: none; }
.location-actions .btn small { font-size: .75rem; font-weight: 500; display: block; margin-top: .15rem; }
.rental-page .location-reserve { opacity: 1; color: var(--chill-action-ink); background: var(--chill-orange); border-color: transparent; cursor: pointer; }
.rental-page #hero .location-reserve, .rental-page #formules .location-reserve { color: #fff; background: var(--chill-brown); border: 2px solid transparent; }
.rental-page .location-reserve small { font-weight: 600; }
.location-contact { background: #fff; color: var(--chill-brown); border-color: #fff; }
.location-contact:hover, .location-contact:focus { background: var(--chill-cream); color: var(--chill-brown); border-color: transparent; }
.location-opening-note { font-size: .9rem; margin: 1rem auto 0; max-width: 650px; line-height: 1.5; }
.location-section { padding: 5rem 0; }
.location-section h2, .location-final h2 { font-family: 'Cookie', cursive; color: #000; font-size: clamp(2.6rem, 4.6vw, 4rem); line-height: 1.1; margin-bottom: 1.3rem; }
.location-section .location-accent-orange { color: var(--chill-heading); }
.location-section .location-accent-green { color: var(--chill-green-ink); }
.location-section h3 { font-family: 'DynaPuff', cursive; font-size: 1.2rem; line-height: 1.4; }
.location-section p { line-height: 1.7; }
.location-lead { max-width: 780px; margin: 0 auto 2.5rem; font-size: 1.08rem; }
.location-cream { background: var(--chill-cream); }
.location-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.location-intro-photo { display: block; width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; border-radius: 1rem; }
.location-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.location-card { background: #fff; padding: 2rem; border-radius: 1rem; box-shadow: var(--chill-card-shadow); min-width: 0; }
.location-card p { margin: 1rem 0 0; font-size: .95rem; }
.location-card-symbol { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; background: var(--rental-soft-accent); color: var(--chill-green-ink); border-radius: 50%; font-size: 1.65rem; margin-bottom: 1.2rem; }
.location-profile-note { max-width: 850px; margin: 2rem auto 0; font-size: .95rem; }
.location-offers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.location-option-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.location-offer-timing { font-size: .85rem; line-height: 1.6; }
.location-offer { background: var(--chill-cream); display: flex; flex-direction: column; padding: 1.75rem; }
.location-offer img { width: 108px; height: 90px; object-fit: contain; margin-bottom: 1.25rem; }
.location-offer h3 { min-height: 3.4rem; }
.location-offer p { margin-bottom: 1.5rem; }
.location-equipment { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.location-equipment ul { margin: 1.5rem 0; padding-left: 1.25rem; line-height: 1.8; }
.location-equipment li { padding: .25rem 0; }
.location-equipment-note { font-size: .9rem; margin-top: 2rem; text-align: center; }
.location-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; padding: 0; list-style: none; margin: 3rem 0 0; }
.location-step-number { display: flex; width: 3rem; height: 3rem; align-items: center; justify-content: center; border-radius: 50%; color: var(--chill-green-ink); background: var(--rental-soft-accent); border: 1px solid transparent; font-family: 'DynaPuff', cursive; margin-bottom: 1.2rem; }
.location-delivery { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3rem; align-items: center; }
.location-delivery-marker { background: #fff; border-radius: 1rem; padding: 3rem 2rem; text-align: center; box-shadow: var(--chill-card-shadow); }
.location-delivery-marker strong { display: block; font-family: 'Cookie', cursive; font-size: 4rem; color: var(--chill-heading); line-height: 1.1; }
.location-delivery-marker span { display: block; margin-top: .7rem; }
.location-numbers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.5rem; }
.location-numbers div { padding: 1.5rem; border-radius: 1rem; background: var(--chill-cream); text-align: center; }
.location-number-icon { display: block; margin: 0 auto .8rem; width: 48px; height: 48px; }
.location-numbers dt { font-size: .9rem; font-weight: 500; }
.location-numbers dd { font-family: 'DynaPuff', cursive; font-size: 1.7rem; color: var(--chill-heading); margin: .7rem 0 0; }
.location-technical-views { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.5rem; scroll-margin-top: 7rem; }
.location-technical-views figure { min-width: 0; margin: 0; padding: 1rem; background: var(--chill-cream); border-radius: 1rem; text-align: center; }
.location-technical-views img { display: block; width: 100%; height: auto; object-fit: contain; }
.location-technical-views figcaption { padding: .75rem .5rem .25rem; color: #000; font-size: .95rem; }
/* Two identical groups create a continuous horizontal loop without a reset jump. */
.location-gallery { --gallery-image-height: clamp(230px, 29vw, 350px); overflow: hidden; border-radius: 1rem; }
.location-gallery-track { display: flex; width: max-content; animation: location-gallery-scroll 65s linear infinite; }
.location-gallery-group { display: flex; flex: 0 0 auto; gap: 1.5rem; padding-right: 1.5rem; }
.location-gallery figure { flex: 0 0 auto; margin: 0; background: #fff; border-radius: 1rem; overflow: hidden; box-shadow: var(--chill-card-shadow); }
.location-gallery img { display: block; width: auto; height: var(--gallery-image-height); object-fit: contain; }
.location-gallery figcaption { padding: 1rem 1.25rem; font-size: .9rem; }
@keyframes location-gallery-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    .location-gallery { overflow-x: auto; }
    .location-gallery-track { animation: none; }
    .location-gallery-group[aria-hidden="true"] { display: none; }
}
.location-faq { max-width: 900px; margin: 2rem auto 0; }
.location-faq details { border-bottom: 1px solid var(--rental-divider); padding: 1.2rem .25rem; }
.location-faq summary { cursor: pointer; font-weight: 700; line-height: 1.5; padding-right: .5rem; }
.location-faq details p { margin: 1rem 0 .25rem; }
.location-final { background: var(--chill-orange); text-align: center; padding: 4rem 1rem; }
.location-final h2 { color: #000; }
.location-final .location-reserve { background: var(--chill-cream); border-color: var(--chill-cream); }
.location-final > p { max-width: 700px; margin: 0 auto; }
.location-top-link { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 999; width: 48px; height: 48px; display: none; align-items: center; justify-content: center; border-radius: 50%; }
@media (max-width: 1199px) {
    .location-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991px) {
    .location-section { padding: 3.5rem 0; }
    .location-intro, .location-delivery { gap: 2rem; }
    .location-grid, .location-equipment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .location-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .rental-page #hero.location-hero { min-height: 700px; padding: 9rem 0 3rem; }
    .rental-page #hero .content h1 { font-size: clamp(3.65rem, 13vw, 5.5rem); }
    .location-hero-copy { font-size: 1.03rem; margin: 1.25rem auto; }
    .location-intro, .location-delivery { grid-template-columns: 1fr; }
    .location-intro-photo { order: -1; }
    .location-grid, .location-equipment, .location-offers, .location-option-cards { grid-template-columns: 1fr; }
    .location-offer h3 { min-height: 0; }
    .location-card { padding: 1.5rem; }
    .location-numbers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
    .location-numbers div { padding: 1.1rem .65rem; }
    .location-numbers dd { font-size: 1.25rem; }
    .location-technical-views { grid-template-columns: 1fr; gap: 1rem; }
    .location-gallery figcaption { padding: .85rem; font-size: .8rem; }
    .location-actions { gap: .75rem; }
    .location-actions .btn { width: 100%; max-width: 350px; }
    .location-eyebrow { font-size: .75rem; }
}
@media (max-width: 375px) {
    .location-steps { grid-template-columns: 1fr; }
    .location-numbers { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    nav.navbar-custom.fixed-top { transition: none; }
}

/* Action location accessible pendant la lecture, sans ouvrir un second formulaire. */
.location-floating-cta { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 1020; display: flex; flex-direction: column; align-items: center; gap: .45rem; width: 148px; padding: 1rem .65rem; border: 2px solid var(--rental-cta-border); border-right: 0; border-radius: .85rem 0 0 .85rem; background: var(--rental-accent); color: #fff; text-decoration: none; text-align: center; box-shadow: 0 4px 18px rgba(36, 22, 13, .18); }
.location-floating-cta strong, .location-floating-cta small { display: block; }
.location-floating-cta strong { font-size: 1.1rem; }
.location-floating-cta small { font-size: .8rem; margin-top: .15rem; }
.location-floating-cta:hover { background: var(--rental-accent); color: #fff; }
@media (max-width: 1199px) {
    .rental-page, .has-location-cta { padding-bottom: 90px; }
    .location-floating-cta { top: auto; bottom: calc(1rem + env(safe-area-inset-bottom)); right: 1rem; transform: none; flex-direction: row; width: auto; gap: .65rem; padding: .65rem 1rem; border-right: 2px solid var(--rental-cta-border); border-radius: .85rem; }
    .rental-page .location-top-link, .has-location-cta #scrollTop { bottom: 100px !important; }
}


.rental-page #hero .location-reserve, .rental-page #formules .location-reserve { background: var(--chill-heading); }

.location-kit-request{color:inherit;text-decoration:none}.location-kit-request:hover{color:var(--chill-heading)}.location-kit-request:focus-visible{outline:3px solid var(--chill-heading);outline-offset:4px}

.callback-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
#callback-modal .modal-content { color:#222 !important; background:#fff !important; border:0; border-radius:16px; }
#callback-modal .form-control:focus, #callback-modal .form-select:focus { border-color:#c8102e; box-shadow:0 0 0 .2rem #c8102e26; }

/* Override the legacy shared dark modal, only for this public form. */
#callback-modal .form-label, #callback-modal .modal-title { color:#222 !important; }
#callback-modal .form-control, #callback-modal .form-select { color:#222 !important; background-color:#fff !important; border-color:#b5bac2 !important; }
#callback-modal .form-control:focus, #callback-modal .form-select:focus { border-color:#c8102e !important; }
#callback-modal .btn-close { filter:none; }
#callback-modal .location-reserve { color:#fff; background:var(--rental-accent); border:0; }
#callback-modal .location-reserve:hover, #callback-modal .location-reserve:focus-visible { background:#991028; }

/* The two fixed actions share one stack, keeping the callback below the quote. */
.location-floating-actions { position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:1020; display:flex; flex-direction:column; gap:.5rem; }
.location-floating-actions .location-floating-cta { position:static; transform:none; cursor:pointer; }
.location-floating-callback { font:inherit; background:var(--chill-brown); }
.location-floating-callback:hover { background:var(--chill-brown); }
.location-floating-callback:focus-visible { outline:3px solid var(--chill-blue); outline-offset:4px; }
@media (max-width:1199px) {
    .location-floating-actions { top:auto; bottom:calc(1rem + env(safe-area-inset-bottom)); right:1rem; transform:none; }
    .location-floating-actions .location-floating-cta { width:100%; }
    .rental-page:has(.location-floating-actions) { padding-bottom:165px; }
    .rental-page:has(.location-floating-actions) .location-top-link { bottom:175px !important; }
}

/* Compact equipment photos reuse the event carousel's continuous movement. */
.location-equipment-gallery { --gallery-image-height:140px; }
.location-equipment-gallery .location-gallery-group { gap:.75rem; padding-right:.75rem; }
.location-equipment-gallery figure { width:180px; padding:.75rem; box-shadow:none; border-radius:.75rem; }
.location-equipment-gallery img { width:100%; object-fit:contain; }
.location-equipment-gallery figcaption { padding:.65rem 0 0; font-size:.8rem; text-align:center; }
@media (max-width:575px) {
    .location-equipment-gallery { --gallery-image-height:110px; }
    .location-equipment-gallery figure { width:150px; }
}

.location-equipment-image { height:var(--gallery-image-height); overflow:hidden; }
.location-equipment-gallery .location-equipment-round-greaser { transform:scale(4.2); transform-origin:50% 54%; }

.location-trailer-gallery { --gallery-image-height:clamp(150px,20vw,230px); }
.location-trailer-gallery .location-gallery-group { gap:1rem; padding-right:1rem; }
.location-trailer-photo { flex:0 0 auto; display:block; border-radius:.75rem; overflow:hidden; background:#fff; }
.location-trailer-photo img { display:block; width:auto; height:var(--gallery-image-height); aspect-ratio:4/3; object-fit:contain; transition:transform .2s; }
.location-trailer-photo:hover img { transform:scale(1.04); }
.location-trailer-photo:focus-visible { outline:3px solid var(--chill-red,#c8102e); outline-offset:4px; }
#trailer-lightbox { z-index:3100; }
body:has(#trailer-lightbox.show) .modal-backdrop { z-index:3090; }
#trailer-lightbox .modal-content { background:#222 !important; color:#fff !important; border:0; }
#trailer-lightbox .modal-header { border-color:#555; }
#trailer-lightbox .modal-title { color:#fff; }
#trailer-lightbox .btn-close { filter:invert(1) grayscale(100%) brightness(200%); }
#trailer-lightbox-image { display:block; width:100%; height:auto; max-height:65vh; object-fit:contain; }
.location-lightbox-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; }
.location-lightbox-controls p { margin:0; text-align:center; }
@media(max-width:575px) { .location-lightbox-controls { gap:.5rem; font-size:.85rem; } }
@media(prefers-reduced-motion:reduce) { .location-trailer-photo img { transition:none; } }

.rental-page #hero .content h1.location-seo-title { font-family:inherit; font-size:clamp(1.4rem,2.6vw,2.2rem); line-height:1.3; }
.location-hero-tagline { font-size:clamp(3rem,6vw,5rem); line-height:1.1; margin:1rem 0; }
.location-hero-tagline span { display:block; color:var(--chill-green); }
.location-offer-prices { margin:1rem 0; }
.location-offer-prices div { display:flex; justify-content:space-between; gap:1rem; padding:.4rem 0; border-bottom:1px solid #e5e5e5; }
.location-offer-prices dt { font-weight:400; }
.location-offer-prices dd { margin:0; font-weight:700; color:var(--rental-accent); white-space:nowrap; }
