/* Sortilège rose — optional seasonal layer; original theme remains intact. */
body.km-halloween{--rose-gold-dark:#783d4d;--rose-gold-light:#f5e9e6;--dark-text:#301e2c;--light-bg:#faf8f5}
body.km-halloween .km-announcement{background:#241522}
body.km-halloween .site-header{background:#faf8f5;border-bottom:1px solid #eadbd8}
body.km-halloween .hero.hero-salon{position:relative;isolation:isolate;background:radial-gradient(ellipse at 78% 20%,#563044 0%,#2d1b2b 45%,#241522 85%);padding:56px 24px 48px;overflow:hidden}
body.km-halloween .hero.hero-salon::before{content:"";position:absolute;pointer-events:none;z-index:-1;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cg fill='none' stroke='%23c77943' stroke-opacity='.45'%3E%3Cpath d='M0 0L210 0M0 0L194 80M0 0L148 148M0 0L80 194M0 0L0 210M40 0Q32 12 37 15Q26 25 28 28Q12 32 15 37Q0 30 0 40M85 0Q66 26 79 33Q55 51 60 60Q27 65 33 79Q0 63 0 85M135 0Q106 40 125 52Q91 84 95 95Q40 107 52 125Q0 103 0 135M195 0Q155 58 180 75Q126 120 138 138Q58 158 75 180Q0 154 0 195'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat}
body.km-halloween .hero.hero-salon .hero-content{max-width:1100px}
body.km-halloween .km-halloween-hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:48px;margin-bottom:38px;text-align:left}
body.km-halloween .km-halloween-copy{min-width:0}
body.km-halloween .hero.hero-salon .hero-tagline{color:#f2c8ae;background:transparent;padding:0;letter-spacing:2.5px}
body.km-halloween .hero.hero-salon .km-halloween-title{font-family:var(--font-serif);font-size:clamp(38px,4.5vw,62px);font-weight:400;line-height:1.12;color:#f1cdd2;margin:12px 0 24px;max-width:600px}
body.km-halloween .hero.hero-salon h1{font-family:var(--font-sans);font-size:17px;font-weight:500;line-height:1.6;color:#fff4ef;margin:0 0 12px}
body.km-halloween .hero.hero-salon .km-hero-intro{font-size:14px;color:#ead9e0;margin:0 0 26px}
body.km-halloween .km-halloween-actions{display:flex;gap:14px;flex-wrap:wrap}
body.km-halloween .km-halloween-actions a{min-height:46px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;padding:12px 20px;letter-spacing:.5px}
body.km-halloween .km-halloween-actions .btn-primary{background:#8e4a54;color:#fff!important}
body.km-halloween .km-halloween-actions .btn-primary:hover{background:#783d4d}
body.km-halloween .km-halloween-actions .btn-secondary{border:1px solid #eed7db;color:#fff4ef!important;background:transparent}
body.km-halloween .km-halloween-actions .btn-secondary:hover{background:#4a2c40}
body.km-halloween .km-halloween-photo{position:relative;margin:0;border:1px solid #bd8e76;border-radius:90px 90px 18px 18px;overflow:hidden;background:#392535}
body.km-halloween .km-halloween-photo img{display:block;width:100%;height:430px;object-fit:cover;object-position:center}
body.km-halloween .km-halloween-photo figcaption{padding:11px 16px;font-size:11px;letter-spacing:.4px;text-align:center;color:#f4e4df;background:#392535}
body.km-halloween .km-paths{grid-template-columns:repeat(3,minmax(0,1fr))}
body.km-halloween .km-path,body.km-halloween .km-path.km-path-salon{background:#faf8f5;border:1px solid #e3cbc6;color:#301e2c;box-shadow:none}
body.km-halloween .km-path h2,body.km-halloween .km-path.km-path-salon h2{color:#301e2c;font-size:24px}
body.km-halloween .hero .km-path p,body.km-halloween .hero .km-path.km-path-salon p{color:#5a4a52}
body.km-halloween .km-path .km-path-label,body.km-halloween .km-path.km-path-salon .km-path-label{color:#783d4d}
body.km-halloween .km-path .km-path-icon,body.km-halloween .km-path.km-path-salon .km-path-icon{background:#f1e2de}
body.km-halloween .km-path .km-path-link,body.km-halloween .km-path.km-path-salon .km-path-link{background:transparent;color:#783d4d;border-color:#783d4d}
body.km-halloween .km-path .km-path-link:hover{background:#f1e2de}
body.km-halloween .salon-services,body.km-halloween .why-us{background:#faf8f5}
body.km-halloween .salon-card{background:#fff;border-color:#eadbd8}
body.km-halloween .salon-card-featured{background:linear-gradient(135deg,#f9f1ec,#f0e1e5);border-color:#d6b1a7}
body.km-halloween .salon-badge{background:#783d4d}
body.km-halloween .final-cta{background:radial-gradient(ellipse at top,#4a2c40,#241522)}
body.km-halloween .final-cta h2{color:#f1cdd2}
body.km-halloween .final-cta p{color:#ead9e0}
body.km-halloween .final-cta .btn-secondary{color:#fff4ef!important;border-color:#eed7db}
body.km-halloween .final-cta .btn-secondary:hover{background:#4a2c40}
body.km-halloween .hero a:focus-visible,body.km-halloween .final-cta a:focus-visible{outline:3px solid #e4b68d;outline-offset:4px}
@media(max-width:768px){
body.km-halloween .hero.hero-salon{padding:32px 16px}
body.km-halloween .km-halloween-hero{grid-template-columns:1fr;gap:24px;margin-bottom:24px}
body.km-halloween .hero.hero-salon .km-halloween-title{font-size:40px;max-width:480px}
body.km-halloween .hero.hero-salon h1{font-size:15px}
body.km-halloween .km-halloween-photo{border-radius:50px 50px 16px 16px}
body.km-halloween .km-halloween-photo img{height:300px;object-position:center 45%}
body.km-halloween .km-paths{grid-template-columns:1fr}
body.km-halloween .km-halloween-actions{gap:10px}
body.km-halloween .km-halloween-actions a{flex:1}
}
@media(prefers-reduced-motion:reduce){body.km-halloween *,body.km-halloween *::before,body.km-halloween *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Halloween — extension to all public pages. Disabled by the same theme toggle. */
body.km-halloween:not(.home){background:#faf8f5}
body.km-halloween{--km-halloween-plum:#241522;--km-halloween-blush:#f1cdd2;--km-halloween-copper:#c77943}

/* Existing page introductions: seasonal treatment without changing their text. */
body.km-halloween:not(.home) main .hero,
body.km-halloween .reservation-page .page-header,
body.km-halloween .km-account-hero,
body.km-halloween .km-sizing-hero{
 position:relative;isolation:isolate;
 background:radial-gradient(ellipse at 85% 5%,#563044 0%,#2d1b2b 50%,#241522 100%);
 border:1px solid #9e7065;border-radius:22px;overflow:hidden;
 padding:48px 28px;margin-bottom:32px;color:#f8eae7;
}
body.km-halloween:not(.home) main .hero h1,
body.km-halloween:not(.home) main .hero h2,
body.km-halloween .reservation-page .page-header .page-title,
body.km-halloween .km-account-hero h1,
body.km-halloween .km-sizing-hero h1,
body.km-halloween .km-sizing-hero h1 span{color:#f1cdd2}
body.km-halloween:not(.home) main .hero p,
body.km-halloween .reservation-page .page-header .page-subtitle,
body.km-halloween .km-account-hero .km-account-intro,
body.km-halloween .km-sizing-hero p{color:#f2e3e7}
body.km-halloween:not(.home) main .hero .btn-secondary,
body.km-halloween .km-sizing-hero .km-sizing-secondary{color:#fff4ef!important;border-color:#e4b68d;background:transparent}
body.km-halloween:not(.home) main .hero .btn-secondary:hover,
body.km-halloween .km-sizing-hero .km-sizing-secondary:hover{background:#4a2c40}
body.km-halloween .km-account-eyebrow,
body.km-halloween .km-sizing-eyebrow{background:#3c2536;color:#f2c8ae;border-color:#956e65}
body.km-halloween .km-account-hero-note{background:#faf8f5;color:#301e2c;border:1px solid #d6b1a7}
body.km-halloween .km-account-hero-note :is(p,span,strong){color:#573547}

/* Titles of cart, checkout, contact, legal pages and ordinary content pages. */
body.km-halloween:not(.home) main .page-title{
 background:linear-gradient(115deg,#241522,#4a2c40);
 color:#f1cdd2;border:1px solid #9e7065;border-radius:20px;
 padding:32px 24px;line-height:1.25;
}
body.km-halloween .reservation-page .page-header .page-title{
 background:transparent;border:0;padding:0;border-radius:0
}
body.km-halloween:not(.home) main .page-title::after{
 background:linear-gradient(90deg,#c77943,#f1cdd2);
}
body.km-halloween:not(.home) main :is(.section-title,.product_title){color:#432438}
body.km-halloween:not(.home) main .section-title::after{background:#c77943}

/* Small, non-interactive moon decoration in introductions. */
body.km-halloween:not(.home) main .hero::after,
body.km-halloween .reservation-page .page-header::after,
body.km-halloween .km-account-hero::after,
body.km-halloween .km-sizing-hero::after{
 content:"";position:absolute;top:18px;right:24px;width:28px;height:28px;
 border-radius:50%;box-shadow:7px 4px 0 0 #dba17d;
 transform:rotate(-20deg);opacity:.7;pointer-events:none;z-index:-1;
}

/* Store and product detail pages: preserve product photos and price semantics. */
body.km-halloween.woocommerce ul.products li.product{
 background:#fff;border:1px solid #dfc8c2;border-radius:18px;
 box-shadow:0 6px 20px rgba(36,21,34,.06);
}
body.km-halloween.woocommerce ul.products li.product .woocommerce-loop-product__title{color:#432438}
body.km-halloween.woocommerce ul.products li.product .price,
body.km-halloween.woocommerce div.product p.price,
body.km-halloween.woocommerce div.product span.price{color:#783d4d}
body.km-halloween.woocommerce span.onsale{background:#783d4d;color:#fff}
body.km-halloween.single-product .summary{
 background:#fff;border:1px solid #dfc8c2;border-top:3px solid #c77943;
 border-radius:18px;padding:24px;box-sizing:border-box;
}
body.km-halloween .woocommerce-tabs ul.tabs li.active{border-top-color:#c77943}
body.km-halloween .woocommerce a.button,
body.km-halloween .woocommerce button.button,
body.km-halloween .woocommerce input.button,
body.km-halloween .woocommerce a.button.alt,
body.km-halloween .woocommerce button.button.alt{
 background:#783d4d;color:#fff;border-color:#783d4d;
}
body.km-halloween .woocommerce :is(a.button,button.button,input.button):hover{background:#562c40;color:#fff}

/* Custom builder: decoration is limited to the frame, not nail previews. */
body.km-halloween #km-sur-mesure-app{
 border:1px solid #d6b1a7;border-top:3px solid #c77943;
 border-radius:20px;background:#fff;
}
body.km-halloween #km-sur-mesure-app .km-builder-header{
 background:#f4e8e7;border-bottom:1px solid #dfc8c2;
}
body.km-halloween #km-sur-mesure-app .km-builder-header h2{color:#432438}
body.km-halloween #km-sur-mesure-app .km-preview-wrapper{background:linear-gradient(135deg,#faf8f5,#f4e8e7);border-color:#dfc8c2}
body.km-halloween #km-sur-mesure-app .km-cat-tab.active,
body.km-halloween .km-length-btn.active{background:#783d4d;color:#fff;border-color:#783d4d}
body.km-halloween #km-sur-mesure-app .km-design-card{border-color:#dfc8c2}
body.km-halloween #km-sur-mesure-app .km-design-card:hover{border-color:#aa6947}
body.km-halloween #km-sur-mesure-app .km-builder-footer{border-color:#d6b1a7!important}
body.km-halloween :is(.km-popup-header,.km-guide-header){background:#f4e8e7;border-bottom-color:#d6b1a7}
body.km-halloween :is(.km-popup-header,.km-guide-header) :is(h2,h3){color:#432438}

/* Booking, contact and account: keep interactive widgets on white. */
body.km-halloween :is(.reservation-booking,.services-summary-card,.faq-sidebar-card,.contact-info-card){
 background:#fff;border:1px solid #dfc8c2;border-top:3px solid #c77943;
 border-radius:18px;box-shadow:0 6px 22px rgba(36,21,34,.05);
}
body.km-halloween :is(.services-summary-card,.faq-sidebar-card,.contact-info-card) :is(h2,h3){color:#432438}
body.km-halloween .reservation-info{background:#f4e8e7;border-color:#d6b1a7;color:#432438}
body.km-halloween .woocommerce :is(form.login,form.register),
body.km-halloween .woocommerce-MyAccount-content{
 background:#fff;border:1px solid #dfc8c2;border-top:3px solid #c77943;border-radius:18px;
}
body.km-halloween .woocommerce-MyAccount-navigation ul li.is-active a{background:#783d4d;color:#fff}
body.km-halloween .km-account-benefits{color:#573547}
body.km-halloween :is(.km-sizing-card,.sizing-kit,.km-faq){border-color:#dfc8c2;background:#fff}
body.km-halloween .km-sizing-card-header{border-bottom-color:#dfc8c2}
body.km-halloween :is(.km-how-number,.km-sizing-primary){background:#783d4d;color:#fff}

/* Cart and checkout: quiet accents, no decoration over transaction controls. */
body.km-halloween.woocommerce-cart{--km-line:#dfc8c2;--km-soft:#f5e9e6;--km-rose:#b76e79;--km-rose-dark:#783d4d}
body.km-halloween.woocommerce-cart .cart_totals,
body.km-halloween.woocommerce-checkout #order_review,
body.km-halloween.woocommerce-checkout .woocommerce-billing-fields,
body.km-halloween.woocommerce-checkout .woocommerce-shipping-fields{
 border-color:#dfc8c2;background:#fff;
}
body.km-halloween .woocommerce table.shop_table{border-color:#dfc8c2}
body.km-halloween .woocommerce table.shop_table thead th{background:#f4e8e7;color:#432438}
body.km-halloween .woocommerce-checkout #payment{background:#f5eeeb}
body.km-halloween .woocommerce-checkout #payment div.payment_box{background:#fff;color:#301e2c}
body.km-halloween .woocommerce-checkout #payment div.payment_box::before{border-bottom-color:#fff}
body.km-halloween :is(.legal-content-wrapper,.contact-wrapper){border-color:#dfc8c2}

/* Shared footer and visible keyboard focus. */
body.km-halloween .site-footer{background:linear-gradient(120deg,#241522,#382133);border-top:1px solid #ad7a65}
body.km-halloween .footer-col h3{color:#f1cdd2}
body.km-halloween .footer-col :is(p,a){color:#f1e3e7}
body.km-halloween .footer-col a:hover{color:#f4c6a9}
body.km-halloween .copyright{border-color:#705260;color:#ddc7d0}
body.km-halloween .copyright a{color:#ddc7d0}
body.km-halloween main :is(a,button,input,select,textarea):focus-visible{outline:3px solid #a66a42;outline-offset:3px}

@media(max-width:768px){
 body.km-halloween:not(.home) main .hero,
 body.km-halloween .reservation-page .page-header,
 body.km-halloween .km-account-hero,
 body.km-halloween .km-sizing-hero{padding:36px 18px;border-radius:16px;margin-bottom:24px}
 body.km-halloween:not(.home) main .page-title{padding:26px 16px;border-radius:16px;overflow-wrap:break-word}
 body.km-halloween .reservation-page .page-header .page-title{padding:0}
 body.km-halloween.single-product .summary{padding:18px}
}
@media print{
 body.km-halloween{background:#fff}
 body.km-halloween .km-sizing-hero{background:#fff;color:#222;border:0}
 body.km-halloween .km-sizing-hero :is(h1,h1 span,p){color:#222}
 body.km-halloween .km-sizing-hero::after{display:none}
}

/* Contrast for span-based store eyebrow. */
body.km-halloween:not(.home) main .hero .hero-tagline{color:#f2c8ae;background:rgba(255,255,255,.06)}

body.km-halloween .km-account-hero #km-account-title{color:#f1cdd2!important}

body.km-halloween .km-newsletter-status{background:#faf8f5;border:1px solid #dfc8c2;border-top:3px solid #c77943;border-radius:20px}
body.km-halloween .km-newsletter-status #km-newsletter-status-title{color:#432438}
