/* Surfaces lumineuses, typographie système et vert émeraude. */
h1,h2,h3,h4,h5 { font-weight:650; letter-spacing:-.035em; }
h1 { letter-spacing:-.055em; }
section { padding:5.5rem 0; }
.site-header { background:rgba(255,255,255,.83); backdrop-filter:blur(22px) saturate(160%); box-shadow:none; }
.site-header .container { padding-top:.8rem;padding-bottom:.8rem;gap:1rem; }
.brand { font-size:1.23rem;letter-spacing:-.035em;flex-shrink:0; }
.brand-logo { border-radius:14px;box-shadow:none; }
.brand-tagline { letter-spacing:.075em;color:var(--color-text-soft);font-size:.63rem; }
.nav-list { gap:.12rem; }
.nav-list a { padding:.55rem .75rem;font-size:.86rem;white-space:nowrap; }
.nav-list a.active::after { background:var(--color-primary);height:2px; }
.topbar { background:var(--color-primary-dark); }
.btn { border-radius:999px;box-shadow:none;letter-spacing:-.015em;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s; }
.btn-primary,.btn-whatsapp,.btn-accent,.nav-cta { background:var(--color-primary);color:#fff;box-shadow:none; }
.btn-primary:hover,.btn-whatsapp:hover,.btn-accent:hover,.nav-cta:hover { background:var(--color-primary-dark);color:#fff;box-shadow:0 5px 16px #084d3f18;transform:translateY(-1px); }
.btn-white { background:#fff;color:var(--color-primary-dark); }
.btn-ghost { background:#fff;border-color:var(--color-border); }
.btn-ghost:hover { background:var(--color-primary-soft);color:var(--color-primary-dark); }
:where(a,button,input,textarea,select):focus-visible { outline:3px solid #13795b;outline-offset:4px; }
.hero { background:radial-gradient(ellipse at 90% 20%,#e0eee6 0,transparent 55%),linear-gradient(145deg,#fff,#f3f6f4);color:var(--color-text);padding:5.5rem 0 5rem; }
.hero::before,.hero-photo-frame::before,.hero-photo-frame::after { content:none; }
.hero-overlay { background:linear-gradient(90deg,#f7faf9f0,#f7faf9d4); }
.hero-bg-img.active { opacity:.13;animation:none; }
.hero-content h1 { color:var(--color-primary-dark);font-size:clamp(2.5rem,4.7vw,4.9rem);line-height:1.08; }
.hero-content h1 .accent { color:var(--color-primary); }
.hero-content .lead { color:#465851;max-width:610px;font-size:1.12rem; }
.hero-content .eyebrow { background:#e4efe8;color:var(--color-primary-dark);border:1px solid #cfe1d7; }
.hero-bullets { color:#465851; }
.hero-bullets li::before { color:var(--color-primary); }
.hero-rotator-banner { background:#ffffffcf;border:1px solid #dbe7df;color:var(--color-primary-dark);font-size:.83rem;box-shadow:none;backdrop-filter:blur(12px);animation:none; }
.hero-photo-frame { border-radius:32px;background:#fff;padding:10px;box-shadow:0 24px 70px #084d3f12;border:1px solid #fff; }
.hero-photo-frame img { border-radius:24px; }
.hero-photo-badge { background:#ffffffed;border:1px solid #dce9df;box-shadow:0 12px 35px #084d3f10;backdrop-filter:blur(20px); }
.section-title::after { width:38px;height:3px;background:var(--color-primary); }
.eyebrow { background:#eaf4ef;color:var(--color-primary);letter-spacing:.13em;font-size:.7rem; }
.page-header { background:linear-gradient(125deg,#084d3f,#13795b);padding:4.5rem 0; }
.card { border:1px solid #e3e8e5;border-radius:22px;box-shadow:0 3px 18px #102a2010; }
.card:hover { transform:translateY(-4px);border-color:#cfded5;box-shadow:0 14px 38px #102a2012; }
.card-media { background:#edf2ef; }
.card:hover .card-media img { transform:scale(1.035); }
.card-body { padding:1.5rem; }
.card-tag { font-size:.67rem;letter-spacing:.11em;color:var(--color-primary); }
.card-title { font-weight:650;letter-spacing:-.025em; }
.card-title a { display:block; }
.card-price { letter-spacing:-.04em; }
.badge-featured { background:#fffffff2;color:var(--color-primary-dark);letter-spacing:0;box-shadow:0 2px 8px #102a2012;border:1px solid #fff;font-size:.68rem; }
.photo-label { position:absolute;bottom:10px;left:10px;background:#ffffffeb;color:#3c5247;font-size:.63rem;line-height:1.35;padding:5px 8px;border-radius:6px;backdrop-filter:blur(8px);z-index:2; }
.photo-caption { color:var(--color-text-soft);font-size:.79rem;line-height:1.65;margin:12px 0 0; }
.photo-caption a { text-decoration:underline;text-underline-offset:3px; }
.pmodal-dialog { border-radius:26px;box-shadow:0 26px 100px #102a2030; }
.pmodal-backdrop { background:#172a2370;backdrop-filter:blur(12px); }
.pmodal-media .photo-label { bottom:18px;left:18px; }
.pillar { border-color:#e0e8e2;border-radius:22px;box-shadow:0 3px 15px #102a2008; }
.pillar:hover { box-shadow:0 12px 30px #102a2014; }
.pillars { grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:2.6rem; }
.pillar.js-pillar { padding:0;text-align:left;font-family:inherit;cursor:pointer;display:flex;flex-direction:column;border:1px solid #e0e8e2; }
.pillars-section,.illustrative-testimonials { scroll-margin-top:86px; }
.pillar-visual { display:block;position:relative;overflow:hidden;aspect-ratio:16/9;background:#eaf4ef;width:100%;flex:none; }
.pillar-visual > img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease; }
.pillar:hover .pillar-visual > img { transform:scale(1.04); }
.pillar-visual > img[src$="relaxation.webp"] { object-position:center 24%; }
.pillar-number { position:absolute;top:12px;left:12px;background:#ffffffeb;color:#084d3f;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:700;backdrop-filter:blur(10px); }
.pillar .pillar-icon { position:absolute;right:14px;bottom:12px;margin:0;width:42px;height:42px;line-height:42px;font-size:1.35rem;background:#fffffff0;border:1px solid #fff;box-shadow:0 3px 12px #084d3f18; }
.pillar-copy { padding:16px;display:flex;flex-direction:column;flex:1;gap:7px;width:100%; }
.pillar-title { font-size:1.08rem;line-height:1.3;font-weight:700;color:#084d3f;letter-spacing:-.025em; }
.pillar-summary { display:block;font-size:.82rem;line-height:1.55;color:#607069;flex:1; }
.pillar-cta { display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:.78rem;font-weight:650;color:#13795b; }
.pillar-cta > span { font-size:1.2rem; }
.pillars-photo-note { text-align:center;color:#607069;font-size:.73rem;margin:20px 0 0; }
.pillars-photo-note a { text-decoration:underline;text-underline-offset:3px; }
#pillar-modal .pmodal-media { display:flex;flex-direction:column;min-height:0;aspect-ratio:auto; }
#pillar-modal #pl-img { min-height:260px;flex:1;object-fit:cover; }
#pillar-modal #pl-icon { width:48px !important;height:48px !important;font-size:1.6rem !important; }
.pillar-photo-caption { background:#f5f8f6;padding:16px 20px;font-size:.72rem;line-height:1.6;color:#52665b; }
.pillar-photo-caption p { margin:0 0 5px; }
.pillar-photo-caption[hidden] { display:none; }
.pillar-photo-caption a { text-decoration:underline;text-underline-offset:2px; }
@media(max-width:960px) { #pillar-modal .pmodal-grid { max-height:none; }#pillar-modal #pl-img { height:auto;aspect-ratio:16/10;flex:none;min-height:0; }#pillar-modal #pl-img[src$="relaxation.webp"] { object-position:center 24%; } }
@media(max-width:1099px) { .pillars { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) { .pillars { gap:12px; }.pillar-copy { padding:14px; }.pillar-title { font-size:.94rem; }.pillar-summary { font-size:.78rem; }.pillar-cta { font-size:.69rem; }.pillar .pillar-icon { width:32px;height:32px;line-height:32px;font-size:1rem;right:9px;bottom:9px; } }
.site-footer { background:#122a22; }
.example-reviews { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:2.3rem; }
.example-review { background:#fff;border:1px solid #e0e8e2;border-radius:20px;overflow:hidden;box-shadow:0 3px 18px #102a2008;display:flex;flex-direction:column; }
.example-review-image { display:block;position:relative;aspect-ratio:2/1;background:#eaf4ef;overflow:hidden;flex:none; }
.example-review-image img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.example-review-image img[src$="linus.webp"] { object-position:center 20%; }
.example-review-image > span { position:absolute;bottom:12px;left:14px;background:#ffffffec;color:#426052;padding:4px 8px;border-radius:6px;font-size:.65rem; }
.example-review-copy { padding:18px;display:flex;flex-direction:column;flex:1;gap:10px; }
.example-review-label { color:#547162;font-size:.67rem;letter-spacing:.025em;padding:6px 9px;background:#eaf4ef;border-radius:6px;align-self:flex-start; }
.example-review-product { color:#084d3f;font-size:1rem;font-weight:700;line-height:1.3;letter-spacing:-.025em; }
.example-review blockquote { margin:0;padding:0;color:#52665b;font-size:.84rem;line-height:1.65;flex:1; }
.example-review-author { margin:2px 0;font-weight:650;font-size:.82rem;color:#214b3d; }
.example-review-author > span { color:#64796d;font-weight:400;font-size:.75rem; }
.example-review-link { display:flex;justify-content:space-between;font-size:.78rem;font-weight:650;color:#13795b;border-top:1px solid #e7eeea;padding-top:13px; }
@media(max-width:1099px) { .example-reviews { grid-template-columns:repeat(2,minmax(0,1fr));gap:16px; } }
@media(max-width:600px) { .example-reviews { grid-template-columns:1fr; }.example-review-copy { padding:16px; } }
.site-footer h4 { letter-spacing:-.015em; }
.whatsapp-float,body > .mobile-menu-fab { box-shadow:0 5px 20px #084d3f24;background:var(--color-primary);border:3px solid #fff; }
.whatsapp-float::after,.mobile-menu-fab::after { display:none; }
.whatsapp-float:hover,.mobile-menu-fab:hover { transform:translateY(-2px);box-shadow:0 8px 25px #084d3f30; }
.admin-sidebar { background:linear-gradient(180deg,#084d3f,#0a352c); }
.admin-brand-logo { background:var(--color-primary-light);box-shadow:none; }
.admin-topbar { background:#ffffffd9;backdrop-filter:blur(18px);box-shadow:none; }
.admin-header,.admin-form { box-shadow:0 3px 20px #102a2008; }
.backup-header h1 { font-size:2rem;line-height:1.15;margin:0; }
.backup-header p { margin:.5rem 0 0;font-size:.9rem; }
.backup-card { padding:22px;max-width:780px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg); }
.backup-card h2 { font-size:1.45rem;line-height:1.3;margin:0 0 14px; }
.backup-card p { font-size:.9rem;line-height:1.65; }
.backup-card .admin-table th,.backup-card .admin-table td { padding:9px 12px; }
@media(max-width:640px) { .backup-card { padding:18px; }.backup-card .btn { max-width:100%;white-space:normal;text-align:center; }.backup-card .admin-table { font-size:.82rem; } }
.article-content h2 { margin-top:2rem;font-size:1.65rem; }
.article-content h3 { margin-top:1.6rem;font-size:1.18rem; }
.article-content a { text-decoration:underline;text-underline-offset:3px; }
.article-content li { margin-bottom:.65rem; }
.article-content blockquote { margin:1.8rem 0;padding:1.2rem 1.4rem;border-left:3px solid var(--color-primary);background:var(--color-primary-soft);border-radius:0 14px 14px 0;color:#264b3b; }
.article-kicker { display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;color:var(--color-text-soft);font-size:.8rem;margin:1rem 0; }
.editorial-note { font-size:.84rem;color:var(--color-text-soft);border-top:1px solid var(--color-border);padding-top:1rem;margin-top:2rem; }
.credits-list { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.2rem; }
.credits-item { padding:1.4rem;background:#fff;border:1px solid var(--color-border);border-radius:16px; }
.credits-item img { aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:12px;margin-bottom:1rem; }
@media(min-width:1100px) { .desktop-nav { display:block; } body:not(.is-admin) > .mobile-menu-fab { display:none !important; } }
@media(max-width:1099px) { .desktop-nav { display:none; } }
@media(max-width:760px) { section { padding:3.5rem 0; }.hero { padding:3rem 0 3.5rem; }.hero-content h1 { font-size:clamp(2.3rem,8.5vw,3.5rem); }.hero-content .lead { font-size:1rem; }.hero-photo-frame { max-width:310px; }.hero-rotator-banner { font-size:.73rem;margin-bottom:1.5rem; }.page-header { padding:3.5rem 0; }.card-body { padding:1.15rem; }.article-content { font-size:1rem !important; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important; } }

/* Notre approche : cartes compactes, détails accessibles au clavier sans JavaScript. */
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.approach-section { padding:64px 0; }
.approach-heading { max-width:760px;margin:0 auto 26px;text-align:center; }
.approach-heading h2 { font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.14;letter-spacing:-.045em;margin:12px 0 16px;color:#084d3f; }
.approach-heading > p { color:#5b6e63;font-size:.96rem;line-height:1.7;margin:0; }
.approach-jumps { display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin:0 0 28px; }
.approach-jumps a { padding:10px 15px;border:1px solid #d8e6dd;border-radius:24px;color:#165d47;background:#f2f8f4;font-size:.8rem;font-weight:600; }
.approach-grid { display:grid;gap:18px;align-items:start; }
.approach-services { grid-template-columns:repeat(2,minmax(0,1fr)); }
.approach-domains { grid-template-columns:repeat(3,minmax(0,1fr)); }
.approach-card { background:#fff;border:1px solid #dde7e0;border-radius:20px;overflow:hidden;min-width:0;box-shadow:0 4px 24px #122a2206;scroll-margin-top:110px; }
.approach-visual { position:relative;aspect-ratio:2.5/1;background:#edf3ee;overflow:hidden; }
.approach-visual img { display:block;width:100%;height:100%;object-fit:cover; }
.approach-visual > span { position:absolute;left:12px;bottom:10px;padding:4px 8px;border-radius:6px;background:#fffffff0;color:#355844;font-size:.62rem; }
.approach-copy { padding:20px; }
.approach-copy h3 { font-size:1.08rem;letter-spacing:-.025em;line-height:1.3;margin:0 0 10px;color:#084d3f; }
.approach-copy > p { color:#5b6e63;font-size:.86rem;line-height:1.6;margin:0 0 14px; }
.approach-copy > ul { padding-left:18px;margin:12px 0 18px;font-size:.83rem;color:#436252;line-height:1.65; }
.approach-copy li { margin-bottom:5px; }
.approach-copy details { border-top:1px solid #e4ece6;margin:0 0 16px; }
.approach-copy summary { cursor:pointer;padding:12px 0;color:#17684d;font-size:.82rem;font-weight:650;min-height:44px; }
.approach-copy summary::marker { color:#19835e; }
.approach-copy summary:focus-visible,.approach-jumps a:focus-visible,.approach-link:focus-visible { outline:3px solid #218466;outline-offset:4px;border-radius:4px; }
.approach-detail { padding:2px 0 10px;color:#52695b;font-size:.83rem;line-height:1.7; }
.approach-detail p { font-size:inherit;line-height:inherit;margin:0 0 12px; }
.approach-detail h4 { font-size:.79rem;color:#174f3c;margin:12px 0 7px; }
.approach-source { font-size:.75rem;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere; }
.approach-link { display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;color:#126548;font-weight:650;min-height:32px; }
.approach-domains-section { background:#f2f6f3; }
.approach-care-note { border:1px solid #d2e4d9;background:#e6f1ea;border-radius:16px;padding:18px 22px;margin:0 0 26px;color:#315a44; }
.approach-care-note strong { color:#105539;font-size:.9rem; }
.approach-care-note p { margin:7px 0 0;font-size:.85rem;line-height:1.65; }
.approach-photo-note { color:#64766b;font-size:.75rem;line-height:1.7;margin:22px 0 0; }
.approach-photo-note a { text-decoration:underline; }
.approach-steps { list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:28px 0;padding:0; }
.approach-steps li { padding:22px;background:#f4f8f5;border:1px solid #e2eae4;border-radius:18px; }
.approach-steps li > span { color:#218360;font-size:.8rem;font-weight:700; }
.approach-steps h3 { font-size:1.05rem;color:#084d3f;margin:12px 0 10px; }
.approach-steps p { font-size:.86rem;line-height:1.65;color:#587060;margin:0; }
.approach-actions { display:flex;justify-content:center;gap:12px;flex-wrap:wrap; }
#nos-services,#domaines-accompagnement,#parcours-accompagnement { scroll-margin-top:90px; }
@media(min-width:1100px) { .approach-services .approach-card { display:grid;grid-template-columns:155px minmax(0,1fr); }.approach-services .approach-visual { aspect-ratio:auto;min-height:100%; }.approach-services .approach-visual > span { left:7px;font-size:.55rem; }.approach-services .approach-copy { padding:22px; } }
@media(max-width:960px) { .approach-domains { grid-template-columns:repeat(2,minmax(0,1fr)); }.approach-steps { gap:14px; }.approach-steps li { padding:18px; } }
@media(max-width:600px) { .approach-section { padding:44px 0; }.approach-services,.approach-domains,.approach-steps { grid-template-columns:1fr; }.approach-grid { gap:16px; }.approach-copy { padding:18px; }.approach-visual { aspect-ratio:2.8/1; }.approach-care-note { padding:16px; }.approach-jumps { gap:7px; }.approach-jumps a { font-size:.73rem;padding:9px 12px; } }

/* Proportions communes : l'image ne peut plus imposer sa hauteur intrinsèque à la carte. */
.grid { grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px; }
.card { min-width:0;border-radius:18px; }
.card-media { display:block;aspect-ratio:16/10;flex:none; }
.card-media > img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover; }
.card[data-product] .card-media > img { object-fit:contain;background:#f1f5f2; }
.card-body { padding:16px; }
.card-tag { margin-bottom:7px;font-size:.63rem;letter-spacing:.07em; }
.card-title { font-size:1.02rem;line-height:1.3;margin-bottom:7px; }
.card-title a { display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden; }
.card-text { display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;flex:none;font-size:.82rem;line-height:1.55;margin-bottom:10px; }
.card-price { font-size:1.25rem;margin-top:auto;margin-bottom:10px; }
.card-body > .btn:last-child { margin-top:auto; }
.card-body .btn { padding:.55rem .75rem;min-height:42px;font-size:.78rem; }
.value,.contact-card { padding:22px 18px;border-radius:18px; }
.value-icon { font-size:1.8rem;margin-bottom:8px; }
.value h3,.contact-card h3 { font-size:1rem;margin-bottom:8px; }
.value p { font-size:.85rem;line-height:1.65; }
.contact-card { display:flex;flex-direction:column;align-items:center; }
.contact-card .icon { width:48px;height:48px;line-height:48px;font-size:1.5rem;margin-bottom:12px; }
.contact-card p { font-size:.84rem;line-height:1.6; }
.contact-card .btn { margin-top:auto;min-height:42px;padding:.55rem .65rem;font-size:.8rem; }
.values,.contact-grid,.testimonials { gap:18px; }
.testimonial { padding:22px;border-radius:18px; }
.testimonial::before { font-size:3.5rem;top:-5px; }
.testimonial-text { font-size:.88rem;line-height:1.7;margin-bottom:14px;padding-top:10px; }
.testimonial-author { padding-top:12px;font-size:.82rem; }
.credential { padding:12px 16px; }
.credits-item { padding:16px;border-radius:18px; }
.credits-item img { display:block;height:150px;aspect-ratio:auto;object-fit:cover;margin-bottom:12px; }
.credits-item h3 { font-size:.95rem;line-height:1.45; }
.credits-item p,.credits-item > a { font-size:.76rem; }
@media(max-width:640px) {
  .two-col .image-stack img:nth-child(2) { right:0;bottom:-1rem;width:45%; }
  .grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
  .card-body { padding:12px; }.card-title { font-size:.9rem; }.card-tag { font-size:.57rem; }.card-text { display:none; }.card-price { font-size:1.1rem; }
  .card-body .btn { font-size:.7rem;padding:.5rem .55rem; }.card-body .js-open { min-width:38px;min-height:42px; }
  .photo-label { font-size:.54rem;padding:4px 6px;bottom:7px;left:7px; }.badge-featured { font-size:.57rem;padding:4px 7px;top:7px;left:7px; }
  .value,.contact-card { padding:18px 16px; }.credits-item img { height:140px; }
}
