/* Self-hosted webfonts (SIL Open Font License 1.1) — no third-party requests.
   Playfair Display (display) + Jost (body) + Caveat (accent) = the original
   design's typefaces, served locally instead of from Google Fonts. */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/caveat-500-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/caveat-500-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/caveat-600-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/caveat-600-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/caveat-700-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/caveat-700-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/jost-300-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('assets/fonts/jost-300-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/jost-400-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('assets/fonts/jost-400-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/jost-500-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/jost-500-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/jost-600-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/jost-600-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-500-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-500-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-500-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-500-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-600-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-600-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-700-normal-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('assets/fonts/playfairdisplay-700-normal-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =========================================================
   Alice la Doula — feuille de style
   Palette inspirée de l'identité existante (Facebook / Instagram) :
   crème, or moutarde, vert olive, terracotta en accent ponctuel.
   ========================================================= */

:root{
  --cream: #FAF6E9;
  --cream-deep: #F1E9D2;
  --ink: #3A3226;
  --ink-soft: #6B6252;
  --gold: #C79A2B;
  --gold-deep: #A87F1F;
  --olive: #7C8A4E;
  --olive-deep: #5F6B3B;
  --terracotta: #BE5A38;
  --line: rgba(58,50,38,0.12);
  --shadow: 0 20px 40px -24px rgba(58,50,38,0.35);
  --radius: 18px;
  --font-display: "Playfair Display", Georgia, serif;
  --font-script: "Caveat", cursive;
  --font-body: "Jost", "Segoe UI", sans-serif;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; display:block; }

.container{
  width:100%;
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 24px;
}

h1,h2,h3{
  font-family: var(--font-display);
  color: var(--ink);
  line-height: 1.15;
  margin: 0 0 18px;
  font-weight: 600;
}
h1{ font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
h2{ font-size: clamp(1.8rem, 3vw, 2.4rem); }
h3{ font-size: 1.25rem; margin-bottom: 10px; }

p{ margin: 0 0 16px; color: var(--ink-soft); font-size: 1.16rem; }

.script{
  font-family: var(--font-script);
  font-weight: 600;
  color: var(--gold-deep);
  font-size: 1.08em;
}

.eyebrow{
  font-family: var(--font-body);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--olive-deep);
  margin: 0 0 12px;
}
.eyebrow.center{ text-align:center; }
h2.center{ text-align:center; }
.section-lead.center{ text-align:center; max-width: 620px; margin-left:auto; margin-right:auto; }

/* ===== Buttons ===== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 14px 28px;
  border-radius: 100px;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.95rem;
  text-decoration:none;
  border: 1.5px solid transparent;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  cursor:pointer;
}
.btn-primary{
  background: var(--gold);
  color: #fff;
  box-shadow: var(--shadow);
}
.btn-primary:hover{ background: var(--gold-deep); transform: translateY(-2px); }

.btn-ghost{
  background: transparent;
  color: var(--ink);
  border-color: var(--line);
}
.btn-ghost:hover{ border-color: var(--gold); color: var(--gold-deep); transform: translateY(-2px); }

.btn-sm{ padding: 10px 22px; font-size: 0.88rem; width: 100%; margin-top: 8px; }
.btn-nav{ padding: 6px 12px; font-size: 0.85rem; }

/* ===== Header ===== */
.site-header{
  position: sticky; top:0; z-index: 50;
  background: rgba(250,246,233,0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 24px;
}
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); }
.brand-logo{ width:92px; height:92px; flex-shrink:0; }
.brand-text{ font-family: var(--font-display); font-size:1.4rem; font-weight:700; color:var(--ink); }
.brand-text em{ font-style: normal; color: var(--gold-deep); font-family: var(--font-script); font-size: 1.15em; font-weight:600; }

.main-nav{ display:flex; align-items:center; gap: 28px; flex-wrap: wrap; row-gap: 10px; }
.main-nav a{
  color: var(--ink);
  text-decoration:none;
  font-size: 1.08rem;
  font-weight: 500;
  white-space: nowrap;
  transition: color .15s ease;
}
.main-nav a:not(.btn):hover{ color: var(--gold-deep); }

.nav-toggle{
  display:none;
  flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px;
  background:none; border:none; cursor:pointer;
}
.nav-toggle span{ width:100%; height:2px; background: var(--ink); border-radius:2px; }

/* ===== Hero ===== */
.hero{
  position: relative;
  overflow:hidden;
  padding: 96px 0 84px;
  background: radial-gradient(circle at 85% 15%, var(--cream-deep) 0%, var(--cream) 55%);
}
.hero-inner{ max-width: 760px; position:relative; z-index:2; }
.hero-inner h1 .script{ font-size: 1.3em; }
.hero-grid{ display:grid; grid-template-columns: 1.6fr 0.4fr; gap: -8px; align-items:center; }
.hero-sprig-img{ width:100%; max-width:190px; margin-left:-24px; opacity:0.9; transform: skewX(-18deg); transform-origin: top center; }
@media (max-width: 640px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-sprig-img{ display:none; }
}
.hero-lead{ font-size: 1.28rem; max-width: 540px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top: 8px; }

.hero-leaf{
  position:absolute; top:-40px; color: var(--olive); opacity:0.18;
  pointer-events:none;
}
.hero-leaf--left{ right: -20px; width: 260px; }
.hero-leaf svg{ width:100%; height:auto; }
.hero-eyebrow-row{ display:flex; align-items:flex-end; gap:8px; }
.hero-sprig{ width:22px; height:78px; color: var(--gold-deep); flex-shrink:0; margin-bottom:-6px; }

/* ===== Quote strip ===== */
.quote-strip{
  background: var(--olive);
  color: #fff;
  text-align:center;
  padding: 34px 24px;
}
.quote-strip p{
  color:#fff;
  margin:0;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.5rem, 2.8vw, 2rem);
}
.quote-attrib{ font-family: var(--font-body); font-style:normal; font-size:0.8em; opacity:0.85; }

/* ===== Sections ===== */
.section{ padding: 88px 0; }
.section-tint{ background: var(--cream-deep); }

/* About */
.about-grid{
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; align-items:center;
}
.about-media{ position:relative; }
.photo-placeholder{
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--gold) 0%, var(--olive) 100%);
  color: #fff;
  display:flex; align-items:center; justify-content:center;
  text-align:center;
  font-family: var(--font-body);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  box-shadow: var(--shadow);
}
.photo-placeholder--portrait{ aspect-ratio: 4/5; }
.about-photo{
  width:100%; aspect-ratio: 4/5; object-fit:cover; object-position: 50% 20%;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.about-media-dot{
  position:absolute; width:120px; height:120px; border-radius:50%;
  border: 1.5px solid var(--gold);
  right:-24px; bottom:-24px; z-index:-1;
}
.about-accent-photo{
  position:absolute; width:42%; aspect-ratio:4/5; object-fit:cover;
  border-radius: 14px; border: 6px solid var(--cream);
  box-shadow: var(--shadow);
  left:-28px; bottom:-32px; transform: rotate(-4deg);
}
.pull-quote{
  margin: 24px 0;
  padding: 18px 24px;
  border-left: 3px solid var(--gold);
  background: var(--cream-deep);
  border-radius: 0 12px 12px 0;
  font-family: var(--font-display);
  font-style: normal;
  color: var(--ink);
  font-size: 1.2rem;
}
.about-points{ list-style:none; padding:0; margin: 20px 0 24px; }
.about-points li{
  position:relative; padding-left: 26px; margin-bottom:10px; color: var(--ink-soft);
  font-size: 1.16rem;
}
.about-points li::before{
  content:"✦"; position:absolute; left:0; color: var(--gold); font-size:0.85em; top:2px;
}
.about-points a{ color: var(--gold-deep); font-weight:600; }
.link-arrow{
  color: var(--gold-deep); text-decoration:none; font-weight:600; font-size:1.12rem;
}
.link-arrow:hover{ text-decoration: underline; }

/* Venue (lieu de rencontre) */
.venue-grid{
  display:grid; grid-template-columns: 1fr; gap: 36px;
  margin-top: 96px;
  padding-top: 88px;
  border-top: 1px solid var(--line);
}
.venue-copy{ max-width: 640px; }
.venue-copy h3{ margin-bottom: 14px; }
.venue-media{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.venue-photo{
  width:100%; height:100%; object-fit:cover;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  aspect-ratio: 4/3;
}

/* Services */
.service-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin: 48px 0 40px;
}
.service-card{
  background:#fff; border-radius: var(--radius);
  padding: 34px 28px; border: 1px solid var(--line);
  transition: transform .2s ease, box-shadow .2s ease;
}
.service-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); }
.service-card--accent{ border-color: var(--gold); }
.service-icon{
  width:64px; height:64px; border-radius:50%;
  background: var(--cream-deep);
  margin-left:auto; margin-right:auto;
  color: var(--olive-deep);
  display:flex; align-items:center; justify-content:center;
  margin-bottom: 18px;
}
.service-icon svg{ width:32px; height:32px; }
.service-card{ text-align:center; }
.service-card p{ font-size: 1.12rem; margin-bottom:0; }

.brain-callout{
  background: var(--terracotta);
  color:#fff;
  border-radius: var(--radius);
  padding: 32px 36px;
  text-align:center;
}
.brain-callout h3{ color:#fff; }
.brain-callout p{ color: rgba(255,255,255,0.92); margin:0; max-width:640px; margin-inline:auto; }

/* Accompagnements spécialisés */
.extra-services{ margin-top: 56px; text-align:center; }
.extra-services p.eyebrow{ margin-bottom: 40px; }
.extra-services-grid{
  display:flex; flex-wrap:wrap; justify-content:center; gap: 24px;
  text-align:left;
}
.extra-service{
  display:flex; gap:14px; align-items:flex-start;
  background:#fff; border-radius: var(--radius);
  padding: 24px; border: 1px solid var(--gold);
  flex: 1 1 calc(50% - 12px); max-width: calc(50% - 12px);
}
.extra-service--featured{
  border-color: var(--gold);
  flex: 1 1 100%; max-width: 100%;
  background:#fff;
  padding: 24px;
}
.extra-service--featured strong{
  font-size: 1.1rem; margin-bottom: 6px;
}
.extra-service.extra-service--featured p{ max-width: none; }
.extra-service--compact{
  padding: 14px 20px; flex: 0 1 auto; max-width: 100%;
}
.extra-service-list{
  list-style:none; padding:0; margin: 10px 0 0;
  display:grid; grid-template-columns: repeat(3, auto); gap: 6px 24px;
}
.extra-service--featured .extra-service-list{
  display:flex; flex-wrap:wrap; justify-content:center; gap: 10px;
  margin-top: 16px;
}
.extra-service--featured .extra-service-list li{
  padding: 7px 16px; border-radius: 100px;
  background: var(--cream-deep); color: var(--ink);
  font-size: 1rem;
}
.extra-service--featured .extra-service-list li::before{ content: none; }
.extra-service-list li{
  position:relative; padding-left:16px; font-size:1.05rem; color: var(--ink-soft);
}
.extra-service-list li::before{
  content:"•"; position:absolute; left:0; color: var(--gold);
}
.extra-service-dot{
  width:10px; height:10px; border-radius:50%;
  background: var(--gold); margin-top:7px; flex-shrink:0;
}
.extra-service strong{ display:block; margin-bottom:6px; font-family: var(--font-display); font-size:1.1rem; }
.extra-service p{ margin:0; font-size:1.08rem; }

/* Cercles & ateliers */
.circles{ background: var(--cream-deep); padding-top: 32px; }
.circles-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 48px 0 8px;
}
.circle-card{
  background:#fff; border-radius: var(--radius);
  padding: 30px 26px; border: 1px solid var(--line);
  transition: transform .2s ease, box-shadow .2s ease;
  text-align: center;
}
.circle-card .service-icon{ margin-left:auto; margin-right:auto; }
.circle-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow); }
.circle-card--accent{ border-color: var(--terracotta); }
.circle-card--accent .service-icon{ background: var(--terracotta); color:#fff; }
.circle-card p{ font-size:1.1rem; margin-bottom:0; }
.circles-note{ margin-top: 28px; }
.circles-note .link-arrow{ font-size: inherit; }

/* Pricing */
.pricing-grid{
  display:grid; grid-template-columns: repeat(4,1fr); gap:24px; margin: 48px 0 28px;
}
.price-card{
  background:#fff; border-radius: var(--radius);
  padding: 32px 28px; border: 1px solid var(--line);
  display:flex; flex-direction:column;
  position:relative;
}
.price-card--featured{
  border: 2px solid var(--gold);
  box-shadow: var(--shadow);
  transform: translateY(-8px);
}
.price-badge{
  position:absolute; top:-14px; left: 28px;
  background: var(--gold); color:#fff;
  font-size:0.72rem; font-weight:600; letter-spacing:0.05em;
  padding: 5px 14px; border-radius:100px;
  text-transform:uppercase;
}
.price-amount{
  font-family: var(--font-display); font-size:1.7rem; font-weight:700;
  color: var(--gold-deep); margin: 0 0 18px;
}
.price-note{ font-family: var(--font-body); font-size:0.72rem; font-weight:500; color: var(--ink-soft); }
.price-card ul{ list-style:none; padding:0; margin:0 0 12px; flex-grow:1; }
.price-card li{
  position:relative; padding-left:22px; margin-bottom:10px;
  font-size:1.08rem; color: var(--ink-soft);
}
.price-card li::before{
  content:"•"; position:absolute; left:6px; color: var(--olive); font-size:1.2em;
}
.pricing-footnote{
  text-align:center; max-width: 700px; margin: 0 auto; font-size:1.02rem;
}

/* Testimonials */
.testimonial-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin: 48px 0 16px;
}
.testimonial-grid--four{ grid-template-columns: 1fr; max-width: none; margin: 0; gap: 20px; }
.testimonials-layout{
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap: 40px; align-items:start;
  margin-top: 40px;
}
.testimonials-media{
  display:flex; flex-direction:column; gap: 20px;
  position: sticky; top: 120px;
}
.testimonials-photo{
  width:100%; aspect-ratio: 3/4; object-fit:cover;
  border-radius: var(--radius); box-shadow: var(--shadow);
  filter: grayscale(1) sepia(0.45) saturate(1.3) brightness(1.03);
}
.testimonial-card{
  background:#fff; border-radius: var(--radius);
  padding: 30px 26px; margin:0;
  border: 1px dashed var(--gold);
}
.testimonial-card p{ font-style: italic; color: var(--ink); margin-bottom:14px; }
.testimonial-card cite{ font-size:1.02rem; color: var(--ink-soft); font-style:normal; }
.testimonial-hint{
  text-align:center; font-size:1.0rem; color: var(--ink-soft);
}

/* Community */
.community{ background: var(--olive-deep); }
.community-inner{ max-width: 760px; }
.community .eyebrow{ color: rgba(255,255,255,0.75); }
.community h2, .community p{ color:#fff; }
.community p{ color: rgba(255,255,255,0.88); }
.partner-logos{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:24px;
  margin-top: 32px;
}
.partner-logo{
  height: 96px; width:auto;
}

/* Contact */
.contact-grid{
  display:grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items:start;
}
.contact-details{ list-style:none; padding:0; margin-top:24px; }
.contact-details li{ margin-bottom: 12px; font-size:1.12rem; }
.contact-details a{ color: var(--gold-deep); text-decoration:none; font-weight:600; }
.contact-details a:hover{ text-decoration:underline; }

.contact-card{
  background:#fff; border-radius: var(--radius); padding: 32px;
  border: 1px solid var(--line); box-shadow: var(--shadow);
  display:flex; flex-direction:column;
}
.contact-card-title{
  font-family: var(--font-display); font-size:1.6rem; font-weight:600;
  color: var(--ink); margin:0 0 10px;
}
.contact-card-note{ margin:0 0 22px; color: var(--ink-soft); }
.contact-card-line{ margin:0 0 14px; }
.contact-card-line a.btn{ width:100%; text-align:center; }
.contact-card-line a:not(.btn){ color: var(--gold-deep); font-weight:600; text-decoration:none; }
.contact-card-fine{
  margin:14px 0 0; font-size:.98rem; color: var(--ink-soft);
  border-top:1px solid var(--line); padding-top:14px;
}

/* Footer */
.site-footer{
  background: var(--olive-deep);
  color: rgba(255,255,255,0.8);
  padding: 44px 24px 30px;
  text-align:center;
}
.footer-logo{ width:130px; height:130px; margin: 0 auto 10px; }
.footer-name{
  font-family: var(--font-display); font-size:1.3rem; font-weight:700;
  color:#fff !important; margin:0 0 6px !important;
}
.site-footer p{ color: rgba(255,255,255,0.65); font-size:1.02rem; margin: 6px 0 0; }
.footer-copy{ margin-top: 18px !important; font-size:0.92rem !important; }

/* ===== Responsive ===== */
@media (max-width: 1100px){
  .pricing-grid{ grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 900px){
  .about-grid, .contact-grid{ grid-template-columns: 1fr; }
  .service-grid, .pricing-grid, .testimonial-grid, .venue-media, .circles-grid{ grid-template-columns: 1fr; }
  .testimonials-layout{ grid-template-columns: 1fr; }
  .testimonials-media{ position: static; flex-direction: row; }
  .testimonials-photo{ aspect-ratio: 3/4; }

  .extra-service{ flex-basis: 100%; max-width: 100%; }
  .extra-service-list{ grid-template-columns: 1fr; }
  .price-card--featured{ transform:none; }
  .main-nav{
    position: fixed; top: 70px; right: 0; left:0;
    background: var(--cream);
    flex-direction: column; align-items: flex-start;
    padding: 20px 24px 28px;
    border-bottom: 1px solid var(--line);
    transform: translateY(-130%);
    transition: transform .25s ease;
    gap: 18px;
  }
  .main-nav.open{ transform: translateY(0); }
  .nav-toggle{ display:flex; }
  .btn-nav{ width:100%; }
}

@media (max-width: 520px){
  .section{ padding: 64px 0; }
  .hero{ padding: 72px 0 56px; }
}
