*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; }
body { margin: 0; padding: 0; overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p { max-width: 62ch; }
.wp-site-blocks { margin: 0; padding: 0; }
.wp-block-post-content { margin: 0; }
:root {
  --creme: #FCF9D9;
  --blanc: #fff;
  --noir: #181714;
  --vert: #C8D8C0;
  --mauve: #D8C8C8;
  --roche: #E6DDC8;
  --font-titre: Georgia, 'Times New Roman', serif;
  --font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --max: 1120px;
  --pad: clamp(1.15rem, 4vw, 1.8rem);
}
body { font-family: var(--font-body); color: var(--noir); background: var(--creme); line-height: 1.5; }
.site-header { position: sticky; top: 0; z-index: 20; background: var(--creme); border-bottom: 1px solid rgba(0,0,0,.08); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.header-inner { max-width: var(--max); margin: 0 auto; padding: .9rem var(--pad); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.logo { font-weight: 800; letter-spacing: -.02em; font-size: .98rem; }
.nav-toggle { display: flex; flex-direction: column; gap: 5px; background: transparent; border: 0; padding: .25rem; cursor: pointer; }
.nav-toggle span { display: block; width: 25px; height: 2px; background: var(--noir); transition: transform .2s, opacity .2s; }
.nav-toggle.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-desktop { display: none; }
.nav-desktop ul, .mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav { display: none; padding: .4rem var(--pad) 1.2rem; border-top: 1px solid rgba(0,0,0,.07); background: var(--creme); }
.mobile-nav.open { display: block; }
.mobile-nav a { display: block; padding: .8rem 0; border-bottom: 1px solid rgba(0,0,0,.08); font-weight: 650; }
@media (min-width: 800px) { .nav-toggle, .mobile-nav { display: none !important; } .nav-desktop { display: block; } .nav-desktop ul { display: flex; gap: 2rem; } .nav-desktop a { font-size: .92rem; font-weight: 650; opacity: .78; } .nav-desktop a:hover { opacity: 1; } }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .72rem 1.35rem; border: 2px solid var(--noir); background: var(--noir); color: var(--blanc); font-weight: 750; font-size: .92rem; }
.btn--outline { background: transparent; color: var(--noir); }
.btn--outline:hover { background: var(--noir); color: var(--blanc); }
.hero { background: var(--blanc); padding: 2.4rem var(--pad) 4rem; }
.hero-inner { max-width: var(--max); margin: 0 auto; display: grid; gap: 2rem; }
.eyebrow { display: inline-block; margin: 0 0 .8rem; font-size: .82rem; font-weight: 700; line-height: 1.3; max-width: 28ch; }
.hero h1 { font-family: var(--font-titre); font-size: clamp(3.2rem, 16vw, 7rem); line-height: .94; letter-spacing: -.045em; font-weight: 900; max-width: 9ch; margin: 0 0 1rem; }
.hero-description { font-size: .96rem; opacity: .76; margin: 0 0 1.5rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-photos { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; aspect-ratio: 1 / 1; }
.hero-photos .photo { overflow: hidden; background: #ddd; }
.hero-photos img, .activity-image img { width: 100%; height: 100%; object-fit: cover; }
.hero-photos .photo:nth-child(1) { border-radius: 0 2.4rem 0 0; }
.hero-photos .photo:nth-child(2) { border-radius: 0 0 0 2.2rem; }
.hero-photos .photo:nth-child(3) { border-radius: 2.2rem 0 0 0; }
.hero-photos .photo:nth-child(4) { border-radius: 0 0 2.4rem 0; }
@media (min-width: 800px) { .hero { padding: 4rem var(--pad) 4.6rem; } .hero-inner { grid-template-columns: .78fr 1.1fr; align-items: center; gap: 3.5rem; } .hero h1 { font-size: clamp(5.2rem, 8vw, 7.4rem); } .hero-photos { aspect-ratio: auto; height: 480px; } }
@media (min-width: 800px) and (max-width: 1050px) { .hero-inner { grid-template-columns: 1fr; } .hero-photos { height: 420px; } .hero h1 { max-width: 12ch; } }
.activites { background: var(--creme); padding: 3.4rem var(--pad) 4rem; }
.section-head { max-width: var(--max); margin: 0 auto 2rem; display: grid; gap: .7rem; text-align: left; }
.section-head h2 { font-family: var(--font-titre); font-size: clamp(2rem, 9vw, 4rem); line-height: .95; letter-spacing: -.035em; margin: 0; }
.section-head p { opacity: .74; font-size: .98rem; margin: 0; }
.activity-layout { max-width: var(--max); margin: 0 auto; display: grid; gap: 1.6rem; }
.activity-cards { display: grid; gap: 1rem; }
.activity-card { position: relative; padding: 1.35rem 1.55rem; min-height: auto; display: block; border-radius: 4px; color: var(--noir); }
.activity-card:nth-child(1) { background: var(--vert); }
.activity-card:nth-child(2) { background: var(--mauve); }
.activity-card:nth-child(3) { background: var(--vert); }
.activity-card h3 { font-family: var(--font-body); font-size: 1.05rem; font-weight: 800; text-decoration: underline; text-underline-offset: 4px; margin: 0 0 .65rem; }
.activity-card p, .activity-card ul { font-size: .9rem; opacity: .82; margin: 0; }
.activity-card ul { list-style: none; display: grid; gap: .3rem; padding: 0; }
.activity-card li::before { content: "— "; }
.activity-card-link { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.activity-card:focus-within { outline: 2px solid var(--noir); outline-offset: 3px; }
.activity-card:hover h3 { text-decoration-thickness: 2px; }
.activity-image { height: min(300px, 82vw); width: min(300px, 82vw); border-radius: 50%; overflow: hidden; justify-self: center; align-self: center; }
@media (min-width: 800px) { .activites { padding: 4.5rem var(--pad) 5rem; } .section-head { grid-template-columns: 1fr .9fr; align-items: end; margin-bottom: 2.6rem; } .activity-layout { grid-template-columns: 1fr .72fr; gap: 3rem; align-items: center; } .activity-cards { grid-template-columns: 1fr; gap: 1rem; } .activity-image { width: 360px; height: 360px; } }
.site-footer { background: var(--blanc); color: var(--noir); padding: 2rem var(--pad) 2.6rem; border-top: 1px solid rgba(0,0,0,.08); }
.footer-inner { max-width: var(--max); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.footer-actions { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; }
.footer-actions .btn { min-height: 52px; padding: .9rem 1.7rem; font-size: .95rem; }
.footer-whatsapp { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-left: .5rem; border-radius: 999px; border: 2px solid var(--noir); background: transparent; }
.footer-whatsapp svg { width: 24px; height: 24px; fill: var(--noir); }
.footer-logos { margin-left: auto; }
.footer-logos img { width: auto; height: 52px; object-fit: contain; }
@media (max-width: 620px) { .footer-inner { align-items: flex-start; } .footer-logos { margin-left: 0; } }
.page-main { background: var(--creme); padding: 3rem var(--pad); }
.page-content { max-width: var(--max); margin: 0 auto; }


/* Gutenberg button wrapper reset: avoids double border on outline buttons */
.wp-block-button.btn,
.wp-block-button.btn--outline {
  display: inline-block;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}

/* Gutenberg editable content fixes */
.site-main { margin: 0; padding: 0; }
.hero .wp-block-image,
.activites .wp-block-image { margin: 0; }
.wp-block-buttons.hero-actions { gap: .8rem; }
.wp-block-button.btn .wp-block-button__link,
.wp-block-button.btn--outline .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .72rem 1.35rem;
  border: 2px solid var(--noir);
  border-radius: 0;
  background: var(--noir);
  color: var(--blanc);
  font-weight: 750;
  font-size: .92rem;
}
.wp-block-button.btn--outline .wp-block-button__link {
  background: transparent;
  color: var(--noir);
}
.wp-block-button.btn--outline .wp-block-button__link:hover {
  background: var(--noir);
  color: var(--blanc);
}
.activity-card h3 a { text-decoration: underline; text-underline-offset: 4px; }
.activity-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
