@import url('https://fonts.googleapis.com/css2?family=Caprasimo&family=Fjord+One&display=swap');
:root {
  --color-accent: #831F15;
  --color-text: #331411;
  --color-text-alt: #173B15;
  --color-bg: #F7F1E4;
  --color-bg-alt: #F1EADB;
  --color-bg-alt2: #DFD8C9;
  --color-muted: #846F6D;
  --max-width: 1500px;
  --font-main: "Fjord One", serif;
  --font-alt: "Caprasimo", sans-serif;
  --header-height: 72px;
  --topbar-height: 32px;
  --burger-breakpoint: 900px;
  --columns-gap: clamp(20px, 3vw, 80px);
  --section-padding: clamp(60px, 3.75rem + 3.76vw, 100px);
  --border-radius: 10px;
}
body {
  font-family: var(--font-main);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.6;
  font-size: 16px;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--color-text-alt);
  font-family: var(--font-alt);
  margin-top: 0;
  word-break: break-word;
}
h1, h2, h3 {
  font-weight: 700;
}
h1 {
  font-size: clamp(1.875rem, 1.22rem + 2.82vw, 3.75rem); /* 30px → 60px */
  line-height: 1.1;
}
h2 {
  font-size: clamp(1.625rem, 1.23rem + 1.69vw, 2.75rem); /* 26px → 44px */
  line-height: 1.15;
}
h2 {
  max-width: 800px;
}
h3 {
  font-size: clamp(1.25rem, 1.07rem + 0.75vw, 1.75rem); /* 20px → 28px */
  line-height: 1.25;
}
h4 {
  font-size: clamp(1.125rem, 1.04rem + 0.38vw, 1.375rem); /* 18px → 22px */
  line-height: 1.3;
}
h5, h6 {
  font-size: clamp(1rem, 0.96rem + 0.19vw, 1.125rem); /* 16px → 18px */
  line-height: 1.4;
}
.center {
  text-align: center;
}
.center * {
  margin-left: auto;
  margin-right: auto;
}
.bg-alt {
  background: var(--color-bg-alt);
}
.surtitre {
  font-weight: 500;
  font-size: 0.9em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 0 !important;
  font-family: var(--font-alt);
  letter-spacing: 0.1em;
}
.sous-titre {
  color: var(--color-text-alt);
  margin-top: 0;
}
.introduction {
  font-size: 1.1em;
  font-style: italic;
}
h1 + .sous-titre {
  font-size: 1.2em;
  max-width: 900px;
}
h2 + .sous-titre {
  font-size: 1.1em;
}
h3 + .sous-titre {
  font-size: 1em;
  font-style: italic;
}
:is(h1, h2, h3, h4, h5, h6):has(+ p.sous-titre) {
  margin-bottom: 0.2em;
}
.hero {
  padding-top: calc(var(--section-padding) + var(--header-height-live)) !important;
  color: var(--color-bg);
  position: relative;
}
.hero h1, .hero p {
  color: var(--color-bg);
}
.hero::after {
  content: '';
  background: #000000;
  opacity: .5;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  display: block;
  width: 100%;
  height: 100%;
  z-index: 1
}
.hero .pb-columns {
  position: relative;
  z-index: 2;
}
.site-header {
  background: var(--color-bg);
  border-bottom: 1px solid #eee;
}
.site-topbar {
  background: var(--color-accent);
  font-size: 0.8em;
  color: var(--color-bg);
}
.site-topbar a {
  color: inherit;
  text-decoration: none;
}
.site-topbar a:hover {
  color: var(--color-accent);
}
.site-name {
  font-weight: 700;
  font-size: 1.2em;
}
.site-name svg, .site-header-transparent.header-solid .site-name svg {
  width: 140px;
  height: 50px;
  fill: var(--color-accent);
  transition: all 0.3s ease;
}
.site-header-transparent .site-name svg {
  fill: var(--color-bg);
}
.burger-toggle span {
  background: var(--color-text);
  border-radius: 2px;
}
.site-header.nav-open .burger-toggle span {
  background: var(--color-accent);
}
.site-menu a {
  font-family: var(--font-main);
  font-weight: 600;
  margin-left: 2vw;
  text-decoration: none;
  color: var(--color-text);
  font-size: 0.95em;
  transition: all 0.3 ease;
}
.site-header-transparent {
  border-bottom-color: transparent;
  background: transparent;
}
.site-header-transparent .site-menu a {
  color: #ffffff;
  opacity: 0.8;
}
.site-header-transparent .site-menu a.active, .site-header-transparent .site-menu a:hover {
  color: #ffffff;
  opacity: 1;
}
.site-header-transparent .site-topbar, .site-header-transparent .site-topbar a {
  color: var(--color-bg);
}
.site-header-transparent .burger-toggle span {
  background: #fff;
}
.site-header-transparent.header-solid {
  background: var(--color-bg);
  border-bottom-color: #eee;
}
.site-header-transparent.header-solid .site-menu a, .site-header-transparent.header-solid .site-name {
  color: var(--color-text);
  opacity: 1;
}
.site-header-transparent.header-solid .site-topbar, .site-header-transparent.header-solid .site-topbar a {
  color: var(--color-bg);
  opacity: 1;
}
.site-header-transparent.header-solid .burger-toggle span {
  background: var(--color-text);
}
/* Menu déroulant en mode burger : fond plein nécessaire (peut s'afficher par-dessus
   n'importe quel contenu, y compris sous un header transparent) */
.site-header.burger-active .site-menu {
  background: var(--color-bg);
  gap: 10px;
}
.site-header.burger-active .site-menu a {
  margin-left: 0;
  padding: 14px 0;
  font-size: 1.4em;
  text-align: center;
  color: var(--color-text);
}
.site-menu-topbar-extra {
  border-top: 1px solid #eee;
}
.site-menu-topbar-extra a {
  font-size: 0.85em;
  color: var(--color-muted);
  padding: 4px 0;
}
.site-menu-topbar-extra a:hover {
  color: var(--color-accent);
}
.site-menu a.active, .site-menu a:hover, .site-header-transparent.header-solid .site-menu a.active {
  color: var(--color-accent);
}
.page-body img {
  border-radius: var(--border-radius);
}
.site-footer {
  background: var(--color-bg-alt2);
  color: var(--color-muted);
  font-size: 0.85em;
  border-top: 1px solid #eee;
}
.site-footer-social a {
  opacity: 0.75;
  transition: opacity 0.15s ease;
}
.site-footer-social a:hover {
  opacity: 1;
}
.site-footer-sep {
  margin: 0 6px;
  opacity: 0.6;
}
.site-footer-link {
  color: inherit;
  text-decoration: underline;
  font-size: 0.95em;
}
.site-footer-link:hover {
  color: var(--color-accent);
}
.site-footer-credit {
  margin-top: 6px;
  font-size: 0.85em;
  opacity: 0.7;
}
.site-footer-credit a {
  color: inherit;
}
.cms-credit-mention {
  font-size: 0.85em;
  color: var(--color-muted);
}
.contact-form label {
  margin-top: 14px;
  font-weight: 600;
  font-size: 0.9em;
}
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form input[type="tel"], .contact-form input[type="select"], .contact-form textarea {
  padding: 10px;
  margin-top: 5px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 0.95em;
}
.contact-form-gdpr {
  font-weight: 400 !important;
  font-size: 0.85em !important;
  color: var(--color-muted);
}
.contact-form-gdpr a {
  color: var(--color-accent);
}
.btn-contact-submit {
  margin-top: 18px;
  padding: 10px 22px;
  background: var(--color-accent);
  color: #fff;
  border-radius: 4px;
  font-size: 1em;
  display: inline-block;
  text-decoration: none;
}
.contact-form-success {
  background: #eef8ee;
  border: 1px solid #b7dfb7;
  padding: 14px;
  border-radius: 4px;
}
.contact-form-error {
  background: #fdeeee;
  border: 1px solid #e6b3b3;
  padding: 14px;
  border-radius: 4px;
}
.pb-section {
  margin: auto;
  padding: var(--section-padding) 0;
}
.pb-section.pb-has-bg {
  padding: 50px 30px;
  border-radius: 10px;
}
.pb-section.pb-bg-image {
  color: #fff;
}
.pb-section.pb-bg-image::before {
  background: rgba(0, 0, 0, 0.35);
  border-radius: 10px;
}
.pb-columns {
  gap: var(--columns-gap);
  max-width: var(--max-width);
  padding: 0 24px;
}
.pb-columns:not(:last-child) {
  margin-bottom: var(--section-padding);
}
.pb-element {
  margin-bottom: 16px;
}
.pb-column > img { border-radius: var(--border-radius); }

.pb-image img, img.pb-image, .pb-image-img {
  border-radius: var(--border-radius);
}
.pb-image-caption {
  margin-top: 8px;
  font-size: 0.85em;
  color: var(--color-muted);
  text-align: center;
}
.pb-galerie {
  gap: var(--gallery-gap, 10px);
}
.pb-galerie .slick-list {
  margin: 0 calc(var(--gallery-gap, 10px) / -2);
}
.pb-galerie .slick-slide {
  padding: 0 calc(var(--gallery-gap, 10px) / 2);
  box-sizing: border-box;
}
.pb-galerie img {
  border-radius: var(--border-radius);
}
.pb-testimonial-slider {
  gap: var(--testimonial-gap, 20px);
}
.pb-testimonial-slider .slick-list {
  margin: 0 calc(var(--testimonial-gap, 20px) / -2);
}
.pb-testimonial-slider .slick-slide {
  padding: 0 calc(var(--testimonial-gap, 20px) / 2);
  box-sizing: border-box;
}
.pb-galerie-caption-overlay {
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  padding: 8px 10px;
  font-size: 0.8em;
}
.pb-galerie-zoom-icon {
  font-size: 1.8em;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}
.pb-lightbox-overlay {
  background: rgba(0, 0, 0, 0.9);
}
.pb-lightbox-close {
  background: none;
  color: #fff;
  font-size: 1.6em;
}
.btn-cta {
  padding: 12px 26px;
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
  border-radius: 5px;
  font-size: 1em;
  transition: all .3s ease;
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
}
.btn-cta[data-btn-style="outline"] {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
.btn-cta[data-btn-style="text"] {
  color: var(--color-accent);
  border-radius: 0;
  border-style: none;
  font-weight: 700;
  text-decoration: none;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.btn-cta[data-btn-style="text"]::after {
  content: "";
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=");
  mask-size: contain;
}
.btn-cta:hover {
  background: var(--color-text-alt) !important;
  border-color: var(--color-text-alt) !important;
  color: #fff !important;
}
.btn-cta[data-btn-style="text"]:hover {
  background: transparent !important;
  color: var(--color-text-alt) !important;
}
.site-menu-btn {
  padding: 10px 22px !important;
  background: var(--color-accent);
  color: #fff !important;
  border-radius: 5px;
  opacity: 1 !important;
  transition: all .3s ease;
}
.site-menu-btn:hover {
  background: var(--color-text-alt);
}
.pb-blog-recent {
  gap: var(--blog-recent-gap, var(--columns-gap));
}
.pb-blog-recent .slick-list {
  margin: 0 calc(var(--blog-recent-gap, var(--columns-gap)) / -2);
}
.pb-blog-recent .slick-slide {
  padding: 0 calc(var(--blog-recent-gap, var(--columns-gap)) / 2);
  box-sizing: border-box;
}
.pb-blog-recent .slick-track {
	margin: 0;
}
.pb-blog-recent-item img {
  border-radius: var(--border-radius);
}
.pb-blog-recent-item h3 {
  font-family: var(--font-main);
  font-size: clamp(1.125rem, 1.04rem + 0.38vw, 1.375rem); /* 18px → 22px */
  line-height: 1.3;
  margin: 10px 0 4px;
}
.pb-blog-recent-meta {
  font-size: 0.8em;
  color: var(--color-muted);
  margin: 0;
}
.pb-blog-recent-excerpt {
  font-size: 0.9em;
  color: var(--color-text);
  margin: 6px 0 0;
}
.pb-catalogue-recent {
  gap: var(--catalogue-recent-gap, var(--columns-gap));
}
.pb-catalogue-recent .slick-list {
  margin: 0 calc(var(--catalogue-recent-gap, var(--columns-gap)) / -2);
}
.pb-catalogue-recent .slick-slide {
  padding: 0 calc(var(--catalogue-recent-gap, var(--columns-gap)) / 2);
  box-sizing: border-box;
}
.pb-catalogue-recent-item img {
  border-radius: var(--border-radius);
}
.pb-catalogue-recent-item h3 {
  font-family: var(--font-main);
  font-size: clamp(1.125rem, 1.04rem + 0.38vw, 1.375rem); /* 18px → 22px */
  line-height: 1.3;
  margin: 10px 0 4px;
}
.pb-catalogue-recent-excerpt {
  font-size: 0.9em;
  color: var(--color-text);
  margin: 6px 0 0;
}
.slick-slider {
  padding: 0;
}
.slick-prev:before, .slick-next:before {
  color: var(--color-accent) !important;
}
.slick-prev, .slick-next {
  z-index: 100;
}
.slick-prev {
  left: 5px !important;
}
.slick-next {
  right: 5px !important;
}
.slick-prev:before
{
    content: "";
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LWxlZnQiPjxwYXRoIGQ9Im0xMiAxOS03LTcgNy03Ii8+PHBhdGggZD0iTTE5IDEySDUiLz48L3N2Zz4=");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LWxlZnQiPjxwYXRoIGQ9Im0xMiAxOS03LTcgNy03Ii8+PHBhdGggZD0iTTE5IDEySDUiLz48L3N2Zz4=");
  mask-size: contain;
}
.slick-next:before
{
    content: "";
  width: 1em;
  height: 1em;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=");
  mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFycm93LXJpZ2h0Ij48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Im0xMiA1IDcgNy03IDciLz48L3N2Zz4=");
  mask-size: contain;
}
.slick-dots {
  left: 0;
}
.slick-dots li {
  margin: 0 !important;
}
.slick-dots li button:before {
  color: var(--color-accent);
}
.slick-dots li.slick-active button:before {
  color: var(--color-accent);
  opacity: 1;
}
.pb-hero {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.pb-hero-overlay {
  background: rgba(0, 0, 0, var(--hero-overlay, 0.3));
}
.pb-hero-content {
  color: #fff;
  gap: var(--columns-gap);
  max-width: var(--max-width);
  padding: calc(var(--section-padding) + var(--header-height-live)) var(--columns-gap) 0;
  margin: 0 auto;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
  justify-content: flex-start;
  text-align: left;
  gap: 1em;
}
.pb-hero-content h1, .pb-hero-content h2, .pb-hero-content h3, .pb-hero-content p {
  color: var(--color-bg);
  width: 100%
}
.pb-hero-content p {
  max-width: 900px;
}
.pb-hero-content .btn-cta {
  margin: 0 !important;
}
.pb-hero-content .btn-cta[data-btn-style="outline"] {
  border-color: #fff;
  color: #fff;
}
.pb-hero-content .break {
  flex-basis: 100%;
}
/* Google Maps */
.pb-gmap-consent {
  background: #f2f2f2;
  color: var(--color-muted);
}
.pb-gmap-consent p {
  margin: 0;
  font-size: 0.9em;
}
.pb-gmap-consent button {
  background: var(--color-accent);
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  cursor: pointer;
}
.pb-gmap-consent button:hover {
  opacity: 0.9;
}
.pb-youtube-consent {
  background: #f2f2f2;
  color: var(--color-muted);
}
.pb-youtube-consent p {
  margin: 0;
  font-size: 0.9em;
}
.pb-youtube-consent button {
  background: var(--color-accent);
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  cursor: pointer;
}
.pb-youtube-consent button:hover {
  opacity: 0.9;
}
/* Heures d'ouverture */
.pb-hours-row {
  padding: 8px 0;
  border-bottom: 1px solid var(--color-muted);
}
.pb-hours-row:last-child {
  border-bottom: none;
}
.pb-hours-day {
  color: var(--color-text);
}
.pb-hours-value {
  color: var(--color-muted);
}
.pb-hours-today {
  font-weight: 600;
}
.pb-hours-today .pb-hours-day, .pb-hours-today .pb-hours-value {
  color: var(--color-accent);
}
.cookie-consent-banner {
  background: var(--color-bg-alt2);
  color: var(--color-text-alt);
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.15);
  font-size: 0.9em;
}
.cookie-consent-banner a {
  color: var(--color-text-alt);
  text-decoration: underline;
}
.cookie-consent-banner .btn {
  padding: 12px 26px;
  background: var(--color-bg-alt2);
  border-color: var(--color-text-alt);
  color: var(--color-text-alt);
  border-radius: 5px;
  font-size: 1em;
  transition: all .3s ease;
  border-style: solid;
  border-width: 2px;
  cursor: pointer;
}
.cookie-consent-banner .btn:hover {
  background: var(--color-text-alt) !important;
  border-color: var(--color-text-alt) !important;
  color: #fff !important;
}
[data-animate]:not([data-animate=""]) {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s ease;
	transition-delay: var(--animate-delay, 0s);
}

[data-animate="fade-up"]    { transform: translateY(24px); }
[data-animate="fade-left"]  { transform: translateX(-24px); }
[data-animate="fade-right"] { transform: translateX(24px); }

[data-animate]:not([data-animate=""]).is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    [data-animate]:not([data-animate=""]) { transition: none; opacity: 1; transform: none; }
}
.pb-faq-item {
  border-bottom: 1px solid #e2e2e2;
  padding: 16px 0;
}
.pb-faq-item:first-child {
  border-top: 1px solid #e2e2e2;
}
.pb-faq-question {
  cursor: pointer;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.pb-faq-question::after {
  content: '+';
  font-size: 1.5em;
  line-height: 1;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.pb-faq-item.is-open .pb-faq-question::after {
  transform: rotate(45deg);
}
.pb-faq-answer-inner {
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.pb-faq-answer {
  padding-top: 12px;
  color: var(--color-text, #444);
}