/* Aerojet: adapts the mockup stylesheet (aerojet.css, kept unchanged) to WordPress block markup.
   The pages keep the mockup's class names; only what core blocks render differently is handled here. */

/* Template parts: no box of their own (the header is fixed, the footer is full width) */
.site-head, .site-foot { display: contents; }
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 0px); }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

/* Core blocks: the mockup sets every margin itself */
:where(figure.wp-block-image) { margin: 0; } /* the mockup sets each figure margin itself; this only removes the browser default */
figure.wp-block-image figcaption.wp-element-caption { margin-bottom: 0; text-align: left; }
.wp-block-image.grade img { width: 100%; height: 100%; }
/* Framing chosen in the editor (Image block > "Cadrage de la photo") */
.wp-block-image[style*="--focus"] img { object-position: var(--focus); }
@media (max-width: 782px) { .wp-block-image[style*="--focus-m"] img { object-position: var(--focus-m); } }

/* Buttons (block styles Or, Contour, WhatsApp, Lien souligné; the default is the dark button) */
.wp-block-buttons { gap: .9rem; }
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.wp-block-button.is-style-gold .wp-block-button__link { background: var(--wp--preset--color--accent); color: #111; }
.wp-block-button.is-style-gold .wp-block-button__link:hover { background: #D6B577; }
.wp-block-button.is-style-line .wp-block-button__link { background: transparent; border-color: currentColor; color: inherit; }
.wp-block-button.is-style-line .wp-block-button__link:hover { background: rgba(255,255,255,.08); }
.wp-block-button.is-style-wa .wp-block-button__link { background: var(--wa); color: #0b2b17; }
.wp-block-button.is-style-wa .wp-block-button__link:hover { background: #3ee07a; }
.wp-block-button.is-style-wa .wp-block-button__link::before { content: ""; width: 20px; height: 20px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.wp-block-button.is-style-text .wp-block-button__link { background: none; border: 0; padding: .9rem 0; color: var(--wp--preset--color--contrast-2); text-decoration: underline; text-underline-offset: 4px; }
.story-text .actions { margin-top: 2.2rem; }

/* Header: the parent of the current service page is underlined too */
.main-nav a[aria-current="true"] { border-bottom-color: var(--wp--preset--color--accent); }

/* Steps: each step is a group (core lists cannot hold headings) */
.step-list > .step { position: relative; padding-bottom: clamp(1.8rem, 3vw, 2.6rem); }
.step-list > .step:last-child { padding-bottom: 0; }
.step-list > .step::before { content: ""; position: absolute; z-index: 1; left: calc(-2.6rem + 1px); top: .5rem; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 2px solid var(--wp--preset--color--accent); transition: background .35s; }
.step-list > .step.is-on::before, .no-io .step-list > .step::before { background: var(--wp--preset--color--accent); }
.step-list .step-mark { margin: 0 0 .25rem; color: var(--wp--preset--color--primary); }

/* Board: rows are groups; code, name, text and link are paragraphs */
.board > .board-row { display: grid; grid-template-columns: minmax(8rem, 1fr) 2.4fr 3fr auto; gap: .6rem 2.4rem; align-items: center; padding: 1.5rem 0; border-bottom: 1px solid var(--rule); transition: background .25s; }
.board p.board-code { color: var(--wp--preset--color--accent); max-width: none; }
.section:not(.dark) .board p.board-code { color: var(--wp--preset--color--primary); }
.board .board-link { color: inherit; max-width: none; }
.board-row:hover .board-go::after { transform: translateX(4px); }
@media (max-width: 1024px) {
  .board > .board-row { grid-template-columns: minmax(6.5rem, auto) 1fr auto; }
  .board-row > .board-text { grid-column: 2 / -1; grid-row: 2; }
}
@media (max-width: 782px) {
  .board > .board-row { grid-template-columns: 1fr auto; padding: 1.3rem 0; }
  .board-row > .board-code { grid-column: 1 / -1; }
  .board-row > .board-name { grid-column: 1; }
  .board-row > .board-text { grid-column: 1 / -1; grid-row: auto; }
  .board-row > .board-link { grid-column: 2; grid-row: 2; align-self: start; }
}

/* Cards (vehicles, related pages): the link sits on the title and covers the whole card */
.vehicle, .related > .card { position: relative; }
.vehicle h3 a, .related .card h3 a { display: inline; color: inherit; text-decoration: none; }
.vehicle h3 a::after, .related .card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.vehicle:focus-within, .related > .card:focus-within { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 6px; }
.vehicle h3 a:focus-visible, .related .card h3 a:focus-visible { outline: none; }
.related > .card { display: block; }
.related > .card:hover img { transform: scale(1.045); }
.related.cols-4 { --cols: 4; }
@media (max-width: 782px) {
  .related > .card { display: grid; grid-template-columns: 38% 1fr; gap: 0 1rem; align-items: center; }
  .related > .card > figure { grid-row: span 2; margin: 0; }
}

/* Packages: the closing link is a paragraph */
.package p.more { flex: 0 0 auto; color: inherit; }

/* Fleet page: vehicle specs (passengers, models) */
.garage-specs { display: grid; grid-template-columns: auto 1fr; gap: 1rem 1.6rem; margin: 0 0 1.4rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.14); }
.garage-specs p { display: contents; }
.garage-specs span { font-size: .85rem; color: rgba(255,255,255,.65); }
/* Same look as the mockup, where every value (dd:first-of-type in each row) is large and gold */
.garage-specs strong { font-family: var(--wp--preset--font-family--display); font-weight: inherit; font-size: 1.6rem; line-height: 1; color: var(--wp--preset--color--accent); }
.garage-car figure.wp-block-image { margin: 0; }
@media (min-width: 783px) {
  .js .garage-specs { margin: 0; padding: 0; border: 0; align-items: baseline; }
  .js .garage-info .wp-block-button__link { white-space: nowrap; }
}

/* Contact page */
section#devis { scroll-margin-top: 3rem; }

/* Footer */
.footer-legal .legal-links { display: flex; flex-wrap: wrap; gap: 1.4rem; max-width: none; }
.footer-legal p { max-width: none; }

/* Quote form: sending state, error message, privacy note, spam trap */
.qf-status { flex-basis: 100%; order: 3; color: #B3261E; font-size: .92rem; max-width: none; }
.qf-status:empty { display: none; }
.qf [data-submit][disabled] { opacity: .65; cursor: progress; }
.qf-privacy { font-size: .88rem; color: var(--wp--preset--color--contrast-2); max-width: none; }
.qf-privacy a { color: var(--wp--preset--color--primary); }
/* Pictures from the media library carry width/height attributes: let the mockup's aspect-ratio decide */
.qf-vehicles img, .finder-result img { height: auto; }
.qf-done h2 { font-size: 1.9rem; margin-bottom: .8rem; }
.qf-done h2:focus { outline: none; }
.qf-noscript { margin-top: 1rem; color: #B3261E; }
.aj-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Text pages (legal notices, privacy): page.html template */
.page-text { padding-top: calc(var(--section) + 3rem); }
.wrap.narrow { width: min(100% - 2 * var(--gutter), 760px); }
.page-text h1 { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 2rem; }
.page-text .wp-block-post-content > * + * { margin-top: 1.1em; }
.page-text .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--large); margin-top: 2em; }
.page-text .wp-block-post-content ul { list-style: disc; padding-left: 1.3em; }
.page-text .wp-block-post-content a { color: var(--wp--preset--color--primary); }
.page-text .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); margin-bottom: 2rem; }
.page-text .wp-block-post + .wp-block-post { margin-top: 2rem; }

/* Language switcher, desktop header: globe button + current code, list styled like the Services dropdown */
.lang-menu { position: relative; }
.lang-toggle { display: inline-flex; align-items: center; gap: .45rem; height: 2.6rem; padding: 0 .8rem 0 .7rem; font: inherit; font-size: .9rem; font-weight: 600; letter-spacing: .08em; color: inherit; background: transparent; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; cursor: pointer; transition: border-color .2s, background .2s; }
.lang-toggle svg { width: 17px; height: 17px; flex: none; opacity: .85; }
.lang-toggle::after { content: ""; width: .36em; height: .36em; margin-left: .15rem; border-right: 1.5px solid; border-bottom: 1.5px solid; transform: translateY(-.15em) rotate(45deg); transition: transform .2s; }
.lang-toggle:hover, .lang-menu.is-open .lang-toggle { border-color: var(--wp--preset--color--accent); background: rgba(255,255,255,.06); }
.lang-menu.is-open .lang-toggle::after { transform: translateY(.1em) rotate(-135deg); }
.lang-list { position: absolute; top: calc(100% + .9rem); right: 0; z-index: 5; min-width: 220px; margin: 0; padding: .5rem; list-style: none; background: #fff; color: var(--wp--preset--color--contrast); border-top: 2px solid var(--wp--preset--color--accent); box-shadow: 0 30px 60px -20px rgba(0,0,0,.45); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .25s, visibility .2s; }
.lang-menu::after { content: ""; position: absolute; left: -1rem; right: -1rem; top: 100%; height: 1rem; } /* hover bridge to the list */
.lang-menu:hover .lang-list, .lang-menu.is-open .lang-list { opacity: 1; visibility: visible; transform: none; }
.lang-menu.is-closed .lang-list { opacity: 0; visibility: hidden; transform: translateY(8px); } /* Escape closes it even while hovered */
.lang-list a { display: grid; grid-template-columns: 1fr auto 18px; align-items: center; gap: .8rem; padding: .75rem .9rem; text-decoration: none; }
.lang-list a:hover, .lang-list a:focus-visible { background: var(--wp--preset--color--base-2); }
.lang-list .lang-name { font-family: var(--wp--preset--font-family--display); font-size: 1.08rem; font-weight: 500; }
.lang-list .lang-code { font-size: .78rem; font-weight: 600; letter-spacing: .1em; color: var(--wp--preset--color--contrast-2); }
.lang-list .lang-check { grid-column: 3; width: 18px; height: 18px; color: var(--wp--preset--color--accent); }
.lang-list a[aria-current] .lang-name { font-weight: 600; }

/* Language switcher, phone menu: three large segments under the logo */
.menu-panel .lang-segment { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 1.6rem 0 0; border: 1px solid rgba(255,255,255,.22); }
.menu-panel .lang-segment a { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .75rem .4rem .7rem; border: 0; font-family: var(--wp--preset--font-family--body); font-size: 1rem; text-decoration: none; color: rgba(255,255,255,.75); transition: background .2s, color .2s; }
.menu-panel .lang-segment a + a { border-left: 1px solid rgba(255,255,255,.22); }
.menu-panel .lang-segment .lang-code { font-family: var(--wp--preset--font-family--display); font-size: 1.25rem; font-weight: 500; letter-spacing: .08em; line-height: 1.1; }
.menu-panel .lang-segment .lang-name { font-size: .78rem; letter-spacing: .02em; }
.menu-panel .lang-segment a[aria-current] { background: var(--wp--preset--color--accent); color: #111; }
.menu-panel .lang-segment a:not([aria-current]):hover { background: rgba(255,255,255,.06); color: #fff; }
.menu-panel .lang-segment + .menu-links { margin-top: 2rem; }
