:root{--ink:#171717;--paper:#fff;--soft:#f4f1ef;--rose:#d32b62;--rose-pale:#f6e7eb;--line:#d9d5d2;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.top-strip{height:33px;padding:0 7%;display:flex;align-items:center;justify-content:space-between;background:#171717;color:white;font-size:8px;letter-spacing:.14em}.top-strip a{letter-spacing:.08em}.site-header{height:94px;padding:4px 7%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{width:122px;height:86px;display:flex;align-items:center}.brand img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.site-header nav{display:flex;align-items:center;gap:32px;font-size:11px}.site-header nav>a:not(.header-book){color:#555}.header-book{padding:13px 17px;background:var(--rose);color:#fff}.header-book span,.book-button span{padding-left:16px}.header-mobile-book{display:none}.hero{min-height:570px;padding:66px 8% 72px;display:grid;grid-template-columns:50% 50%;align-items:center;background:linear-gradient(90deg,#fff 0 56%,#f5f0ed 56% 100%);position:relative}.hero-copy{max-width:565px;z-index:1}.eyebrow{font-size:8px;font-weight:600;letter-spacing:.18em;color:#6e6460;margin:0 0 23px}.hero h1,.intro-band h2,.faq h2,.closing h2{font:500 clamp(52px,6.6vw,88px)/.99 var(--serif);letter-spacing:-.05em;margin:0}.hero h1 em,.intro-band h2 em,.closing h2 em{color:var(--rose);font-weight:500}.hero-intro{max-width:380px;margin:22px 0 27px;font-size:12px;line-height:1.85;color:#575350}.hero-price{width:min(410px,100%);display:flex;align-items:center;gap:19px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:14px 0}.hero-price>div{flex:1}.hero-price>div>span{display:block;font-size:8px;letter-spacing:.14em;font-weight:600;color:var(--rose)}.hero-price p{display:flex;gap:15px;align-items:center;margin:6px 0 0}.hero-price strong{font-size:34px;letter-spacing:-.06em}.hero-price del{font-size:11px;color:#75706d}.price-separator{height:38px;width:1px;background:#bbb5b1}.hero-price>a{font-size:10px;font-weight:600;white-space:nowrap}.hero-price>a b{color:var(--rose);padding-left:9px}.hero-address{font-size:9px;letter-spacing:.03em;color:#615a57;margin:17px 0 0}.hero-address span{color:var(--rose);padding:0 6px}.hero-identity{height:400px;display:flex;align-items:center;justify-content:center}.hero-identity img{width:min(94%,430px);max-height:400px;object-fit:contain;mix-blend-mode:multiply}.intro-band{padding:82px 12%;display:grid;grid-template-columns:26% 39% 35%;gap:0;align-items:start;border-bottom:1px solid var(--line)}.band-index{font-size:8px;letter-spacing:.14em;font-weight:600;color:#736c68}.band-index span{color:var(--rose);padding:0 4px}.intro-band h2{font-size:clamp(35px,4vw,53px);line-height:1.08}.band-copy{padding:0 0 0 8%;max-width:420px}.band-copy p{font-size:10px;line-height:1.85;color:#5f5955;margin:0 0 14px}.inline-link{display:inline-block;font-size:9px;font-weight:600;margin-top:11px;border-bottom:1px solid var(--rose);padding-bottom:8px}.inline-link span{color:var(--rose);padding-left:8px}.steps{background:#f7f6f5;padding:49px 12% 61px}.step-grid{margin-left:26%;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:31px}.step-grid article{border-top:2px solid var(--ink);padding-top:13px}.step-grid article>span{font-size:9px;color:var(--rose);font-weight:600}.step-grid h3{font:500 18px var(--serif);margin:15px 0 8px}.step-grid p{font-size:9px;line-height:1.8;color:#645e5a;margin:0;max-width:210px}.price-section{padding:52px 12% 45px;background:var(--rose);color:white}.price-section .band-index{color:#fff}.price-section .band-index span{color:#151515}.price-line{display:grid;grid-template-columns:1fr auto auto;gap:38px;align-items:center;margin-top:35px}.price-line h2{font:500 clamp(30px,4vw,50px) var(--serif);letter-spacing:-.04em;margin:0}.price-line p{display:flex;align-items:center;gap:15px;margin:0;white-space:nowrap}.price-line p strong{font-size:49px;line-height:1;letter-spacing:-.07em}.price-line p del{font-size:12px;color:#f6d4df}.book-button{display:inline-flex;align-items:center;background:var(--ink);color:#fff;padding:16px 19px;font-size:10px;font-weight:600;white-space:nowrap}.book-button:hover{background:#383333}.price-note{font-size:8px;letter-spacing:.04em;color:#f8e6eb;margin:17px 0 0}.faq{padding:82px 12%;display:grid;grid-template-columns:43% 57%;gap:5%}.faq h2{font-size:clamp(36px,4vw,52px);margin-top:24px}.faq-list details{border-top:1px solid var(--line);padding:17px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:600}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:15px;color:var(--rose)}.faq-list details p{font-size:9px;line-height:1.8;color:#5e5956;margin:12px 22px 0 0}.faq-list details p a{color:var(--rose);text-decoration:underline}.closing{padding:57px 12%;background:#171717;color:white;display:flex;align-items:center;justify-content:space-between}.closing .eyebrow{color:#d8d2cf;margin-bottom:17px}.closing h2{font-size:clamp(42px,5vw,62px)}.closing h2 em{color:#f18aaa}.closing .book-button{background:var(--rose)}footer{padding:38px 8% 20px;background:#171717;color:white;display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:14px;align-items:center}footer>p{font-size:9px;line-height:1.8;color:#bcb7b4;margin:0}footer>a:not(.footer-brand){font-size:11px;text-align:right}.footer-brand{font-size:12px;letter-spacing:.1em;font-weight:600}.footer-brand span{display:block;color:#e9a1b6;font-size:7px;letter-spacing:.3em;margin-top:5px}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #3b3937;padding-top:13px;margin-top:18px;color:#a9a3a0;font-size:7px;letter-spacing:.06em}.footer-bottom a:hover{color:#fff}.mobile-sticky{display:none}
/* Booking and back office */
.app-shell{min-height:100vh;background:#f7f6f5}.app-top{padding:12px 5%;background:#171717;color:white;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.1em}.app-top a{color:#f3a0b8}.booking-wrap{max-width:850px;margin:0 auto;padding:54px 30px 80px}.booking-kicker{font-size:8px;letter-spacing:.16em;color:#79716d;font-weight:600}.booking-wrap h1{font:500 clamp(36px,5vw,58px)/1.08 var(--serif);letter-spacing:-.04em;margin:12px 0}.booking-wrap h1 em{color:var(--rose)}.booking-lead{font-size:11px;line-height:1.8;color:#5e5855;max-width:580px}.booking-price{font-size:12px;margin:18px 0 28px}.booking-price strong{font-size:20px}.booking-price del{font-size:10px;color:#817976;margin-left:10px}.form-section{background:white;padding:28px 30px;margin-top:14px;border:1px solid #e4dfdc}.form-section h2{font:500 23px var(--serif);margin:0 0 7px}.form-section>p{font-size:9px;line-height:1.7;color:#77706c;margin:0 0 19px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px}.field{display:flex;flex-direction:column;gap:6px}.field label,.question legend{font-size:9px;font-weight:600}.field input,.field textarea,.field select,.admin-input{font:inherit;font-size:11px;border:1px solid #d5cfcb;background:#fff;padding:11px 12px;border-radius:0;min-height:40px}.field input:focus,.field select:focus{outline:2px solid var(--rose);outline-offset:1px}.question-list{margin-top:19px}.question{padding:13px 0;border-top:1px solid #e5dfdc}.question:last-child{border-bottom:1px solid #e5dfdc}.question legend{line-height:1.5;margin-bottom:9px}.radio-row{display:flex;gap:9px}.radio-row label{border:1px solid #d7d1ce;min-width:78px;padding:8px 12px;text-align:center;font-size:9px;cursor:pointer}.radio-row input{position:absolute;opacity:0}.radio-row label:has(input:checked){background:#171717;color:#fff;border-color:#171717}.privacy-note{font-size:8px;line-height:1.7;color:#77706c;margin:13px 0 0}.form-actions{margin-top:20px;display:flex;align-items:center;gap:15px}.primary-button{border:0;background:var(--rose);color:white;padding:14px 18px;font:600 10px var(--sans);cursor:pointer}.primary-button:hover{background:#b92151}.secondary-button{border:1px solid #272321;background:white;padding:12px 15px;font:600 9px var(--sans);cursor:pointer}.form-error{font-size:9px;color:#b11f45;margin:12px 0 0}.form-message{padding:15px;background:#f5e5e9;border-left:3px solid var(--rose);font-size:10px;line-height:1.7;margin-top:16px}.calendar-shell{display:none}.calendar-controls{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.calendar-controls button{background:white;border:1px solid #d5cfcb;padding:8px 12px;cursor:pointer}.date-list{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.date-button{background:white;border:1px solid #ded8d4;min-height:62px;padding:9px 5px;text-align:center;font:inherit;cursor:pointer}.date-button span{display:block;font-size:8px;color:#766e69}.date-button strong{font-size:12px}.date-button.selected{background:#171717;color:white;border-color:#171717}.date-button.selected span{color:#f4bfce}.slot-list{display:flex;flex-wrap:wrap;gap:8px;margin:19px 0}.slot-button{border:1px solid #beb8b4;background:white;padding:11px 16px;font:inherit;font-size:10px;cursor:pointer}.slot-button.selected,.slot-button:hover{background:var(--rose);border-color:var(--rose);color:white}.admin-shell{min-height:100vh;background:#f4f2f1}.admin-header{background:#171717;color:white;padding:14px 5%;display:flex;align-items:center;justify-content:space-between}.admin-header img{width:76px;height:62px;object-fit:contain}.admin-header nav{display:flex;gap:15px;align-items:center;font-size:9px}.admin-main{max-width:1150px;margin:auto;padding:40px 25px 70px}.admin-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.admin-title h1{font:500 43px var(--serif);margin:0}.admin-title p{font-size:9px;color:#6e6763;margin:7px 0 0}.admin-tabs{display:flex;border-bottom:1px solid #ccc4bf;gap:5px;margin-bottom:20px}.admin-tabs button{border:0;background:transparent;padding:12px 16px;font:600 9px var(--sans);cursor:pointer;color:#6a625e}.admin-tabs button.active{color:var(--rose);border-bottom:2px solid var(--rose)}.admin-panel{display:none}.admin-panel.active{display:block}.admin-card{background:white;border:1px solid #e0dad6;padding:20px;margin-bottom:16px}.admin-card h2{font:500 22px var(--serif);margin:0 0 16px}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-field{display:flex;flex-direction:column;gap:5px}.admin-field label{font-size:8px;font-weight:600}.admin-field input,.admin-field select{font:inherit;font-size:10px;padding:9px;border:1px solid #d5cfcb;background:white}.hours-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.hours-row{display:grid;grid-template-columns:80px 1fr 1fr 50px;gap:8px;align-items:center;font-size:9px}.hours-row input[type=time]{font:inherit;padding:7px;border:1px solid #d5cfcb}.bookings-table{width:100%;border-collapse:collapse;background:white;font-size:9px}.bookings-table th,.bookings-table td{text-align:left;padding:11px;border-bottom:1px solid #e4dfdc}.bookings-table th{color:#716965;font-size:8px;text-transform:uppercase;letter-spacing:.07em}.status{display:inline-block;padding:4px 7px;background:#f3e5e9;color:#9c2549;font-size:8px}.status.completed{background:#e7f1e9;color:#386548}.row-actions{display:flex;gap:7px}.row-actions button{border:1px solid #ccc;padding:5px 7px;background:white;font:inherit;font-size:8px;cursor:pointer}.login-panel{max-width:480px;margin:90px auto;background:white;border:1px solid #e0dad6;padding:32px;text-align:center}.login-panel h1{font:500 34px var(--serif);margin:10px}.login-panel p{font-size:10px;line-height:1.8;color:#69625e}.invoice-paper{background:#fff;padding:38px;max-width:750px;margin:25px auto;min-height:500px;border:1px solid #ddd}.invoice-paper h2{font:500 30px var(--serif)}.invoice-paper .invoice-total{font-size:26px;font-weight:600}.hidden{display:none!important}
@media(max-width:780px){.hero{padding-left:7%;padding-right:7%}.intro-band,.steps,.price-section,.faq,.closing{padding-left:8%;padding-right:8%}.intro-band{grid-template-columns:22% 40% 38%}.step-grid{margin-left:22%}.price-line{gap:18px}}
@media(max-width:600px){.top-strip{height:29px;padding:0 5%;font-size:6px}.top-strip span:nth-child(2){display:none}.site-header{height:72px;padding:3px 5%}.brand{width:100px;height:66px}.site-header nav{display:none}.header-mobile-book{display:block;background:var(--rose);color:white;padding:11px 13px;font-size:9px;font-weight:600}.header-mobile-book span{padding-left:7px}.hero{min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:50px 7% 0;background:linear-gradient(180deg,#fff 0 64%,#f5f0ed 64% 100%)}.hero-copy{max-width:none}.eyebrow{font-size:7px;line-height:1.6;margin-bottom:17px}.hero h1{font-size:58px}.hero-intro{font-size:10px;margin:18px 0 22px;max-width:330px}.hero-price{gap:12px;padding:12px 0}.hero-price strong{font-size:31px}.hero-price del{font-size:10px}.hero-price>a{font-size:9px}.hero-address{font-size:8px;margin-top:13px}.hero-identity{height:290px;margin:7px -7% 0}.hero-identity img{width:min(78%,295px);max-height:278px}.intro-band{display:block;padding:53px 7%}.intro-band h2{font-size:39px;margin:25px 0 22px}.band-copy{padding:0}.band-copy p{font-size:9px}.steps{padding:38px 7% 48px}.step-grid{margin:22px 0 0;grid-template-columns:1fr;gap:17px}.step-grid article{display:grid;grid-template-columns:28px 1fr;gap:0 10px;padding-top:11px}.step-grid article>span{grid-row:span 2}.step-grid h3{margin:0 0 6px;font-size:17px}.step-grid p{font-size:9px;max-width:300px}.price-section{padding:38px 7% 36px}.price-line{margin-top:24px;grid-template-columns:1fr auto;gap:14px}.price-line h2{grid-column:1/-1;font-size:30px}.price-line p{gap:12px}.price-line p strong{font-size:44px}.book-button{padding:14px;font-size:9px}.price-note{font-size:7px}.faq{padding:57px 7%;display:block}.faq h2{font-size:37px;margin:20px 0 28px}.faq-list summary{font-size:9px}.faq-list details p{font-size:8px}.closing{padding:39px 7%;display:block}.closing h2{font-size:45px}.closing .book-button{margin-top:23px}.footer-brand{grid-column:1}footer{padding:32px 7% 80px;grid-template-columns:1fr 1.4fr;gap:12px}footer>p{font-size:8px}footer>a:not(.footer-brand){grid-column:1/-1;text-align:left}.footer-bottom{gap:10px;flex-wrap:wrap;font-size:6px}.mobile-sticky{display:flex;position:fixed;z-index:20;bottom:0;left:0;right:0;background:#171717;color:#fff;justify-content:space-between;align-items:center;padding:12px 5%;font-size:9px}.mobile-sticky strong{font-size:15px;color:#f38ca9}.mobile-sticky b{font-size:8px;background:var(--rose);padding:9px 12px;font-weight:600}.booking-wrap{padding:35px 16px 60px}.booking-wrap h1{font-size:40px}.form-section{padding:21px 17px}.form-grid{grid-template-columns:1fr}.date-list{grid-template-columns:repeat(4,1fr)}.admin-main{padding:27px 14px 55px}.admin-title{display:block}.admin-title h1{font-size:35px}.admin-grid,.hours-grid{grid-template-columns:1fr}.hours-row{grid-template-columns:70px 1fr 1fr 42px}.bookings-table{font-size:8px}.bookings-table th,.bookings-table td{padding:7px 5px}.admin-tabs button{padding:10px 8px;font-size:8px}}

/* Avant / après : repères dessinés à la main autour des vrais visuels */
.hero-identity{height:auto;min-height:480px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:17px;padding:30px 20px;background:#171717;color:#fff;mix-blend-mode:normal}
.transformation-kicker{margin:0;font-size:8px;letter-spacing:.19em;font-weight:600;color:#fff}
.transformation-kicker span{color:#f18aaa;padding:0 8px}
.transformation-grid{display:flex;flex-direction:column;gap:10px}
.transformation-pair{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);align-items:center;gap:2px}
.transformation-pair figure{position:relative;margin:0;display:flex;align-items:center;flex-direction:column;gap:7px}
.photo-circle{width:min(100%,220px);aspect-ratio:1;border:5px solid #fff;border-radius:48% 52% 50% 50% / 51% 47% 53% 49%;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.42)}
.photo-circle img{display:block;width:100%;height:100%;object-fit:cover}
.transformation-pair figcaption{font-size:7px;letter-spacing:.18em;font-weight:700;color:#fff}
.pair-arrow{width:35px;fill:none;stroke:#f18aaa;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.transformation-note{margin:0;font-size:7px;letter-spacing:.04em;color:#d3cecc}
.footer-contact{display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.footer-contact a{font-size:10px}
@media(max-width:600px){.hero-identity{min-height:0;gap:20px;padding:31px 7% 25px;margin:18px -7% 0}.transformation-pair{grid-template-columns:minmax(0,1fr) 31px minmax(0,1fr)}.photo-circle{width:min(100%,43vw,184px);border-width:4px}.pair-arrow{width:29px}.transformation-kicker{font-size:7px}.transformation-note{font-size:7px}.footer-contact{grid-column:1/-1;align-items:flex-start;gap:8px}.footer-contact a{font-size:9px}}

/* Les portraits restent fidèles à leur lumière sur le fond sombre de la galerie. */
.hero-identity .photo-circle img{mix-blend-mode:normal!important;opacity:1!important;filter:none!important;max-height:none}
.admin-header{background:#fff;color:var(--ink);border-bottom:1px solid var(--line)}

@media(max-width:600px){
  .hero-copy{display:contents}
  .hero-copy>.eyebrow{order:1}
  .hero-copy>h1{order:2}
  .hero>.hero-identity{order:3}
  .hero-copy>.hero-intro{order:4}
  .hero-copy>.hero-price{order:5}
  .hero-copy>.hero-address{order:6}
  .hero-identity{min-height:0;gap:12px;padding:20px 7% 18px;margin:12px -7% 0}
  .photo-circle{width:min(100%,43vw,184px)}
}


/* Parcours de réservation : questions courtes, réponses tactiles et progression claire. */
.question-list{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.question-list>h2{margin-bottom:6px}
.question-list>p{font-size:10px;line-height:1.65;color:#6b625e;max-width:600px;margin:0 0 17px}
.question-list{counter-reset:screening-question}
.question{counter-increment:screening-question;border:1px solid #e9e2df;border-radius:8px;background:#fff;padding:15px 16px;margin:10px 0}
.question legend{font-size:12px;line-height:1.5;font-weight:600;margin-bottom:12px;padding:0}
.question legend::before{content:counter(screening-question,decimal-leading-zero);display:inline-block;color:var(--rose);font-size:10px;letter-spacing:.08em;margin-right:9px}
.radio-row{gap:10px}
.radio-row label{display:flex;flex:1;align-items:center;justify-content:center;min-height:44px;border-radius:6px;background:#fff;font-size:11px;transition:background .15s,border-color .15s,color .15s}
.radio-row label:has(input:checked){background:#f8e9ee;color:#261c20;border-color:var(--rose)}
.radio-row label:focus-within{outline:2px solid var(--rose);outline-offset:2px}
.calendar-controls button{min-width:96px;min-height:40px;font:600 10px var(--sans);color:var(--ink);border-radius:5px}
.calendar-controls button:disabled{opacity:.42;cursor:not-allowed}


@media(max-width:600px){.question{padding:14px 12px}.question legend{font-size:11px}.radio-row{gap:8px}.radio-row label{min-height:48px;font-size:12px}.calendar-controls button{min-width:90px}}


/* Apparitions douces du contenu et des photos, sans déplacement. */
@media (prefers-reduced-motion: no-preference) {
  html.motion-enabled [data-fade] {
    opacity: 0;
    transition: opacity 620ms ease-out;
  }
  html.motion-enabled [data-fade].is-visible { opacity: 1; }
  html.motion-enabled img.image-loading {
    opacity: 0;
    transition: opacity 680ms ease-out;
  }
  html.motion-enabled img.image-ready { opacity: 1; }
  a, button, summary {
    transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-fade], img.image-loading, img.image-ready {
    opacity: 1 !important;
    transition: none !important;
    animation: none !important;
  }
}
