/* ===================================================================
   Catherine Pasquet · Kinésiologie — feuille de styles partagée
   =================================================================== */

:root{
  --cream:#F6F1E4;
  --sand:#EFE5C6;
  --beige:#CEB893;
  --greige:#A89F8B;
  --amber:#D7AE72;
  --caramel:#946938;
  --taupe:#726A58;
  --ink:#35352E;
  --serif:'Fraunces', Georgia, serif;
  --sans:'Mulish', system-ui, sans-serif;
  --container:1200px;
  --radius:24px;
  --line:1px solid rgba(206,184,147,.55);
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  line-height:1.72;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
/* grain de sable subtil */
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;
  mix-blend-mode:multiply;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.container{max-width:var(--container);margin:0 auto;padding:0 32px;}
section{position:relative;}
[id]{scroll-margin-top:96px;}

h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.13;letter-spacing:-.01em;}
h1{font-size:clamp(2.6rem,5.4vw,4.4rem);}
h2{font-size:clamp(2rem,3.8vw,2.95rem);}
h3{font-size:1.32rem;}
em{font-style:italic;}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-size:.78rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.22em;color:var(--caramel);
}
.eyebrow::before{content:"";width:34px;height:1.5px;background:var(--beige);}
.eyebrow.center::after{content:"";width:34px;height:1.5px;background:var(--beige);}

/* ===================== Boutons ===================== */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--sans);font-weight:600;font-size:.98rem;
  padding:16px 30px;border-radius:999px;cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s,color .35s,box-shadow .35s;
}
.btn-primary{background:var(--caramel);color:var(--cream);box-shadow:0 10px 24px -12px rgba(53,53,46,.6);}
.btn-primary:hover{background:var(--ink);transform:translateY(-3px);box-shadow:0 16px 30px -14px rgba(53,53,46,.7);}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--beige);}
.btn-ghost:hover{background:var(--sand);transform:translateY(-3px);}
.btn .arrow{transition:transform .35s;}
.btn:hover .arrow{transform:translateX(4px);}
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--caramel);
  border-bottom:1.5px solid transparent;padding-bottom:2px;
  transition:border-color .3s,gap .3s;
}
.link-arrow:hover{border-color:var(--caramel);gap:12px;}

/* ===================== Header ===================== */
header{
  position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 0;
  transition:background .4s,box-shadow .4s,padding .4s,backdrop-filter .4s;
}
header.scrolled{
  background:rgba(246,241,228,.9);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(146,139,116,.25);padding:9px 0;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.logo{display:flex;align-items:center;gap:12px;}
.logo svg{width:38px;height:38px;flex-shrink:0;}
.logo-name{font-family:var(--serif);font-size:1.16rem;line-height:1.15;}
.logo-sub{font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.26em;color:var(--taupe);}
.nav-links{display:flex;align-items:center;gap:28px;}
.nav-item{position:relative;}
.nav-links a{font-size:.95rem;font-weight:500;color:var(--taupe);transition:color .3s;position:relative;}
.nav-links a:hover,.nav-links a.active{color:var(--ink);}
.nav-links a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;
  background:var(--amber);border-radius:2px;
}
.nav-item.has-dropdown>a::after{content:" ⌄";color:var(--beige);}
.dropdown{
  position:absolute;top:calc(100% + 16px);left:50%;
  transform:translateX(-50%) translateY(8px);
  background:var(--cream);border:var(--line);border-radius:18px;padding:9px;
  min-width:252px;display:flex;flex-direction:column;gap:2px;
  box-shadow:0 24px 40px -22px rgba(53,53,46,.5);
  opacity:0;visibility:hidden;transition:.3s;
}
.nav-item.has-dropdown:hover .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dropdown a{padding:10px 14px;border-radius:12px;font-size:.92rem;color:var(--taupe);transition:background .25s,color .25s;}
.dropdown a:hover{background:var(--sand);color:var(--ink);}
.nav-actions{display:flex;align-items:center;gap:14px;}
.nav-actions .btn{padding:12px 22px;font-size:.9rem;}
.nav-toggle{
  display:none;background:none;border:none;cursor:pointer;
  width:44px;height:44px;flex-direction:column;gap:5px;align-items:center;justify-content:center;
}
.nav-toggle span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.3s;}

/* ===================== Décor spirale ===================== */
.spiral-deco{
  position:absolute;pointer-events:none;
  stroke:var(--beige);fill:none;stroke-width:1.4;stroke-linecap:round;opacity:.5;
}

/* ===================== Hero accueil ===================== */
.hero{padding:168px 0 108px;overflow:hidden;}
.hero .container{display:grid;grid-template-columns:.92fr 1.08fr;gap:70px;align-items:center;}
.hero-photo-wrap{position:relative;}
.hero-photo{
  position:relative;z-index:2;aspect-ratio:1/1.18;
  border-radius:62% 38% 54% 46% / 56% 50% 50% 44%;
  overflow:hidden;box-shadow:0 40px 70px -30px rgba(53,53,46,.55);
}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
.hero-photo-bg{
  position:absolute;inset:-26px -30px 30px 26px;z-index:1;
  background:linear-gradient(150deg,var(--beige),var(--sand));
  border-radius:46% 54% 60% 40% / 52% 44% 56% 48%;
}
.medallion{
  position:absolute;z-index:3;right:-14px;bottom:42px;
  width:108px;height:108px;border-radius:50%;background:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  box-shadow:0 16px 30px -14px rgba(53,53,46,.5);text-align:center;
}
.medallion svg{width:40px;height:40px;}
.medallion span{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--taupe);}
.hero-text .eyebrow{margin-bottom:24px;}
.hero-text h1{margin-bottom:24px;}
.hero-text h1 em{color:var(--caramel);}
.hero-lead{font-size:1.16rem;color:var(--taupe);max-width:30em;margin-bottom:34px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.hero-tags{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.85rem;color:var(--taupe);}
.hero-tags span{display:flex;align-items:center;gap:8px;}
.hero-tags span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);}

/* ===================== Page hero (pages intérieures) ===================== */
.page-hero{background:var(--sand);padding:152px 0 76px;overflow:hidden;}
.page-hero .spiral-deco{top:46px;right:5%;width:120px;height:120px;opacity:.45;}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.82rem;color:var(--taupe);margin-bottom:20px;}
.breadcrumb a:hover{color:var(--ink);}
.breadcrumb .sep{color:var(--beige);}
.breadcrumb .current{color:var(--caramel);}
.page-hero h1{margin:14px 0 18px;}
.page-hero .lead{font-size:1.16rem;color:var(--taupe);max-width:36em;}

/* ===================== Blocs de contenu ===================== */
.block{padding:96px 0;}
.block.alt{background:var(--sand);}
.block.tight{padding:70px 0;}
.section-head{max-width:36em;margin-bottom:54px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head .eyebrow{margin-bottom:18px;}
.section-head h2{margin-bottom:14px;}
.section-head p{color:var(--taupe);}
.prose p{color:var(--taupe);margin-bottom:18px;max-width:38em;}
.prose p:last-child{margin-bottom:0;}

/* split image + texte */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.split.reverse .split-media{order:2;}
.split-media{
  aspect-ratio:1/1;
  border-radius:56% 44% 52% 48% / 50% 54% 46% 50%;
  overflow:hidden;box-shadow:0 36px 60px -32px rgba(53,53,46,.4);
}
.split-media img{width:100%;height:100%;object-fit:cover;}
.split-media.alt-shape{border-radius:44% 56% 48% 52% / 54% 48% 52% 46%;}
.media-placeholder{
  width:100%;height:100%;
  background:linear-gradient(150deg,var(--sand),var(--beige));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
}
.media-placeholder svg{width:62px;height:62px;opacity:.55;stroke:var(--caramel);fill:none;stroke-width:1.3;}
.media-placeholder span{font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);}

/* ===================== Bande poétique + piliers ===================== */
.whisper{background:var(--sand);padding:100px 0;text-align:center;}
.whisper.on-cream{background:var(--cream);}
.whisper .spiral-deco.left{top:38px;left:5%;width:118px;height:118px;opacity:.4;}
.whisper .spiral-deco.right{bottom:34px;right:6%;width:88px;height:88px;opacity:.4;}
.whisper-quote{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.4;max-width:18em;margin:18px auto 0;}
.whisper-quote em{color:var(--caramel);}
.pillars{margin:60px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:820px;}
.pillar-item{display:flex;flex-direction:column;align-items:center;gap:8px;}
.pillar-item .dot{width:54px;height:54px;border-radius:50%;background:var(--cream);display:flex;align-items:center;justify-content:center;margin-bottom:6px;}
.whisper.on-cream .pillar-item .dot{background:var(--sand);}
.pillar-item .dot svg{width:26px;height:26px;}
.pillar-item h3{font-size:1.18rem;}
.pillar-item p{font-size:.92rem;color:var(--taupe);max-width:16em;}

/* ===================== Cartes ===================== */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.cards.cols-3{grid-template-columns:repeat(3,1fr);}
.card{
  background:#fff;border:var(--line);border-radius:var(--radius);padding:38px 36px;
  display:flex;flex-direction:column;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s;
}
.card:hover{transform:translateY(-6px);box-shadow:0 28px 44px -26px rgba(53,53,46,.45);border-color:var(--amber);}
.card-icon{width:60px;height:60px;border-radius:18px;background:var(--sand);display:flex;align-items:center;justify-content:center;margin-bottom:22px;}
.card-icon svg{width:30px;height:30px;stroke:var(--caramel);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.card h3{margin-bottom:12px;}
.card p{font-size:.96rem;color:var(--taupe);margin-bottom:20px;}
.card .link-arrow{margin-top:auto;}

/* ===================== Étapes ===================== */
.steps{display:grid;gap:18px;max-width:780px;}
.step{display:flex;gap:24px;align-items:flex-start;background:#fff;border:var(--line);border-radius:var(--radius);padding:28px 32px;}
.step-num{
  flex-shrink:0;width:50px;height:50px;border-radius:50%;background:var(--sand);
  color:var(--caramel);font-family:var(--serif);font-size:1.45rem;
  display:flex;align-items:center;justify-content:center;
}
.step h3{margin-bottom:5px;}
.step p{color:var(--taupe);font-size:.96rem;}

/* ===================== Liste à puces "coquillage" ===================== */
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 34px;}
.feature-list.one-col{grid-template-columns:1fr;}
.feature-list li{display:flex;gap:13px;align-items:flex-start;}
.feature-list li::before{
  content:"";flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background-color:var(--sand);margin-top:2px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23946938' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E");
  background-size:13px;background-repeat:no-repeat;background-position:center;
}

/* ===================== FAQ ===================== */
.faq{max-width:780px;margin:0 auto;display:grid;gap:14px;}
.faq-item{background:#fff;border:var(--line);border-radius:18px;overflow:hidden;}
.faq-q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--sans);font-weight:600;font-size:1.02rem;color:var(--ink);
  padding:22px 26px;display:flex;justify-content:space-between;gap:16px;align-items:center;
}
.faq-q .ico{flex-shrink:0;color:var(--caramel);font-size:1.5rem;line-height:1;transition:transform .3s;}
.faq-item.open .faq-q .ico{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.faq-a p{padding:0 26px 22px;color:var(--taupe);font-size:.96rem;}
.faq-item.open .faq-a{max-height:420px;}

/* ===================== Tarifs ===================== */
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.price-card{background:#fff;border:var(--line);border-radius:var(--radius);padding:38px 32px;text-align:center;display:flex;flex-direction:column;}
.price-card.featured{background:var(--ink);border-color:var(--ink);color:var(--cream);}
.price-card .ptag{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--caramel);margin-bottom:14px;}
.price-card.featured .ptag{color:var(--amber);}
.price-card h3{margin-bottom:8px;}
.price-amount{font-family:var(--serif);font-size:2.7rem;color:var(--caramel);line-height:1;margin:10px 0 4px;}
.price-card.featured .price-amount{color:var(--amber);}
.price-dur{font-size:.86rem;color:var(--taupe);margin-bottom:20px;}
.price-card.featured .price-dur{color:rgba(246,241,228,.65);}
.price-card ul{display:grid;gap:9px;font-size:.93rem;color:var(--taupe);margin-bottom:24px;text-align:left;}
.price-card.featured ul{color:rgba(246,241,228,.8);}
.price-card ul li{display:flex;gap:10px;}
.price-card ul li::before{content:"·";color:var(--amber);font-weight:700;}
.price-card .btn{margin-top:auto;justify-content:center;}

/* ===================== Infos pratiques ===================== */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.info-item{background:#fff;border:var(--line);border-radius:var(--radius);padding:30px 28px;}
.info-item .card-icon{width:50px;height:50px;border-radius:14px;margin-bottom:16px;}
.info-item .card-icon svg{width:24px;height:24px;}
.info-item h3{font-size:1.12rem;margin-bottom:6px;}
.info-item p{font-size:.93rem;color:var(--taupe);}

/* ===================== Contact ===================== */
.contact-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:start;}
.form{background:#fff;border:var(--line);border-radius:var(--radius);padding:40px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
.field.full{grid-column:1/-1;}
.field label{font-size:.85rem;font-weight:600;color:var(--ink);}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border-radius:13px;
  border:1.5px solid rgba(206,184,147,.7);background:var(--cream);
  font-family:var(--sans);font-size:.96rem;color:var(--ink);transition:border-color .25s,background .25s;
}
.field textarea{resize:vertical;min-height:120px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--amber);background:#fff;}
.contact-aside{display:flex;flex-direction:column;gap:14px;}
.contact-card{background:var(--sand);border-radius:var(--radius);padding:30px 32px;}
.contact-card h3{margin-bottom:16px;}
.contact-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px;font-size:.95rem;}
.contact-row:last-child{margin-bottom:0;}
.contact-row .ic{
  flex-shrink:0;width:38px;height:38px;border-radius:11px;background:var(--cream);
  display:flex;align-items:center;justify-content:center;
}
.contact-row .ic svg{width:19px;height:19px;stroke:var(--caramel);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.contact-row strong{display:block;color:var(--ink);}
.contact-row span{color:var(--taupe);}
.map-placeholder{
  aspect-ratio:16/10;border-radius:var(--radius);background:var(--beige);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--taupe);
}
.map-placeholder svg{width:42px;height:42px;stroke:var(--caramel);fill:none;stroke-width:1.4;}
.note-banner{
  display:flex;gap:16px;align-items:flex-start;
  background:var(--sand);border:1.5px dashed var(--beige);border-radius:18px;
  padding:20px 24px;margin-top:24px;font-size:.92rem;color:var(--taupe);
}
.note-banner strong{color:var(--ink);}

/* ===================== Mon histoire ===================== */
.story{background:var(--ink);color:var(--cream);padding:114px 0;overflow:hidden;}
.story .container{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.story-photo{aspect-ratio:1/1.05;border-radius:54% 46% 48% 52% / 50% 52% 48% 50%;overflow:hidden;box-shadow:0 40px 70px -34px rgba(0,0,0,.7);}
.story-photo img{width:100%;height:100%;object-fit:cover;}
.story .eyebrow{color:var(--amber);margin-bottom:22px;}
.story .eyebrow::before{background:var(--caramel);}
.story h2{margin-bottom:26px;}
.story blockquote{
  font-family:var(--serif);font-size:1.38rem;line-height:1.5;font-style:italic;
  border-left:2px solid var(--amber);padding-left:26px;margin:0 0 24px;
}
.story p{color:rgba(246,241,228,.72);margin-bottom:14px;}
.signature{font-family:var(--serif);font-size:1.45rem;color:var(--amber);margin:22px 0 4px;}
.signature-role{font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(246,241,228,.6);}
.story .link-arrow{color:var(--amber);margin-top:24px;}
.story .link-arrow:hover{border-color:var(--amber);}

/* ===================== CTA ===================== */
.cta{text-align:center;padding:116px 0;background:linear-gradient(160deg,var(--amber),var(--caramel));overflow:hidden;}
.cta .spiral-deco{stroke:rgba(246,241,228,.5);}
.cta .spiral-deco.a{top:-40px;left:-30px;width:200px;height:200px;}
.cta .spiral-deco.b{bottom:-60px;right:-40px;width:240px;height:240px;}
.cta h2{color:var(--cream);max-width:16em;margin:14px auto 16px;}
.cta p{color:rgba(246,241,228,.85);max-width:30em;margin:0 auto 32px;}
.cta .eyebrow{color:rgba(246,241,228,.85);}
.cta .eyebrow::before,.cta .eyebrow.center::after{background:rgba(246,241,228,.55);}
.cta .btn-primary{background:var(--cream);color:var(--ink);}
.cta .btn-primary:hover{background:var(--ink);color:var(--cream);}

/* ===================== Footer ===================== */
footer{background:var(--ink);color:rgba(246,241,228,.66);padding:76px 0 32px;}
.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:46px;border-bottom:1px solid rgba(206,184,147,.18);}
.footer-brand .logo-name{color:var(--cream);}
.footer-brand .logo-sub{color:var(--amber);}
.footer-brand p{margin-top:18px;font-size:.92rem;max-width:24em;}
.footer-col h4{font-family:var(--sans);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--amber);margin-bottom:18px;}
.footer-col a,.footer-col p{display:block;font-size:.93rem;margin-bottom:10px;transition:color .3s;}
.footer-col a:hover{color:var(--cream);}
.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.82rem;}
.footer-bottom a:hover{color:var(--cream);}
.tag-note{color:var(--amber);}

/* ===================== Animations ===================== */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1);}
.reveal.in{opacity:1;transform:none;}
.reveal.d1{transition-delay:.09s;}
.reveal.d2{transition-delay:.18s;}
.reveal.d3{transition-delay:.27s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ===================== Responsive ===================== */
@media (max-width:980px){
  .hero .container,.story .container,.split,.contact-layout{grid-template-columns:1fr;gap:48px;}
  .split.reverse .split-media{order:0;}
  .story-photo,.hero-photo-wrap{max-width:430px;margin:0 auto;}
  .split-media{max-width:480px;margin:0 auto;width:100%;}
  .cards,.cards.cols-3,.pricing,.info-grid,.form-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr 1fr;}
}
@media (max-width:880px){
  .nav-links,.nav-actions .btn{display:none;}
  .nav-toggle{display:flex;}
  header.open .nav-links{
    display:flex;flex-direction:column;align-items:flex-start;gap:6px;
    position:absolute;top:100%;left:0;right:0;
    background:var(--cream);padding:22px 32px 28px;
    box-shadow:0 20px 30px -20px rgba(53,53,46,.5);max-height:80vh;overflow-y:auto;
  }
  header.open .nav-links a{padding:9px 0;font-size:1rem;}
  header.open .dropdown{
    position:static;transform:none;opacity:1;visibility:visible;
    box-shadow:none;border:none;background:transparent;padding:0 0 0 14px;min-width:0;
  }
  header.open .nav-item.has-dropdown>a::after{content:"";}
  header.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  header.open .nav-toggle span:nth-child(2){opacity:0;}
  header.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}
@media (max-width:620px){
  .container{padding:0 22px;}
  .hero{padding:138px 0 78px;}
  .pillars{grid-template-columns:1fr;gap:34px;}
  .feature-list{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .hero-photo{border-radius:46px;}
  .form{padding:28px 24px;}
  .block{padding:74px 0;}
}

/* ===================== Mosaïque bento — accompagnements (accueil) ===================== */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.bento-01{grid-column:1 / 3;}
.bento-02{grid-column:3 / 4;}
.bento-03{grid-column:1 / 2;}
.bento-04{grid-column:2 / 4;}
.bento-card{
  position:relative;overflow:hidden;background:var(--sand);
  border-radius:26px;padding:34px 36px;
  display:flex;flex-direction:column;gap:16px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s;
}
.bento-card.wide{flex-direction:row;align-items:center;gap:32px;}
.bento-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -28px rgba(53,53,46,.5);}
.bento-num{
  position:absolute;top:14px;right:28px;
  font-family:var(--serif);font-size:3.8rem;line-height:1;
  color:var(--caramel);opacity:.38;pointer-events:none;
}
.bento-icon{
  width:82px;height:82px;flex-shrink:0;
  border-radius:62% 38% 54% 46% / 56% 50% 50% 44%;
  background:#fff;display:flex;align-items:center;justify-content:center;
}
.bento-icon svg{width:40px;height:40px;stroke:var(--caramel);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.bento-body{display:flex;flex-direction:column;gap:9px;}
.bento-card h3{font-size:1.34rem;}
.bento-card p{font-size:.95rem;color:var(--taupe);}
.bento-card .link-arrow{margin-top:4px;}
/* une teinte chaude propre à chaque carte */
.bento-01{background:#F1E2BC;}  /* miel */
.bento-02{background:#EFE5C6;}  /* sable */
.bento-03{background:#EFDBC9;}  /* argile rosée */
.bento-04{background:#E8E3D3;}  /* amande */
@media (max-width:880px){
  .bento{grid-template-columns:1fr;}
  .bento-01,.bento-02,.bento-03,.bento-04{grid-column:auto;}
  .bento-card.wide{flex-direction:column;align-items:flex-start;}
  .bento-num{font-size:3.1rem;}
}

/* ===================== Les 5 dimensions — schéma radial ===================== */
.dimensions{display:flex;flex-direction:column;gap:12px;max-width:430px;margin:0 auto;}
.dim{display:flex;align-items:center;gap:15px;background:#fff;border-radius:18px;padding:14px 20px;}
.dim-ico{width:54px;height:54px;flex-shrink:0;border-radius:50%;background:var(--sand);display:flex;align-items:center;justify-content:center;}
.dim-ico svg{width:27px;height:27px;stroke:var(--caramel);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.dim-txt strong{display:block;font-family:var(--serif);font-size:1.14rem;color:var(--ink);}
.dim-txt small{color:var(--taupe);font-size:.86rem;}
.dim-center,.dim-ring{display:none;}
@media (min-width:880px){
  .dimensions{display:block;position:relative;width:600px;height:600px;max-width:100%;margin:0 auto;}
  .dim-ring{display:block;position:absolute;left:50%;top:50%;width:76%;height:76%;transform:translate(-50%,-50%);border:1.6px dashed var(--beige);border-radius:50%;}
  .dim{position:absolute;transform:translate(-50%,-50%);flex-direction:column;text-align:center;gap:9px;background:transparent;padding:0;width:162px;}
  .dim-ico{width:84px;height:84px;background:#fff;box-shadow:0 16px 30px -18px rgba(53,53,46,.55);}
  .dim-ico svg{width:38px;height:38px;}
  .dim-txt small{display:block;}
  .dim-center{display:flex;flex-direction:column;align-items:center;gap:12px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:200px;text-align:center;}
  .dim-core{width:122px;height:122px;border-radius:50%;background:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 38px -18px rgba(53,53,46,.6);}
  .dim-core svg{width:60px;height:60px;}
  .dim-center span{font-family:var(--serif);font-size:1.12rem;color:var(--ink);line-height:1.3;}
  .pos-top{left:50%;top:12%;}
  .pos-tr{left:86%;top:38%;}
  .pos-br{left:73%;top:81%;}
  .pos-bl{left:27%;top:81%;}
  .pos-tl{left:14%;top:38%;}
}
/* cartes — numéro de technique & technique privilégiée */
.card-num{font-family:var(--serif);font-size:1.75rem;color:var(--caramel);line-height:1;}
.card-featured{border-color:var(--caramel);}
.card-tag{
  display:inline-block;align-self:flex-start;
  background:var(--caramel);color:var(--cream);
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  padding:5px 12px;border-radius:999px;margin-bottom:14px;
}

/* ===================== Bandeau « Le cabinet » (toutes les pages) ===================== */
.cabinet-band{background:var(--sand);padding:92px 0;}
.cabinet-band .container{display:grid;grid-template-columns:1fr 1fr;gap:62px;align-items:center;}
.cabinet-visual{position:relative;}
.cabinet-photo{
  aspect-ratio:4/3;
  border-radius:56% 44% 52% 48% / 54% 50% 50% 46%;
  background:linear-gradient(150deg,var(--beige),var(--greige));
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
}
.cabinet-photo svg{width:54px;height:54px;stroke:#fff;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.9;}
.cabinet-photo span{font-size:.73rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;opacity:.92;}
.cabinet-portrait{
  position:absolute;right:-12px;bottom:-20px;
  width:132px;height:132px;border-radius:50%;
  background:var(--cream);border:6px solid var(--sand);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  box-shadow:0 18px 32px -16px rgba(53,53,46,.5);
}
.cabinet-portrait svg{width:40px;height:40px;stroke:var(--caramel);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.cabinet-portrait span{font-size:.58rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);}
.cabinet-text .eyebrow{margin-bottom:16px;}
.cabinet-text h2{margin-bottom:18px;}
.cabinet-quote{font-family:var(--serif);font-size:1.32rem;font-style:italic;line-height:1.5;color:var(--ink);margin-bottom:10px;}
.cabinet-sign{font-size:.8rem;text-transform:uppercase;letter-spacing:.16em;color:var(--caramel);margin-bottom:24px;}
.cabinet-facts{display:grid;gap:11px;margin-bottom:26px;}
.cabinet-facts li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;color:var(--taupe);}
.cabinet-facts svg{width:20px;height:20px;flex-shrink:0;stroke:var(--caramel);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
@media (max-width:880px){
  .cabinet-band{padding:70px 0;}
  .cabinet-band .container{grid-template-columns:1fr;gap:56px;}
  .cabinet-visual{max-width:400px;margin:0 auto;}
}
