/*
Theme Name: Exploria
Description: Thème de voyage éditorial pour Marion, travel planner Écosse. Blocs natifs, compositions et édition complète du site. Thème enfant de Twenty Twenty-Four.
Author: Exploria
Template: twentytwentyfour
Version: 1.4.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Text Domain: exploria
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: block-patterns, full-site-editing, wide-blocks, custom-colors, custom-logo, editor-style, featured-images, translation-ready
*/

/* Palette, fonts, type scale, widths and spacing tokens live in theme.json.
   This file supplies composition-specific layout and existing-content support. */
:root {
    --ex-line: rgba(23,20,15,.15);
    --exploria-ink: var(--wp--preset--color--contrast);
    --exploria-green: var(--wp--preset--color--contrast-2);
    --exploria-mist: var(--wp--preset--color--base-2);
    --exploria-ivory: var(--wp--preset--color--base);
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
::selection { background: #dce5d9; color: #0e3b2e; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
:where(h1,h2,h3) { text-wrap: balance; overflow-wrap: break-word; }
:where(h1,h2) em { color: var(--wp--preset--color--accent); font-weight: 350; }
.wp-site-blocks > *, .ex-home, .ex-home > .wp-block-post-content, .ex-home .ex-section { margin-block-start: 0; }
.wp-block-template-part { margin-block-start: 0; }
.wp-block-column { min-width: 0; }
.wp-block-image img { height: auto; }
.wp-block-button__link { transition: background-color .2s, color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--contrast-2); color: var(--wp--preset--color--base); }
.ex-section { padding-block: var(--wp--preset--spacing--50); }
.ex-eyebrow, .exploria-eyebrow { font-family: var(--wp--preset--font-family--body); font-size: .69rem; font-weight: 600; line-height: 1.6; letter-spacing: .19em; text-transform: uppercase; color: var(--wp--preset--color--accent); }
.ex-small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--contrast-3); }
.ex-section-intro { max-width: 730px; margin-bottom: var(--wp--preset--spacing--40); }
.ex-section-intro > p:not(.ex-eyebrow) { max-width: 600px; color: var(--wp--preset--color--contrast-3); }
.ex-text-link { font-size: .9rem; }
.ex-text-link a { text-underline-offset: .35em; font-weight: 550; }

/* Native WordPress navigation: no duplicate custom mobile menu or JS. */
.ex-announcement { color: var(--wp--preset--color--base); background: var(--wp--preset--color--contrast-2); padding-block: .55rem; }
.ex-announcement-text { margin: 0; font-size: .72rem; letter-spacing: .035em; }
/* Header appearance lives in native Group, Navigation, Logo and Button attributes.
   Only logo fallback, current-page cue and overlay geometry need selectors here. */
.ex-brand { flex-shrink: 0; }
.ex-brand:has(.wp-block-site-logo img) .wp-block-site-title { display: none; }
.ex-brand .wp-block-site-logo img { height: auto; display: block; }
:where(.ex-navigation) a { text-underline-offset: .3em; }
:where(.ex-navigation) a[aria-current="page"] { text-decoration: underline; }
:where(.ex-navigation .ex-nav-cta) { white-space: nowrap; }
/* Overlay-only geometry: leave colors, font and spacing to Navigation controls. */
.ex-navigation .is-menu-open .wp-block-navigation__responsive-close { width: 100%; max-width: 640px; margin-inline: auto; }
.ex-navigation .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4.5rem; padding-bottom: 1rem; }
.ex-navigation .is-menu-open .wp-block-navigation-item__content:focus { outline: none; box-shadow: none; text-decoration: underline; text-decoration-thickness: 2px; }
.ex-navigation .is-menu-open .wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; }

/* Wanderly-inspired opening: editable native columns, images and note. */
.ex-hero { padding-block: clamp(3rem,6vw,5.8rem) clamp(4rem,8vw,7rem); }
.ex-hero-columns { gap: clamp(2rem,5vw,5rem); align-items: center; margin-block-end: 0; }
.ex-hero-copy h1 { max-width: 670px; margin-block: 1.6rem; line-height: 1.02; }
.ex-hero-copy h1 em { display: block; }
.ex-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; max-width: 510px; }
.ex-intro { color: var(--wp--preset--color--contrast-3); max-width: 520px; font-size: .97rem; }
.ex-hero .wp-block-buttons { margin-block-start: 2rem; gap: .7rem; }
.ex-photo-stack { position: relative; padding: 0 0 2.5rem 1.5rem; }
.ex-photo-stack > .wp-block-image { margin: 0; }
.ex-hero-main img { width: 100%; height: clamp(390px,40vw,550px); object-fit: cover; object-position: 66% center; border-radius: 130px 28px 28px 28px; }
.ex-photo-stack .ex-hero-inset { position: absolute; left: -1.5rem; bottom: 0; width: 43%; border: 7px solid var(--wp--preset--color--base); border-radius: 24px; overflow: hidden; transform: rotate(-6deg); box-shadow: 0 14px 35px rgba(14,59,46,.12); }
.ex-hero-inset img { aspect-ratio: 4/5; width: 100%; object-fit: cover; border-radius: 16px; display: block; }
.ex-photo-note { position: absolute; top: 2.5rem; right: -1rem; background: var(--wp--preset--color--base); border: 1px solid var(--ex-line); border-radius: 16px; padding: 1.1rem 1.3rem; max-width: 240px; box-shadow: 0 12px 30px rgba(14,59,46,.08); }
.ex-photo-note .ex-eyebrow { font-size: .56rem; margin: 0; }
.ex-photo-note-text { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; line-height: 1.15; margin: .6rem 0 0; color: var(--wp--preset--color--contrast-2); }

.ex-start { background: var(--wp--preset--color--base-2); border-block: 1px solid var(--ex-line); padding-block: 2rem; }
.ex-quick-grid { gap: 2rem; margin-bottom: 0; }
.ex-quick-grid .wp-block-column + .wp-block-column { border-left: 1px solid var(--ex-line); padding-left: 2rem; }
.ex-quick-grid h3 { font-size: 1.5rem; margin-block: .6rem; }
.ex-quick-grid h3 a { text-decoration: none; }
.ex-quick-grid p { margin-block: .4rem; }
.ex-dest-top, .ex-dest-bottom { gap: var(--wp--preset--spacing--40); align-items: flex-start; }
.ex-dest-top > .wp-block-column:nth-child(2) { padding-top: 5rem; }
.ex-dest-bottom { margin-top: 2.5rem; }
.ex-dest-bottom > .wp-block-column:nth-child(2) { padding-top: 4rem; }
.ex-destination .wp-block-image { margin: 0; overflow: hidden; border-radius: 24px; }
.ex-destination img { width: 100%; aspect-ratio: 1.65; object-fit: cover; display: block; transition: transform .65s; }
.ex-destination.ex-tall img { aspect-ratio: 1.05; }
.ex-destination:hover img { transform: scale(1.025); }
.ex-destination .ex-eyebrow { margin-top: 1.3rem; margin-bottom: .5rem; }
.ex-destination h3 { margin-top: 0; font-size: clamp(1.8rem,3vw,2.5rem); }
.ex-destination h3 a { text-decoration: none; }
.ex-marion { background: var(--wp--preset--color--base-2); }
.ex-marion-columns { gap: clamp(2rem,6vw,6rem); align-items: center; margin: 0; }
.ex-marion-photo img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border-radius: 24px 120px 24px 24px; }
.ex-marion-copy > p:not(.ex-eyebrow):not(.ex-text-link) { color: var(--wp--preset--color--contrast-3); }
.ex-marion-copy h2 { font-size: clamp(2.2rem,3.5vw,3.2rem); }
.ex-method { background: var(--wp--preset--color--contrast-2); color: var(--wp--preset--color--base); }
.ex-method h2,.ex-method h3,.ex-method a { color: var(--wp--preset--color--base); }
.ex-method .ex-eyebrow { color: #edb49d; }
.ex-method a:hover { color: #edb49d; }
.ex-steps { gap: var(--wp--preset--spacing--40); margin-block: 3.5rem 2.5rem; }
.ex-steps .wp-block-column { border-top: 1px solid #638076; padding-top: 1.5rem; }
.ex-step-number { font-family: var(--wp--preset--font-family--heading); font-size: 2rem; color: #edb49d; margin: 0; }
.ex-steps h3 { font-size: 1.7rem; }
.ex-steps p:not(.ex-step-number) { color: #e2e5d9; font-size: .98rem; }
.ex-guide-grid { gap: 1.3rem; margin-block: 3rem 0; }
.ex-guide-card { height: 100%; border: 1px solid var(--ex-line); border-radius: 22px; padding: clamp(1.5rem,3vw,2.2rem); background: var(--wp--preset--color--base-2); }
.ex-guide-card h3 a { text-decoration: none; }
.ex-guide-card p:not(.ex-eyebrow):not(.ex-text-link) { font-size: .95rem; color: var(--wp--preset--color--contrast-3); }
.ex-faq { border-top: 1px solid var(--ex-line); padding-top: var(--wp--preset--spacing--40); }
.ex-faq-columns { gap: var(--wp--preset--spacing--40); margin: 0; }
.ex-faq h2 { font-size: clamp(2rem,3vw,2.8rem); }
.ex-faq .wp-block-details { margin-top: 0; }
.wp-block-details summary { font-weight: 550; cursor: pointer; padding-right: 1rem; }
.wp-block-details p { font-size: .97rem; color: var(--wp--preset--color--contrast-3); }
.ex-contact { background: var(--wp--preset--color--accent-3); text-align: center; }
.ex-contact > div > p { max-width: 600px; margin-inline: auto; }
.ex-contact h2 { font-size: clamp(2.7rem,4.5vw,4.6rem); }
.ex-contact .wp-block-buttons { justify-content: center; margin-top: 2rem; }
.ex-footer { background: var(--wp--preset--color--contrast-2); color: var(--wp--preset--color--base); }
.ex-footer h2,.ex-footer a { color: var(--wp--preset--color--base); }
.ex-footer a:hover { color: #edb49d; }
.ex-footer .ex-eyebrow { color: #edb49d; }
.ex-footer p { font-size: .9rem; }
.ex-footer .wp-block-navigation__container { align-items: flex-start; gap: .8rem; }
.ex-footer-brand { font-size: 3.3rem; margin-top: 0; }
.ex-footer-bottom { border-top: 1px solid #638076; padding-top: 1.5rem; margin-top: 3rem; justify-content: space-between; gap: 1rem; }
.ex-footer .ex-small { color: #d3dfd4; font-size: .76rem; }

/* Existing pages retain their content and receive the new editorial styling. */
.exploria-page-main,.exploria-article-main { padding-bottom: var(--wp--preset--spacing--50); }
.exploria-page-hero { background: var(--wp--preset--color--base-2); padding-block: var(--wp--preset--spacing--50); margin-bottom: var(--wp--preset--spacing--40); }
.exploria-page-hero h1 { max-width: 1050px; margin: 0; }
.ex-article-header { padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); }
.ex-article-header h1 { max-width: 1000px; }
.ex-post-meta { color: var(--wp--preset--color--contrast-3); font-size: .8rem; margin-block: 1.4rem 2rem; }
.ex-post-meta time::before { content: 'Mis à jour le '; }
.wp-block-post-content :where(h2,h3) { scroll-margin-top: 2rem; }
.wp-block-post-content > h2 { margin-top: 3rem; }
.wp-block-post-content > h3 { margin-top: 2rem; }
.wp-block-post-content li { margin-block: .4rem; }
.wp-block-post-content :where(p,li,td,th) { overflow-wrap: break-word; }
.wp-block-post-content .wp-block-table { overflow-x: auto; }
.wp-block-table :where(td,th) { padding: .9rem; font-size: .95rem; border-color: var(--ex-line); }
.wp-block-table th { text-align: left; background: var(--wp--preset--color--base-2); }
.exploria-pillar-section { padding-block: var(--wp--preset--spacing--40); margin-block: var(--wp--preset--spacing--40); }
.exploria-pillar-section--mist,.exploria-pillar-cta { background: var(--wp--preset--color--base-2); }
.exploria-pillar-heading { margin-bottom: 2rem; }
.exploria-pillar-intro { padding-bottom: 1rem; }
.exploria-pillar-cta { border-radius: 24px; padding: var(--wp--preset--spacing--40); margin-block: 3rem; }
:where(.exploria-decision-grid,.exploria-planning-grid,.exploria-guide-grid) { gap: 1.2rem; }
:where(.exploria-decision-grid,.exploria-planning-grid,.exploria-guide-grid) > .wp-block-column { border: 1px solid var(--ex-line); border-radius: 18px; padding: 1.5rem; }
.exploria-decision-number,.exploria-guide-tag { font-size: .8rem; font-weight: 600; color: var(--wp--preset--color--accent); }
.exploria-checklist { padding-left: 1.3rem; }
.exploria-budget-calculator { padding: var(--wp--preset--spacing--30); border: 1px solid var(--ex-line); border-radius: 22px; background: #fff; }
.exploria-budget-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 1.25rem; margin: 1.5rem 0; }
.exploria-budget-field { display: grid; gap: .4rem; font-weight: 600; }
.exploria-budget-field small { font-weight: 400; }
.exploria-budget-field input { width: 100%; padding: .75rem; border: 1px solid #a2aca6; border-radius: 8px; background: var(--wp--preset--color--base); font: inherit; }
.exploria-budget-result { display: grid; grid-template-columns: 1fr auto; gap: .5rem; background: var(--wp--preset--color--contrast-2); color: #fff; padding: 1.2rem; border-radius: 14px; }
.exploria-budget-result p { margin: 0; }
.exploria-budget-result strong { font-size: 2rem; }
.exploria-budget-result__detail { font-size: .9rem; }
.ex-archive { padding-block: var(--wp--preset--spacing--50); }
.ex-query { margin-top: 3rem; }
.ex-query .wp-block-post-template { gap: 2.5rem; }
.ex-query .wp-block-post-title { margin-top: 1rem; }
.ex-query .wp-block-post-title a { text-decoration: none; }
.ex-query .wp-block-post-excerpt { font-size: .95rem; }
.ex-query .wp-block-query-pagination { margin-top: 3rem; }
.ex-query .wp-block-query-pagination a { padding: .4rem; }

/* Responsive logo cap only: the native Logo width remains editable. */
@media (min-width: 1011px) and (max-width: 1320px) {
    .ex-brand .wp-block-site-logo img { max-width: clamp(120px,calc(31vw - 198px),205px); }
}
@media (max-width: 1010px) {
    .ex-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
    .ex-navigation .wp-block-navigation__responsive-container-open { display: flex !important; padding: .5rem; }
}
@media (max-width: 1150px) {
    .ex-hero-copy h1 { font-size: clamp(3rem,6vw,4.6rem); }
    .ex-photo-note { top: 1.5rem; right: -.5rem; max-width: 200px; }
}
@media (max-width: 900px) and (min-width: 782px) {
    .ex-hero-columns { gap: 1.5rem; }
    .ex-photo-note { position: relative; top: auto; right: auto; margin: -3rem 0 0 auto; }
    .ex-hero-main img { min-height: 470px; }
    .ex-photo-stack .ex-hero-inset { bottom: 2.5rem; left: 0; }
}
@media (max-width: 781px) {
    .ex-hero { padding-block: 2.5rem 3.5rem; }
    .ex-hero-columns { gap: 2.5rem; }
    .ex-hero-copy h1 { font-size: clamp(3.1rem,9vw,4.8rem); max-width: 640px; }
    .ex-photo-stack { max-width: 580px; margin: 0 auto; padding-left: 1.5rem; padding-bottom: 2rem; }
    .ex-hero-main img { height: 440px; border-top-left-radius: 90px; }
    .ex-photo-stack .ex-hero-inset { width: 37%; left: 0; }
    .ex-photo-note { right: 0; }
    .ex-quick-grid { gap: 1.3rem; }
    .ex-quick-grid .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--ex-line); padding-left: 0; padding-top: 1.3rem; }
    .ex-dest-top,.ex-dest-bottom { gap: 2rem; margin-top: 2rem; }
    .ex-dest-top > .wp-block-column:nth-child(2),.ex-dest-bottom > .wp-block-column:nth-child(2) { padding-top: 0; }
    .ex-destination img,.ex-destination.ex-tall img { aspect-ratio: 4/3; }
    .ex-marion-columns { gap: 2rem; }
    .ex-marion-photo img { max-height: 550px; object-position: center 35%; }
    .ex-steps { gap: 2rem; }
    .ex-guide-grid { gap: 1rem; }
    .ex-faq-columns { gap: 1.5rem; }
    .ex-footer-columns { gap: 2rem; }
    .ex-footer-bottom { align-items: flex-start; flex-direction: column; }
    .ex-footer-bottom > p { margin: 0; }
    .ex-query .wp-block-post-template { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
    .ex-announcement-text { font-size: .61rem; letter-spacing: .01em; }
    .ex-photo-note { max-width: 174px; padding: 1rem; }
    .ex-photo-note-text { font-size: 1.1rem; }
    .ex-hero-main img { height: 355px; }
    .ex-hero .wp-block-buttons { align-items: stretch; flex-direction: column; }
    .ex-hero .wp-block-button__link { width: 100%; }
    .ex-hero .ex-small { font-size: .74rem; }
    .ex-hero-copy h1 { font-size: 3.1rem; }
    .ex-hero-copy .ex-eyebrow { font-size: .61rem; letter-spacing: .12em; }
    .ex-query .wp-block-post-template { grid-template-columns: 1fr; }
    .exploria-budget-fields,.exploria-budget-result { grid-template-columns: 1fr; }
    .wp-block-table table { min-width: 580px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *,*::before,*::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
/* Match front-end compositions in the site/post editor, without styling admin UI. */
.editor-styles-wrapper .ex-photo-stack .ex-hero-inset { position: absolute; z-index: 1; }
.editor-styles-wrapper .ex-photo-stack .ex-photo-note { position: absolute; z-index: 2; }
/* The image editor adds inline height:auto and block position:relative.
   Override only these editorial compositions to keep the canvas representative. */
.editor-styles-wrapper .ex-hero-main img { height: clamp(390px,40vw,550px) !important; }
.editor-styles-wrapper .ex-hero-inset img { aspect-ratio: 4/5; object-fit: cover; }
@media (max-width: 900px) and (min-width: 782px) {
    .editor-styles-wrapper .ex-photo-stack .ex-photo-note { position: relative; }
}
@media (max-width: 781px) {
    .editor-styles-wrapper .ex-hero-main img { height: 440px !important; }
}
@media (max-width: 480px) {
    .editor-styles-wrapper .ex-hero-main img { height: 355px !important; }
}

/* Itinerary enhancement only. Colors, typography, spacing and cards use block attributes.
   Scroll-snap has no equivalent in the native Group controls. Content works without JS. */
.ex-itinerary-track { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 1rem; }
.ex-itinerary-track > .ex-itinerary-card { flex: 0 0 min(82vw,320px); scroll-snap-align: start; }
.ex-itinerary-card { min-width: 0; }
.ex-itinerary-controls { display: flex; justify-content: flex-end; gap: .5rem; }
.ex-itinerary-controls[hidden] { display: none; }
.ex-itinerary-controls button { width: 44px; height: 44px; border: 1px solid var(--ex-line); border-radius: 50%; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.ex-itinerary-controls button:disabled { opacity: .35; cursor: default; }
.ex-itinerary-controls button:not(:disabled):hover { background: var(--wp--preset--color--contrast-2); color: var(--wp--preset--color--base); }
/* Show every card while editing so authors can select, duplicate and reorder them. */
.editor-styles-wrapper .ex-itinerary-track { flex-wrap: wrap; overflow: visible; scroll-snap-type: none; }

/* Optional native Tab List style. Core exposes the default button appearance but
   not the selected/focus states; no content or spacing is imposed here. */
.wp-block-tab-list.is-style-exploria-pills button[aria-selected="true"] { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast-2); }
.wp-block-tab-list.is-style-exploria-pills button[aria-selected="true"]::before { content: none; }
.wp-block-tab-list.is-style-exploria-pills button:focus:not(:focus-visible) { outline: none; box-shadow: none; }
.wp-block-tab-list.is-style-exploria-pills button:focus-visible { outline: 2px solid var(--wp--preset--color--accent-4); outline-offset: 4px; }

/* Reusable Paragraph style: typography is registered as native style_data.
   Only the decorative strokes require pseudo-elements. Legacy theme eyebrows
   share this ornament; compact photo captions retain their plain treatment. */
:where(.is-style-exploria-eyebrow, .ex-eyebrow) { display: flex; align-items: center; gap: 1em; }
:where(.is-style-exploria-eyebrow, .ex-eyebrow)::before,
:where(.is-style-exploria-eyebrow, .ex-eyebrow)::after { content: ''; flex: 0 0 clamp(1.25rem,2.3vw,2rem); height: 1px; background: currentColor; opacity: .4; }
:where(.is-style-exploria-eyebrow, .ex-eyebrow).has-text-align-center { justify-content: center; }
:where(.is-style-exploria-eyebrow, .ex-eyebrow).has-text-align-right { justify-content: flex-end; }
.ex-photo-note .ex-eyebrow::before, .ex-photo-note .ex-eyebrow::after { content: none; }

/* Native Cover blocks place the editable day badges over each photograph.
   Hide the platform scrollbar only once accessible carousel controls exist. */
.ex-itinerary-track[data-enhanced="true"] { scrollbar-width: none; padding-bottom: 0; }
.ex-itinerary-track[data-enhanced="true"]::-webkit-scrollbar { display: none; }
.ex-itinerary-heading > .ex-itinerary-controls { flex-shrink: 0; }

/* Native gallery grid: only responsive column counts and span adaptation. */
@media (min-width: 768px) and (max-width: 1023px) {
    .ex-photo-gallery-grid.ex-photo-gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* Mosaic cards have one destination: extend the native heading link to the card.
   Front end only, so Gutenberg keeps normal text and block selection. */
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic :is(.wp-block-cover:has(h3 a), .wp-block-group.has-background:has(> h3 a)) {
    position: relative;
    isolation: isolate;
}
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic .wp-block-cover :is(.wp-block-cover__inner-container, .wp-block-group),
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic h3,
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic h3 a { position: static; }
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic .wp-block-cover__image-background { z-index: -2; }
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic .wp-block-cover__background { z-index: -1; }
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic :is(.wp-block-cover h3, .wp-block-group.has-background > h3) a::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: 22px;
}
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic :is(.wp-block-cover:has(h3 a), .wp-block-group.has-background:has(> h3 a)):hover h3 a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .15em;
}
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic :is(.wp-block-cover:has(h3 a), .wp-block-group.has-background:has(> h3 a)):has(h3 a:focus-visible) {
    outline: 3px solid var(--wp--preset--color--accent);
    outline-offset: 4px;
}
/* The card outline above replaces the smaller outline around its title. */
body:not(.wp-admin):not(.editor-styles-wrapper) .ex-experience-mosaic :is(.wp-block-cover h3, .wp-block-group.has-background > h3) a:focus-visible { outline: none; }
@media (max-width: 767px) {
    .ex-photo-gallery-grid.ex-photo-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ex-photo-gallery-grid > .wp-block-image { grid-row: auto; }
}




/* Menu mobile ajouter par clement*/
@media (max-width: 1010px) {

    /* Panneau */
    .ex-navigation .wp-block-navigation__responsive-container.is-menu-open {
        padding: 26px 28px 32px !important;
        background: var(--wp--preset--color--base) !important;
    }

    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-close {
        width: 100%;
        max-width: none;
        margin: 0;
    }

    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-dialog {
        width: 100%;
        min-height: calc(100svh - 58px);
        display: flex;
        flex-direction: column;
    }

    /* Croix */
    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-container-close {
        top: 0;
        right: 0;
        width: 46px;
        height: 46px;
        min-width: 46px;
        min-height: 46px;
        border: 1px solid rgba(14, 59, 46, .18);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--wp--preset--color--base-2);
    }

    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-container-close svg {
        width: 21px;
        height: 21px;
    }

    /* Contenu */
    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-container-content {
        padding-top: 72px;
        padding-bottom: 0;
        align-items: stretch;
        width: 100%;
    }

    /* Petit titre décoratif */
    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-container-content::before {
        content: "EXPLORIA VOYAGES";
        display: block;
        margin-bottom: 13px;
        font-family: var(--wp--preset--font-family--body);
        font-size: .68rem;
        font-weight: 700;
        letter-spacing: .15em;
        color: var(--wp--preset--color--accent);
    }

    /* Grand titre */
    .ex-navigation .is-menu-open
    .wp-block-navigation__responsive-container-content::after {
        content: "Explorez l’Écosse";
        display: block;
        order: -1;
        margin-bottom: 30px;
        font-family: var(--wp--preset--font-family--heading);
        font-size: clamp(2.2rem, 10vw, 3.1rem);
        font-weight: 500;
        line-height: .98;
        letter-spacing: -.04em;
        color: var(--wp--preset--color--contrast-2);
    }

    /* Liste */
    .ex-navigation .is-menu-open
    .wp-block-navigation__container {
        width: 100%;
        gap: 0;
        align-items: stretch;
    }

    /* Entrées */
    .ex-navigation .is-menu-open
    .wp-block-navigation-item:not(.ex-nav-cta) {
        width: 100%;
        border-bottom: 1px solid rgba(14, 59, 46, .13);
    }

    .ex-navigation .is-menu-open
    .wp-block-navigation-item:not(.ex-nav-cta):first-child {
        border-top: 1px solid rgba(14, 59, 46, .13);
    }

    /* Liens */
    .ex-navigation .is-menu-open
    .wp-block-navigation-item:not(.ex-nav-cta)
    > .wp-block-navigation-item__content {
        width: 100%;
        box-sizing: border-box;
        padding: 15px 3px;
        display: flex;
        align-items: center;
        justify-content: space-between;

        font-family: var(--wp--preset--font-family--heading);
        font-size: clamp(1.55rem, 6.5vw, 2rem);
        font-weight: 500;
        line-height: 1.05;
        letter-spacing: -.025em;
        text-decoration: none;
        color: var(--wp--preset--color--contrast-2);
    }

    /* Petite flèche à droite */
    .ex-navigation .is-menu-open
    .wp-block-navigation-item:not(.ex-nav-cta)
    > .wp-block-navigation-item__content::after {
        content: "→";
        font-family: var(--wp--preset--font-family--body);
        font-size: 1rem;
        font-weight: 400;
        opacity: .42;
        transform: translateX(-3px);
        transition: .2s ease;
    }

    .ex-navigation .is-menu-open
    .wp-block-navigation-item:not(.ex-nav-cta)
    > .wp-block-navigation-item__content:hover::after {
        opacity: 1;
        transform: translateX(2px);
    }

    /* Page actuelle */
    .ex-navigation .is-menu-open
    .wp-block-navigation-item__content[aria-current="page"] {
        color: var(--wp--preset--color--accent);
        text-decoration: none;
    }

    /* CTA */
    .ex-navigation .is-menu-open
    .ex-nav-cta {
        width: 100%;
        margin-top: 28px;
    }

    .ex-navigation .is-menu-open
    .ex-nav-cta .wp-block-button {
        width: 100%;
    }

    .ex-navigation .is-menu-open
    .ex-nav-cta .wp-block-button__link {
        width: 100%;
        box-sizing: border-box;
        padding: 16px 24px;
        text-align: center;
        font-size: .95rem;
    }
}




/* bordure des bandeau clement*/
/* ==================================================
   BORDURES DES BANDEAUX IMMERSIFS
   ================================================== */

.ex-immersive-photo {
  position: relative;
  overflow: visible;

  /* Bordures par défaut */
  --exploria-border-top: url("/wp-content/themes/exploria/assets/images/borderframe.png");
  --exploria-border-bottom: url("/wp-content/themes/exploria/assets/images/borderframe.png");
}


/* HAUT */
.ex-immersive-photo::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 100%;
  height: 32px;

  background-image: var(--exploria-border-top);
  background-repeat: repeat-x;
  background-size: auto 32px;
  background-position: 37px center;

  transform: rotate(180deg);

  z-index: 5;
  pointer-events: none;
}


/* BAS */
.ex-immersive-photo::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 32px;

  background-image: var(--exploria-border-bottom);
  background-repeat: repeat-x;
  background-size: auto 32px;
  background-position: -85px center;

  z-index: 5;
  pointer-events: none;
}


/* ==================================================
   VARIANTES HAUT
   ================================================== */

.ex-immersive-photo.haut1 {
  --exploria-border-top: url("/wp-content/themes/exploria/assets/images/borderframe.png");
}

.ex-immersive-photo.haut2 {
  --exploria-border-top: url("/wp-content/themes/exploria/assets/images/borderframe2.png");
}

.ex-immersive-photo.haut3 {
  --exploria-border-top: url("/wp-content/themes/exploria/assets/images/borderframe3.png");
}


/* ==================================================
   VARIANTES BAS
   ================================================== */

.ex-immersive-photo.bas1 {
  --exploria-border-bottom: url("/wp-content/themes/exploria/assets/images/borderframe.png");
}

.ex-immersive-photo.bas2 {
  --exploria-border-bottom: url("/wp-content/themes/exploria/assets/images/borderframe2.png");
}

.ex-immersive-photo.bas3 {
  --exploria-border-bottom: url("/wp-content/themes/exploria/assets/images/borderframe3.png");
}


















/* Contour des images avec style découpé*/
/* =========================================
   IMAGE — STYLE EXPLORIA DÉCOUPÉ
   ========================================= */

.wp-block-image.is-style-exploria-frame {
  display: inline-grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  position: relative;
  overflow: visible;
}


/* IMAGE */
.wp-block-image.is-style-exploria-frame img {
  grid-column: 1;
  grid-row: 1;

  display: block;
  width: 100%;
  height: auto;

  border: 0 !important;
  margin: 0 !important;
}


/* CADRE COMPLET AUTOUR DE L'IMAGE */
.wp-block-image.is-style-exploria-frame::before {
  content: "";

  grid-column: 1;
  grid-row: 1;

  width: 100%;
  height: 100%;

  align-self: stretch;
  justify-self: stretch;

  background-image:
    url("/wp-content/themes/exploria/assets/images/borderframe-top.png"),
    url("/wp-content/themes/exploria/assets/images/borderframe-bottom.png"),
    url("/wp-content/themes/exploria/assets/images/borderframe-left.png"),
    url("/wp-content/themes/exploria/assets/images/borderframe-right.png");

  background-repeat:
    repeat-x,
    repeat-x,
    repeat-y,
    repeat-y;

  background-position:
    35px top,
    -70px bottom,
    left -45px,
    right 60px;

  background-size:
    auto 22px,
    auto 22px,
    22px auto,
    22px auto;

  z-index: 5;
  pointer-events: none;
}


/* LÉGENDE */
.wp-block-image.is-style-exploria-frame figcaption {
  grid-column: 1;
  grid-row: 2;

  position: relative;
  margin-top: 8px;
  z-index: 6;
}





/* Ajoute un style de bouton*/
/* =========================================
   Boutton — STYLE EXPLORIA DÉCOUPÉ
   ========================================= */

.wp-block-button.is-style-exploria-beige .wp-block-button__link {
  background-color: rgb(251, 247, 240);
  color: #003f32;
  border: none;
  border-radius: 999px;
}

.wp-block-button.is-style-exploria-beige .wp-block-button__link:hover {
  background-color: rgb(243, 237, 226);
  color: #003f32;
}


.wp-block-button.is-style-exploria-rouge .wp-block-button__link {
  background-color: #c65d3b;
  color: #003f32;
  border: none;
  border-radius: 999px;
}

.wp-block-button.is-style-exploria-rouge .wp-block-button__link:hover {
  background-color: #ad4a29;
  color: rgb(251, 247, 240);
}








/* Bloque le focuse outline - les carré outour des lien*/
a:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}




/* class generique */
.no-underline a,
.no-underline a:hover,
.no-underline a:focus {
  text-decoration: none;
}