/* Passe de finition : rythme plus dense et priorité mobile. */
.header-phone { display: none; }
.section { padding: 96px 0; }
.values { margin-top: 60px; }
.service-grid { margin-top: 48px; }
.contact-grid { margin-top: 56px; }
.services { padding-bottom: 64px; }
.about { padding-top: 64px; }
.mobile-call { display: none !important; }
body { overflow-x: hidden; }
.sanctuary-image { background-image: url('assets/cabinet-atmosphere.png'); background-position: center; }
.location-card { display: flex; align-items: center; min-height: 310px; padding: clamp(28px, 5vw, 56px); }
.location-card-copy { width: 100%; border-left: 2px solid var(--turquoise); padding-left: 25px; }
.location-card .text-link { display: inline-block; margin-top: 18px; }
.location-card { display: flex; padding: clamp(28px, 5vw, 56px); }
.portrait-placeholder { height: auto; display: flex; justify-content: center; background: #121212; }
.portrait-placeholder img { width: 100%; max-width: 410px; height: auto; object-fit: contain; object-position: center; margin: 0; filter: none; }
.cabinet { background: var(--sand); }
.cabinet-gallery { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(260px, .82fr); gap: 24px; margin-top: 56px; align-items: start; }
.cabinet-gallery figure { margin: 0; overflow: hidden; background: #e5e3dc; }
.cabinet-gallery img { display: block; width: 100%; height: auto; }
.cabinet-secondary { display: grid; gap: 24px; }
.service-text { display: flex; align-items: stretch; border-top: 3px solid var(--turquoise); }
.service-text > div { display: flex; min-height: 100%; flex-direction: column; justify-content: center; padding: 42px 25px 32px; }

@media (max-width: 760px) {
  .site-header { gap: 8px; }
  .menu-toggle { margin-left: auto; }
  .header-phone { display: inline-flex; min-height: 34px; padding: 0 10px; align-items: center; border: 1px solid #b6d5dc; color: var(--turquoise-deep); font-size: 11px; font-weight: 600; border-radius: 2px; }
  .hero { min-height: 525px; height: min(630px, calc(100svh - 74px)); }
  .hero h1 { font-size: clamp(40px, 11vw, 47px); line-height: 1.04; }
  .hero-copy { margin: 16px 0 22px; line-height: 1.55; }
  .section { padding: 60px 0; }
  .approach { padding-bottom: 62px; }
  .approach { padding-top: 46px; padding-bottom: 34px; }
  .approach .section-intro h2 { font-size: clamp(32px, 8.7vw, 36px); margin-bottom: 13px; }
  .approach .section-intro > p:last-child { font-size: 14px; line-height: 1.48; }
  .section-intro h2, .pricing h2 { font-size: clamp(34px, 9.3vw, 39px); line-height: 1.08; margin-bottom: 16px; }
  .section-intro > p:last-child { font-size: 15px; line-height: 1.57; }
  .values { margin-top: 26px; gap: 8px; }
  .value { padding-top: 13px; padding-bottom: 10px; }
  .value h3 { margin: 8px 0 2px; font-size: 22px; }
  .value p { margin: 0; line-height: 1.42; }
  .services { padding: 68px 0; }
  .services { padding-bottom: 48px; }
  .about { padding-top: 48px; }
  .service-grid { margin-top: 34px; gap: 15px; }
  .service { padding-bottom: 20px; }
  .service img { height: 185px; }
  .service > div { padding: 18px 19px 0; }
  .service h3 { margin: 6px 0 9px; font-size: 23px; line-height: 1.13; }
  .service p:not(.service-number) { margin: 0 0 13px; line-height: 1.5; }
  .about-grid { gap: 30px; }
  .portrait-placeholder { height: auto; }
  .portrait-placeholder img { max-width: 100%; margin: 0; }
  .sanctuary { height: 440px; }
  .sanctuary h2 { font-size: 40px; }
  .pricing { padding: 72px 0; }
  .pricing h2 { max-width: 330px; margin-left: auto; margin-right: auto; }
  .price { font-size: 78px; }
  .contact { padding-bottom: 76px; }
  .contact-grid { margin-top: 38px; gap: 28px; }
  .location-card { min-height: 220px; padding: 30px; }
  .cabinet-gallery { grid-template-columns: 1fr; gap: 16px; margin-top: 30px; }
  .cabinet-secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .service-text > div { padding: 27px 19px 24px; }
  .location-card { padding: 30px; }
  .location-card-copy { padding-left: 18px; }
  .mobile-call { display: none; }
}

.hypnosis { background: var(--sand); padding-top: 76px; padding-bottom: 76px; }
.hypnosis-grid { display: grid; grid-template-columns: .62fr 1.38fr; gap: clamp(45px, 9vw, 130px); align-items: center; max-width: 1010px; }
.hypnosis-mark { width: min(250px, 100%); aspect-ratio: 1; border: 1px solid #b7dbe3; border-radius: 50%; position: relative; justify-self: center; }
.hypnosis-mark::before, .hypnosis-mark::after { content: ''; position: absolute; border: 1px solid var(--turquoise); border-radius: 50%; inset: 17%; }
.hypnosis-mark::after { inset: 34%; background: rgba(74,169,197,.12); }
.hypnosis-mark span { position: absolute; width: 30%; height: 1px; background: var(--turquoise); left: 35%; top: 50%; }
.hypnosis-copy { max-width: 640px; }
.hypnosis-copy h2, .session h2 { font-size: clamp(38px, 4vw, 54px); margin: 0 0 23px; }
.hypnosis-copy p { color: var(--muted); margin: 0 0 16px; }
.reasons { padding-top: 70px; padding-bottom: 66px; }
.reason-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 52px; }
.reason-list article { border-top: 1px solid #d5e1e1; padding: 20px 8px 4px 0; }
.reason-list span, .session-steps > article > span { color: var(--turquoise-deep); font-size: 11px; font-weight: 600; letter-spacing: .14em; }
.reason-list h3 { margin: 11px 0 0; font-size: 27px; }
.session { background: #f7f8f6; }
.session-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 58px; margin-top: 50px; }
.session-steps article { display: grid; grid-template-columns: 48px 1fr; gap: 16px; min-height: 134px; padding: 22px 0; border-top: 1px solid #d5e1e1; }
.session-steps h3 { margin: 0 0 6px; font-size: 26px; }
.session-steps p { margin: 0; color: var(--muted); font-size: 14px; }
.session-note { max-width: 710px; margin: 35px auto 0; padding: 21px 25px; border-left: 2px solid var(--turquoise); background: #fff; color: var(--ink); font: 400 19px/1.45 var(--serif); }
.about-copy .role span { display: inline-block; margin-top: 5px; font-size: 11px; letter-spacing: .07em; }
.contact .section-intro p + p { margin-top: 14px; font-size: 14px; }
.closing { padding: 78px 0; background: var(--paper); text-align: center; }
.closing .container { max-width: 760px; }
.closing p { margin: 0 0 16px; font: 400 clamp(26px, 3vw, 36px)/1.28 var(--serif); letter-spacing: -.03em; }
.closing span { color: var(--muted); font-size: 15px; }

@media (max-width: 760px) {
  .hypnosis-grid { grid-template-columns: 1fr; gap: 30px; }
  .hypnosis-mark { width: 118px; justify-self: start; }
  .hypnosis-copy h2, .session h2 { font-size: 35px; }
  .hypnosis-copy p { font-size: 15px; line-height: 1.55; }
  .reasons { padding-top: 64px; padding-bottom: 64px; }
  .reason-list { grid-template-columns: 1fr; gap: 4px; margin-top: 34px; }
  .reason-list article { display: grid; grid-template-columns: 42px 1fr; align-items: baseline; gap: 7px; padding: 15px 0; }
  .reason-list h3 { margin: 0; font-size: 23px; }
  .session-steps { grid-template-columns: 1fr; gap: 0; margin-top: 34px; }
  .session-steps article { min-height: 0; padding: 17px 0; }
  .session-steps h3 { font-size: 23px; }
  .session-note { margin-top: 24px; padding: 18px; font-size: 18px; }
  .closing { padding: 60px 0; }
}

@media (max-width: 760px) {
  .hypnosis { padding-top: 52px; padding-bottom: 52px; }
  .reasons { padding-top: 52px; padding-bottom: 48px; }
  .hypnosis-grid { gap: 22px; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .section { padding: 80px 0; }
  .section-intro h2, .pricing h2 { font-size: clamp(38px, 4.5vw, 49px); }
  .services .section-intro h2 { font-size: clamp(38px, 4.3vw, 47px); }
  .hypnosis { padding-top: 76px; padding-bottom: 76px; }
  .reasons { padding-top: 72px; padding-bottom: 70px; }
  .cabinet-gallery { gap: 18px; margin-top: 42px; }
  .cabinet-secondary { gap: 18px; }
}

.mobile-only { display: none; }
.location-card { display: block; }
.map-frame { overflow: hidden; margin: 0 0 24px; border-radius: 3px; background: #e3e8e5; }
.map-frame iframe { display: block; width: 100%; height: 300px; border: 0; }

@media (max-width: 760px) {
  .site-header.menu-open .main-nav .mobile-only { display: block; }
  .map-frame { margin-bottom: 20px; }
  .map-frame iframe { height: 300px; }
}

/* Dernière passe responsive : largeur de lecture, rythme et ancres. */
section[id] { scroll-margin-top: 24px; }
.hypnosis { overflow: hidden; }
.hypnosis-grid { grid-template-columns: minmax(0, .62fr) minmax(0, 1.38fr); }
.hypnosis-copy { min-width: 0; overflow-wrap: break-word; }
.hypnosis-copy p { max-width: 62ch; }
.reasons { padding-top: 62px; padding-bottom: 58px; }
.reason-list { margin-top: 42px; }
.service { display: flex; flex-direction: column; }
.service > div { flex: 1; }
.about { padding-top: 58px; padding-bottom: 74px; }
.about-copy > p:not(.role) { margin-top: 12px; margin-bottom: 12px; }
.about-copy .role { margin-bottom: 18px; }
.cabinet { padding-top: 78px; padding-bottom: 78px; }
.cabinet-gallery { margin-top: 44px; }
.pricing { padding-top: 76px; padding-bottom: 76px; }
.callout { padding: 72px 0; }
.contact { padding-top: 78px; padding-bottom: 68px; }
.contact .section-intro > p:last-child { margin-bottom: 0; }
.contact-item { padding-top: 14px; padding-bottom: 14px; }
.location-card { min-height: 0; padding: 30px; }
.location-card-copy { padding-left: 20px; }

@media (min-width: 761px) and (max-width: 1100px) {
  .hypnosis-grid { grid-template-columns: 1fr; gap: 30px; max-width: 690px; }
  .hypnosis-mark { width: 140px; justify-self: start; }
  .hypnosis-copy { max-width: 100%; }
  .reason-list { margin-top: 36px; }
  .service-grid { gap: 18px; }
  .service h3 { font-size: 24px; }
  .callout { padding: 64px 0; }
}

@media (max-width: 760px) {
  section[id] { scroll-margin-top: 14px; }
  .hypnosis { padding-left: 0; padding-right: 0; }
  .hypnosis-copy h2 { overflow-wrap: anywhere; }
  .reasons { padding-top: 46px; padding-bottom: 42px; }
  .reason-list { margin-top: 28px; }
  .about { padding-top: 46px; padding-bottom: 56px; }
  .about-copy > p:not(.role) { margin-top: 10px; margin-bottom: 10px; }
  .cabinet { padding-top: 58px; padding-bottom: 58px; }
  .cabinet-gallery { margin-top: 26px; }
  .cabinet-main { display: flex; justify-content: center; }
  .cabinet-main img { width: auto; max-width: 100%; max-height: 410px; }
  .pricing { padding-top: 64px; padding-bottom: 64px; }
  .callout { padding: 58px 0; }
  .contact { padding-top: 62px; padding-bottom: 58px; }
  .contact-item { padding-top: 12px; padding-bottom: 12px; }
  .location-card { padding: 24px; }
  .location-card-copy { padding-left: 16px; }
}

/* Accordeons compacts et galerie équilibrée. */
.reason-list { max-width: 960px; margin-left: auto; margin-right: auto; }
.reason-list .reason-item { display: block !important; grid-template-columns: none; padding: 0; }
.reason-trigger { appearance: none; width: 100%; display: grid; grid-template-columns: 42px 1fr 18px; align-items: center; gap: 12px; padding: 18px 2px; border: 0; background: transparent; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.reason-trigger:hover .reason-title { color: var(--turquoise-deep); }
.reason-number { color: var(--turquoise-deep); font-size: 11px; font-weight: 600; letter-spacing: .14em; }
.reason-title { font: 400 27px/1.15 var(--serif); transition: color .2s ease; }
.reason-chevron { width: 9px; height: 9px; border-right: 1.5px solid var(--turquoise-deep); border-bottom: 1.5px solid var(--turquoise-deep); transform: rotate(45deg) translate(-3px, -3px); transition: transform .25s ease; }
.reason-item.is-open .reason-chevron { transform: rotate(225deg) translate(-1px, -1px); }
.reason-detail { max-height: 0; overflow: hidden; transition: max-height .32s ease, padding .32s ease; padding: 0 32px 0 54px; }
.reason-detail p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.reason-item.is-open .reason-detail { max-height: 360px; padding-bottom: 19px; }
.cabinet-gallery { max-width: 980px; height: 640px; grid-template-columns: minmax(0, 3fr) minmax(260px, 2fr); gap: 20px; margin: 40px auto 0; }
.cabinet-main { display: flex; align-items: center; justify-content: center; background: transparent !important; }
.cabinet-main img { width: 100%; height: 100%; object-fit: contain; }
.cabinet-secondary { grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cabinet-secondary figure { min-height: 0; }
.cabinet-secondary img { width: 100%; height: 100%; object-fit: cover; }
.cabinet-secondary figure:first-child img { object-position: center 55%; }

@media (max-width: 760px) {
  .reason-trigger { grid-template-columns: 34px 1fr 16px; gap: 8px; padding: 15px 0; }
  .reason-title { font-size: 23px; }
  .reason-detail { padding-left: 42px; padding-right: 8px; }
  .reason-item.is-open .reason-detail { padding-bottom: 16px; }
  .cabinet-gallery { max-width: none; height: auto; margin-top: 26px; gap: 14px; }
  .cabinet-main { display: flex; }
  .cabinet-main img { width: auto; max-width: 100%; height: auto; max-height: 360px; }
  .cabinet-secondary { grid-template-columns: 1fr; grid-template-rows: none; gap: 12px; }
  .cabinet-secondary figure { display: flex; justify-content: center; max-height: 260px; background: transparent; }
  .cabinet-secondary img { width: auto; max-width: 100%; height: 260px; object-fit: contain; }
}

/* Galerie du cabinet — composition éditoriale, sans recadrage forcé. */
.cabinet-gallery { max-width: 1080px; height: auto; grid-template-columns: minmax(0, 1.16fr) minmax(260px, .74fr); align-items: start; gap: 28px; margin: 42px auto 0; }
.cabinet-gallery figure { overflow: hidden; background: transparent; }
.cabinet-main { display: block; padding-top: 18px; }
.cabinet-main img { display: block; width: 100%; height: auto; object-fit: initial; }
.cabinet-secondary { display: grid; grid-template-rows: none; gap: 30px; padding-bottom: 18px; }
.cabinet-secondary figure { height: auto; min-height: 0; }
.cabinet-secondary figure:first-child { width: 88%; justify-self: start; }
.cabinet-secondary figure:last-child { width: 92%; justify-self: end; }
.cabinet-secondary img { display: block; width: 100%; height: auto; object-fit: initial; }

@media (hover: hover) and (min-width: 761px) {
  .cabinet-gallery figure { box-shadow: 0 0 0 rgba(24,54,55,0); transition: box-shadow .38s ease; }
  .cabinet-gallery figure img { transition: transform .38s ease; }
  .cabinet-gallery figure:hover { box-shadow: 0 12px 28px rgba(24,54,55,.12); }
  .cabinet-gallery figure:hover img { transform: scale(1.025); }
}

@media (max-width: 760px) {
  .cabinet-gallery { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 28px; }
  .cabinet-main { display: block; padding-top: 0; }
  .cabinet-main img { width: 100%; height: auto; max-height: none; }
  .cabinet-secondary { display: grid; grid-template-columns: 1fr; grid-template-rows: none; gap: 16px; padding-bottom: 0; }
  .cabinet-secondary figure, .cabinet-secondary figure:first-child, .cabinet-secondary figure:last-child { width: 100%; max-height: none; justify-self: stretch; }
  .cabinet-secondary img { width: 100%; height: auto; max-height: none; object-fit: initial; }
}
