/* The two commercial pages keep the native Divi header/footer and menus. */
body.campement-v2-page #main-content > .container { width: 100%; max-width: none; padding-top: 0; }
body.campement-v2-page #main-content > .container::before { display: none; }
body.campement-v2-page #left-area { float: none; width: 100%; padding: 0; }
body.campement-v2-page #sidebar { display: none; }
body.campement-v2-page #left-area > article { margin-bottom: 0; }
.camp-home {
  --camp-home-green: #434d32;
  --camp-home-ink: #111827;
  --camp-home-cream: #f7f4ed;
  --camp-home-sand: #c0a27a;
  --camp-home-line: #ddd8cc;
  color: var(--camp-home-ink);
  background: #fff;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.75;
  text-align: left;
  overflow-wrap: break-word;
}
.camp-home *, .camp-home *::before, .camp-home *::after { box-sizing: border-box; }
.camp-home h1, .camp-home h2, .camp-home h3 {
  margin: 0;
  padding: 0;
  color: var(--camp-home-green);
  /* Keep the heading font selected in Divi, as on the reservation page. */
  font-weight: 400;
  line-height: 1.17;
  letter-spacing: -.015em;
  text-transform: none;
}
.camp-home h2 { font-size: clamp(32px, 3.5vw, 44px); }
.camp-home h3 { font-size: 27px; }
.camp-home p { margin: 0 0 18px; padding: 0; }
.camp-home a { color: var(--camp-home-green); text-decoration: underline; text-underline-offset: 4px; }
.camp-home a, #left-area .camp-home a, #main-content .camp-home a { font-family: inherit; text-transform: none; letter-spacing: normal; }
.camp-home a:hover { color: #111827; }
.camp-home a:focus-visible, .camp-home summary:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px #111827; }
.camp-home .camp-home__inner { min-width: 0; width: min(1180px, 88%); margin-inline: auto; }
.camp-home .camp-home__section { padding-top: 78px; padding-bottom: 78px; }
.camp-home .camp-home__eyebrow { margin-bottom: 16px; color: #596246; font-size: 11px; font-weight: 800; line-height: 1.6; letter-spacing: .13em; text-transform: uppercase; }
.camp-home .camp-home__hero { color: var(--camp-home-cream); background: var(--camp-home-green); }
.camp-home .camp-home__intro { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); align-items: center; gap: 64px; padding-top: 62px; padding-bottom: 62px; }
.camp-home .camp-home__hero .camp-home__eyebrow { color: #e1d3bd; }
.camp-home #camp-home-title { max-width: 12ch; color: #fffdf5; font-size: clamp(42px, 4.8vw, 64px); line-height: 1.1; }
.camp-home .camp-home__lead { max-width: 550px; margin-top: 25px; margin-bottom: 26px; color: #f1eee5; font-size: 18px; line-height: 1.65; }
.camp-home .camp-home__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.camp-home .camp-home__button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 13px 20px; border: 1px solid transparent; border-radius: 2px; font-size: 13px; font-weight: 800; line-height: 1.5; letter-spacing: .01em; text-align: center; text-decoration: none; transition: background-color .18s ease, color .18s ease; }
.camp-home .camp-home__button--primary { color: #192016; background: var(--camp-home-sand); }
.camp-home .camp-home__button--primary:hover { color: #192016; background: #d5bd9d; }
.camp-home .camp-home__button--secondary { border-color: #9ca28e; color: #fffdf5; background: transparent; }
.camp-home .camp-home__button--secondary:hover { color: #fff; background: #566044; }
.camp-home .camp-home__button--green { color: #fffdf5; background: var(--camp-home-green); }
.camp-home .camp-home__button--green:hover { color: #fff; background: #2e3622; }
.camp-home .camp-home__reassurance { margin: 15px 0 0; color: #e1dfd3; font-size: 12px; line-height: 1.6; }
.camp-home figure { margin: 0; }
.camp-home .camp-home__visual { min-width: 0; overflow: hidden; background: #596246; }
.camp-home .camp-home__photo { display: block; width: 100%; max-width: 100%; height: 450px; margin: 0; border: 0; object-fit: cover; object-position: 50% 58%; }
.camp-home figcaption { padding: 12px 16px; color: #293222; background: #e5d9c8; font-size: 12px; line-height: 1.5; }
.camp-home .camp-home__amenities { border-bottom: 1px solid #e0dacb; color: #39432e; background: var(--camp-home-cream); }
.camp-home .camp-home__amenities .camp-home__inner { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); padding: 21px 0; gap: 20px; }
.camp-home .camp-home__amenities span { padding-left: 16px; border-left: 2px solid var(--camp-home-sand); font-size: 13px; font-weight: 700; line-height: 1.5; }
.camp-home .camp-home__section-heading { max-width: 780px; margin-bottom: 34px; }
.camp-home .camp-home__section-heading h2 { max-width: 22ch; margin-bottom: 20px; }
.camp-home .camp-home__section-heading p:last-child { margin-bottom: 0; color: #535b4e; }
.camp-home .camp-home__offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 24px; }
.camp-home .camp-home__offer { display: flex; flex-direction: column; min-width: 0; padding: 27px 26px 20px; border-top: 3px solid var(--camp-home-sand); background: var(--camp-home-cream); }
.camp-home .camp-home__offer-name { margin-bottom: 13px; color: #65705b; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.camp-home .camp-home__offer h3 { margin-bottom: 15px; font-size: 28px; }
.camp-home .camp-home__offer-description { margin-bottom: 23px; color: #535b4e; font-size: 14px; line-height: 1.65; }
.camp-home .camp-home__price { margin: auto 0 18px; line-height: 1.5; }
.camp-home .camp-home__amount { display: block; color: var(--camp-home-green); font-size: 25px; font-weight: 800; }
.camp-home .camp-home__tax { font-size: 11px; font-weight: 700; }
.camp-home .camp-home__unit { display: block; color: #606a58; font-size: 12px; }
.camp-home .camp-home__price-fallback { color: #535b4e; font-size: 13px; }
.camp-home .camp-home__offer-link { display: flex; min-height: 42px; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--camp-home-line); padding-top: 14px; font-size: 13px; font-weight: 800; text-decoration: none; }
.camp-home .camp-home__after-link { margin: 25px 0 0; font-size: 14px; }
.camp-home .camp-home__section--sand { background: #ece5d8; }
.camp-home .camp-home__editorial { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 70px; align-items: center; }
.camp-home .camp-home__editorial-image { min-width: 0; }
.camp-home .camp-home__editorial-image .camp-home__photo { height: 470px; object-position: 50% 52%; }
.camp-home .camp-home__editorial-copy h2 { max-width: 19ch; margin-bottom: 25px; }
.camp-home .camp-home__editorial-copy > p { font-size: 15px; }
.camp-home .camp-home__text-links { display: flex; align-items: flex-start; flex-direction: column; gap: 14px; margin-top: 27px; font-size: 14px; font-weight: 700; }
.camp-home .camp-home__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 40px; padding: 0; margin: 0; list-style: none; }
.camp-home .camp-home__steps li { padding: 0; margin: 0; }
.camp-home .camp-home__steps li > span { display: block; margin-bottom: 19px; color: #ad9878; font-family: inherit; font-size: 38px; line-height: 1; }
.camp-home .camp-home__steps h3 { margin-bottom: 13px; font-size: 25px; }
.camp-home .camp-home__steps p { margin-bottom: 0; color: #535b4e; font-size: 14px; }
.camp-home .camp-home__visit { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 35px; border-top: 1px solid var(--camp-home-line); margin-top: 40px; padding-top: 28px; }
.camp-home .camp-home__visit p { margin: 0; color: #535b4e; font-size: 14px; }
.camp-home .camp-home__visit a { font-size: 14px; font-weight: 700; }
.camp-home .camp-home__section--light { background: var(--camp-home-cream); }
.camp-home .camp-home__faq-layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 80px; }
.camp-home .camp-home__faq-layout h2 { margin-bottom: 25px; }
.camp-home .camp-home__faq-layout > div > p:not(.camp-home__eyebrow) { color: #535b4e; font-size: 14px; }
.camp-home .camp-home__faq-layout > div > a { font-size: 14px; }
.camp-home .camp-home__faq details { border-top: 1px solid #cfcbbb; }
.camp-home .camp-home__faq details:last-child { border-bottom: 1px solid #cfcbbb; }
.camp-home .camp-home__faq summary { display: list-item; cursor: pointer; padding: 20px 8px 20px 0; color: #303b26; font-size: 15px; font-weight: 700; line-height: 1.5; }
.camp-home .camp-home__faq details p { margin: 0; padding: 0 12px 21px 0; color: #535b4e; font-size: 14px; }
.camp-home .camp-home__section-heading--row { display: flex; max-width: none; align-items: flex-end; justify-content: space-between; gap: 25px; }
.camp-home .camp-home__section-heading--row h2 { margin-bottom: 0; }
.camp-home .camp-home__section-heading--row > a { flex-shrink: 0; margin-bottom: 6px; font-size: 14px; }
.camp-home .camp-home__journal { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 35px; }
.camp-home .camp-home__journal article { min-width: 0; overflow-wrap: anywhere; display: flex; flex-direction: column; border-top: 1px solid var(--camp-home-line); padding-top: 23px; }
.camp-home .camp-home__journal h3 { margin-bottom: 23px; font-size: 26px; }
.camp-home .camp-home__journal h3 a { text-decoration: none; }
.camp-home .camp-home__article-link { align-self: flex-start; margin-top: auto; font-size: 13px; font-weight: 700; }
.camp-home .camp-home__section--green { color: #f7f4ed; background: var(--camp-home-green); }
.camp-home .camp-home__section--green h2 { max-width: 20ch; margin-bottom: 23px; color: #fffdf5; }
.camp-home .camp-home__section--green .camp-home__eyebrow { color: #e1d3bd; }
.camp-home .camp-home__access { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); align-items: center; gap: 70px; }
.camp-home .camp-home__access > *, .camp-home .camp-home__intro > *, .camp-home .camp-home__editorial > *, .camp-home .camp-home__faq-layout > *, .camp-home .camp-home__resource > *, .camp-home .camp-home__other-spaces > * { min-width: 0; max-width: 100%; }
.camp-home .camp-home__access p { font-size: 15px; }
.camp-home .camp-home__access .camp-home__actions { margin-top: 27px; }
.camp-home .camp-home__contact { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; align-content: start; min-width: 0; width: 100%; gap: 14px; padding-left: 40px; border-left: 1px solid #90967e; }
.camp-home .camp-home__contact p { margin-bottom: 5px; color: #e1d3bd; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.camp-home .camp-home__contact a, #left-area .camp-home .camp-home__contact a, #main-content .camp-home .camp-home__contact a { display: block; float: none; clear: both; width: 100%; min-width: 0; max-width: 100%; margin: 0; padding: 0; color: #fffdf5; font-family: inherit; font-size: clamp(16px, 1.55vw, 22px); font-weight: 600; line-height: 1.6; letter-spacing: normal; text-transform: none; white-space: normal; word-break: normal; overflow-wrap: anywhere; }
.camp-home .camp-home__contact .camp-home__contact-phone { font-variant-numeric: tabular-nums; }
.camp-home .camp-home__local-links { padding: 30px 0; color: #606a58; font-size: 12px; line-height: 1.6; }
.camp-home .camp-home__local-links p { margin-bottom: 9px; }
.camp-home .camp-home__local-links ul { display: flex; flex-wrap: wrap; gap: 5px 19px; margin: 0; padding: 0; list-style: none; }
.camp-home .camp-home__local-links li { padding: 0; margin: 0; }
.camp-home .camp-home__resource { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 60px; padding: 38px 0; border-top: 1px solid var(--camp-home-line); }
.camp-home .camp-home__resource:last-child { border-bottom: 1px solid var(--camp-home-line); }
.camp-home .camp-home__resource h3 { margin-bottom: 18px; font-size: 34px; }
.camp-home .camp-home__resource .camp-home__eyebrow { margin-bottom: 10px; }
.camp-home .camp-home__resource-copy > p:not(.camp-home__eyebrow) { margin-bottom: 18px; color: #535b4e; font-size: 15px; }
.camp-home .camp-home__features { display: flex; flex-wrap: wrap; gap: 7px 22px; padding: 0 0 0 17px; margin: 0; color: #596246; font-size: 12px; line-height: 1.6; }
.camp-home .camp-home__resource-booking { align-self: center; padding-left: 30px; border-left: 2px solid #dbcfbb; }
.camp-home .camp-home__capacity { margin-bottom: 13px; color: #596246; font-size: 13px; }
.camp-home .camp-home__resource-booking .camp-home__price { margin-bottom: 18px; }
.camp-home .camp-home__small { margin-top: 24px; margin-bottom: 0; color: #606a58; font-size: 12px; }
.camp-home .camp-home__other-spaces { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 70px; }
.camp-home .camp-home__other-spaces h2 { margin-bottom: 23px; }
.camp-home .camp-home__other-spaces p:not(.camp-home__eyebrow) { color: #535b4e; font-size: 15px; }
.camp-home .camp-home__other-spaces > div > a:not(.camp-home__button) { font-size: 14px; font-weight: 700; }
.camp-home .camp-home__refuge-image { margin: 0 0 28px; overflow: hidden; }
.camp-home .camp-home__refuge-image .camp-home__photo { height: 320px; object-position: center; }
.camp-home .camp-home__private { padding: 34px; background: var(--camp-home-cream); }
.camp-home .camp-home__private h3 { margin-bottom: 22px; font-size: 33px; }
@media (max-width: 1050px) {
  .camp-home .camp-home__intro { gap: 35px; padding-top: 45px; padding-bottom: 45px; }
  .camp-home .camp-home__hero .camp-home__photo { height: 430px; }
  .camp-home .camp-home__lead { font-size: 16px; }
  .camp-home .camp-home__section { padding-top: 60px; padding-bottom: 60px; }
  .camp-home .camp-home__editorial, .camp-home .camp-home__faq-layout { gap: 40px; }
  .camp-home .camp-home__offer { padding: 23px 20px 20px; }
  .camp-home .camp-home__offer h3 { font-size: 25px; }
  .camp-home .camp-home__access { gap: 35px; }
  .camp-home .camp-home__contact { padding-left: 25px; }
}
@media (max-width: 760px) {
  .camp-home { font-size: 15px; }
  .camp-home .camp-home__inner { min-width: 0; width: 88%; }
  .camp-home .camp-home__intro { grid-template-columns: 1fr; gap: 30px; padding-top: 35px; padding-bottom: 35px; }
  .camp-home #camp-home-title { max-width: 16ch; font-size: clamp(37px, 8.6vw, 52px); }
  .camp-home .camp-home__lead { margin-top: 21px; margin-bottom: 23px; font-size: 16px; }
  .camp-home .camp-home__hero .camp-home__photo { height: 280px; }
  .camp-home .camp-home__actions { gap: 10px; }
  .camp-home .camp-home__button { flex: 1 1 180px; padding-inline: 15px; }
  .camp-home .camp-home__amenities .camp-home__inner { grid-template-columns: 1fr 1fr; gap: 16px 20px; padding: 21px 0; }
  .camp-home .camp-home__amenities span { padding-left: 12px; font-size: 12px; }
  .camp-home .camp-home__section { padding-top: 45px; padding-bottom: 45px; }
  .camp-home h2 { font-size: 34px; }
  .camp-home .camp-home__section-heading { margin-bottom: 26px; }
  .camp-home .camp-home__offers { grid-template-columns: 1fr; gap: 17px; }
  .camp-home .camp-home__offer { padding: 24px; }
  .camp-home .camp-home__offer h3 { font-size: 28px; }
  .camp-home .camp-home__offer-description { margin-bottom: 18px; }
  .camp-home .camp-home__amount { display: inline; margin-right: 8px; font-size: 24px; }
  .camp-home .camp-home__unit { display: inline; font-size: 12px; }
  .camp-home .camp-home__editorial { grid-template-columns: 1fr; gap: 32px; }
  .camp-home .camp-home__editorial-image .camp-home__photo { height: 310px; }
  .camp-home .camp-home__editorial-copy h2 { max-width: 21ch; }
  .camp-home .camp-home__steps { grid-template-columns: 1fr; gap: 28px; }
  .camp-home .camp-home__steps li > span { margin-bottom: 11px; font-size: 31px; }
  .camp-home .camp-home__steps h3 { margin-bottom: 9px; }
  .camp-home .camp-home__visit { grid-template-columns: 1fr; gap: 17px; margin-top: 30px; padding-top: 25px; }
  .camp-home .camp-home__faq-layout { grid-template-columns: 1fr; gap: 26px; }
  .camp-home .camp-home__section-heading--row { align-items: flex-start; flex-direction: column; gap: 19px; }
  .camp-home .camp-home__journal { grid-template-columns: 1fr; gap: 25px; }
  .camp-home .camp-home__journal h3 { margin-bottom: 15px; }
  .camp-home .camp-home__access { grid-template-columns: 1fr; gap: 34px; }
  .camp-home .camp-home__contact { padding: 26px 0 0; border-top: 1px solid #90967e; border-left: 0; }
  .camp-home .camp-home__contact a { font-size: 20px; }
  .camp-home .camp-home__resource { grid-template-columns: 1fr; gap: 24px; padding: 30px 0; }
  .camp-home .camp-home__resource-booking { padding-left: 20px; }
  .camp-home .camp-home__resource-booking .camp-home__button { margin-top: 3px; }
  .camp-home .camp-home__resource h3 { font-size: 31px; }
  .camp-home .camp-home__features { flex-direction: column; gap: 4px; }
  .camp-home .camp-home__other-spaces { grid-template-columns: 1fr; gap: 33px; }
  .camp-home .camp-home__private { padding: 27px; }
}
@media (prefers-reduced-motion: reduce) { .camp-home .camp-home__button { transition: none; } }

/* Divi 5 layouts: content and image modules remain native and editable. */
.campement-v21-native .camp-v21-section { overflow-wrap: break-word; }
.campement-v21-native .camp-v21-row { min-width: 0; }
.campement-v21-native #main-content .camp-v21-row.et_block_row::after { content: ""; display: table; clear: both; }
.campement-v21-native .camp-v21-row > .et_pb_column { min-width: 0; }
.campement-v21-native .camp-v21-title h1 { margin: 0; padding: 0; font-size: clamp(38px, 4.6vw, 62px); line-height: 1.15; }
.campement-v21-native .camp-v21-section h2 { font-size: clamp(29px, 3.1vw, 42px); line-height: 1.2; padding-bottom: 20px; }
.campement-v21-native .camp-v21-section h3 { font-size: clamp(23px, 2.1vw, 29px); line-height: 1.3; padding-bottom: 15px; }
.campement-v21-native .camp-v21-section p { padding-bottom: 1em; }
.campement-v21-native .camp-v21-lead { font-size: 18px; line-height: 1.7; }
.campement-v21-native .camp-v21-hero { color: #f7f4ed; }
.campement-v21-native .camp-v21-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.campement-v21-native .camp-v21-small { font-size: 13px; line-height: 1.7; }
.campement-v21-native .camp-v21-image img { display: block; width: 100%; max-width: 100%; height: auto; }
.campement-v21-native .camp-v21-visual .camp-v21-image img { aspect-ratio: 3 / 4; max-height: 570px; object-fit: cover; }
.campement-v21-native .camp-v21-button { display: inline-block; max-width: 100%; margin: 10px 12px 10px 0; }
.campement-v21-native .camp-v21-button .et_pb_button { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; min-height: 48px; padding: .75em 1.15em; border: 1px solid transparent; border-radius: 2px; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.6; text-align: center; text-transform: none; white-space: normal; overflow-wrap: anywhere; }
.campement-v21-native .camp-v21-button--primary .et_pb_button { color: #192016; background: #c0a27a; }
.campement-v21-native .camp-v21-button--secondary .et_pb_button { color: #fffdf5; border-color: #a4aa96; background: transparent; }
.campement-v21-native .camp-v21-button--green .et_pb_button { color: #fffdf5; background: #434d32; }
.campement-v21-native .camp-v21-button--text .et_pb_button { color: #434d32; background: transparent; text-decoration: underline; }
.campement-v21-native .camp-v21-button .et_pb_button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px #111827; }
.campement-v21-native .camp-v21-amenity { color: #434d32; font-size: 14px; font-weight: 600; }
.campement-v21-native .camp-v21-step-number { margin: 0; color: #9c7d54; font-size: 30px; font-weight: 600; }
.campement-v21-native .camp-v21-faq { padding: 20px 0; border-top: 1px solid #d7cfbe; }
.campement-v21-native .camp-v21-journal .et_pb_post { padding: 24px; border: 1px solid #d9cfbd; background: #faf7f0; box-shadow: 0 7px 20px rgba(43, 52, 35, .06); }
.campement-v21-native .camp-v21-journal .et_pb_image_container { margin: -24px -24px 22px; }
.campement-v21-native .camp-v21-journal .entry-featured-image-url img { width: 100%; height: 230px; object-fit: cover; }
.campement-v21-native .camp-v21-journal .entry-title { padding-bottom: 15px; font-size: 26px; line-height: 1.3; }
.campement-v21-native .camp-v21-journal .post-content { line-height: 1.75; }
.campement-v21-native .camp-v21-journal .more-link { display: inline-block; margin-top: 14px; color: #434d32; font-weight: 600; }
.campement-v21-native.campement-v21-page-212 .et_pb_contact_form_container { padding: clamp(20px, 4vw, 42px); background: #f7f4ed; }
.campement-v21-native.campement-v21-page-212 .et_pb_newsletter { padding: clamp(20px, 4vw, 42px); }
.campement-v21-native.campement-v21-page-212 .et_pb_contact_form_container input, .campement-v21-native.campement-v21-page-212 .et_pb_contact_form_container textarea { font-family: inherit; }
#main-content .camp-v21-contact-hero .camp-v21-button a { float: none; clear: both; font-family: inherit; text-transform: none; letter-spacing: normal; overflow-wrap: anywhere; }
@media (max-width: 980px) {
  .campement-v21-native .camp-v21-lead { font-size: 16px; }
  .campement-v21-native .camp-v21-row > .et_pb_column { margin-bottom: 28px; }
}
@media (max-width: 760px) {
  .campement-v21-native .camp-v21-title h1 { font-size: clamp(35px, 8vw, 48px); }
  .campement-v21-native .camp-v21-button { display: block; width: 100%; margin-right: 0; }
  .campement-v21-native .camp-v21-button .et_pb_button { width: 100%; }
}

/* Contact: new native parents replace inherited 8% padding and old background. */
.campement-v21-native #main-content .camp-v21-contact-row > .et_pb_column { min-width: 0; box-sizing: border-box; }
.campement-v21-native .camp-v21-contact-form-section { padding-top: 40px; padding-bottom: 32px; }
.campement-v21-native .camp-v21-contact-newsletter { padding: clamp(20px, 3vw, 36px); background: #f7f4ed; }
.campement-v21-native.campement-v21-page-212 .camp-v21-contact-newsletter .et_pb_newsletter { display: flex; flex-direction: column; align-items: stretch; padding: 0; background: transparent; }
.campement-v21-native .camp-v21-contact-newsletter .et_pb_newsletter_description,
.campement-v21-native .camp-v21-contact-newsletter .et_pb_newsletter_form { width: 100%; padding: 0; margin: 0; }
.campement-v21-native .camp-v21-contact-form input,
.campement-v21-native .camp-v21-contact-form textarea,
.campement-v21-native .camp-v21-contact-newsletter input { max-width: 100%; min-height: 44px; box-sizing: border-box; font: inherit; }
.campement-v21-native .camp-v21-contact-map-section .et_pb_map_container,
.campement-v21-native .camp-v21-contact-map-section .et_pb_map { height: 320px; min-height: 0; }
@media (max-width: 980px) {
  .campement-v21-native #main-content .camp-v21-contact-row > .et_pb_column { float: none; width: 100%; max-width: 100%; height: auto; min-height: 0; margin: 0 0 28px; }
  .campement-v21-native #main-content .camp-v21-contact-row > .et_pb_column:last-child { margin-bottom: 0; }
  .campement-v21-native .camp-v21-contact-form .et_pb_contact_field { float: none; width: 100%; max-width: 100%; padding: 0; margin: 0 0 16px; }
  .campement-v21-native .camp-v21-contact-form-section { padding-top: 32px; padding-bottom: 32px; }
}

/* Journal index: keep native content, pagination and images; warm up their cards. */
.campement-v21-journal-index #main-content .et_pb_blog_posts,
.campement-v21-journal-index.blog #main-content #left-area {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr));
  align-items: stretch;
  gap: clamp(24px, 3vw, 40px);
}
.campement-v21-journal-index #main-content .et_pb_blog_posts > article.et_pb_post,
.campement-v21-journal-index.blog #main-content #left-area > article.et_pb_post {
  display: flex;
  flex-direction: column;
  float: none;
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: clamp(20px, 2.2vw, 30px);
  border: 1px solid #dfd4c1;
  border-radius: 8px;
  color: #37412f;
  background: #faf7f0;
  box-shadow: 0 8px 22px rgba(43, 52, 35, .07);
  overflow-wrap: anywhere;
}
.campement-v21-journal-index #main-content article.et_pb_post .et_pb_image_container {
  margin: 0 0 24px;
}
.campement-v21-journal-index #main-content article.et_pb_post .entry-featured-image-url {
  display: block;
  margin: 0 0 24px;
  overflow: hidden;
  border-radius: 4px;
}
.campement-v21-journal-index #main-content article.et_pb_post .et_pb_image_container .entry-featured-image-url { margin-bottom: 0; }
.campement-v21-journal-index #main-content article.et_pb_post .entry-featured-image-url img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.campement-v21-journal-index #main-content article.et_pb_post .entry-title {
  padding: 0 0 14px;
  color: #434d32;
  font-size: clamp(24px, 2.1vw, 30px);
  line-height: 1.25;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.campement-v21-journal-index #main-content article.et_pb_post .entry-title a {
  color: inherit;
  font-size: inherit;
  font-weight: 600;
  line-height: inherit;
  letter-spacing: normal;
  text-transform: none;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.campement-v21-journal-index #main-content article.et_pb_post .post-meta { margin-bottom: 16px; color: #626958; line-height: 1.6; }
.campement-v21-journal-index #main-content article.et_pb_post .post-content { display: flex; flex: 1; flex-direction: column; font-size: 1rem; line-height: 1.8; }
.campement-v21-journal-index #main-content article.et_pb_post .post-content-inner { flex: 1; }
.campement-v21-journal-index #main-content article.et_pb_post .more-link {
  display: inline-block;
  align-self: flex-start;
  float: none;
  margin-top: 20px;
  padding: 9px 0;
  color: #434d32;
  font-weight: 600;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: .2em;
}
.campement-v21-journal-index #main-content .pagination { grid-column: 1 / -1; }
.campement-v21-journal-index #main-content .entry-title a:focus-visible,
.campement-v21-journal-index #main-content .more-link:focus-visible { outline: 2px solid #434d32; outline-offset: 4px; }

/* Article prose stays inside the existing Divi modules, with their own colours. */
.campement-v21-journal-post #main-content article.post { overflow-wrap: anywhere; }
.campement-v21-journal-post #main-content article.post .entry-content .et_pb_text {
  max-width: 75ch;
  margin-right: auto;
  margin-left: auto;
}
.campement-v21-journal-post #main-content article.post .entry-content h1 {
  max-width: 24ch;
  margin-right: auto;
  margin-left: auto;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.2;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.campement-v21-journal-post #main-content article.post .entry-content > p,
.campement-v21-journal-post #main-content article.post .entry-content .et_pb_text_inner > p,
.campement-v21-journal-post #main-content article.post .entry-content li {
  font-size: 1.0625rem;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.campement-v21-journal-post #main-content article.post .entry-content .et_pb_text_inner > p { padding-bottom: 1.1em; }
.campement-v21-journal-post #main-content article.post .entry-content h2,
.campement-v21-journal-post #main-content article.post .entry-content h3 { line-height: 1.3; text-wrap: balance; overflow-wrap: anywhere; }
.campement-v21-journal-post #main-content article.post .entry-content .et_pb_image img,
.campement-v21-journal-post #main-content article.post .entry-content > img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
.campement-v21-journal-post #main-content article.post .entry-content pre { max-width: 100%; overflow-x: auto; }
@media (max-width: 760px) {
  .campement-v21-journal-index #main-content .et_pb_blog_posts,
  .campement-v21-journal-index.blog #main-content #left-area { grid-template-columns: minmax(0, 1fr); }
  .campement-v21-journal-post #main-content article.post .entry-content h1 { font-size: clamp(30px, 7.5vw, 42px); }
}
