    :root {
      --color-background: #EDE4E0;
      --color-section: #FAF6F4;
      --color-title: #3D3538;
      --color-detail: #8C7F7C;
      --color-accent: #A67F7A;
      --color-accent-dark: #8A6560;
      --color-gold: #C4A494;
      --color-button-text: #FFFFFF;
      --color-accent-soft: rgba(166, 127, 122, 0.14);
      --color-accent-shadow: rgba(166, 127, 122, 0.28);
    }

    body {
      font-family: 'Inter', sans-serif;
      background-color: var(--color-background);
      color: var(--color-title);
      overflow-x: hidden;
    }

    h1, h2, h3, h4, h5, h6 {
      font-family: 'Montserrat', sans-serif;
      color: var(--color-title);
    }

    .glass-effect {
      background: rgba(250, 246, 244, 0.75);
      backdrop-filter: blur(10px);
      border: 1px solid rgba(166, 127, 122, 0.16);
    }

    /* ——— Header & navigation ——— */
    .site-header-bar {
      background: var(--color-section);
      border-bottom: 1px solid rgba(166, 127, 122, 0.22);
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
    }

    .site-logo {
      display: flex;
      flex-direction: column;
      line-height: 1.1;
    }

    .site-logo-mark {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.35rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      color: var(--color-title);
    }

    .site-logo-sub {
      font-size: 0.68rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--color-detail);
      margin-top: 0.15rem;
    }

    .nav-link {
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--color-detail);
      padding: 0.45rem 0.65rem;
      border-radius: 0;
      border-bottom: 2px solid transparent;
      transition: color 0.2s ease, border-color 0.2s ease;
    }

    .nav-link:hover,
    .nav-link.is-active {
      color: var(--color-title);
      border-bottom-color: var(--color-accent);
    }

    .nav-phone {
      font-size: 0.82rem;
      font-weight: 500;
      color: var(--color-detail);
      letter-spacing: 0.02em;
    }

    .nav-phone:hover {
      color: var(--color-accent);
    }

    .btn-nav-cta {
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 0.55rem 1.1rem;
      border: 2px solid var(--color-title);
      color: var(--color-title);
      background: transparent;
      transition: background 0.2s ease, color 0.2s ease;
    }

    .btn-nav-cta:hover {
      background: var(--color-title);
      color: var(--color-section);
    }

    .nav-burger {
      padding: 0.5rem;
      border: 1px solid rgba(166, 127, 122, 0.35);
      color: var(--color-title);
    }

    .mobile-nav-drawer {
      background: var(--color-section);
      border-bottom: 1px solid rgba(166, 127, 122, 0.22);
    }

    .mobile-nav-inner {
      max-width: 80rem;
      margin: 0 auto;
      padding: 0.75rem 1rem 1.25rem;
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
    }

    .mobile-nav-link {
      padding: 0.75rem 0.5rem;
      font-size: 0.95rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--color-title);
      border-bottom: 1px solid rgba(166, 127, 122, 0.12);
    }

    .mobile-nav-phone {
      padding: 0.75rem 0.5rem;
      font-size: 0.9rem;
      color: var(--color-accent);
      font-weight: 600;
    }

    .mobile-nav-cta {
      margin-top: 0.5rem;
      text-align: center;
      padding: 0.85rem 1rem;
      background: var(--color-title);
      color: var(--color-section);
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      font-size: 0.82rem;
    }

    /* ——— Sections & blocs ——— */
    .section-wrap {
      padding-top: 4.5rem;
      padding-bottom: 4.5rem;
    }

    @media (min-width: 768px) {
      .section-wrap {
        padding-top: 5.5rem;
        padding-bottom: 5.5rem;
      }
    }

    .section-head {
      margin-bottom: 2.75rem;
      max-width: 42rem;
    }

    .section-head.is-center {
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .section-eyebrow {
      display: inline-block;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 0.75rem;
    }

    .section-title {
      font-size: clamp(1.85rem, 4vw, 2.75rem);
      font-weight: 700;
      line-height: 1.15;
      margin-bottom: 0.75rem;
    }

    .section-lead {
      font-size: 1.05rem;
      line-height: 1.65;
      color: var(--color-detail);
    }

    .panel-card {
      background: var(--color-section);
      border: 1px solid rgba(166, 127, 122, 0.2);
      border-left: 4px solid var(--color-accent);
      padding: 1.75rem;
    }

    .panel-card.is-flat {
      border-left-width: 1px;
    }

    .stat-pill {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
      padding: 1rem 1.15rem;
      background: var(--color-background);
      border: 1px solid rgba(166, 127, 122, 0.18);
    }

    .stat-pill strong {
      font-family: 'Montserrat', sans-serif;
      font-size: 0.82rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: var(--color-title);
    }

    .stat-pill span {
      font-size: 0.88rem;
      color: var(--color-detail);
      line-height: 1.45;
    }

    .service-row {
      display: grid;
      gap: 1.5rem;
      padding: 2rem 0;
      border-bottom: 1px solid rgba(166, 127, 122, 0.2);
    }

    @media (min-width: 768px) {
      .service-row {
        grid-template-columns: 4.5rem 1fr;
        gap: 2rem;
        align-items: start;
      }
    }

    .service-num {
      font-family: 'Montserrat', sans-serif;
      font-size: 2.5rem;
      font-weight: 700;
      line-height: 1;
      color: var(--color-accent);
      opacity: 0.55;
    }

    .price-row {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      padding: 1.35rem 0;
      border-bottom: 1px solid rgba(166, 127, 122, 0.18);
    }

    @media (min-width: 768px) {
      .price-row {
        flex-direction: row;
        align-items: baseline;
        justify-content: space-between;
        gap: 2rem;
      }
    }

    .price-row:last-child {
      border-bottom: none;
    }

    .price-category + .price-category {
      margin-top: 1.5rem;
      padding-top: 1.5rem;
      border-top: 1px solid rgba(166, 127, 122, 0.18);
    }

    .formula-catalog {
      padding-top: 0.25rem;
    }

    .formula-type {
      border-bottom: 1px solid rgba(166, 127, 122, 0.18);
    }

    .formula-type:last-child {
      border-bottom: none;
    }

    .formula-type-title {
      list-style: none;
      cursor: pointer;
      font-size: 1.05rem;
      font-weight: 600;
      padding: 1.15rem 0;
      color: var(--color-title);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
    }

    .formula-type-title::-webkit-details-marker {
      display: none;
    }

    .formula-type-title::after {
      content: '+';
      font-size: 1.25rem;
      line-height: 1;
      color: var(--color-accent);
      transition: transform 0.2s ease;
    }

    .formula-type[open] .formula-type-title::after {
      content: '−';
    }

    .formula-type-body {
      padding-bottom: 0.5rem;
    }

    .formula-subgroup {
      font-size: 0.82rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin: 1rem 0 0.35rem;
    }

    .formula-subgroup:first-child {
      margin-top: 0;
    }

    .quote-card {
      background: var(--color-section);
      border: 1px solid rgba(166, 127, 122, 0.18);
      padding: 1.5rem;
      display: flex;
      flex-direction: column;
      height: 100%;
    }

    .quote-card p {
      flex-grow: 1;
      font-size: 0.95rem;
      line-height: 1.65;
      color: var(--color-detail);
      margin-bottom: 1rem;
    }

    .quote-card footer {
      font-weight: 600;
      font-size: 0.88rem;
      color: var(--color-title);
      padding-top: 0.75rem;
      border-top: 1px solid rgba(166, 127, 122, 0.15);
    }

    .quote-stars {
      display: flex;
      gap: 0.15rem;
      margin-bottom: 0.85rem;
      color: var(--color-accent);
    }

    .quote-source {
      font-size: 0.78rem;
      color: var(--color-detail);
    }

    .reviews-carousel {
      position: relative;
      display: grid;
      grid-template-columns: auto 1fr auto;
      align-items: center;
      gap: 0.35rem;
    }

    .reviews-carousel-viewport {
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      padding: 0.15rem 0 0.85rem;
      min-width: 0;
    }

    .reviews-carousel-viewport::-webkit-scrollbar {
      display: none;
    }

    .reviews-carousel-viewport:focus-visible {
      outline: 2px solid var(--color-accent);
      outline-offset: 4px;
      border-radius: 0.35rem;
    }

    .reviews-carousel-track {
      display: flex;
      gap: 1rem;
    }

    .reviews-carousel-slide {
      flex: 0 0 calc(100% - 0.5rem);
      scroll-snap-align: start;
      min-width: 0;
    }

    .reviews-carousel-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.75rem;
      height: 2.75rem;
      border: 1px solid rgba(166, 127, 122, 0.28);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.9);
      color: var(--color-title);
      cursor: pointer;
      transition: border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
      flex-shrink: 0;
    }

    .reviews-carousel-btn:hover:not(:disabled) {
      border-color: var(--color-accent);
      background: white;
    }

    .reviews-carousel-btn:disabled {
      opacity: 0.35;
      cursor: default;
    }

    .reviews-carousel.is-static .reviews-carousel-btn {
      display: none;
    }

    @media (min-width: 640px) {
      .reviews-carousel {
        gap: 0.65rem;
      }

      .reviews-carousel-slide {
        flex-basis: calc(50% - 0.5rem);
      }
    }

    @media (min-width: 1024px) {
      .reviews-carousel-slide {
        flex-basis: calc(33.333% - 0.67rem);
      }
    }

    .footer-nav-link {
      font-size: 0.92rem;
      color: rgba(255, 255, 255, 0.82);
      transition: color 0.2s ease;
    }

    .footer-nav-link:hover {
      color: var(--color-accent);
    }

    .rdv-band {
      display: grid;
      gap: 0;
      border: 1px solid rgba(166, 127, 122, 0.22);
      overflow: visible;
    }

    @media (min-width: 1024px) {
      .rdv-band {
        grid-template-columns: 2fr 3fr;
      }
    }

    .rdv-band-aside {
      background: var(--color-title);
      color: var(--color-section);
      padding: 2.5rem 2rem;
    }

    .rdv-band-main {
      background: var(--color-section);
      padding: 2.5rem 2rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: stretch;
    }

    .btn-primary {
      display: inline-block;
      font-size: 0.82rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 0.9rem 1.75rem;
      background: var(--color-accent);
      color: var(--color-button-text);
      border: none;
      transition: background 0.2s ease, transform 0.2s ease;
    }

    .btn-primary:hover {
      background: var(--color-accent-dark);
      transform: translateY(-1px);
    }

    .btn-outline {
      display: inline-block;
      font-size: 0.82rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 0.9rem 1.75rem;
      background: transparent;
      color: var(--color-title);
      border: 2px solid var(--color-title);
      transition: background 0.2s ease, color 0.2s ease;
    }

    .btn-outline:hover {
      background: var(--color-title);
      color: var(--color-section);
    }

    .btn-outline-light {
      display: inline-block;
      font-size: 0.82rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 0.9rem 1.75rem;
      background: transparent;
      color: white;
      border: 2px solid rgba(255, 255, 255, 0.65);
      transition: background 0.2s ease, border-color 0.2s ease;
    }

    .btn-outline-light:hover {
      background: rgba(255, 255, 255, 0.12);
      border-color: white;
    }

    .img-frame {
      position: relative;
    }

    .img-frame::before {
      content: '';
      position: absolute;
      inset: 1rem -1rem -1rem 1rem;
      border: 2px solid var(--color-accent);
      opacity: 0.35;
      pointer-events: none;
    }

    .img-frame img {
      position: relative;
      z-index: 1;
      display: block;
      width: 100%;
      object-fit: cover;
    }

    .brand-split {
      display: grid;
      gap: 0;
      border: 1px solid rgba(166, 127, 122, 0.2);
    }

    @media (min-width: 768px) {
      .brand-split {
        grid-template-columns: 1fr 1fr;
      }
    }

    .brand-split-media {
      min-height: 220px;
      position: relative;
      overflow: hidden;
    }

    .brand-split-media img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .brand-split-body {
      padding: 2rem;
      background: var(--color-section);
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .contact-split {
      display: grid;
      gap: 2rem;
    }

    @media (min-width: 1024px) {
      .contact-split {
        grid-template-columns: 1fr 1.2fr;
        gap: 3rem;
        align-items: start;
      }
    }

    .form-field {
      width: 100%;
      padding: 0.85rem 1rem;
      border: 1px solid rgba(166, 127, 122, 0.35);
      background: var(--color-section);
      color: var(--color-title);
      font-size: 0.95rem;
      border-radius: 0;
      transition: border-color 0.2s ease;
    }

    .form-field:focus {
      outline: none;
      border-color: var(--color-accent);
    }

    .faq-grid {
      display: grid;
      gap: 0;
      border-top: 1px solid rgba(166, 127, 122, 0.2);
    }

    .parallax-hero {
      will-change: transform;
    }

    .toast {
      position: fixed;
      top: 1rem;
      right: 1rem;
      z-index: 9999;
      padding: 0.9rem 1rem;
      border-radius: 0.75rem;
      color: white;
      font-size: 0.95rem;
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
      opacity: 0;
      transform: translateY(-10px);
      pointer-events: none;
    }

    .toast.success {
      background: #15803d;
    }

    .toast.error {
      background: #b91c1c;
    }

    .faq-item {
      border-bottom: 1px solid rgba(61, 53, 56, 0.08);
    }

    .faq-trigger {
      cursor: pointer;
      transition: color 0.3s ease;
    }

    .faq-trigger:hover {
      color: var(--color-accent);
    }

    .faq-content {
      height: 0;
      overflow: hidden;
      opacity: 0;
    }

    .faq-icon {
      transition: transform 0.35s ease;
    }

    .faq-item.active .faq-icon {
      transform: rotate(45deg);
    }

    .faq-item.active .faq-trigger {
      color: var(--color-accent);
      font-weight: 600;
    }

    .hero-cta-wrap {
      position: relative;
      z-index: 20;
    }

    .hero-cta-btn {
      opacity: 1 !important;
      visibility: visible !important;
    }

    .gallery-thumb {
      background: #faf6f4;
      transition: transform 0.24s ease, box-shadow 0.24s ease;
    }

    .gallery-thumb:hover {
      transform: translateY(-2px);
      box-shadow: 0 14px 26px rgba(61, 53, 56, 0.12);
    }

    .lightbox-overlay {
      animation: fadeIn 0.2s ease;
    }

    .rdv-adblock-notice {
      padding: 1.5rem;
      border: 1px solid rgba(166, 127, 122, 0.35);
      border-radius: 0.5rem;
      background: rgba(166, 127, 122, 0.08);
    }

    .rdv-adblock-notice-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.05rem;
      font-weight: 600;
      margin-bottom: 0.65rem;
      color: var(--color-title);
    }

    .rdv-adblock-notice-text,
    .rdv-adblock-notice-hint {
      font-size: 0.92rem;
      line-height: 1.55;
      color: var(--color-detail);
    }

    .rdv-adblock-notice-text {
      margin-bottom: 0.5rem;
    }

    .rdv-adblock-notice-hint {
      margin-bottom: 1.25rem;
    }

    .booking-widget {
      width: 100%;
    }

    .booking-loader {
      display: flex;
      align-items: center;
      gap: 0.75rem;
      padding: 1.25rem 0;
      font-size: 0.9rem;
      color: var(--color-detail);
    }

    .booking-loader-spinner {
      width: 1.35rem;
      height: 1.35rem;
      border: 2px solid rgba(166, 127, 122, 0.25);
      border-top-color: var(--color-accent);
      border-radius: 50%;
      animation: bookingSpin 0.75s linear infinite;
      flex-shrink: 0;
    }

    @keyframes bookingSpin {
      to {
        transform: rotate(360deg);
      }
    }

    .booking-calendar {
      max-width: 22rem;
    }

    .booking-calendar-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.85rem;
    }

    .booking-calendar-title {
      flex: 1;
      text-align: center;
      font-weight: 600;
      font-size: 1rem;
      color: var(--color-title);
      text-transform: capitalize;
      margin: 0;
    }

    .booking-calendar-nav {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2rem;
      height: 2rem;
      border: 1px solid rgba(166, 127, 122, 0.35);
      border-radius: 999px;
      background: white;
      color: var(--color-title);
      transition: border-color 0.2s ease, color 0.2s ease;
    }

    .booking-calendar-nav:hover:not(:disabled) {
      border-color: var(--color-accent);
      color: var(--color-accent);
    }

    .booking-calendar-nav:disabled {
      opacity: 0.35;
      cursor: not-allowed;
    }

    .booking-calendar-weekdays,
    .booking-calendar-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 0.35rem;
    }

    .booking-calendar-weekdays {
      margin-bottom: 0.35rem;
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      color: var(--color-detail);
      text-align: center;
    }

    .booking-calendar-day {
      aspect-ratio: 1;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid rgba(166, 127, 122, 0.2);
      border-radius: 0.45rem;
      background: white;
      font-size: 0.88rem;
      font-weight: 500;
      color: var(--color-title);
      transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
    }

    .booking-calendar-day.is-empty {
      border-color: transparent;
      background: transparent;
    }

    .booking-calendar-day.is-today:not(.is-selected) {
      border-color: var(--color-gold);
    }

    .booking-calendar-day:hover:not(:disabled):not(.is-empty) {
      border-color: var(--color-accent);
    }

    .booking-calendar-day.is-selected {
      background: var(--color-accent);
      border-color: var(--color-accent);
      color: var(--color-button-text);
    }

    .booking-calendar-day.is-disabled {
      opacity: 0.35;
      cursor: not-allowed;
      background: rgba(166, 127, 122, 0.06);
    }

    .booking-type-tabs,
    .booking-subgroup-tabs {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin-bottom: 1rem;
    }

    .booking-subgroup-tabs {
      margin-bottom: 1.25rem;
    }

    .booking-type-tab,
    .booking-subgroup-tab {
      border: 1px solid rgba(166, 127, 122, 0.35);
      background: var(--color-background);
      color: var(--color-title);
      border-radius: 999px;
      padding: 0.45rem 0.9rem;
      font-size: 0.82rem;
      font-weight: 600;
      transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
    }

    .booking-type-tab.is-featured:not(.is-active) {
      border-color: var(--color-gold);
      background: rgba(196, 164, 148, 0.12);
    }

    .booking-type-badge {
      font-size: 0.72rem;
      line-height: 1;
      color: var(--color-gold);
    }

    .booking-type-tab.is-active .booking-type-badge {
      color: var(--color-button-text);
    }

    .booking-featured-callout {
      margin-bottom: 1rem;
      padding: 0.9rem 1rem;
      border: 1px solid rgba(196, 164, 148, 0.55);
      border-radius: 0.5rem;
      background: linear-gradient(
        135deg,
        rgba(196, 164, 148, 0.16) 0%,
        rgba(166, 127, 122, 0.08) 100%
      );
    }

    .booking-featured-callout p {
      margin: 0.45rem 0 0;
      font-size: 0.88rem;
      line-height: 1.5;
      color: var(--color-detail);
    }

    .booking-featured-callout strong {
      color: var(--color-title);
    }

    .booking-featured-badge {
      display: inline-block;
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--color-accent-dark);
      background: rgba(255, 255, 255, 0.75);
      border: 1px solid rgba(196, 164, 148, 0.45);
      border-radius: 999px;
      padding: 0.2rem 0.55rem;
    }

    .booking-type-tab:hover,
    .booking-subgroup-tab:hover {
      border-color: var(--color-accent);
    }

    .booking-type-tab.is-active,
    .booking-subgroup-tab.is-active {
      background: var(--color-accent);
      border-color: var(--color-accent);
      color: var(--color-button-text);
    }

    .booking-subgroup-tab {
      font-size: 0.78rem;
      font-weight: 500;
    }

    .booking-steps {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin-bottom: 1.25rem;
      list-style: none;
      padding: 0;
    }

    .booking-steps li {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 0;
      border: 1px solid rgba(166, 127, 122, 0.25);
      color: var(--color-detail);
    }

    .booking-step-trigger {
      display: block;
      width: 100%;
      padding: 0.35rem 0.65rem;
      border: 0;
      background: transparent;
      font: inherit;
      font-size: inherit;
      font-weight: inherit;
      letter-spacing: inherit;
      text-transform: inherit;
      color: inherit;
      text-align: center;
      cursor: default;
    }

    .booking-step-trigger:disabled {
      cursor: default;
    }

    .booking-steps li.is-clickable .booking-step-trigger {
      cursor: pointer;
    }

    .booking-steps li.is-clickable:hover {
      border-color: var(--color-accent);
      background: rgba(166, 127, 122, 0.14);
    }

    .booking-steps li.is-clickable:hover .booking-step-trigger {
      color: var(--color-title);
    }

    .booking-steps li.is-active {
      border-color: var(--color-accent);
      color: var(--color-title);
      background: rgba(166, 127, 122, 0.1);
    }

    .booking-steps li.is-done {
      opacity: 0.55;
    }

    .booking-steps li.is-done.is-clickable {
      opacity: 0.75;
    }

    .booking-steps li.is-done.is-clickable:hover {
      opacity: 1;
    }

    .booking-panel {
      width: 100%;
    }

    .booking-back {
      font-size: 0.82rem;
      color: var(--color-accent);
      margin-bottom: 0.75rem;
    }

    .booking-back:hover {
      text-decoration: underline;
    }

    .booking-scroll-wrap {
      position: relative;
    }

    .booking-scroll-wrap.has-overflow:not(.is-at-end)::after {
      content: '';
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 2.75rem;
      pointer-events: none;
      background: linear-gradient(
        to bottom,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.92) 70%,
        #ffffff 100%
      );
    }

    .booking-scroll-hint {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.35rem;
      margin: 0.55rem 0 0;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.03em;
      color: var(--color-accent);
      animation: bookingScrollPulse 1.8s ease-in-out infinite;
    }

    .booking-scroll-hint-icon {
      width: 1rem;
      height: 1rem;
    }

    @keyframes bookingScrollPulse {
      0%,
      100% {
        opacity: 0.55;
        transform: translateY(0);
      }
      50% {
        opacity: 1;
        transform: translateY(2px);
      }
    }

    .booking-service-list {
      display: grid;
      gap: 0.5rem;
      max-height: 320px;
      overflow-y: auto;
      padding-right: 0.15rem;
      scrollbar-gutter: stable;
    }

    .booking-service-list::-webkit-scrollbar,
    .booking-date-grid::-webkit-scrollbar,
    .booking-slot-grid::-webkit-scrollbar {
      width: 6px;
    }

    .booking-service-list::-webkit-scrollbar-thumb,
    .booking-date-grid::-webkit-scrollbar-thumb,
    .booking-slot-grid::-webkit-scrollbar-thumb {
      background: rgba(166, 127, 122, 0.45);
      border-radius: 999px;
    }

    .booking-service-item {
      text-align: left;
      padding: 0.85rem 1rem;
      border: 1px solid rgba(166, 127, 122, 0.25);
      background: white;
      transition: border-color 0.2s ease, box-shadow 0.2s ease;
    }

    .booking-service-item:hover,
    .booking-service-item.is-selected {
      border-color: var(--color-accent);
      box-shadow: 0 4px 14px rgba(166, 127, 122, 0.12);
    }

    .booking-service-cat {
      display: block;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: 0.2rem;
    }

    .booking-service-name {
      display: block;
      font-weight: 600;
      color: var(--color-title);
    }

    .booking-service-meta {
      display: block;
      font-size: 0.82rem;
      color: var(--color-detail);
      margin-top: 0.15rem;
    }

    .booking-date-grid,
    .booking-slot-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
      gap: 0.5rem;
      max-height: 280px;
      overflow-y: auto;
      padding-right: 0.15rem;
      scrollbar-gutter: stable;
    }

    .booking-date-btn,
    .booking-slot-btn {
      padding: 0.7rem 0.5rem;
      border: 1px solid rgba(166, 127, 122, 0.25);
      background: white;
      font-size: 0.82rem;
      color: var(--color-title);
    }

    .booking-date-btn:hover,
    .booking-slot-btn:hover,
    .booking-date-btn.is-selected,
    .booking-slot-btn.is-selected {
      border-color: var(--color-accent);
      background: rgba(166, 127, 122, 0.1);
    }

    .booking-success {
      padding: 1.25rem;
      border: 1px solid rgba(166, 127, 122, 0.3);
      background: rgba(166, 127, 122, 0.08);
      border-radius: 0.5rem;
    }

    @keyframes fadeIn {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    .admin-calendar-layout {
      display: grid;
      gap: 1.25rem;
    }

    @media (min-width: 960px) {
      .admin-calendar-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
      }
    }

    .admin-calendar-panel,
    .admin-calendar-day-panel {
      min-width: 0;
    }

    .admin-calendar-panel.panel-card.is-flat {
      padding: 1rem 1.1rem;
    }

    .admin-calendar-panel .booking-calendar {
      max-width: none;
    }

    .admin-calendar-toolbar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.85rem;
    }

    .admin-calendar-toolbar-title {
      flex: 1;
      text-align: center;
    }

    .admin-calendar-today {
      display: inline-block;
      margin-top: 0.2rem;
      font-size: 0.75rem;
      font-weight: 600;
      color: var(--color-accent);
      text-decoration: none;
    }

    .admin-calendar-today:hover {
      text-decoration: underline;
    }

    .admin-calendar-grid {
      display: grid;
      grid-template-columns: repeat(7, minmax(0, 1fr));
      gap: 0.3rem;
      min-width: 0;
    }

    .admin-calendar-panel .booking-calendar-weekdays {
      display: grid;
      grid-template-columns: repeat(7, minmax(0, 1fr));
      gap: 0.3rem;
      min-width: 0;
    }

    .admin-calendar-day {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-start;
      gap: 0.15rem;
      min-width: 0;
      max-width: 100%;
      min-height: 4.25rem;
      padding: 0.45rem 0.35rem;
      border: 1px solid rgba(166, 127, 122, 0.2);
      border-radius: 0.5rem;
      background: white;
      color: var(--color-title);
      text-decoration: none;
      transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    }

    .admin-calendar-day.is-empty {
      border-color: transparent;
      background: transparent;
      min-height: 0;
      padding: 0;
      pointer-events: none;
    }

    .admin-calendar-day.is-today:not(.is-selected) {
      border-color: var(--color-gold);
    }

    .admin-calendar-day.has-events:not(.is-selected) {
      background: rgba(166, 127, 122, 0.06);
    }

    .admin-calendar-day.has-unavailability:not(.is-selected) {
      box-shadow: inset 0 -2px 0 rgba(180, 120, 80, 0.55);
    }

    .admin-calendar-day.has-unavailability.has-events:not(.is-selected) {
      background: linear-gradient(180deg, rgba(166, 127, 122, 0.06) 0%, rgba(180, 120, 80, 0.1) 100%);
    }

    .admin-calendar-day.has-google-event:not(.is-selected) {
      box-shadow: inset 2px 0 0 rgba(66, 133, 244, 0.75);
    }

    .admin-calendar-day.has-google-event.has-events:not(.is-selected) {
      background: linear-gradient(90deg, rgba(66, 133, 244, 0.08) 0%, rgba(166, 127, 122, 0.06) 100%);
    }

    .admin-calendar-day.has-day-override:not(.is-selected) {
      box-shadow: inset 0 2px 0 rgba(76, 120, 92, 0.55);
    }

    .admin-day-hours-badge {
      display: inline-block;
      margin-left: 0.35rem;
      padding: 0.1rem 0.4rem;
      border-radius: 999px;
      font-size: 0.65rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #2f5f45;
      background: rgba(76, 120, 92, 0.14);
    }

    .admin-day-hours-summary strong {
      font-weight: 600;
    }

    .admin-calendar-day:hover:not(.is-empty):not(.is-selected) {
      border-color: var(--color-accent);
      box-shadow: 0 4px 14px rgba(61, 53, 56, 0.08);
    }

    .admin-calendar-day.is-selected {
      background: var(--color-accent);
      border-color: var(--color-accent);
      color: var(--color-button-text);
      box-shadow: 0 8px 20px rgba(166, 127, 122, 0.28);
    }

    .admin-calendar-day-num {
      font-size: 0.92rem;
      font-weight: 700;
      line-height: 1;
    }

    .admin-calendar-day-meta {
      width: 100%;
      max-width: 100%;
      font-size: 0.58rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      line-height: 1.15;
      opacity: 0.9;
      overflow: hidden;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3;
      line-clamp: 3;
      word-break: break-word;
      overflow-wrap: anywhere;
    }

    .admin-calendar-day-panel {
      min-height: 18rem;
    }

    .admin-calendar-day-panel.panel-card.is-flat {
      padding: 1rem 1.1rem;
    }

    .admin-calendar-events {
      display: flex;
      flex-direction: column;
      gap: 0.85rem;
    }

    .admin-calendar-event {
      display: grid;
      grid-template-columns: 4.5rem minmax(0, 1fr);
      gap: 0.85rem;
      padding: 0.9rem 1rem;
      border: 1px solid rgba(166, 127, 122, 0.22);
      border-radius: 0.65rem;
      background: white;
    }

    .admin-calendar-event.is-cancelled {
      opacity: 0.62;
      background: rgba(166, 127, 122, 0.04);
    }

    .admin-calendar-event-time {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      font-size: 0.82rem;
      color: var(--color-detail);
    }

    .admin-calendar-event-time strong {
      font-size: 1rem;
      color: var(--color-title);
    }

    .admin-calendar-event-head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 0.2rem;
    }

    .admin-calendar-event-head strong {
      color: var(--color-title);
    }

    .admin-calendar-event-status {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #b42318;
      background: rgba(180, 35, 24, 0.08);
      padding: 0.15rem 0.45rem;
      border-radius: 999px;
    }

    .admin-calendar-event-service {
      font-size: 0.9rem;
      color: var(--color-title);
      margin-bottom: 0.25rem;
    }

    .admin-calendar-event-contact {
      font-size: 0.82rem;
      color: var(--color-detail);
      line-height: 1.5;
      word-break: break-word;
    }

    .admin-calendar-event-contact a {
      color: var(--color-accent);
      text-decoration: none;
    }

    .admin-calendar-event-contact a:hover {
      text-decoration: underline;
    }

    .admin-calendar-event-actions {
      margin-top: 0.65rem;
    }

    .admin-calendar-event-notes {
      margin-top: 0.55rem;
      padding: 0.55rem 0.65rem;
      border-radius: 0.45rem;
      background: rgba(166, 127, 122, 0.08);
      font-size: 0.82rem;
      line-height: 1.45;
      color: var(--color-detail);
      white-space: pre-wrap;
    }

    .admin-calendar-unavailability {
      display: grid;
      grid-template-columns: 4.5rem minmax(0, 1fr);
      gap: 0.85rem;
      padding: 0.9rem 1rem;
      border: 1px dashed rgba(180, 120, 80, 0.45);
      border-radius: 0.65rem;
      background: rgba(180, 120, 80, 0.08);
    }

    .admin-calendar-unavailability-badge {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #9a5b14;
      background: rgba(180, 120, 80, 0.16);
      padding: 0.15rem 0.45rem;
      border-radius: 999px;
    }

    .admin-calendar-unavailability-reason {
      font-size: 0.9rem;
      color: var(--color-title);
      margin-bottom: 0.25rem;
    }

    .admin-calendar-unavailability-range {
      margin-top: 0.35rem;
      font-size: 0.82rem;
      line-height: 1.45;
    }

    .admin-calendar-google-event {
      display: grid;
      grid-template-columns: 4.5rem minmax(0, 1fr);
      gap: 0.85rem;
      padding: 0.9rem 1rem;
      border: 1px solid rgba(66, 133, 244, 0.35);
      border-radius: 0.65rem;
      background: rgba(66, 133, 244, 0.07);
    }

    .admin-calendar-google-badge {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      color: #1a5fb4;
      background: rgba(66, 133, 244, 0.14);
      padding: 0.15rem 0.45rem;
      border-radius: 999px;
    }

    .admin-calendar-google-badge.is-all-day {
      color: #0d5c8f;
      background: rgba(66, 133, 244, 0.22);
    }

    .admin-calendar-event-time.is-all-day strong {
      font-size: 0.82rem;
      line-height: 1.35;
    }

    @media (max-width: 639px) {
      .admin-calendar-event {
        grid-template-columns: 1fr;
      }

      .admin-calendar-unavailability {
        grid-template-columns: 1fr;
      }

      .admin-calendar-google-event {
        grid-template-columns: 1fr;
      }

      .admin-calendar-event-time {
        flex-direction: row;
        align-items: baseline;
        gap: 0.35rem;
      }
    }

    .rdv-manage-card {
      padding: 1.5rem;
    }

    .rdv-manage-details {
      display: grid;
      gap: 0.65rem;
      margin: 0;
    }

    .rdv-manage-details > div {
      display: grid;
      grid-template-columns: 6.5rem 1fr;
      gap: 0.75rem;
      font-size: 0.92rem;
    }

    .rdv-manage-details dt {
      font-weight: 600;
      color: var(--color-detail);
      margin: 0;
    }

    .rdv-manage-details dd {
      margin: 0;
      color: var(--color-title);
    }

    /* ——— Admin réservation (mobile-first) ——— */
    .admin-booking {
      -webkit-text-size-adjust: 100%;
    }

    .admin-booking-shell {
      min-height: 100vh;
      min-height: 100dvh;
      padding: 1rem 0.85rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
    }

    .admin-booking-top {
      position: sticky;
      top: 0;
      z-index: 50;
      margin: -1rem -0.85rem 1rem;
      padding: calc(0.85rem + env(safe-area-inset-top, 0px)) calc(0.85rem + env(safe-area-inset-right, 0px)) 0.65rem calc(0.85rem + env(safe-area-inset-left, 0px));
      background: rgba(237, 228, 224, 0.96);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid rgba(166, 127, 122, 0.18);
    }

    .admin-booking-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.35rem;
      font-weight: 700;
      line-height: 1.2;
      color: var(--color-title);
      margin: 0 0 0.35rem;
    }

    .admin-booking-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 0.65rem 1rem;
      margin: 0;
      font-size: 0.82rem;
    }

    .admin-booking-meta-link {
      color: var(--color-accent);
      text-decoration: none;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
    }

    .admin-booking-meta-link:hover {
      text-decoration: underline;
    }

    .admin-booking-alert {
      margin-bottom: 1rem;
      padding: 0.85rem 1rem;
      border-radius: 0.5rem;
      font-size: 0.92rem;
      line-height: 1.45;
    }

    .admin-booking-alert--success {
      background: #dcfce7;
      color: #166534;
    }

    .admin-booking-alert--error {
      background: #fee2e2;
      color: #991b1b;
    }

    .admin-booking-nav-wrap {
      margin-bottom: 1.25rem;
    }

    .admin-booking-nav-jump {
      display: block;
      margin-bottom: 0.85rem;
    }

    .admin-booking-nav-jump-label {
      display: block;
      font-size: 0.68rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--color-detail);
      margin-bottom: 0.35rem;
    }

    .admin-booking-nav-jump-select {
      width: 100%;
      min-height: 48px;
      font-size: 0.92rem;
    }

    .admin-booking-nav {
      display: none;
      gap: 1rem;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x proximity;
      padding-bottom: 0.35rem;
      scrollbar-width: none;
    }

    .admin-booking-nav-group {
      flex: 0 0 auto;
      scroll-snap-align: start;
      min-width: min(100%, 11rem);
      padding: 0.65rem 0.75rem;
      border-radius: 0.65rem;
      background: rgba(255, 255, 255, 0.45);
      border: 1px solid rgba(166, 127, 122, 0.15);
    }

    .admin-booking-nav-group.is-active-group {
      border-color: rgba(166, 127, 122, 0.35);
      background: rgba(255, 255, 255, 0.72);
    }

    .admin-booking-nav-group-label {
      margin: 0 0 0.45rem;
      font-size: 0.65rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: var(--color-detail);
    }

    .admin-booking-nav-group-links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem;
    }

    .admin-booking-section-head {
      margin-bottom: 1.15rem;
    }

    .admin-booking-section-kicker {
      margin: 0 0 0.2rem;
      font-size: 0.68rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: var(--color-accent);
    }

    .admin-booking-section-title {
      margin: 0 0 0.35rem;
      font-family: 'Montserrat', sans-serif;
      font-size: 1.35rem;
      font-weight: 700;
      line-height: 1.25;
      color: var(--color-title);
    }

    .admin-booking-section-desc {
      margin: 0;
      font-size: 0.9rem;
      line-height: 1.5;
      color: var(--color-detail);
      max-width: 42rem;
    }

    .admin-booking-hint {
      max-width: 42rem;
    }

    .admin-reviews-sync-bar {
      display: flex;
      flex-direction: column;
      gap: 1rem;
    }

    .admin-review-card.is-dimmed {
      opacity: 0.82;
    }

    .admin-review-badges {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.4rem 0.65rem;
      margin-bottom: 0.5rem;
    }

    .admin-review-badge {
      display: inline-flex;
      align-items: center;
      padding: 0.2rem 0.55rem;
      border-radius: 999px;
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    .admin-review-badge.is-visible {
      background: #dcfce7;
      color: #166534;
    }

    .admin-review-badge.is-hidden {
      background: #f3f4f6;
      color: #4b5563;
    }

    .admin-review-badge.is-source {
      background: rgba(166, 127, 122, 0.15);
      color: var(--color-title);
    }

    .admin-review-text {
      line-height: 1.5;
    }

    .admin-logs-toolbar {
      margin-bottom: 1rem;
    }

    .admin-logs-filter {
      max-width: 20rem;
      margin-bottom: 0.65rem;
    }

    .admin-logs-meta {
      margin: 0;
    }

    .admin-logs-layout {
      display: grid;
      gap: 1rem;
    }

    .admin-logs-files-title,
    .admin-logs-view-title {
      margin: 0 0 0.85rem;
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-title);
    }

    .admin-logs-file-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
    }

    .admin-logs-file-list li {
      display: flex;
      align-items: stretch;
      gap: 0.35rem;
    }

    .admin-logs-file-link {
      flex: 1;
      display: block;
      padding: 0.6rem 0.7rem;
      border-radius: 0.5rem;
      border: 1px solid rgba(166, 127, 122, 0.16);
      text-decoration: none;
      background: rgba(255, 255, 255, 0.35);
      min-width: 0;
    }

    .admin-logs-file-link.is-active {
      border-color: var(--color-accent);
      background: rgba(255, 255, 255, 0.72);
    }

    .admin-logs-file-name {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--color-title);
      word-break: break-all;
    }

    .admin-logs-file-badge {
      font-size: 0.62rem;
      font-weight: 700;
      text-transform: uppercase;
      padding: 0.1rem 0.4rem;
      border-radius: 999px;
      background: #dcfce7;
      color: #166534;
    }

    .admin-logs-file-meta {
      display: block;
      margin-top: 0.2rem;
      font-size: 0.72rem;
      color: var(--color-detail);
    }

    .admin-logs-delete-btn {
      flex: 0 0 2.5rem;
      min-height: 44px;
      border: 1px solid rgba(198, 85, 85, 0.35);
      border-radius: 0.5rem;
      background: transparent;
      color: #b91c1c;
      font-size: 1.25rem;
      line-height: 1;
      cursor: pointer;
    }

    .admin-logs-bulk {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid rgba(166, 127, 122, 0.12);
    }

    .admin-logs-view-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      margin-bottom: 0.75rem;
    }

    .admin-logs-raw-toggle {
      color: var(--color-accent);
      text-decoration: none;
      white-space: nowrap;
    }

    .admin-logs-raw-toggle:hover {
      text-decoration: underline;
    }

    .admin-logs-count {
      margin: 0 0 0.65rem;
    }

    .admin-log-entries {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 0.3rem;
      max-height: min(70vh, 42rem);
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }

    .admin-log-entry {
      border-radius: 0.45rem;
      border: 1px solid rgba(166, 127, 122, 0.14);
      background: rgba(255, 255, 255, 0.38);
    }

    .admin-log-entry-summary {
      list-style: none;
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
      padding: 0.45rem 0.55rem;
      cursor: pointer;
      min-height: 36px;
    }

    .admin-log-entry-summary::-webkit-details-marker {
      display: none;
    }

    .admin-log-entry-badge {
      flex: 0 0 auto;
      min-width: 1.65rem;
      text-align: center;
      font-size: 0.68rem;
      font-weight: 800;
      line-height: 1.5;
      border-radius: 0.3rem;
      padding: 0 0.25rem;
    }

    .admin-log-entry.is-ok .admin-log-entry-badge {
      background: #dcfce7;
      color: #166534;
    }

    .admin-log-entry.is-fail .admin-log-entry-badge {
      background: #fee2e2;
      color: #991b1b;
    }

    .admin-log-entry.is-warn .admin-log-entry-badge {
      background: #fef3c7;
      color: #92400e;
    }

    .admin-log-entry.is-info .admin-log-entry-badge {
      background: #f3f4f6;
      color: #4b5563;
    }

    .admin-log-entry-text {
      flex: 1;
      font-size: 0.78rem;
      line-height: 1.4;
      color: var(--color-title);
      word-break: break-word;
    }

    .admin-log-entry-detail {
      margin: 0;
      padding: 0.5rem 0.65rem 0.65rem;
      border-top: 1px solid rgba(166, 127, 122, 0.1);
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 0.72rem;
      line-height: 1.45;
      color: var(--color-detail);
      white-space: pre-wrap;
      word-break: break-word;
    }

    .admin-logs-pre--raw {
      max-height: min(70vh, 42rem);
    }

    .admin-logs-pre {
      margin: 0;
      padding: 0.85rem;
      border-radius: 0.5rem;
      background: #1e1b19;
      color: #f5ebe6;
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
      font-size: 0.72rem;
      line-height: 1.45;
      white-space: pre-wrap;
      word-break: break-word;
      max-height: min(70vh, 42rem);
      overflow: auto;
      -webkit-overflow-scrolling: touch;
    }

    .admin-booking-nav::-webkit-scrollbar {
      display: none;
    }

    .admin-booking-nav-link {
      flex: 0 0 auto;
      scroll-snap-align: start;
      white-space: nowrap;
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      padding: 0.55rem 0.9rem;
      border-radius: 999px;
      font-size: 0.82rem;
      font-weight: 600;
      text-decoration: none;
      color: var(--color-title);
      background: var(--color-section);
      border: 1px solid rgba(166, 127, 122, 0.2);
      transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    }

    .admin-booking-nav-link.is-active {
      background: var(--color-title);
      color: white;
      border-color: var(--color-title);
    }

    .admin-booking .panel-card {
      padding: 1.1rem;
    }

    .admin-booking .form-field {
      min-height: 48px;
    }

    .admin-booking .panel-card > .btn-primary,
    .admin-booking .panel-card > .btn-outline,
    .admin-booking .panel-card form > .btn-primary,
    .admin-booking .panel-card form > .btn-outline {
      width: 100%;
      text-align: center;
      min-height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }

    .admin-action-bar {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }

    .admin-action-form {
      margin: 0;
      width: 100%;
    }

    .admin-action-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      min-height: 44px;
      padding: 0.65rem 1rem;
      border-radius: 0.45rem;
      border: 1px solid rgba(166, 127, 122, 0.35);
      background: white;
      color: var(--color-accent);
      font-size: 0.88rem;
      font-weight: 600;
      text-decoration: none;
      cursor: pointer;
      transition: background 0.2s ease, border-color 0.2s ease;
    }

    .admin-action-btn:hover {
      background: rgba(166, 127, 122, 0.08);
      border-color: var(--color-accent);
    }

    .admin-action-btn--danger {
      color: #b42318;
      border-color: rgba(180, 35, 24, 0.25);
      background: rgba(180, 35, 24, 0.04);
    }

    .admin-action-btn--danger:hover {
      background: rgba(180, 35, 24, 0.1);
      border-color: rgba(180, 35, 24, 0.45);
    }

    .admin-contact-link {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
      color: var(--color-accent);
      text-decoration: none;
      word-break: break-all;
    }

    .admin-contact-link:hover {
      text-decoration: underline;
    }

    .admin-calendar-event-contact {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
    }

    .admin-list-item {
      border: 1px solid rgba(166, 127, 122, 0.25);
      border-radius: 0.65rem;
      padding: 1rem;
      background: white;
    }

    .admin-list-item--row {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      padding: 0.85rem 0;
      border: 0;
      border-bottom: 1px solid rgba(166, 127, 122, 0.15);
      border-radius: 0;
      background: transparent;
    }

    .admin-hours-row {
      display: grid;
      gap: 0.65rem;
      padding-bottom: 0.85rem;
      margin-bottom: 0.85rem;
      border-bottom: 1px solid rgba(166, 127, 122, 0.15);
    }

    .admin-hours-day {
      font-weight: 600;
      color: var(--color-title);
    }

    .admin-hours-controls {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }

    .admin-hours-status {
      flex-shrink: 0;
    }

    .admin-hours-closed {
      display: flex;
      align-items: flex-start;
      gap: 0.65rem;
      margin: 0;
      padding: 0.8rem 0.95rem;
      border: 1px solid rgba(180, 35, 24, 0.22);
      border-radius: 0.65rem;
      background: rgba(180, 35, 24, 0.04);
      cursor: pointer;
      min-height: 44px;
    }

    .admin-hours-closed:has(input:checked) {
      border-color: rgba(180, 35, 24, 0.45);
      background: rgba(180, 35, 24, 0.1);
    }

    .admin-hours-closed input[type=checkbox] {
      margin-top: 0.15rem;
      flex-shrink: 0;
      width: 1.05rem;
      height: 1.05rem;
      accent-color: #b42318;
    }

    .admin-hours-closed-text {
      display: flex;
      flex-direction: column;
      gap: 0.15rem;
      line-height: 1.35;
    }

    .admin-hours-closed-text strong {
      font-size: 0.92rem;
      font-weight: 600;
      color: var(--color-title);
    }

    .admin-hours-closed-text small {
      font-size: 0.78rem;
      color: var(--color-detail);
    }

    .admin-hours-times {
      padding: 0.85rem 0.95rem;
      border: 1px solid rgba(166, 127, 122, 0.28);
      border-radius: 0.65rem;
      background: rgba(255, 255, 255, 0.85);
    }

    .admin-hours-times-label {
      display: block;
      font-size: 0.68rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--color-detail);
      margin-bottom: 0.55rem;
    }

    .admin-hours-times-fields {
      display: flex;
      flex-direction: column;
      gap: 0.55rem;
    }

    .admin-hours-controls:has(.admin-hours-closed input:checked) .admin-hours-times {
      opacity: 0.42;
      pointer-events: none;
    }

    .admin-hours-time-group {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.45rem;
    }

    .admin-hours-input {
      width: 4.25rem !important;
      min-height: 44px;
      text-align: center;
    }

    .admin-booking input[type=number].admin-hours-input::-webkit-outer-spin-button,
    .admin-booking input[type=number].admin-hours-input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

    .admin-booking input[type=number].admin-hours-input {
      -moz-appearance: textfield;
      appearance: textfield;
    }

    .admin-service-delete {
      margin-top: 0.75rem;
    }

    .admin-services-add {
      margin-bottom: 1rem;
    }

    .admin-services-add-summary,
    .admin-services-category-summary,
    .admin-service-summary {
      list-style: none;
      cursor: pointer;
    }

    .admin-services-add-summary::-webkit-details-marker,
    .admin-services-category-summary::-webkit-details-marker,
    .admin-service-summary::-webkit-details-marker {
      display: none;
    }

    .admin-services-add-summary {
      font-weight: 600;
      color: var(--color-title);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
      padding: 0.15rem 0;
    }

    .admin-services-add-summary::after,
    .admin-services-category-summary::after {
      content: '+';
      font-size: 1.2rem;
      line-height: 1;
      color: var(--color-accent);
      flex-shrink: 0;
    }

    .admin-services-add[open] .admin-services-add-summary::after,
    .admin-services-category[open] .admin-services-category-summary::after {
      content: '−';
    }

    .admin-services-add-form {
      margin-top: 1rem;
      padding-top: 1rem;
      border-top: 1px solid rgba(166, 127, 122, 0.15);
    }

    .admin-services-count {
      margin: 0 0 1rem;
    }

    .admin-services-categories {
      display: grid;
      gap: 0.85rem;
    }

    .admin-services-category-summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.75rem;
    }

    .admin-services-category-title {
      font-size: 1.05rem;
      font-weight: 700;
      color: var(--color-title);
    }

    .admin-services-category-count {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 1.65rem;
      height: 1.65rem;
      padding: 0 0.45rem;
      border-radius: 999px;
      font-size: 0.75rem;
      font-weight: 700;
      background: rgba(166, 127, 122, 0.15);
      color: var(--color-title);
    }

    .admin-services-category-body {
      margin-top: 0.85rem;
      padding-top: 0.85rem;
      border-top: 1px solid rgba(166, 127, 122, 0.12);
    }

    .admin-services-subgroup {
      margin: 0 0 0.5rem;
      font-size: 0.72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      color: var(--color-accent);
    }

    .admin-services-subgroup:not(:first-child) {
      margin-top: 1rem;
    }

    .admin-services-list {
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
    }

    .admin-service-item {
      border: 1px solid rgba(166, 127, 122, 0.16);
      border-radius: 0.55rem;
      background: rgba(255, 255, 255, 0.42);
      overflow: hidden;
    }

    .admin-service-item.is-inactive {
      opacity: 0.72;
    }

    .admin-service-summary {
      display: flex;
      flex-direction: column;
      gap: 0.35rem;
      padding: 0.65rem 0.75rem;
      min-height: 44px;
    }

    .admin-service-summary-main {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.55rem;
      min-width: 0;
    }

    .admin-service-name {
      font-weight: 600;
      color: var(--color-title);
      line-height: 1.35;
    }

    .admin-service-tag {
      display: inline-flex;
      padding: 0.1rem 0.45rem;
      border-radius: 999px;
      font-size: 0.68rem;
      font-weight: 700;
      background: rgba(166, 127, 122, 0.12);
      color: var(--color-detail);
    }

    .admin-service-summary-meta {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.5rem 0.85rem;
      font-size: 0.82rem;
      color: var(--color-detail);
    }

    .admin-service-price {
      font-weight: 700;
      color: var(--color-accent);
    }

    .admin-service-status {
      font-size: 0.68rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      padding: 0.12rem 0.45rem;
      border-radius: 999px;
    }

    .admin-service-status.is-on {
      background: #dcfce7;
      color: #166534;
    }

    .admin-service-status.is-off {
      background: #f3f4f6;
      color: #6b7280;
    }

    .admin-service-edit {
      padding: 0 0.75rem 0.75rem;
      border-top: 1px solid rgba(166, 127, 122, 0.1);
    }

    .admin-service-item:not([open]) .admin-service-edit {
      display: none;
    }

    .admin-service-item[open] .admin-service-edit {
      padding-top: 0.75rem;
    }

    .admin-services-label {
      display: block;
      font-size: 0.68rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      color: var(--color-detail);
      margin-bottom: 0.3rem;
    }

    .admin-services-form-grid {
      display: grid;
      gap: 0.75rem;
      grid-template-columns: 1fr;
    }

    .admin-services-field-check {
      display: flex;
      align-items: flex-end;
      min-height: 48px;
    }

    .admin-booking .booking-calendar-nav {
      width: 2.75rem;
      height: 2.75rem;
      flex-shrink: 0;
    }

    @media (max-width: 639px) {
      .admin-booking .form-field,
      .admin-booking select.form-field,
      .admin-booking textarea.form-field {
        font-size: 16px;
      }

      .admin-booking .admin-hours-input {
        width: 3.35rem !important;
      }

      .admin-calendar-day {
        min-height: 3.1rem;
        padding: 0.3rem 0.2rem;
        align-items: center;
      }

      .admin-calendar-day-num {
        font-size: 0.82rem;
        width: 100%;
        text-align: center;
      }

      .admin-calendar-day-meta {
        font-size: 0.52rem;
        width: 100%;
        text-align: center;
        letter-spacing: 0;
      }

      .admin-calendar-grid,
      .booking-calendar-weekdays {
        gap: 0.2rem;
      }

      .booking-calendar-weekdays span {
        font-size: 0.58rem;
      }

      .admin-calendar-event {
        grid-template-columns: 1fr;
        padding: 0.85rem;
      }

      .admin-calendar-unavailability {
        grid-template-columns: 1fr;
        padding: 0.85rem;
      }

      .admin-calendar-event-time {
        flex-direction: row;
        align-items: baseline;
        gap: 0.4rem;
        padding-bottom: 0.35rem;
        border-bottom: 1px solid rgba(166, 127, 122, 0.12);
      }

      .admin-calendar-unavailability .admin-calendar-event-time {
        border-bottom-color: rgba(180, 120, 80, 0.2);
      }

      .admin-calendar-day-panel h2 {
        font-size: 1.1rem;
        line-height: 1.35;
      }
    }

    @media (min-width: 640px) {
      .admin-booking-shell {
        padding: 1.5rem 1.25rem 3rem;
      }

      .admin-booking-top {
        margin: -1.5rem -1.25rem 1.25rem;
        padding: 1.25rem 1.25rem 0.85rem;
        position: static;
        backdrop-filter: none;
        border-bottom: 0;
      }

      .admin-booking-title {
        font-size: 1.85rem;
      }

      .admin-booking-nav-jump {
        display: none;
      }

      .admin-booking-nav {
        display: flex;
        flex-wrap: wrap;
        overflow: visible;
        gap: 0.85rem 1rem;
      }

      .admin-booking-nav-group {
        min-width: auto;
        flex: 1 1 auto;
      }

      .admin-booking-section-title {
        font-size: 1.5rem;
      }

      .admin-logs-layout {
        grid-template-columns: minmax(14rem, 22rem) minmax(0, 1fr);
        align-items: start;
      }

      .admin-services-categories {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: start;
      }

      .admin-services-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .admin-services-field-span-2 {
        grid-column: span 2;
      }

      .admin-service-summary {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
      }

      .admin-service-summary-meta {
        justify-content: flex-end;
        flex-shrink: 0;
      }

      .admin-reviews-sync-bar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
      }

      .admin-booking .panel-card {
        padding: 1.75rem;
      }

      .admin-booking-form-actions {
        flex-direction: row;
      }

      .admin-booking-form-actions .btn-primary,
      .admin-booking-form-actions .btn-outline,
      .admin-booking .panel-card > .btn-primary,
      .admin-booking .panel-card > .btn-outline,
      .admin-booking .panel-card form > .btn-primary,
      .admin-booking .panel-card form > .btn-outline {
        width: auto;
      }

      .admin-action-bar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
      }

      .admin-action-form,
      .admin-action-btn {
        width: auto;
        min-width: 7.5rem;
      }

      .admin-calendar-event-contact {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.35rem 0.85rem;
        align-items: center;
      }

      .admin-contact-link {
        min-height: auto;
        word-break: normal;
      }

      .admin-list-item--row {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
      }

      .admin-hours-row {
        grid-template-columns: 7.5rem 1fr;
        align-items: start;
        gap: 1rem;
      }

      .admin-hours-times-fields {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.75rem 1rem;
      }
    }

    /* ——— Modale de confirmation ——— */
    .confirm-modal {
      position: fixed;
      inset: 0;
      z-index: 10000;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 1rem;
      padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.2s ease, visibility 0.2s ease;
    }

    .confirm-modal.is-open {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }

    .confirm-modal-backdrop {
      position: absolute;
      inset: 0;
      background: rgba(61, 53, 56, 0.45);
      backdrop-filter: blur(2px);
    }

    .confirm-modal-panel {
      position: relative;
      width: min(100%, 24rem);
      padding: 1.35rem 1.25rem 1.15rem;
      border-radius: 0.85rem;
      background: var(--color-section);
      border: 1px solid rgba(166, 127, 122, 0.25);
      box-shadow: 0 18px 45px rgba(61, 53, 56, 0.22);
      transform: translateY(8px) scale(0.98);
      transition: transform 0.2s ease;
    }

    .confirm-modal.is-open .confirm-modal-panel {
      transform: translateY(0) scale(1);
    }

    .confirm-modal-title {
      margin: 0 0 0.65rem;
      font-family: 'Montserrat', sans-serif;
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--color-title);
    }

    .confirm-modal-message {
      margin: 0 0 1.25rem;
      font-size: 0.95rem;
      line-height: 1.5;
      color: var(--color-detail);
    }

    .confirm-modal-actions {
      display: flex;
      flex-direction: column-reverse;
      gap: 0.55rem;
    }

    .confirm-modal-btn {
      min-height: 48px;
      padding: 0.65rem 1rem;
      border-radius: 0.5rem;
      font-size: 0.92rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    }

    .confirm-modal-btn--ghost {
      border: 1px solid rgba(166, 127, 122, 0.35);
      background: white;
      color: var(--color-title);
    }

    .confirm-modal-btn--ghost:hover {
      background: rgba(166, 127, 122, 0.08);
    }

    .confirm-modal-btn--primary {
      border: 1px solid var(--color-accent);
      background: var(--color-accent);
      color: var(--color-button-text);
    }

    .confirm-modal-btn--primary:hover {
      filter: brightness(0.96);
    }

    .confirm-modal-btn--primary.confirm-modal-btn--danger {
      border-color: #b42318;
      background: #b42318;
      color: white;
    }

    .confirm-modal-btn--primary.confirm-modal-btn--danger:hover {
      filter: brightness(0.94);
    }

    body.confirm-modal-open {
      overflow: hidden;
    }

    .booking-privacy-consent {
      display: flex;
      align-items: flex-start;
      gap: 0.65rem;
      font-size: 0.82rem;
      line-height: 1.5;
      color: var(--color-detail);
      cursor: pointer;
    }

    .booking-privacy-consent-input {
      margin-top: 0.2rem;
      width: 1rem;
      height: 1rem;
      flex-shrink: 0;
      accent-color: var(--color-accent);
    }

    .privacy-page {
      padding: 1.5rem 1.25rem;
    }

    .privacy-heading {
      font-family: 'Montserrat', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--color-title);
      margin: 0 0 0.65rem;
    }

    .privacy-list {
      margin: 0.65rem 0 0.65rem 1.1rem;
      padding: 0;
      list-style: disc;
    }

    .privacy-list li + li {
      margin-top: 0.35rem;
    }

    .privacy-link {
      color: var(--color-accent);
      text-decoration: underline;
    }

    .privacy-link:hover {
      text-decoration: none;
    }

    @media (min-width: 640px) {
      .privacy-page {
        padding: 2rem 2.25rem;
      }
    }

    @media (min-width: 480px) {
      .confirm-modal-actions {
        flex-direction: row;
        justify-content: flex-end;
      }

      .confirm-modal-btn {
        min-width: 7rem;
      }
    }
