/* ============================================================
   Les Sauges Rouges — socle du site sous Elementor
   1. Variables (couleurs, polices, tailles) reprises du thème d'origine
   2. Typographie de base
   3. Neutralisation des styles propres à Elementor et au thème,
      pour que les classes « sr-… » posées sur chaque élément décident du rendu
   ============================================================ */

:root {
    --wp--preset--color--base: #F5F1E8;
    --wp--preset--color--base-2: #EAE3D2;
    --wp--preset--color--contrast: #2D2A26;
    --wp--preset--color--contrast-2: #5A554D;
    --wp--preset--color--primary: #6B7A5A;
    --wp--preset--color--primary-dark: #4A5640;
    --wp--preset--color--accent: #C66B4E;
    --wp--preset--color--accent-dark: #9E4F37;
    --wp--preset--color--stone: #D9D2C5;
    --wp--preset--color--muted: #8B7355;
    --wp--preset--gradient--warm-fade: linear-gradient(180deg, #F5F1E8 0%, #EAE3D2 100%);
    --wp--preset--gradient--earth-fade: linear-gradient(135deg, #6B7A5A 0%, #4A5640 100%);
    --wp--preset--gradient--sunset: linear-gradient(135deg, #C66B4E 0%, #9E4F37 100%);
    --wp--preset--font-size--small: 13px;
    --wp--preset--font-size--medium: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.652), 20px);
    --wp--preset--font-size--large: clamp(22.041px, 1.378rem + ((1vw - 3.2px) * 1.517), 36px);
    --wp--preset--font-size--x-large: clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 1.846), 42px);
    --wp--preset--font-size--xx-large: clamp(2.5rem, 1.8rem + 2.8vw, 4rem);
    --wp--preset--font-size--hero: clamp(3rem, 2rem + 4vw, 6rem);
    --wp--preset--font-family--serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    --wp--preset--font-family--sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --wp--preset--spacing--20: 0.44rem;
    --wp--preset--spacing--30: 0.67rem;
    --wp--preset--spacing--40: 1rem;
    --wp--preset--spacing--50: 1.5rem;
    --wp--preset--spacing--60: 2.25rem;
    --wp--preset--spacing--70: 3.38rem;
    --wp--preset--spacing--80: 5.06rem;
    --wp--preset--shadow--soft: 0 2px 8px rgba(45,42,38,0.06), 0 1px 2px rgba(45,42,38,0.04);
    --wp--preset--shadow--lift: 0 10px 30px rgba(45,42,38,0.10), 0 4px 8px rgba(45,42,38,0.06);
    --wp--preset--shadow--deep: 0 30px 60px rgba(45,42,38,0.18), 0 10px 20px rgba(45,42,38,0.08);
    --wp--style--block-gap: 1.5rem;
}

/* ---------- 2. Base ---------- */
/* Règles générales du thème d'origine, à la même force : elles valent aussi pour le contenu
   des codes courts (réservation, avis, FAQ, formulaires) et des articles. */
a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--accent-dark); }
:root :where(a:where(:not(.wp-element-button)):hover) { color: var(--wp--preset--color--accent); }
h1, h2, h3, h4, h5, h6 { font-family: var(--wp--preset--font-family--serif); font-weight: 400; letter-spacing: -0.01em; line-height: 1.15; }
h1 { font-size: var(--wp--preset--font-size--hero); }
h2 { font-size: var(--wp--preset--font-size--xx-large); }
h3 { font-size: var(--wp--preset--font-size--x-large); }
h4 { font-size: var(--wp--preset--font-size--large); }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background: #fff; clip-path: none; color: var(--wp--preset--color--contrast); display: block; font-size: 1em; height: auto; left: 5px; top: 5px; padding: 15px 23px 14px; text-decoration: none; width: auto; z-index: 100000; }
.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--sr-content-size, 780px); margin-left: auto !important; margin-right: auto !important; }
:root :where(.is-layout-flow) > *, :root :where(.is-layout-constrained) > * { margin-block-start: 1.5rem; margin-block-end: 0; }
:root :where(.is-layout-flow) > :first-child, :root :where(.is-layout-constrained) > :first-child { margin-block-start: 0; }
html:root { font-size: 16px; }
:root:root body.sr-site {
    margin: 0;
    background-color: var(--wp--preset--color--base);
    color: var(--wp--preset--color--contrast);
    font-family: var(--wp--preset--font-family--sans);
    font-size: var(--wp--preset--font-size--medium);
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: normal;
}

/* ---------- 3. Elementor : conteneurs ---------- */
/* Elementor pilote ses conteneurs par variables ; on les remet à plat pour retrouver le flux normal. */
:root:root:root .e-con.cdp-c {
    --display: block;
    --flex-direction: row;
    --flex-wrap: nowrap;
    --justify-content: normal;
    --align-items: normal;
    --align-content: normal;
    --width: auto;
    --min-height: 0px;
    --gap: 0px; --row-gap: 0px; --column-gap: 0px;
    --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
    --margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
    --container-widget-width: auto;
    --container-widget-height: auto;
    --container-widget-flex-grow: 0;
    --container-widget-align-self: auto;
    --content-width: 100%;
    --text-align: inherit;
    --border-radius: 0;
    --widgets-spacing: 0px 0px;
    --widgets-spacing-row: 0px;
    --widgets-spacing-column: 0px;
    --kit-widget-spacing: 0px;
}
:root:root body .wp-block-group:is(.cdp-c, .cdp-w) { box-sizing: border-box; }
:root:root .e-con.cdp-c {
    box-sizing: content-box;
    max-width: none;
    min-width: auto;
    min-height: auto;
    text-align: inherit;
}
:root:root .elementor-widget.cdp-w {
    box-sizing: content-box;
    max-width: none;
    min-width: auto;
    min-height: auto;
    width: auto;
    margin: 0;
    --kit-widget-spacing: 0px;
}
:root:root:root .elementor-widget.cdp-w > .elementor-widget-container { display: contents; }

/* Balises d'origine : affichage et marges par défaut du navigateur */
:root:root:root .cdp-span, :root:root:root .cdp-strong, :root:root:root .cdp-small,
:root:root:root .cdp-em, :root:root:root .cdp-a, :root:root:root .cdp-text,
:root:root .cdp-c.cdp-span, :root:root .cdp-c.cdp-a { display: inline; }
:root:root:root .cdp-strong { font-weight: bolder; }
:root:root:root .cdp-small { font-size: smaller; }
:root:root:root .cdp-p, :root:root:root .cdp-div, :root:root:root .cdp-li,
:root:root:root .cdp-dt, :root:root:root .cdp-dd, :root:root:root .cdp-blockquote { display: block; }
:root:root:root .cdp-p { margin: 1em 0; }
:root:root:root .cdp-ul, :root:root:root .cdp-ol { margin: 1em 0; padding-left: 40px; list-style: disc; }
:root:root:root .cdp-ol { list-style: decimal; }
:root:root:root .cdp-li { display: list-item; }
:root:root .cdp-c.cdp-li { display: list-item; }
:root:root:root .cdp-dl { margin: 1em 0; }
:root:root:root .cdp-dd { margin-left: 40px; }
:root:root:root .cdp-h1, :root:root:root .cdp-h2, :root:root:root .cdp-h3,
:root:root:root .cdp-h4, :root:root:root .cdp-h5, :root:root:root .cdp-h6 {
    display: block;
    font-family: var(--wp--preset--font-family--serif);
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.15;
}
:root:root:root .cdp-h1 { font-size: var(--wp--preset--font-size--hero); margin: 0.67em 0; }
:root:root:root .cdp-h2 { font-size: var(--wp--preset--font-size--xx-large); margin: 0.83em 0; }
:root:root:root .cdp-h3 { font-size: var(--wp--preset--font-size--x-large); margin: 1em 0; }
:root:root:root .cdp-h4 { font-size: var(--wp--preset--font-size--large); margin: 1.33em 0; }
:root:root:root .cdp-h5 { font-size: 0.83em; margin: 1.67em 0; }
:root:root:root .cdp-h6 { font-size: 0.67em; margin: 2.33em 0; }
:root:root:root :is(section, article, aside, nav) .cdp-h1 { margin: 0.83em 0; }
:root:root .elementor-widget.cdp-w.cdp-button { box-sizing: border-box; text-align: center; cursor: pointer; }
:root:root:root .cdp-hidden { display: none !important; }

/* Le contenu du widget hérite de son enveloppe, qui porte les classes sr-… */
:root:root:root .cdp-w:not(.cdp-shortcode) > :is(h1, h2, h3, h4, h5, h6, p, blockquote, .elementor-heading-title) {
    margin: 0; padding: 0;
    font: inherit; color: inherit;
    letter-spacing: inherit; text-transform: inherit; text-align: inherit;
    line-height: inherit; text-shadow: inherit; text-decoration: inherit;
}

/* Liens */
.sr-site .elementor .cdp-w:not(.cdp-shortcode) a { color: var(--wp--preset--color--accent-dark); text-decoration: underline; }
.sr-site .elementor .cdp-w:not(.cdp-shortcode) a:hover { color: var(--wp--preset--color--accent); }
.sr-site .elementor .cdp-shortcode a { text-decoration: revert; }
:root:root .cdp-c.cdp-a { color: var(--wp--preset--color--accent-dark); text-decoration: underline; }

/* Bouton : l'enveloppe porte la forme, le lien intérieur couvre toute sa surface */
:root:root .cdp-w.cdp-a { position: relative; color: var(--wp--preset--color--accent-dark); text-decoration: underline; cursor: pointer; }
:root:root .cdp-w.cdp-a:hover { color: var(--wp--preset--color--accent); }
:root:root:root .cdp-w.cdp-a .elementor-button,
:root:root:root .cdp-w.cdp-a .elementor-button:hover,
:root:root:root .cdp-w.cdp-a .elementor-button:focus,
:root:root:root .cdp-w.cdp-a .elementor-button:visited {
    display: inline; background: none; border: 0; border-radius: 0; box-shadow: none;
    padding: 0; margin: 0; fill: currentColor;
    font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit;
    line-height: inherit; text-decoration: inherit; text-align: inherit; transition: none;
}
:root:root:root .cdp-w.cdp-a .elementor-button::after { content: ''; position: absolute; inset: 0; }
:root:root:root .cdp-w.cdp-a .elementor-button-content-wrapper,
:root:root:root .cdp-w.cdp-a .elementor-button-text { display: inline; }

/* Images et pictogrammes : l'enveloppe du widget s'efface, les règles d'origine visent directement <img> et <svg> */
:root:root:root .cdp-w.cdp-img, :root:root:root .cdp-w.cdp-svg,
:root:root:root .cdp-w.cdp-svg .elementor-icon-wrapper,
:root:root:root .cdp-w.cdp-svg .elementor-icon { display: contents; color: inherit; }
:root:root:root .cdp-w.cdp-img img {
    display: inline; vertical-align: baseline; max-width: none; height: auto;
    border: 0; border-radius: 0; box-shadow: none;
}
:root:root:root .cdp-w.cdp-svg svg { display: inline; width: auto; height: auto; position: static; }

/* Carte */
:root:root:root .cdp-w.cdp-iframe { display: block; width: 100%; height: 100%; }
:root:root:root .cdp-w.cdp-iframe .elementor-custom-embed { height: 100%; line-height: 0; }

/* Espace que le thème d'origine laissait entre l'en-tête, chaque grand bloc et le pied de page */
:root:root .sr-site .elementor[data-elementor-type="wp-page"] { padding-bottom: var(--wp--style--block-gap); }
:root:root body [data-elementor-type="wp-page"] > :is(.cdp-c, .cdp-w) { margin-top: var(--wp--style--block-gap); }

/* Contenu des codes courts (réservation, avis, FAQ, formulaires) : on lui rend le modèle de boîte
   qu'il avait avant Elementor, sans prendre le pas sur les feuilles des extensions. */
.cdp-shortcode :where(*), .cdp-shortcode :where(*)::before, .cdp-shortcode :where(*)::after { box-sizing: content-box; }

/* Gabarits hors Elementor (blog, article, pages ordinaires) : mêmes espacements que le thème d'origine */
.sr-gabarit__contenu > * { margin-block-start: 1.5rem; margin-block-end: 0; }
.sr-gabarit__contenu { padding-bottom: 1.5rem; }
.sr-gabarit .has-global-padding { padding-right: 1rem; padding-left: 1rem; }
.sr-gabarit .has-global-padding > .alignfull { margin-right: -1rem; margin-left: -1rem; }
:root :where(.wp-element-button, .wp-block-button__link) { background-color: var(--wp--preset--color--accent); border-radius: 999px; border-width: 0; color: var(--wp--preset--color--base); font-family: var(--wp--preset--font-family--sans); font-size: var(--wp--preset--font-size--small); font-style: inherit; font-weight: 500; letter-spacing: 0.05em; line-height: inherit; padding: 0.9rem 2rem; text-decoration: none; text-transform: uppercase; }
:root :where(.wp-element-button:hover, .wp-block-button__link:hover) { background-color: var(--wp--preset--color--accent-dark); }
.has-base-color { color: var(--wp--preset--color--base) !important; }
.has-contrast-color { color: var(--wp--preset--color--contrast) !important; }
.has-accent-background-color { background-color: var(--wp--preset--color--accent) !important; }
.has-serif-font-family { font-family: var(--wp--preset--font-family--serif) !important; }
.has-sans-font-family { font-family: var(--wp--preset--font-family--sans) !important; }
:root :where(.is-layout-flex) { gap: 1.5rem; }
:root :where(.is-layout-grid) { gap: 1.5rem; }

/* Dans l'éditeur Elementor, tout reste visible : les apparitions au défilement ne masquent rien pendant qu'on modifie. */
.elementor-editor-active .sr-reveal, .elementor-editor-active .sr-reveal-up, .elementor-editor-active .sr-reveal-left,
.elementor-editor-active .sr-reveal-right, .elementor-editor-active .sr-reveal-scale { opacity: 1 !important; transform: none !important; }
