:root {
  --bg: #f5efe7;
  --surface: #fffaf5;
  --surface-2: #f3e8da;
  --text: #2c2119;
  --text-soft: #6b5d50;
  --line: #e6d7c3;
  --accent: #d9a76d;
  --accent-hover: #c89458;
  --accent-soft: #efd4b1;
  --brand-deep: #2f2116;
  --radius-lg: 18px;
  --radius-md: 14px;
  --shadow-soft: 0 14px 30px rgba(66, 38, 17, 0.11);
  --shadow-card: 0 10px 20px rgba(66, 38, 17, 0.09);
  --container: 1160px;
}

* {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  font-family: "Inter", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at top right, #fcf3e7 0%, transparent 35%),
    radial-gradient(circle at bottom left, #efdfc9 0%, transparent 42%),
    var(--bg);
  line-height: 1.55;
}

img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

figure {
  margin: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

.site-header,
footer {
  width: min(100% - 2rem, var(--container));
  margin-inline: auto;
}

main {
  flex: 1 0 auto;
  width: 100%;
  margin-inline: 0;
  padding-block: clamp(1.25rem, 3vw, 2.2rem) clamp(3rem, 8vw, 5rem);
}

main > section {
  width: min(100% - 2rem, var(--container));
  margin-inline: auto;
  padding-block: clamp(2.25rem, 5.4vw, 4.2rem);
}

main > .mini-hero {
  padding-block: clamp(1.1rem, 3vw, 1.8rem);
}

.mini-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: clamp(1.25rem, 3.4vw, 2rem) clamp(1.1rem, 3.2vw, 2rem);
  background:
    radial-gradient(760px 300px at 94% 86%, rgba(214, 170, 116, 0.12) 0%, rgba(214, 170, 116, 0) 76%),
    radial-gradient(520px 220px at 74% 18%, rgba(255, 250, 240, 0.7) 0%, rgba(255, 250, 240, 0) 78%),
    linear-gradient(118deg, #f9f4ec 0%, #f5ebde 52%, #efd9bf 100%);
  box-shadow: 0 16px 30px rgba(66, 38, 17, 0.08);
}

.mini-hero > * {
  position: relative;
  z-index: 1;
}

.mini-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(680px 240px at 14% 22%, rgba(255, 253, 248, 0.36) 0%, rgba(255, 253, 248, 0) 72%),
    linear-gradient(92deg, rgba(255, 252, 246, 0.48) 0%, rgba(255, 252, 246, 0.22) 42%, rgba(255, 252, 246, 0) 72%);
}

h1,
h2 {
  margin: 0 0 1rem;
  font-family: "Cormorant Garamond", serif;
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: 0.01em;
}

h1 {
  font-size: clamp(2rem, 5.8vw, 4rem);
}

h2 {
  font-size: clamp(1.8rem, 4.4vw, 3.2rem);
}

h3 {
  margin: 0 0 0.65rem;
  font-size: clamp(1.1rem, 2.2vw, 1.55rem);
  line-height: 1.3;
}

p {
  margin: 0 0 1rem;
  color: var(--text-soft);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 2px solid var(--accent-hover);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(205, 149, 81, 0.24);
}

/* Skip link */
body > a[href="#main-content"] {
  position: absolute;
  top: -100%;
  left: 0.75rem;
  z-index: 999;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.65rem 0.85rem;
  color: var(--text);
}

body > a[href="#main-content"]:focus {
  top: 0.75rem;
}

/* Header */
.site-header {
  position: sticky;
  top: 0.8rem;
  z-index: 100;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8rem;
  align-items: center;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(230, 215, 195, 0.95);
  border-radius: 18px;
  background: rgba(255, 250, 245, 0.9);
  backdrop-filter: blur(12px);
  box-shadow: 0 12px 28px rgba(66, 38, 17, 0.14);
  margin-top: 0.75rem;
}

.site-branding a {
  display: inline-block;
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.65rem, 3.2vw, 2.15rem);
  font-weight: 600;
  white-space: nowrap;
  color: var(--brand-deep);
}

.site-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.site-notifications {
  position: relative;
}

.site-notifications__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.55rem 0.8rem;
  border-radius: 999px;
}

.site-notifications__icon {
  font-size: 1rem;
}

.site-notifications__label {
  font-weight: 700;
}

.site-notifications__count {
  min-width: 1.5rem;
  min-height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #bf7f42;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
}

.site-notifications__count.is-empty {
  background: #eadac5;
  color: #6b553f;
}

.site-notifications__panel {
  position: absolute;
  top: calc(100% + 0.6rem);
  right: 0;
  width: min(92vw, 360px);
  padding: 0.9rem;
  border-radius: 18px;
  border: 1px solid #dec4a3;
  background: rgba(255, 249, 241, 0.98);
  box-shadow: 0 20px 38px rgba(66, 38, 17, 0.16);
  z-index: 30;
}

.site-notifications__panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.8rem;
}

.site-notifications__list {
  display: grid;
  gap: 0.65rem;
  max-height: 23rem;
  overflow: auto;
}

.site-notifications__item {
  position: relative;
  padding: 0.8rem;
  border-radius: 14px;
  border: 1px solid #e4d0b8;
  background: #fffdf9;
}

.site-notifications__item.is-read {
  opacity: 0.72;
}

.site-notifications__item-link {
  display: block;
  color: inherit;
  padding-right: 1.4rem;
}

.site-notifications__delete {
  position: absolute;
  top: 0.45rem;
  right: 0.45rem;
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border-radius: 999px;
  border: 1px solid #dfc09a;
  background: #fff6ec;
  color: #73461f;
  font-size: 1rem;
  line-height: 1;
  box-shadow: none;
}

.site-notifications__item-title,
.site-notifications__item-message,
.site-notifications__item-date,
.site-notifications__empty {
  margin: 0;
}

.site-notifications__item-title {
  font-weight: 700;
  color: #2c2119;
}

.site-notifications__item-message {
  margin-top: 0.22rem;
  color: #5f4a39;
}

.site-notifications__item-date {
  margin-top: 0.4rem;
  font-size: 0.8rem;
  color: #8b7156;
}

.site-header nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
}

.site-header nav a {
  display: inline-block;
  font-weight: 500;
  font-size: 0.98rem;
  color: #3f2f20;
  border-bottom: 1px solid transparent;
  padding: 0.3rem 0;
}

.site-header nav a:hover,
.site-header nav a.is-active {
  color: var(--brand-deep);
  border-color: color-mix(in srgb, var(--accent) 70%, transparent);
}

.site-header > a:last-child,
.hero-cta a,
.service-card p:last-child a,
button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.68rem 1.25rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 1rem;
  font-weight: 600;
  transition: transform 0.2s ease, background-color 0.22s ease, box-shadow 0.22s ease;
}

.site-header > a:last-child,
.hero-cta a:first-child,
.service-card p:last-child a,
button {
  background: var(--accent);
  color: #fffdfd;
  box-shadow: 0 10px 22px rgba(201, 148, 88, 0.28);
}

.site-header > a:last-child:hover,
.hero-cta a:first-child:hover,
.service-card p:last-child a:hover,
button:hover {
  background: var(--accent-hover);
  transform: translateY(-1px);
}

.hero-cta a:last-child {
  background: var(--surface);
  color: #584331;
  border-color: var(--line);
  box-shadow: var(--shadow-soft);
}

.hero-cta a:last-child:hover {
  background: #fbf1e3;
}

/* Hero */
.hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 30px;
  width: min(100% - 2rem, var(--container));
  margin: 0 auto;
  padding: clamp(1.2rem, 3vw, 1.8rem);
  min-height: clamp(330px, 44vh, 520px);
  display: flex;
  align-items: center;
  background:
    radial-gradient(1500px 760px at 96% 90%, rgba(214, 170, 116, 0.08) 0%, rgba(214, 170, 116, 0) 82%),
    radial-gradient(920px 460px at 76% 20%, rgba(255, 248, 235, 0.62) 0%, rgba(255, 248, 235, 0) 78%),
    linear-gradient(118deg, #f8f2ea 0%, #f3e8d9 46%, #edd5b6 100%);
  box-shadow: 0 24px 44px rgba(66, 38, 17, 0.12);
}

main > section.hero {
  width: min(100% - 2rem, var(--container));
  max-width: var(--container);
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(980px 520px at 18% 26%, rgba(255, 253, 248, 0.52) 0%, rgba(255, 253, 248, 0) 74%),
    linear-gradient(95deg, rgba(255, 253, 248, 0.74) 0%, rgba(255, 250, 242, 0.48) 40%, rgba(255, 250, 242, 0.16) 64%, rgba(255, 250, 242, 0) 82%);
}

.hero::after {
  content: "";
  position: absolute;
  inset: auto -14% -40% auto;
  width: clamp(300px, 40vw, 640px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(226, 184, 128, 0.14) 0%, rgba(226, 184, 128, 0.08) 40%, rgba(226, 184, 128, 0) 82%);
  filter: blur(5px);
  pointer-events: none;
}

.hero-inner {
  width: 100%;
  margin-inline: auto;
}

.hero--home {
  background:
    radial-gradient(120% 120% at 0% 0%, rgba(248, 223, 191, 0.46) 0%, rgba(248, 223, 191, 0) 56%),
    radial-gradient(120% 120% at 100% 100%, rgba(224, 190, 144, 0.2) 0%, rgba(224, 190, 144, 0) 58%);
}

.hero-inner--home {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: min(700px, 100%);
  padding: clamp(0.75rem, 2.2vw, 1.3rem) 0;
}

.hero .eyebrow {
  margin: 0 0 1rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.74rem;
  font-weight: 600;
  color: #b8864c;
}

.mini-hero > p:first-child {
  margin: 0 0 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.78rem;
  font-weight: 600;
  color: #b8864c;
}

.mini-hero h1 {
  margin: 0;
  color: #3a2a1d;
}

.mini-hero p:last-child {
  margin-top: 0.9rem;
  margin-bottom: 0;
  max-width: 64ch;
  color: #665344;
}

.hero h1 {
  margin: 0;
  max-width: 12ch;
  color: #3b2a1c;
  text-shadow: 0 4px 10px rgba(255, 252, 247, 0.35);
}

.hero-content > p:not(.eyebrow):not(.hero-cta) {
  margin-top: 1rem;
  margin-bottom: 0;
  max-width: 52ch;
  color: #6a513a;
  text-shadow: none;
}

.hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.9rem;
  margin-bottom: 0;
}

.hero-panel {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(221, 190, 154, 0.95);
  border-radius: 26px;
  padding: clamp(1rem, 2.6vw, 1.4rem);
  background:
    radial-gradient(120% 120% at 100% 0%, rgba(216, 170, 112, 0.18) 0%, rgba(216, 170, 112, 0) 60%),
    linear-gradient(180deg, rgba(255, 252, 247, 0.96) 0%, rgba(249, 239, 226, 0.92) 100%);
  box-shadow:
    0 18px 32px rgba(66, 38, 17, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.hero-panel__eyebrow {
  margin: 0 0 0.55rem;
  color: #a36d3a;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-size: 0.76rem;
  font-weight: 700;
}

.hero-panel h2 {
  margin-bottom: 0.8rem;
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
}

.hero-panel__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.75rem;
}

.hero-panel__list li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.7rem;
  align-items: start;
  padding: 0.75rem 0.8rem;
  border-radius: 16px;
  background: rgba(255, 249, 241, 0.84);
  border: 1px solid rgba(225, 203, 174, 0.9);
}

.hero-panel__list strong {
  color: #2f2116;
  font-size: 1.2rem;
  line-height: 1;
}

.hero-panel__list span {
  color: #5d4938;
  line-height: 1.5;
}

.booking-login-card {
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(248, 238, 224, 0.93));
}

@media (max-width: 1024px) {
  .hero-inner--home {
    grid-template-columns: 1fr;
  }

  .hero h1 {
    max-width: 16ch;
  }
}

@media (max-width: 700px) {
  .hero-inner--home {
    gap: 1rem;
  }

  .hero-panel {
    border-radius: 22px;
  }

  .hero-panel__list li {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}

@media (max-width: 430px) {
  .hero-panel {
    padding: 0.95rem;
  }
}

/* Prestations */
#prestations h2,
#booking h2,
section[aria-labelledby="reviews-title"] h2 {
  margin-bottom: 1.2rem;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: stretch;
}

.service-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.service-card h3 {
  font-size: 1.32rem;
  margin-bottom: 0.2rem;
  min-height: 2.6em;
}

.service-card p {
  margin: 0;
}

.service-card p:nth-of-type(1) {
  min-height: 3.2em;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.service-card p:nth-of-type(2),
.service-card p:nth-of-type(3) {
  font-size: 1.15rem;
  font-weight: 600;
  color: #4d3a2b;
}

.service-card p:last-child {
  margin-top: auto;
  margin-bottom: 0;
  padding-top: 0.3rem;
}

.service-card p:last-child a {
  width: 100%;
}

.service-card:hover {
  transform: translateY(-4px);
  border-color: #dec7ad;
  box-shadow: 0 18px 32px rgba(74, 47, 24, 0.12);
}

/* Booking */
#booking > p {
  max-width: 70ch;
}

.booking-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.05rem;
  margin-top: 1.4rem;
}

.booking-layout > section {
  background:
    linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 250, 244, 0.88) 100%);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: 0 14px 28px rgba(74, 47, 24, 0.1);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  position: relative;
  overflow: hidden;
}

.booking-layout > section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, rgba(205, 149, 81, 0.25), rgba(205, 149, 81, 0.65), rgba(205, 149, 81, 0.25));
  pointer-events: none;
}

.booking-layout > section::after {
  content: "";
  position: absolute;
  top: -120px;
  right: -120px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(217, 167, 109, 0.12) 0%, rgba(217, 167, 109, 0) 68%);
  pointer-events: none;
}

.booking-layout h3 {
  margin-bottom: 0.25rem;
  line-height: 1.2;
  font-size: clamp(1.6rem, 2vw, 2rem);
  letter-spacing: -0.01em;
}

#booking [aria-labelledby="booking-step-1"] h3,
#booking [aria-labelledby="booking-step-2"] h3,
#booking [aria-labelledby="booking-step-3"] h3 {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.3rem 0.7rem 0.34rem 0.28rem;
  border-radius: 999px;
  background: rgba(255, 250, 243, 0.7);
  border: 1px solid rgba(222, 199, 173, 0.7);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

label {
  display: block;
  margin-bottom: 0.35rem;
  color: #4e3d2f;
  font-weight: 500;
}

input,
select,
textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fffdfe;
  padding: 0.66rem 0.8rem;
  font: inherit;
  color: var(--text);
}

input:hover,
select:hover,
textarea:hover {
  border-color: #d5be9f;
}

[role="group"] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.68rem;
  align-content: start;
  margin-top: 0.25rem;
}

[role="group"] button {
  min-height: 46px;
  width: 100%;
  color: #4f3b2a;
  background: linear-gradient(180deg, #fffdfb 0%, #fff7ee 100%);
  border: 1px solid #ddc3a5;
  border-radius: 999px;
  box-shadow: 0 6px 12px rgba(74, 47, 24, 0.08);
  font-weight: 700;
  letter-spacing: 0.02em;
}

[role="group"] button:hover {
  border-color: #c78f54;
  background: linear-gradient(180deg, #fff7ec 0%, #fee8d0 100%);
  color: #8a5827;
  box-shadow: 0 10px 18px rgba(183, 125, 63, 0.16);
  transform: translateY(-1px);
}

[role="group"] button.is-active {
  color: #fff;
  border-color: #c58a4d;
  background: linear-gradient(135deg, #dba86f 0%, #c98a4f 100%);
  box-shadow: 0 12px 20px rgba(163, 102, 45, 0.28);
}

[role="group"] button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

#booking [aria-labelledby="booking-step-3"] p:last-child {
  margin-top: auto;
  margin-bottom: 0;
}

.calendar {
  border: 1px solid #e8d8c6;
  border-radius: 16px;
  background: linear-gradient(180deg, #fffaf4 0%, #f7eddf 100%);
  padding: 0.9rem;
  display: grid;
  gap: 0.7rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.calendar-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.calendar-head p {
  margin: 0;
  font-weight: 600;
  color: var(--brand-deep);
}

.calendar-nav {
  display: flex;
  gap: 0.45rem;
}

.calendar-nav .btn-small {
  min-height: 34px;
  min-width: 34px;
  padding: 0;
  border: 1px solid #dfc8ac;
  background: #fff3e4;
  color: #8e6030;
  box-shadow: none;
}

.calendar-weekdays,
.calendar-days {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.35rem;
}

.calendar-weekdays li {
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #8b7868;
}

.calendar-days button {
  min-height: 34px;
  width: 100%;
  padding: 0;
  border-radius: 10px;
  border: 1px solid #e5d6c5;
  background: #fffaf3;
  color: #4f3e2d;
  font-size: 0.9rem;
  font-weight: 600;
  box-shadow: none;
}

.calendar-days button:hover {
  border-color: var(--accent);
  color: #8d5f31;
  background: #fff1df;
}

.calendar-days .is-muted {
  color: #b5a896;
  background: #f4ede4;
}

.calendar-days .is-selected {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.calendar-days .is-blocked {
  background: #ece3d7;
  border-color: #d6c3ac;
  color: #9a8a77;
  cursor: not-allowed;
}

.calendar-days .is-blocked:hover {
  background: #ece3d7;
  border-color: #d6c3ac;
  color: #9a8a77;
}

#booking [aria-labelledby="booking-step-1"] .js-booking-selection {
  margin: 0.25rem 0 0;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(255, 251, 246, 0.95), rgba(248, 236, 220, 0.9));
  border: 1px solid rgba(224, 201, 171, 0.9);
  color: #5a4532;
  font-weight: 500;
}

#booking [aria-labelledby="booking-step-3"] {
  background:
    radial-gradient(480px 180px at 98% 4%, rgba(217, 167, 109, 0.16) 0%, rgba(217, 167, 109, 0) 74%),
    linear-gradient(180deg, rgba(255, 252, 247, 0.98) 0%, rgba(255, 247, 238, 0.96) 100%);
}

#booking [aria-labelledby="booking-step-3"] p {
  margin: 0;
  padding: 0.62rem 0.72rem;
  border-radius: 10px;
}

#booking [aria-labelledby="booking-step-3"] p.js-summary-line {
  border: 1px solid rgba(228, 210, 189, 0.8);
  background: rgba(255, 252, 247, 0.82);
}

#booking [aria-labelledby="booking-step-3"] p strong {
  color: #5a3f26;
}

#booking [aria-labelledby="booking-step-3"] p strong::after {
  content: "";
}

#booking [aria-labelledby="booking-step-3"] p:last-child {
  background: transparent;
  border: 0;
  padding: 0.75rem 0 0;
}

#booking [aria-labelledby="booking-step-3"] p.js-summary-line:last-of-type {
  background: linear-gradient(135deg, rgba(255, 240, 220, 0.92), rgba(250, 228, 197, 0.88));
  border-color: rgba(214, 170, 116, 0.7);
  color: #3d2a1a;
  font-weight: 600;
}

/* Booking condensed */
#booking .booking-layout {
  gap: 0.85rem;
}

#booking .booking-layout > section {
  padding: 1.05rem;
}

#booking [aria-labelledby="booking-step-1"] h3,
#booking [aria-labelledby="booking-step-2"] h3,
#booking [aria-labelledby="booking-step-3"] h3 {
  display: block;
  margin: 0 0 0.65rem;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: clamp(1.5rem, 1.8vw, 1.95rem);
}

#booking [aria-labelledby="booking-step-1"] > p:last-child,
#booking [aria-labelledby="booking-step-2"] > p:first-of-type {
  display: none;
}

#booking [aria-labelledby="booking-step-1"] .js-booking-selection {
  margin-top: 0.7rem;
  padding: 0.68rem 0.78rem;
  font-size: 0.98rem;
}

#booking [aria-labelledby="booking-step-3"] > p:not(:last-child) {
  display: none;
}

.js-summary-compact {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.15rem;
}

.js-summary-compact .summary-main {
  margin: 0 0 0.35rem;
  padding: 0.86rem 0.9rem;
  border-radius: 12px;
  border: 1px solid rgba(229, 208, 183, 0.9);
  background: linear-gradient(135deg, rgba(255, 251, 246, 0.96), rgba(248, 235, 217, 0.88));
  color: #3e2d20;
}

.js-summary-compact .summary-main strong {
  display: block;
  font-size: 1rem;
  line-height: 1.35;
}

.js-summary-compact .summary-main span {
  display: block;
  margin-top: 0.3rem;
  color: #7a624b;
  font-size: 0.92rem;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
  margin: 0;
  padding: 0.72rem 0.9rem;
  border-bottom: 1px solid rgba(226, 204, 178, 0.65);
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: center;
  color: #523f2f;
  font-size: 0.97rem;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row strong {
  color: #5b4128;
  font-weight: 600;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row span {
  text-align: right;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row--highlight {
  border-bottom: 0;
  margin-top: 0.12rem;
  padding: 0.86rem 0.95rem;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 238, 216, 0.96), rgba(247, 221, 184, 0.84));
  box-shadow: inset 0 0 0 1px rgba(213, 177, 132, 0.34);
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact::after {
  content: "À 24 h ou moins : modification et annulation en ligne bloquées.";
  margin-top: 0.4rem;
  color: #79624d;
  font-size: 0.88rem;
}

#booking [aria-labelledby="booking-step-3"] p:last-child {
  padding-top: 0.5rem;
}

#booking [aria-labelledby="booking-step-3"] p:last-child button {
  width: 100%;
}

@media (min-width: 1024px) {
  #booking .booking-layout {
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.75fr);
    grid-template-areas:
      "step1 step3"
      "step2 step3";
    align-items: start;
  }

  #booking [aria-labelledby="booking-step-1"] {
    grid-area: step1;
  }

  #booking [aria-labelledby="booking-step-2"] {
    grid-area: step2;
  }

  #booking [aria-labelledby="booking-step-3"] {
    grid-area: step3;
    position: sticky;
    top: 6.2rem;
  }
}

/* Reviews */
section[aria-labelledby="reviews-title"] {
  display: block;
}

.booking-payment-mode {
  margin: 0 0 0.7rem;
  padding: 0.7rem 0.75rem;
  border: 1px solid rgba(228, 210, 189, 0.9);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 252, 248, 0.94), rgba(252, 246, 239, 0.9));
}

.booking-payment-mode legend {
  padding: 0 0.25rem;
  color: #5b4128;
  font-weight: 700;
  font-size: 0.92rem;
  letter-spacing: 0.01em;
}

.booking-payment-mode__option {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.65rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid transparent;
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.booking-payment-mode__option input {
  margin: 0;
  inline-size: 0.95rem;
  block-size: 0.95rem;
  accent-color: #c88c50;
}

.booking-payment-mode__option:hover {
  border-color: rgba(206, 166, 117, 0.35);
  background: rgba(255, 249, 242, 0.86);
}

.booking-payment-mode__option:has(input:checked) {
  border-color: rgba(200, 140, 80, 0.55);
  background: linear-gradient(135deg, rgba(255, 243, 226, 0.96), rgba(249, 232, 205, 0.88));
  box-shadow: inset 0 0 0 1px rgba(214, 171, 121, 0.2);
}

.booking-payment-mode__content {
  display: grid;
  gap: 0.08rem;
}

.booking-payment-mode__content strong {
  color: #5a3f26;
  font-size: 0.98rem;
  font-weight: 700;
}

.booking-payment-mode__content small {
  color: #7b644d;
  font-size: 0.82rem;
  line-height: 1.35;
}

.booking-payment-mode__hint {
  margin: 0.4rem 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #6c5540;
  font-size: 0.84rem;
  line-height: 1.5;
}

.reviews-section {
  position: relative;
  margin-top: 7rem;
}

.reviews-heading {
  display: grid;
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.reviews-heading p {
  margin: 0;
  max-width: 66ch;
  color: #685443;
}

.reviews-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: start;
  border: 1px solid #e4d3bf;
  border-radius: 26px;
  padding: clamp(0.95rem, 2.5vw, 1.4rem);
  background:
    radial-gradient(130% 90% at 100% 0%, rgba(221, 181, 129, 0.08) 0%, rgba(221, 181, 129, 0) 68%),
    linear-gradient(180deg, rgba(255, 251, 245, 0.84) 0%, rgba(255, 248, 241, 0.8) 100%);
  box-shadow: 0 16px 34px rgba(74, 47, 24, 0.08);
}

.reviews-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.reviews-pagination {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  justify-items: center;
  padding-top: 0.35rem;
}

.reviews-pagination-side {
  min-width: 0;
}

.reviews-pagination-prev {
  justify-self: start;
}

.reviews-pagination-next {
  justify-self: end;
}

.reviews-pagination-pages {
  display: inline-flex;
  gap: 0.45rem;
  max-width: 100%;
  overflow-x: auto;
  padding: 0.08rem 0.05rem;
  scrollbar-width: none;
}

.reviews-pagination-pages::-webkit-scrollbar {
  display: none;
}

.reviews-page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  border: 1px solid #d4b894;
  background: #fffaf2;
  color: #6a4a2e;
  font-weight: 600;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.reviews-page-link:hover {
  transform: translateY(-1px);
  background: #f7ecde;
  border-color: #c99966;
}

.reviews-page-link.is-active {
  background: linear-gradient(145deg, #d9a972 0%, #c28549 100%);
  color: #fff;
  border-color: transparent;
}

.review-card {
  background: var(--surface);
  border: 1px solid #e3d1bc;
  border-radius: 20px;
  box-shadow: var(--shadow-card);
  padding: 1.25rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.review-card p:first-child {
  color: #c58a4d;
  letter-spacing: 0.12em;
  font-size: 0.95rem;
}

.review-card strong {
  color: #855c38;
}

.review-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 28px rgba(74, 47, 24, 0.12);
}

.review-empty-eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0 0 0.55rem;
  padding: 0.24rem 0.62rem;
  border-radius: 999px;
  border: 1px solid #e1c39f;
  color: #9d6b39;
  background: #fff7eb;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}

.review-card--empty p:nth-child(2) {
  margin: 0;
  font-size: 1.04rem;
  font-weight: 560;
  color: #2f2319;
}

.review-card--empty p:nth-child(3) {
  margin: 0.45rem 0 0;
  color: #6b5644;
}

.review-form-card {
  margin-top: 1rem;
  width: min(100%, 980px);
  margin-inline: auto;
  border-radius: 20px;
  border: 1px solid #e3d1bc;
  box-shadow: 0 14px 30px rgba(74, 47, 24, 0.1);
  padding: clamp(1rem, 2.4vw, 1.5rem);
}

.review-form-card h3 {
  margin-top: 0;
}

.review-form-card form {
  width: min(100%, 760px);
  margin-inline: auto;
}

.review-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0.85rem 0 0;
}

.review-form-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.52rem 0.95rem;
  border-radius: 999px;
  border: 1px solid #d7b48f;
  background: #fffaf2;
  color: #6a4a2e;
  font-weight: 600;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.review-form-actions a:hover {
  transform: translateY(-1px);
  background: #f6eadb;
  border-color: #cfa578;
}

/* Galerie (sans gros cadres) */
main > section[aria-label="Galerie photos"] {
  padding-top: clamp(1rem, 2.8vw, 1.8rem);
  background: transparent !important;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.95rem, 2.1vw, 1.35rem);
  background: transparent !important;
}

.gallery-grid.gallery-grid--public {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

@media (min-width: 761px) {
  .gallery-grid.gallery-grid--public {
    max-width: 680px;
    margin-inline: auto;
  }

  .gallery-grid--public .gallery-item--public figcaption {
    inset: auto 0.65rem 0.65rem;
    width: auto;
    max-width: none;
    min-height: calc(2.7em + 1rem);
    display: flex;
    align-items: center;
    padding: 0.5rem 0.65rem;
    border-radius: 12px;
    font-size: 0.8rem;
    line-height: 1.35;
    letter-spacing: 0.035em;
    overflow-wrap: anywhere;
  }
}

@media (min-width: 1180px) {
  .gallery-grid.gallery-grid--public {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    max-width: 1120px;
  }
}

.gallery-item {
  margin: 0;
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 18px;
  overflow: hidden;
  background: transparent;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: 0 16px 34px rgba(74, 47, 24, 0.2);
}

.gallery-item a {
  position: absolute;
  inset: 0;
  display: block;
  line-height: 0;
  border-radius: inherit;
  overflow: hidden;
  border: 1px solid rgba(234, 214, 188, 0.9);
  background: transparent;
  padding: 0 !important;
  transform: translateZ(0);
  box-shadow: inset 0 0 0 1px rgba(255, 251, 245, 0.42);
  transition: transform 0.42s ease, border-color 0.28s ease, box-shadow 0.28s ease;
}

.gallery-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center 24%;
  transform: scale(1.42);
  filter: saturate(1.03) contrast(1.02);
  transition: transform 0.55s ease, filter 0.4s ease;
  background: transparent !important;
  border: 0 !important;
}

.gallery-item a:hover img {
  transform: scale(1.5);
  filter: saturate(1.1) contrast(1.04);
}

.gallery-item a:hover {
  transform: translateY(-3px);
  border-color: rgba(208, 166, 112, 0.95);
  box-shadow:
    inset 0 0 0 1px rgba(255, 251, 245, 0.55),
    0 0 0 1px rgba(208, 166, 112, 0.24);
}

.gallery-item figcaption {
  position: absolute;
  inset: auto 0 0;
  margin: 0;
  padding: 1.3rem 0.95rem 0.75rem;
  z-index: 2;
  pointer-events: none;
  color: #fff;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
  background: linear-gradient(to top, rgba(18, 12, 8, 0.68) 0%, rgba(18, 12, 8, 0.06) 76%, transparent 100%);
  opacity: 0.96;
}

.gallery-item--public {
  min-height: 100%;
}

section[aria-label="Lightbox placeholder"] article {
  display: none;
}

section[aria-label="Lightbox placeholder"] {
  display: none;
}

.lightbox {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(0.8rem, 2.2vw, 1.5rem);
  background: rgba(22, 16, 12, 0.84);
  backdrop-filter: blur(4px);
  z-index: 9999;
}

.lightbox.is-hidden {
  display: none;
}

.lightbox-frame {
  position: relative;
  width: min(92vw, 560px);
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  overflow: hidden;
  background: transparent;
  box-shadow: 0 22px 46px rgba(0, 0, 0, 0.34);
}

.lightbox-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 24%;
  transform: scale(1.42);
  background: transparent !important;
  border: 0 !important;
}

.lightbox-caption {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  margin: 0;
  padding: 1.3rem 1rem 0.8rem;
  pointer-events: none;
  color: #fff;
  font-size: 0.84rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  background: linear-gradient(to top, rgba(18, 12, 8, 0.7) 0%, rgba(18, 12, 8, 0.1) 76%, transparent 100%);
}

.lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 10000;
  min-height: 40px;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 236, 210, 0.4);
  background: rgba(28, 20, 14, 0.72);
  color: #fff;
  box-shadow: none;
}

.lightbox-close:hover {
  background: rgba(34, 24, 16, 0.88);
}

/* Contact */
.contact-grid {
  display: grid;
  gap: 1rem;
}

.contact-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  background:
    radial-gradient(520px 180px at 92% 12%, rgba(214, 170, 116, 0.08) 0%, rgba(214, 170, 116, 0) 75%),
    linear-gradient(180deg, #fffaf5 0%, #f8efe3 100%);
  box-shadow: 0 14px 28px rgba(66, 38, 17, 0.08);
  padding: clamp(1.05rem, 2.2vw, 1.5rem);
  height: fit-content;
}

.contact-card h2 {
  margin-bottom: 0.9rem;
  color: #3a2a1d;
}

.contact-card--info ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}

.contact-card--info li {
  border: 1px solid #eadfce;
  border-radius: 14px;
  background: rgba(255, 252, 247, 0.78);
  padding: 0.75rem 0.85rem;
  color: #4d3a2a;
}

.contact-card--info li strong {
  display: inline-block;
  min-width: 88px;
  color: #6c4f34;
  font-weight: 700;
}

.contact-card--info a,
.contact-card--social a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-card--social {
  display: grid;
  gap: 0.7rem;
  align-content: start;
}

.contact-card--social p {
  margin: 0;
}

.contact-card--social a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 52px;
  padding: 0.7rem 1rem 0.7rem 1.1rem;
  border-radius: 14px;
  border: 1px solid #e2ccb0;
  background:
    linear-gradient(135deg, rgba(255, 251, 245, 0.92) 0%, rgba(252, 241, 226, 0.92) 100%);
  color: #5f462f;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  box-shadow: 0 8px 16px rgba(66, 38, 17, 0.08);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
  text-decoration: none;
}

.contact-card--social a::after {
  content: "↗";
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(200, 135, 63, 0.35);
  background: rgba(255, 252, 247, 0.88);
  color: #9b6a37;
  font-size: 0.9rem;
  line-height: 1;
}

.contact-card--social a:hover {
  transform: translateY(-2px);
  border-color: #d1ad7c;
  background:
    linear-gradient(135deg, rgba(255, 249, 240, 0.97) 0%, rgba(250, 233, 209, 0.96) 100%);
  color: #503926;
  box-shadow: 0 12px 20px rgba(175, 111, 47, 0.18);
}

.contact-card--important p {
  margin: 0 0 0.7rem;
  padding: 0.72rem 0.82rem;
  border-left: 3px solid rgba(200, 135, 63, 0.5);
  background: rgba(255, 252, 247, 0.72);
  border-radius: 10px;
  color: #5a4635;
}

.contact-card--important p:last-child {
  margin-bottom: 0;
}

.contact-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}

.contact-card__actions .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0.75rem 1.05rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
}

.contact-card--faq {
  display: grid;
  gap: 1rem;
}

.contact-faq {
  display: grid;
  gap: 0.85rem;
}

.contact-faq article {
  border: 1px solid #eadfce;
  border-radius: 16px;
  background: rgba(255, 252, 247, 0.78);
  padding: 0.95rem 1rem;
}

.contact-faq h3 {
  margin: 0 0 0.45rem;
  font-size: 1.05rem;
  color: #3a2a1d;
}

.contact-faq p {
  margin: 0;
  color: #5a4635;
}

@media (min-width: 821px) {
  .contact-faq {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}

/* Footer */
footer {
  border-top: 1px solid var(--line);
  margin-bottom: 1.25rem;
  padding: 2rem 0 0.5rem;
}

footer p:first-child {
  font-family: "Cormorant Garamond", serif;
  font-size: 1.9rem;
  color: var(--brand-deep);
  margin-bottom: 0.85rem;
}

footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1rem;
}

footer ul a:hover {
  color: var(--accent-hover);
}

/* Responsive */
@media (min-width: 700px) {
  .site-header {
    grid-template-columns: auto 1fr auto;
    padding-inline: 1.2rem;
  }

  .site-header nav {
    justify-self: center;
  }

  .site-header nav ul {
    justify-content: center;
    gap: 0.6rem 1.35rem;
  }

  .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15rem;
  }

  .booking-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 1.15rem;
  }

  .booking-layout > section {
    height: 100%;
  }

  #booking [aria-labelledby="booking-step-3"] {
    grid-column: span 2;
  }

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

  .gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
  }

  footer {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.8rem 1.2rem;
    align-items: center;
  }

  footer p:first-child {
    margin-bottom: 0;
  }

  footer ul {
    justify-content: flex-end;
  }
}

@media (min-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
  }

  .booking-layout {
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, 0.75fr);
    grid-template-areas:
      "step1 step3"
      "step2 step3";
    grid-auto-rows: auto;
    align-items: start;
  }

  #booking [aria-labelledby="booking-step-1"] {
    grid-area: step1;
  }

  #booking [aria-labelledby="booking-step-2"] {
    grid-area: step2;
  }

  #booking [aria-labelledby="booking-step-3"] {
    grid-area: step3;
    position: sticky;
    top: 6.2rem;
  }

  .reviews-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.2rem;
  }

  .gallery-item {
    margin-bottom: 0;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.15rem;
    width: min(100% - 2rem, var(--container));
    margin-inline: auto;
    align-items: start;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) > section {
    width: auto;
    margin: 0;
    padding-block: 1.2rem;
    height: auto;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) > section.mini-hero {
    grid-column: 1 / -1;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) > .contact-grid {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.15rem;
  }

  .contact-card--info {
    grid-column: 1 / span 7;
  }

  .contact-card--social {
    grid-column: 8 / -1;
  }

  .contact-card--important {
    grid-column: 1 / -1;
  }

  .contact-card--faq {
    grid-column: 1 / -1;
  }
}

@media (max-width: 430px) {
  .site-header {
    top: 0;
    width: calc(100% - 1rem);
    margin-top: 0.5rem;
    border-radius: 14px;
  }

  .site-branding a {
    white-space: normal;
    line-height: 1.05;
  }

  .hero {
    min-height: 430px;
    border-radius: 22px;
    padding: 1rem;
    background:
      radial-gradient(760px 320px at 92% 84%, rgba(214, 170, 116, 0.24) 0%, rgba(214, 170, 116, 0) 70%),
      linear-gradient(128deg, #f2e4d2 0%, #eacfac 100%);
  }

  .hero-content {
    padding: 1rem 0;
  }

  .gallery-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
  }

  .gallery-item a {
    border-radius: 14px;
  }

  .gallery-item figcaption {
    font-size: 0.75rem;
    padding: 1rem 0.72rem 0.6rem;
  }

  [role="group"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-cta a,
  .site-header > a:last-child,
  .service-card p:last-child a,
  #booking [aria-labelledby="booking-step-3"] > p:last-child > button {
    width: 100%;
  }
}

/* Design upgrade layer (non-destructive overrides) */
:root {
  --page-max: 1200px;
  --focus-ring: 0 0 0 4px rgba(205, 149, 81, 0.24);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    radial-gradient(circle at 18% 16%, rgba(255, 242, 224, 0.58) 0%, rgba(255, 242, 224, 0) 38%),
    radial-gradient(circle at 82% 86%, rgba(237, 213, 182, 0.62) 0%, rgba(237, 213, 182, 0) 40%);
}

main > section,
.site-header,
footer,
.hero {
  width: min(100% - 2rem, var(--page-max));
}

.site-header {
  border-color: rgba(226, 208, 187, 0.95);
  background: rgba(255, 250, 244, 0.82);
  box-shadow:
    0 14px 34px rgba(66, 38, 17, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.site-header.is-scrolled {
  border-color: rgba(212, 182, 149, 0.95);
  box-shadow: 0 18px 36px rgba(66, 38, 17, 0.2);
}

.site-header nav a {
  position: relative;
  border: 0;
  padding: 0.38rem 0.05rem;
}

.site-header nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.05rem;
  height: 2px;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.22s ease;
  background: linear-gradient(90deg, #d19a5d, #c68a4c);
}

.site-header nav a:hover::after,
.site-header nav a.is-active::after {
  transform: scaleX(1);
}

.hero {
  border-radius: 34px;
  min-height: clamp(360px, 48vh, 560px);
  box-shadow:
    0 30px 54px rgba(66, 38, 17, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.hero-content {
  max-width: min(760px, 100%);
}

.hero h1 {
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.hero-content > p:not(.eyebrow):not(.hero-cta) {
  font-size: clamp(1rem, 1.2vw, 1.12rem);
}

.mini-hero,
.service-card,
.review-card,
.contact-card,
.booking-layout > section {
  backdrop-filter: blur(2px);
}

.mini-hero,
.booking-layout > section,
.contact-card {
  border-color: #e4d2bd;
}

.service-card,
.review-card,
.gallery-item,
.contact-card--social a,
[role="group"] button,
.calendar-days button,
button,
.site-header > a:last-child,
.hero-cta a,
.service-card p:last-child a {
  transition-duration: 0.24s;
  transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}

.service-card {
  background:
    linear-gradient(180deg, rgba(255, 252, 248, 0.95) 0%, rgba(255, 248, 240, 0.94) 100%);
}

.service-card:hover {
  transform: translateY(-6px) scale(1.01);
}

.booking-layout > section h3,
.contact-card h2,
#prestations h2,
#booking h2,
section[aria-labelledby="reviews-title"] h2 {
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.calendar {
  border-color: #e2cdb4;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.75),
    0 12px 24px rgba(66, 38, 17, 0.08);
}

.gallery-grid {
  gap: clamp(0.9rem, 2vw, 1.4rem);
}

.gallery-item {
  border-radius: 20px;
  box-shadow:
    0 18px 38px rgba(66, 38, 17, 0.2),
    0 2px 0 rgba(255, 255, 255, 0.38) inset;
}

.gallery-item a::before {
  content: none;
}

.gallery-item a:hover {
  transform: translateY(-4px) scale(1.01);
}

.gallery-item figcaption {
  inset: auto auto 0.75rem 0.75rem;
  width: auto;
  padding: 0.35rem 0.62rem;
  border-radius: 999px;
  background: rgba(30, 20, 12, 0.58);
  backdrop-filter: blur(2px);
  letter-spacing: 0.08em;
  font-size: 0.74rem;
}

.contact-card--social a {
  min-height: 56px;
}

footer {
  border-top-color: #dcc6aa;
}

footer ul a {
  position: relative;
  padding-bottom: 0.08rem;
}

footer ul a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.08rem;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.22s ease;
  background: currentColor;
  opacity: 0.55;
}

footer ul a:hover::after {
  transform: scaleX(1);
}

.is-reveal {
  opacity: 0;
  transform: translateY(14px);
}

.is-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.55s ease, transform 0.55s ease;
}

@media (min-width: 768px) {
  .services-grid {
    gap: 1.25rem;
  }

  .booking-layout {
    gap: 1.2rem;
  }

  .contact-grid {
    gap: 1.1rem;
  }
}

@media (max-width: 900px) {
  .site-header {
    top: 0.45rem;
    width: calc(100% - 1rem);
  }

  .site-header nav ul {
    gap: 0.3rem 0.8rem;
  }

  .hero {
    min-height: 420px;
    border-radius: 24px;
    padding: 1rem;
  }

  .hero h1 {
    max-width: 18ch;
  }

  [role="group"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .contact-card--info li strong {
    min-width: 78px;
  }
}

.home-page .lightbox {
  background: rgba(22, 16, 12, 0.9);
  backdrop-filter: blur(10px);
}

.home-page .lightbox-frame {
  width: min(92vw, 760px);
  height: min(88vh, 820px);
  aspect-ratio: auto;
  border: 1px solid rgba(255, 250, 247, 0.18);
  border-radius: 22px;
  background: #16100c;
}

.home-page .lightbox-image {
  object-fit: contain;
  object-position: center;
  transform: none;
}

.home-page .lightbox-caption {
  background: linear-gradient(to top, rgba(22, 16, 12, 0.88), transparent);
  color: #fffaf7;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }

  .is-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Footer + Contact responsive upgrade */
footer {
  position: relative;
  overflow: hidden;
  border: 1px solid #dec9ac;
  border-radius: 22px;
  margin-top: clamp(1.1rem, 3vw, 2rem);
  margin-bottom: 1.2rem;
  padding: clamp(1.1rem, 2.4vw, 1.6rem);
  background:
    radial-gradient(560px 220px at 8% 0%, rgba(255, 245, 231, 0.66) 0%, rgba(255, 245, 231, 0) 72%),
    linear-gradient(145deg, rgba(255, 251, 245, 0.98) 0%, rgba(246, 235, 219, 0.96) 100%);
  box-shadow:
    0 16px 30px rgba(66, 38, 17, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.68);
}

footer::after {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: 0;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(211, 156, 95, 0.1), rgba(211, 156, 95, 0.62), rgba(211, 156, 95, 0.1));
}

footer p:first-child {
  margin: 0 0 0.5rem;
  font-size: clamp(1.45rem, 2.2vw, 1.95rem);
}

footer ul {
  row-gap: 0.5rem;
  column-gap: 0.8rem;
}

footer ul a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.15rem 0.25rem;
  color: #5b4431;
}

footer ul a:hover {
  color: #9a6635;
}

main#main-content:has(section[aria-labelledby="contact-title"]) {
  padding-bottom: clamp(2rem, 5vw, 3.2rem);
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-grid {
  display: grid;
  gap: 1rem;
  margin-top: 0.55rem;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card {
  border-radius: 20px;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--info li {
  display: flex;
  flex-wrap: wrap;
  gap: 0.22rem 0.35rem;
  align-items: baseline;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--info li strong {
  min-width: 84px;
  flex: 0 0 auto;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--social {
  gap: 0.75rem;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--social a {
  min-height: 54px;
}

main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--important p {
  line-height: 1.5;
}

@media (max-width: 1023px) {
  main#main-content:has(section[aria-labelledby="contact-title"]) > section,
  main#main-content:has(section[aria-labelledby="contact-title"]) > .contact-grid {
    width: min(100% - 1.2rem, var(--page-max));
    margin-inline: auto;
  }
}

@media (max-width: 820px) {
  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--info li {
    padding: 0.72rem 0.75rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--info li strong {
    min-width: 100%;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--social a {
    padding-inline: 0.85rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--faq {
    gap: 0.85rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--faq h2 {
    font-size: clamp(2rem, 9vw, 2.7rem);
    line-height: 0.95;
    margin-bottom: 0.35rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-faq {
    gap: 0.75rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-faq article {
    padding: 0.85rem 0.9rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-faq h3 {
    font-size: 1rem;
    line-height: 1.3;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-faq p {
    font-size: 0.98rem;
    line-height: 1.55;
  }

  footer {
    border-radius: 18px;
    padding: 1rem 0.95rem;
  }

  footer ul {
    justify-content: flex-start;
  }
}

@media (min-width: 821px) and (max-width: 1180px) {
  main#main-content:has(section[aria-labelledby="contact-title"]) > .contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--info {
    grid-column: 1 / -1;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--social,
  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--important {
    grid-column: auto;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--faq {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  main#main-content:has(section[aria-labelledby="contact-title"]) .mini-hero {
    padding: 1rem 0.95rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card {
    padding: 0.95rem;
    border-radius: 16px;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card h2 {
    font-size: clamp(1.8rem, 7.6vw, 2.2rem);
    margin-bottom: 0.72rem;
  }

  main#main-content:has(section[aria-labelledby="contact-title"]) .contact-card--important p {
    padding: 0.62rem 0.68rem;
  }

  footer p:first-child {
    font-size: 1.4rem;
  }

  footer ul {
    gap: 0.35rem 0.6rem;
  }

  footer ul a {
    min-height: 32px;
    font-size: 0.94rem;
  }
}

/* Header sticky top + mobile cleanup */
.site-header {
  top: 0;
  margin-top: 0;
}

@media (max-width: 900px) {
  .site-header {
    width: 100%;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    border-radius: 0 0 16px 16px;
    padding: 0.75rem 1rem 0.7rem;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand cta"
      "nav nav";
    gap: 0.58rem 0.72rem;
    backdrop-filter: blur(10px);
  }

  .site-branding {
    grid-area: brand;
    min-width: 0;
  }

  .site-branding a {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(1.95rem, 6.1vw, 2.3rem);
  }

  .site-header nav {
    grid-area: nav;
    min-width: 0;
    justify-self: stretch;
  }

  .site-header nav ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
    gap: 0.95rem;
    padding-bottom: 0.1rem;
  }

  .site-header nav ul::-webkit-scrollbar {
    display: none;
  }

  .site-header nav a {
    white-space: nowrap;
    font-size: 1rem;
    padding: 0.22rem 0.02rem;
  }

  .site-header > a:last-child {
    grid-area: cta;
    width: auto;
    min-height: 40px;
    padding: 0.58rem 1rem;
    font-size: 0.98rem;
    white-space: nowrap;
  }
}

@media (max-width: 430px) {
  .site-header {
    border-radius: 0 0 14px 14px;
    padding-inline: 0.8rem;
  }

  .site-branding a {
    font-size: clamp(1.7rem, 7.4vw, 2.05rem);
  }

  .site-header nav ul {
    gap: 0.85rem;
  }

  .site-header nav a {
    font-size: 0.96rem;
  }

  .site-header > a:last-child {
    min-height: 38px;
    padding: 0.52rem 0.9rem;
  }
}

/* Gallery mobile text + button visibility boost */
.site-header > a:last-child,
.hero-cta a:first-child,
.service-card p:last-child a,
#booking [aria-labelledby="booking-step-3"] > p:last-child > button {
  border: 1px solid rgba(157, 103, 44, 0.48);
  background: linear-gradient(135deg, #d9a86f 0%, #c88c50 52%, #b7773e 100%);
  box-shadow:
    0 12px 24px rgba(170, 107, 48, 0.32),
    inset 0 1px 0 rgba(255, 241, 224, 0.38);
}

.site-header > a:last-child:hover,
.hero-cta a:first-child:hover,
.service-card p:last-child a:hover,
#booking [aria-labelledby="booking-step-3"] > p:last-child > button:hover {
  background: linear-gradient(135deg, #e1b47e 0%, #d09559 52%, #bd7f45 100%);
  box-shadow:
    0 16px 30px rgba(170, 107, 48, 0.4),
    inset 0 1px 0 rgba(255, 245, 232, 0.5);
  transform: translateY(-2px) scale(1.01);
}

.hero-cta a:last-child {
  border: 1px solid #dbc2a2;
  box-shadow:
    0 10px 22px rgba(66, 38, 17, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

[role="group"] button,
.calendar-days button,
.calendar-nav .btn-small {
  border-width: 1px;
  border-color: #d4b38c;
  box-shadow:
    0 8px 15px rgba(86, 55, 29, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

[role="group"] button:hover,
.calendar-days button:hover,
.calendar-nav .btn-small:hover {
  border-color: #bc7d3f;
  box-shadow:
    0 10px 18px rgba(172, 108, 49, 0.2),
    inset 0 1px 0 rgba(255, 247, 234, 0.5);
}

button:focus-visible,
a:focus-visible {
  box-shadow:
    0 0 0 3px rgba(255, 246, 234, 0.9),
    0 0 0 6px rgba(188, 125, 63, 0.5) !important;
}

@media (max-width: 700px) {
  .gallery-item figcaption {
    inset: auto 0.52rem 0.52rem 0.52rem;
    width: calc(100% - 1.04rem);
    max-width: none;
    min-height: 2.8em;
    padding: 0.46rem 0.64rem;
    border-radius: 13px;
    font-size: clamp(0.76rem, 2.55vw, 0.84rem);
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.24;
    text-wrap: balance;
    overflow-wrap: anywhere;
    overflow: hidden;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    text-align: left;
    background:
      linear-gradient(180deg, rgba(22, 14, 9, 0.74) 0%, rgba(22, 14, 9, 0.6) 100%);
    border: 1px solid rgba(255, 226, 191, 0.34);
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.24);
  }
}

@media (max-width: 430px) {
  .gallery-item figcaption {
    inset: auto 0.45rem 0.45rem 0.45rem;
    width: calc(100% - 0.9rem);
    min-height: 2.95em;
    padding: 0.44rem 0.58rem;
    font-size: 0.78rem;
    letter-spacing: 0.065em;
    line-height: 1.22;
    border-radius: 12px;
  }

  .gallery-item--public {
    aspect-ratio: 4 / 5.3;
    border-radius: 16px;
  }

  .hero-cta a,
  .service-card p:last-child a,
  #booking [aria-labelledby="booking-step-3"] > p:last-child > button {
    font-size: 0.98rem;
    min-height: 42px;
  }
}

/* Global readability tune (no font-size increase) */
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

p,
li,
label,
input,
select,
button {
  letter-spacing: 0.005em;
}

p {
  color: #24201c;
  line-height: 1.7;
}

h1,
h2,
h3 {
  color: #171412;
  text-wrap: balance;
}

h3 {
  line-height: 1.32;
}

.hero-content > p:not(.eyebrow):not(.hero-cta),
.mini-hero p:last-child,
#booking > p,
.contact-card p,
.review-card p:nth-child(2) {
  max-width: 62ch;
}

.site-header nav a {
  color: #1b1714;
  font-weight: 560;
}

.service-card p,
.review-card p,
.contact-card--important p,
#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
  line-height: 1.58;
}

.contact-card--info li,
#booking [aria-labelledby="booking-step-1"] .js-booking-selection,
.js-summary-compact .summary-main {
  color: #28231f;
}

input,
select,
textarea {
  color: #1f1b18;
}

input::placeholder,
select::placeholder,
textarea::placeholder {
  color: #706760;
}

.gallery-item figcaption {
  letter-spacing: 0.055em;
  color: #fffdf9;
}

footer,
footer ul a,
footer p:first-child {
  color: #211d19;
}

@media (max-width: 700px) {
  p {
    line-height: 1.66;
  }

  .gallery-item figcaption {
    letter-spacing: 0.05em;
    line-height: 1.26;
  }
}

/* Footer layout refinement */
.site-footer {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 0.9rem 1.25rem;
  align-items: center;
}

.site-footer > p:first-child {
  margin: 0;
  font-size: clamp(1.55rem, 2.2vw, 2rem);
  white-space: nowrap;
}

.site-footer > nav {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.2rem;
}

.site-footer .footer-links {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 0.28rem 0.9rem;
}

.site-footer .footer-links a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.08rem 0;
  border: 0;
  background: transparent;
  font-size: 1.03rem;
  color: #1f1b18;
  line-height: 1;
  text-decoration: none;
}

.site-footer .footer-links--legal a {
  font-weight: 550;
}

.site-footer .footer-links a:hover {
  color: #8f5d2f;
  transform: translateY(-1px);
}

@media (max-width: 1024px) {
  .site-footer {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .site-footer > p:first-child {
    white-space: normal;
  }

  .site-footer > nav {
    justify-content: flex-start;
  }
}

@media (min-width: 1100px) {
  .site-footer {
    grid-template-columns: minmax(320px, 1fr) auto;
  }
}

@media (max-width: 680px) {
  .site-footer {
    gap: 0.62rem;
  }

  .site-footer > p:first-child {
    text-align: center;
    font-size: 1.45rem;
  }

  .site-footer > nav {
    width: 100%;
    flex-direction: column;
    gap: 0.35rem;
    justify-content: center;
    align-items: center;
  }

  .site-footer .footer-links {
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.3rem 0.8rem;
  }

  .site-footer .footer-links a {
    min-height: 28px;
    font-size: 0.98rem;
  }
}

/* Legal pages */
.legal-page {
  padding-bottom: clamp(2rem, 6vw, 3.5rem);
}

.legal-hero .legal-meta {
  margin-top: 0.75rem;
  margin-bottom: 0;
  font-size: 0.95rem;
  color: #3d3128;
}

.legal-layout {
  width: min(100% - 2rem, var(--page-max));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  padding-block: 0.8rem 2rem;
}

.legal-card {
  border: 1px solid #dfc8aa;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 252, 248, 0.96), rgba(247, 237, 223, 0.92));
  box-shadow: 0 12px 24px rgba(66, 38, 17, 0.09);
  padding: clamp(0.95rem, 2.2vw, 1.22rem);
}

.legal-card h2 {
  margin-bottom: 0.58rem;
  font-size: clamp(1.35rem, 2.2vw, 1.86rem);
  line-height: 1.18;
  color: #191613;
}

.legal-card p {
  margin: 0 0 0.62rem;
  color: #221d1a;
  max-width: 66ch;
}

.legal-card p:last-child {
  margin-bottom: 0;
}

.legal-card a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legal-list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.34rem;
  color: #221d1a;
}

.legal-list li {
  line-height: 1.55;
}

.legal-note {
  width: min(100% - 2rem, var(--page-max));
  margin: 0 auto;
  border: 1px solid rgba(218, 191, 158, 0.75);
  border-radius: 14px;
  background: rgba(255, 249, 240, 0.9);
  padding: 0.85rem 0.95rem;
}

.legal-note p {
  margin: 0;
  color: #2a221d;
}

@media (min-width: 860px) {
  .legal-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .legal-card {
    border-radius: 15px;
    padding: 0.86rem;
  }
}

/* Responsive data tables */
.admin-table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.admin-data-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  border-spacing: 0;
  background: rgba(255, 251, 245, 0.92);
  border: 1px solid #e2cfb6;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(66, 38, 17, 0.08);
}

.admin-data-table th,
.admin-data-table td {
  padding: 0.8rem 0.9rem;
  text-align: left;
  border-bottom: 1px solid #ebdbc8;
  vertical-align: top;
}

.admin-data-table th {
  background: #f8efe4;
  color: #3f2f20;
  font-weight: 700;
  white-space: nowrap;
}

.admin-data-table tbody tr:last-child td {
  border-bottom: 0;
}

.admin-data-table td form {
  display: block;
}

.admin-dashboard .services-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.admin-dashboard .service-card {
  min-height: 100%;
}

.auth-page .contact-card ul {
  margin: 0;
}

.auth-page .contact-card li + li {
  margin-top: 0.35rem;
}

.gallery-grid {
  align-items: stretch;
}

.booking-layout .summary-row span {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .gallery-grid--public {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
  }

  .gallery-item--public {
    width: 100%;
    margin-inline: 0;
    aspect-ratio: 4 / 5.2;
  }

  .stack-on-mobile {
    min-width: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .stack-on-mobile thead {
    display: none;
  }

  .stack-on-mobile tbody {
    display: grid;
    gap: 0.85rem;
  }

  .stack-on-mobile tr {
    display: grid;
    gap: 0.55rem;
    padding: 0.9rem;
    border: 1px solid #e2cfb6;
    border-radius: 16px;
    background: rgba(255, 251, 245, 0.96);
    box-shadow: 0 12px 24px rgba(66, 38, 17, 0.08);
  }

  .stack-on-mobile td {
    display: grid;
    gap: 0.18rem;
    padding: 0;
    border: 0;
  }

  .stack-on-mobile td::before {
    content: attr(data-label);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #9b6b3b;
  }

  .stack-on-mobile td[data-label="Actions"],
  .stack-on-mobile td[data-label="Action"] {
    gap: 0.5rem;
  }

  .stack-on-mobile td[data-label="Actions"]::before,
  .stack-on-mobile td[data-label="Action"]::before {
    margin-bottom: 0.05rem;
  }

  .stack-on-mobile td form,
  .stack-on-mobile td button,
  .stack-on-mobile td .btn-secondary {
    width: 100%;
  }

  .quick-actions {
    grid-template-columns: 1fr;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
    grid-template-columns: 1fr;
    justify-content: flex-start;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row span {
    text-align: left;
  }
}

/* Final responsive safeguards for the expanded admin navigation */
@media (max-width: 1699px) {
  .admin-body .admin-panel--form {
    position: static;
  }
}

@media (min-width: 1700px) {
  .admin-body .admin-panel--form {
    position: sticky;
    top: 6.1rem;
  }
}

@media (max-width: 1399px) {
  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-records,
  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-reservation-record__editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-reservation-record__editor .reservation-update-btn {
    width: 100%;
  }
}

.admin-body .site-notifications__delete {
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border-radius: 50%;
}

.admin-body .admin-reservation-refund-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  margin-top: 0.75rem;
  padding: 0.8rem;
  border: 1px solid #e1b1a7;
  border-radius: 13px;
  background: var(--admin-danger-soft);
}

.admin-body .admin-reservation-refund-actions p {
  margin: 0;
  color: var(--admin-danger);
  font-size: 0.9rem;
  font-weight: 650;
}

.admin-body .admin-reservation-refund-actions .btn-secondary {
  flex: 0 0 auto;
  min-height: 40px;
}

@media (max-width: 900px) {
  .admin-header .site-notifications__toggle {
    position: relative;
    width: 48px;
    min-width: 48px;
  }

  .admin-header .site-notifications__icon {
    display: inline-flex;
    font-size: 1rem;
  }

  .admin-header .site-notifications__count {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 1.15rem;
    min-height: 1.15rem;
    padding: 0.05rem 0.25rem;
    font-size: 0.64rem;
  }
}

/* Admin UX refinements */
.admin-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
}

.admin-hero__content {
  min-width: 0;
}

.admin-hero__aside {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

.admin-chip {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  border: 1px solid #d9bc98;
  background: #fff8ef;
  color: #6e4824;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-chip--soft {
  background: rgba(255, 248, 239, 0.72);
}

.stripe-panel {
  align-self: start;
}

.stripe-form {
  display: grid;
  gap: 1.1rem;
}

.stripe-toggle {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.95rem;
  align-items: center;
  padding: 1rem 1.05rem;
  border: 1px solid #e4d2bd;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(250, 241, 229, 0.9));
}

.stripe-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.stripe-toggle__control {
  display: block;
  position: relative;
  width: 54px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #d9c4ab;
  box-shadow: inset 0 0 0 1px rgba(122, 89, 56, 0.18);
  transition: background 0.2s ease;
}

.stripe-toggle__control::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fffaf4;
  box-shadow: 0 3px 8px rgba(73, 48, 27, 0.18);
  transition: transform 0.2s ease;
}

.stripe-toggle input:checked + .stripe-toggle__control {
  background: linear-gradient(135deg, #d9a86f 0%, #c98e54 100%);
}

.stripe-toggle input:checked + .stripe-toggle__control::after {
  transform: translateX(22px);
}

.stripe-toggle__content {
  display: grid;
  gap: 0.15rem;
}

.stripe-toggle__content strong {
  color: #3f2c1d;
  font-size: 1rem;
}

.stripe-toggle__content small {
  color: #705743;
  font-size: 0.9rem;
  line-height: 1.45;
}

.stripe-form__fields {
  display: grid;
  gap: 0.95rem;
}

.stripe-field {
  display: grid;
  gap: 0.45rem;
}

.stripe-field > span {
  color: #533a27;
  font-weight: 700;
}

.stripe-field small {
  color: #7b624d;
  font-size: 0.85rem;
  line-height: 1.45;
}

.stripe-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  align-items: center;
}

.stripe-status-card,
.stripe-help-card {
  display: grid;
  gap: 0.75rem;
  padding: 1rem 1.05rem;
  border: 1px solid #e4d2bd;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(250, 241, 229, 0.9));
}

.stripe-help-card {
  margin-top: 1rem;
}

.stripe-status-card__row {
  display: grid;
  gap: 0.22rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px solid rgba(226, 204, 178, 0.68);
}

.stripe-status-card__row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.stripe-status-card__row span,
.stripe-help-card strong {
  color: #7b624d;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.stripe-status-card__row strong {
  color: #2f241b;
  font-size: 1rem;
}

.stripe-status-card code,
.stripe-help-card code {
  display: block;
  overflow-wrap: anywhere;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  background: rgba(255, 250, 243, 0.92);
  border: 1px solid rgba(222, 202, 176, 0.9);
  color: #4a3625;
  font-size: 0.92rem;
}

.stripe-help-card p {
  margin: 0;
}

.admin-section-grid {
  width: min(100% - 2rem, 1280px);
  margin-inline: auto;
  display: grid;
  gap: 1rem;
}

.admin-section-grid--stats {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.admin-section-grid--main {
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  align-items: start;
}

.admin-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid #e0c8ab;
  border-radius: 24px;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  background:
    radial-gradient(80% 70% at 100% 0%, rgba(227, 192, 145, 0.14) 0%, rgba(227, 192, 145, 0) 64%),
    linear-gradient(180deg, rgba(255, 252, 247, 0.97) 0%, rgba(248, 238, 225, 0.95) 100%);
  box-shadow: 0 16px 32px rgba(66, 38, 17, 0.08);
}

.admin-page[data-admin-page="reservations"] .admin-panel {
  overflow: visible;
}

.admin-panel__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.85rem;
  margin-bottom: 1rem;
}

.admin-panel__head h2 {
  margin-bottom: 0;
}

.admin-panel__meta {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  background: #fff7eb;
  border: 1px solid #d4aa79;
  color: #613b18;
  font-weight: 700;
  white-space: nowrap;
}

.admin-section-eyebrow {
  margin: 0 0 0.4rem;
  color: #a26b37;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-size: 0.76rem;
  font-weight: 700;
}

.admin-metric-card {
  display: grid;
  gap: 0.5rem;
  min-height: 100%;
  border: 1px solid #e2cfb6;
  border-radius: 22px;
  padding: 1rem;
  background:
    linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(248, 238, 225, 0.94));
  box-shadow: 0 14px 28px rgba(66, 38, 17, 0.08);
}

.admin-metric-card strong {
  font-size: clamp(1.8rem, 3vw, 2.7rem);
  line-height: 1;
  color: #2a1f17;
}

.admin-metric-card p {
  margin: 0;
  color: #5b4a3c;
}

.admin-metric-card__label {
  color: #8f6236;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}

.admin-metric-card--alert {
  border-color: #dfb07d;
  background:
    radial-gradient(85% 90% at 100% 0%, rgba(224, 165, 94, 0.18) 0%, rgba(224, 165, 94, 0) 68%),
    linear-gradient(180deg, rgba(255, 251, 246, 0.99), rgba(250, 235, 216, 0.96));
}

.quick-actions--admin {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.admin-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid #e1c9ab;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255, 251, 246, 0.97), rgba(248, 238, 226, 0.94));
  box-shadow: 0 12px 24px rgba(66, 38, 17, 0.06);
}

.admin-toolbar__group {
  display: grid;
  gap: 0.35rem;
  min-width: 220px;
  flex: 1 1 220px;
}

.admin-toolbar__group label {
  color: #6f4a28;
  font-weight: 700;
}

.admin-toolbar__group input,
.admin-toolbar__group select {
  background: #fffdf9;
  border-color: #d8b692;
  color: #2a1f17;
}

.admin-list {
  display: grid;
  gap: 0.75rem;
}

.admin-list-item {
  padding: 0.9rem;
  border: 1px solid #e3cfb7;
  border-radius: 16px;
  background: #fffaf4;
}

.admin-list-item p:last-child {
  margin-bottom: 0;
}

.admin-demo-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
}

.admin-demo-stats article {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem 0.9rem;
  border-radius: 18px;
  border: 1px solid #e4cfb6;
  background: rgba(255, 249, 241, 0.92);
}

.admin-demo-stats span {
  color: #8f6236;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.admin-demo-stats strong {
  color: #271d16;
  font-size: 1.65rem;
  line-height: 1;
}

.admin-inline-form {
  display: grid;
  gap: 0.8rem;
  margin-top: 1rem;
}

.admin-inline-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.admin-demo-credentials {
  margin-top: 1rem;
  padding: 0.9rem 1rem;
  border-radius: 18px;
  border: 1px solid #e1cfbb;
  background: rgba(255, 248, 240, 0.92);
}

.admin-demo-credentials__title {
  margin: 0 0 0.55rem;
  color: #473425;
  font-weight: 700;
}

.admin-demo-credentials ul {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.3rem;
}

.admin-demo-credentials code {
  font-size: 0.9rem;
}

.quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.6rem;
}

/* Auth pages */
.auth-page .auth-section {
  width: min(100% - 2rem, 760px);
  margin-inline: auto;
}

.auth-page .auth-card {
  max-width: 760px;
  margin-inline: auto;
}

.auth-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 0.9rem;
}

.auth-alt-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  margin-top: 1.2rem;
  flex-wrap: wrap;
}

.auth-helper-link {
  margin-top: -0.2rem;
}

.auth-helper-link a {
  color: #7a4d29;
  font-weight: 600;
}

.auth-helper-link a:hover {
  color: #5b3920;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.button-link--secondary {
  border: 1px solid #dcc4a5;
  background: #fff8ef;
  color: #5b3920;
}

.button-link--secondary:hover {
  background: #f6e4cd;
  border-color: #cb985e;
  color: #7a4d29;
}

@media (max-width: 640px) {
  .auth-form-grid {
    grid-template-columns: 1fr;
  }

  .auth-alt-actions {
    align-items: stretch;
  }

  .auth-alt-actions .button-link {
    width: 100%;
  }
}

.quick-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.6rem 0.9rem;
  border-radius: 12px;
  border: 1px solid #dcc4a5;
  background: #fff8ef;
  color: #3a2b1d;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.quick-actions a:hover {
  background: #f7e8d4;
  border-color: #cc965c;
  color: #74461f;
}

.field-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #e2cfb6;
  border-radius: 12px;
  background: #fffaf4;
}

.field-toggle > span {
  margin: 0;
  font-weight: 600;
  color: #3f3023;
}

.switch {
  display: inline-flex;
  align-items: center;
  position: relative;
}

.switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
  min-height: 1px;
}

.switch-track {
  width: 52px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid #c7b192;
  background: #efe3d4;
  padding: 3px;
  display: inline-flex;
  align-items: center;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.switch-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  transform: translateX(0);
  transition: transform 0.2s ease;
}

.switch input:checked + .switch-track {
  background: #d8a266;
  border-color: #c08345;
}

.switch input:checked + .switch-track .switch-thumb {
  transform: translateX(22px);
}

/* Mobile burger menu */
.mobile-menu-toggle {
  display: none;
}

.mobile-only-auth {
  display: none;
}

@media (max-width: 900px) {
  body.menu-open {
    overflow: hidden;
  }

  .mobile-menu-toggle {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    grid-area: cta;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 40px;
    padding: 0;
    border-radius: 12px;
    border: 1px solid #d4b48f;
    background: #fff7ec;
    box-shadow: 0 8px 18px rgba(155, 103, 44, 0.18);
    color: #6c4929;
  }

  .mobile-menu-toggle span {
    display: block;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }

  .mobile-menu-toggle span + span {
    margin-top: 0;
  }

  .site-header.is-mobile-open .mobile-menu-toggle span:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

  .site-header.is-mobile-open .mobile-menu-toggle span:nth-child(2) {
    opacity: 0;
  }

  .site-header.is-mobile-open .mobile-menu-toggle span:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

  .site-header nav {
    display: none;
  }

  .site-header.is-mobile-open nav {
    display: block;
    position: absolute;
    top: calc(100% + 0.6rem);
    left: 0.8rem;
    right: 0.8rem;
    padding: 0.85rem;
    border: 1px solid #dfc7a8;
    border-radius: 14px;
    background: rgba(255, 250, 244, 0.98);
    box-shadow: 0 18px 32px rgba(66, 38, 17, 0.2);
    backdrop-filter: blur(8px);
    z-index: 120;
  }

  .site-header.is-mobile-open nav ul {
    display: grid;
    gap: 0.4rem;
    overflow: visible;
  }

  .site-header.is-mobile-open nav a {
    display: block;
    padding: 0.58rem 0.5rem;
    border-radius: 10px;
    border: 1px solid transparent;
  }

  .site-header.is-mobile-open nav a:hover,
  .site-header.is-mobile-open nav a.is-active {
    border-color: #ddc0a0;
    background: #fff3e4;
  }

  .mobile-only-auth {
    display: list-item;
    margin-top: 0.35rem;
    padding-top: 0.5rem;
    border-top: 1px solid #ecdcc8;
  }

  .site-auth-link {
    display: none !important;
  }
}

/* Final mobile header override */
@media (max-width: 900px) {
  .site-header.site-header--sticky {
    position: sticky;
    top: 0;
    z-index: 130;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "brand toggle"
      "nav nav" !important;
    gap: 0.55rem 0.7rem !important;
    padding: 0.75rem 0.9rem 0.72rem !important;
    border-radius: 0 0 16px 16px !important;
  }

  .site-header.site-header--sticky .site-branding {
    grid-area: brand;
    min-width: 0;
  }

  .site-header.site-header--sticky .site-branding a {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: clamp(1.9rem, 6vw, 2.25rem);
  }

  .site-header.site-header--sticky .mobile-menu-toggle {
    grid-area: toggle;
    justify-self: end;
  }

  .site-header.site-header--sticky nav {
    grid-area: nav;
    display: none !important;
    min-width: 0;
  }

  .site-header.site-header--sticky.is-mobile-open nav {
    display: block !important;
    position: static;
    margin-top: 0.2rem;
    padding: 0.8rem;
    border: 1px solid #dfc7a8;
    border-radius: 14px;
    background: rgba(255, 250, 244, 0.98);
    box-shadow: 0 14px 26px rgba(66, 38, 17, 0.18);
    backdrop-filter: blur(8px);
  }

.site-header.site-header--sticky.is-mobile-open nav ul {
    display: grid !important;
    gap: 0.35rem;
    overflow: visible;
  }
}

/* Admin refactor */
.admin-header {
  position: sticky;
  top: 0.6rem;
  border-color: #d2b08c;
  background: linear-gradient(180deg, rgba(255, 249, 241, 0.96), rgba(248, 235, 218, 0.96));
  box-shadow: 0 14px 26px rgba(97, 60, 27, 0.2);
}

.admin-header .site-branding {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.admin-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border: 1px solid #d5b38d;
  border-radius: 999px;
  background: #fff3e3;
  color: #6f4a24;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.admin-header nav ul {
  gap: 0.45rem 0.8rem;
}

.admin-header nav a {
  padding: 0.38rem 0.2rem;
  font-size: 0.95rem;
}

.admin-link-site {
  font-weight: 700;
  color: #7a4f24;
}

.admin-body main > section {
  width: min(100% - 2rem, 1280px);
}

.admin-page[data-admin-page="reservations"] > section {
  width: min(100% - 2rem, 1380px);
}

.admin-body form {
  display: grid;
  gap: 0.8rem;
}

.admin-body form p {
  margin: 0;
  max-width: none;
}

.admin-body form label {
  display: block;
}

.admin-body form input,
.admin-body form select,
.admin-body form textarea {
  display: block;
  width: 100%;
}

#admin-gallery-upload {
  display: grid;
  gap: 0.9rem;
}

#admin-gallery-upload p {
  display: block;
  margin: 0;
  max-width: none !important;
}

#admin-gallery-upload .field-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.admin-gallery-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.admin-gallery-toolbar p {
  margin: 0;
}

.admin-gallery-toolbar__hint {
  max-width: 62ch;
  color: #6a513a;
}

.btn-secondary {
  background: #fff8ef;
  color: #5b4128;
  border: 1px solid #d9bc98;
  box-shadow: none;
}

.btn-secondary:hover {
  background: #f4e4cf;
  color: #4f331b;
}

.payment-result-card {
  display: grid;
  gap: 0.9rem;
}

.payment-result-card h2 {
  margin: 0;
}

.payment-result-card__eyebrow,
.payment-result-card__meta {
  margin: 0;
  font-size: 0.95rem;
  color: #7a5f46;
}

.payment-result-card__eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: #a46f3a;
}

.payment-result-card__actions {
  margin: 0.35rem 0 0;
}

.payment-result-card__actions .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0.8rem 1.15rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
}

.payment-result-card--refunded,
.payment-result-card--pending-refund,
.payment-result-card--closed,
.payment-result-card--refund-attention {
  border-color: rgba(201, 139, 84, 0.42);
  background: linear-gradient(145deg, rgba(255, 251, 245, 0.98), rgba(250, 237, 220, 0.92));
}

.payment-result-card--refund-attention {
  border-color: rgba(174, 87, 72, 0.38);
  background: linear-gradient(145deg, rgba(255, 250, 246, 0.98), rgba(250, 230, 224, 0.9));
}

.admin-feedback {
  min-height: 1.2rem;
  margin-top: 0.5rem;
  font-weight: 600;
}

.admin-feedback.is-success {
  color: #2f6f3b;
}

.admin-feedback.is-error {
  color: #a23a2b;
}

.admin-pagination {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  padding: 0.2rem 0;
}

.admin-pagination span {
  font-weight: 600;
  color: #3f2e1f;
  letter-spacing: 0.01em;
}

.admin-pagination--server {
  justify-content: flex-end;
}

.admin-pagination--reservations {
  justify-content: center;
  margin-top: 1rem;
  width: fit-content;
  margin-inline: auto;
  padding: 0.4rem 0.55rem;
  border: 1px solid rgba(216, 175, 132, 0.9);
  border-radius: 999px;
  background: rgba(255, 248, 239, 0.96);
  box-shadow: 0 10px 22px rgba(60, 36, 18, 0.08);
}

.admin-reservations-table .reservation-status-select {
  width: auto;
  min-width: 152px;
  max-width: none;
  white-space: nowrap;
}

.admin-reservations-table .reservation-update-btn {
  min-width: 144px;
  white-space: nowrap;
}

.admin-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.admin-reservations-table {
  width: 100%;
  table-layout: auto;
  min-width: 1260px;
  border-collapse: separate;
  border-spacing: 0;
}

.admin-reservations-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #f6efe6;
}

.admin-reservations-table th:nth-child(1),
.admin-reservations-table td:nth-child(1) {
  min-width: 180px;
}

.admin-reservations-table th:nth-child(2),
.admin-reservations-table td:nth-child(2) {
  min-width: 170px;
}

.admin-reservations-table th:nth-child(3),
.admin-reservations-table td:nth-child(3) {
  min-width: 158px;
}

.admin-reservations-table th:nth-child(4),
.admin-reservations-table td:nth-child(4) {
  min-width: 132px;
}

.admin-reservations-table th:nth-child(5),
.admin-reservations-table td:nth-child(5) {
  min-width: 96px;
}

.admin-reservations-table th:nth-child(8),
.admin-reservations-table td:nth-child(8),
.admin-reservations-table th:nth-child(9),
.admin-reservations-table td:nth-child(9),
.admin-reservations-table th:nth-child(10),
.admin-reservations-table td:nth-child(10) {
  min-width: 160px;
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table th:nth-child(10),
.admin-table-wrap.is-scrolled-x .admin-reservations-table td:nth-child(10) {
  position: sticky;
  right: 0;
  background: #f6efe6;
  box-shadow: -8px 0 12px -10px rgba(51, 33, 17, 0.45);
  min-width: 176px;
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table th:nth-child(9),
.admin-table-wrap.is-scrolled-x .admin-reservations-table td:nth-child(9) {
  position: sticky;
  right: 176px;
  background: #f6efe6;
  box-shadow: -8px 0 12px -10px rgba(51, 33, 17, 0.35);
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table th:nth-child(9) {
  z-index: 7;
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table th:nth-child(10) {
  z-index: 8;
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table td:nth-child(9),
.admin-table-wrap.is-scrolled-x .admin-reservations-table td:nth-child(10) {
  z-index: 2;
}

.admin-reservations-table td,
.admin-reservations-table th {
  vertical-align: middle;
  white-space: nowrap;
}

.admin-reservations-table .admin-res-cell {
  padding: 0.6rem;
  border-bottom: 1px solid #ebdbc8;
}

.admin-reservations-table tbody tr:hover {
  background: #fcf6ee;
}

.admin-table-wrap.is-scrolled-x .admin-reservations-table tbody tr:hover td:nth-child(9),
.admin-table-wrap.is-scrolled-x .admin-reservations-table tbody tr:hover td:nth-child(10) {
  background: #fcf6ee;
}

.admin-reservations-table td:nth-child(1),
.admin-reservations-table td:nth-child(2) {
  white-space: normal;
}

.admin-reservations-table td:first-child small {
  display: block;
  margin-top: 0.18rem;
  overflow-wrap: anywhere;
  word-break: normal;
  font-size: 0.92em;
}

.admin-reservations-cards {
  display: none;
}

.admin-page[data-admin-page="reservations"] .admin-table-wrap {
  display: none !important;
}

.admin-page[data-admin-page="reservations"] .admin-reservations-cards {
  display: grid !important;
  gap: 0.9rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card {
  padding: 1rem;
  border: 1px solid #d6b188;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(247, 237, 223, 0.96));
  box-shadow:
    0 16px 26px rgba(66, 38, 17, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card p {
  margin: 0 0 0.8rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(214, 177, 136, 0.45);
  color: #2f2319;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card p:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card strong {
  display: inline-block;
  margin-bottom: 0.35rem;
  color: #2b1f17;
  font-size: 1rem;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card small {
  display: block;
  margin-top: 0.2rem;
  color: #5f4936;
  font-size: 0.92rem;
  line-height: 1.45;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card input,
.admin-page[data-admin-page="reservations"] .admin-reservation-card select {
  border-color: #d7b591;
  background: #fffdf9;
  color: #2b2017;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-card .reservation-update-btn {
  min-height: 46px;
  font-weight: 700;
  box-shadow: 0 10px 18px rgba(170, 107, 48, 0.14);
}

.admin-page[data-admin-page="reservations"] .admin-reservations-shell {
  display: grid;
  gap: 1rem;
}

.admin-page[data-admin-page="reservations"] .admin-panel--filters,
.admin-page[data-admin-page="reservations"] .admin-panel--records {
  background:
    linear-gradient(180deg, rgba(255, 251, 245, 0.98), rgba(248, 238, 226, 0.96));
  border: 1px solid rgba(216, 181, 144, 0.72);
  box-shadow: 0 18px 34px rgba(66, 38, 17, 0.08);
}

.admin-panel__head--compact {
  padding-bottom: 0.9rem;
  border-bottom: 1px solid rgba(217, 187, 155, 0.4);
}

.admin-toolbar--reservations {
  margin-top: 1rem;
}

.admin-toolbar__group--wide {
  grid-column: span 2;
}

.admin-reservations-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1rem;
}

.admin-reservations-summary__card {
  padding: 1rem 1.05rem;
  border: 1px solid rgba(214, 177, 136, 0.7);
  border-radius: 18px;
  background: rgba(255, 251, 246, 0.96);
}

.admin-reservations-summary__card span {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #9d6738;
}

.admin-reservations-summary__card strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #201712;
  font-size: clamp(1.4rem, 2vw, 2rem);
}

.admin-reservations-summary__card p {
  margin: 0;
  color: #5f4a39;
  line-height: 1.5;
}

.admin-reservations-summary__card--wide {
  background: linear-gradient(135deg, rgba(250, 236, 214, 0.95), rgba(255, 249, 241, 0.98));
}

.admin-page[data-admin-page="reservations"] .admin-reservations-records,
.admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(460px, 1fr));
  gap: 1rem;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-record {
  display: grid;
  gap: 1rem;
  padding: 1.1rem;
  border: 1px solid rgba(214, 177, 136, 0.85);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255, 252, 248, 0.98), rgba(247, 238, 226, 0.96));
  box-shadow:
    0 16px 28px rgba(66, 38, 17, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.admin-page[data-admin-page="reservations"] .admin-reservation-record.is-read-only {
  opacity: 0.96;
}

.admin-page[data-admin-page="reservations"] .admin-reservation-record--empty {
  place-items: center;
  min-height: 180px;
  text-align: center;
  color: #5f4a39;
}

.admin-reservation-record__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.admin-reservation-record__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a86c37;
}

.admin-reservation-record__head h3 {
  margin: 0;
  font-size: 1.25rem;
  color: #1f1712;
}

.admin-reservation-record__subline {
  margin: 0.28rem 0 0;
  color: #5f4a39;
  overflow-wrap: anywhere;
}

.admin-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0.35rem 0.85rem;
  border-radius: 999px;
  border: 1px solid rgba(195, 157, 121, 0.9);
  background: #fff8ef;
  color: #6f4a24;
  font-weight: 700;
  white-space: nowrap;
}

.admin-status-pill.is-pending {
  background: #fff2de;
  color: #8b5a22;
}

.admin-status-pill.is-confirmed {
  background: #edf7ee;
  color: #245b33;
}

.admin-status-pill.is-completed {
  background: #eef4fb;
  color: #2a4b75;
}

.admin-status-pill.is-no-show,
.admin-status-pill.is-cancelled {
  background: #fbefed;
  color: #7e3025;
}

.admin-reservation-record__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0.75rem;
}

.admin-reservation-record__block {
  min-height: 110px;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(223, 197, 168, 0.74);
  border-radius: 16px;
  background: rgba(255, 253, 249, 0.9);
}

.admin-reservation-record__block:nth-child(3) {
  grid-column: 1 / -1;
  min-height: auto;
}

.admin-reservation-record__label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a06a3b;
}

.admin-reservation-record__block strong {
  display: block;
  margin-bottom: 0.35rem;
  color: #241a14;
  font-size: 1.08rem;
  line-height: 1.35;
}

.admin-reservation-record__block p {
  margin: 0;
  color: #5f4a39;
  line-height: 1.5;
}

.admin-reservation-record__editor {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(0, 1.4fr);
  gap: 0.75rem;
  align-items: end;
  padding: 0.9rem 1rem 1rem;
  border: 1px solid rgba(214, 177, 136, 0.62);
  border-radius: 18px;
  background: rgba(255, 250, 244, 0.92);
}

.admin-reservation-record__editor label {
  display: grid;
  gap: 0.35rem;
}

.admin-reservation-record__editor label span {
  font-size: 0.78rem;
  font-weight: 700;
  color: #533b28;
}

.admin-reservation-record__editor-status {
  grid-column: auto;
}

.admin-reservation-record__editor input,
.admin-reservation-record__editor select {
  min-width: 0;
  border-color: #d7b591;
  background: #fffdf9;
  color: #2b2017;
}

.admin-reservation-record__editor .reservation-update-btn {
  min-height: 46px;
  width: fit-content;
  min-width: 170px;
  font-weight: 700;
  justify-self: start;
  margin-top: 0.15rem;
  grid-column: 1 / -1;
}

@media (max-width: 1450px) {
  .admin-page[data-admin-page="reservations"] .admin-reservations-records,
  .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  }

  .admin-reservation-record__grid {
    grid-template-columns: 1fr;
  }

  .admin-reservation-record__block:nth-child(3) {
    grid-column: auto;
  }

  .admin-reservation-record__editor {
    grid-template-columns: 1fr 1fr;
  }

  .admin-reservation-record__editor-status,
  .admin-reservation-record__editor .reservation-update-btn {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1200px) {
  .admin-reservations-table .reservation-status-select {
    min-width: 126px;
  }

  .admin-reservations-table .reservation-update-btn {
    min-width: 102px;
    padding-inline: 0.9rem;
  }
}

@media (max-width: 900px) {
  .admin-hero {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .admin-hero__aside {
    justify-content: flex-start;
  }

  .admin-section-grid--main {
    grid-template-columns: 1fr;
  }

  .admin-demo-stats {
    grid-template-columns: 1fr;
  }

  .admin-inline-form__actions {
    flex-direction: column;
  }

  .admin-inline-form__actions > * {
    width: 100%;
  }

  .admin-toolbar__group--wide {
    grid-column: auto;
  }

  .admin-reservations-summary {
    grid-template-columns: 1fr 1fr;
  }

  .admin-reservations-summary__card--wide {
    grid-column: 1 / -1;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservations-records,
  .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
    grid-template-columns: 1fr;
  }

  .admin-reservation-record__head {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-reservation-record__grid,
  .admin-reservation-record__editor {
    grid-template-columns: 1fr;
  }

  .admin-reservation-record__editor-status {
    grid-column: auto;
  }

  .admin-pagination--reservations {
    margin: 0.8rem 0 0;
    width: 100%;
    max-width: none;
    padding: 0.8rem 0.9rem;
    border-radius: 20px;
    justify-content: center;
  }

  .admin-pagination--reservations span {
    text-align: center;
    white-space: nowrap;
    flex: 0 0 100%;
    order: -1;
  }

  .admin-pagination--reservations .btn-secondary {
    min-width: 120px;
    flex: 1 1 0;
    justify-content: center;
    padding-inline: 0.7rem;
  }

  .admin-page[data-admin-page="reservations"] .admin-table-wrap {
    display: none;
  }
}

@media (max-width: 1600px) {
  .admin-page[data-admin-page="reservations"] .admin-table-wrap {
    display: none;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservations-cards {
    display: grid;
    gap: 0.8rem;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card {
    padding: 0.8rem;
    border: 1px solid #e2cfb7;
    border-radius: 12px;
    background: #fff9f2;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card p {
    margin: 0 0 0.55rem;
    max-width: none;
    overflow-wrap: anywhere;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card p:last-child {
    margin-bottom: 0;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card small {
    overflow-wrap: anywhere;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card input,
  .admin-page[data-admin-page="reservations"] .admin-reservation-card select,
  .admin-page[data-admin-page="reservations"] .admin-reservation-card button {
    width: 100%;
    min-width: 0;
  }

  .admin-page[data-admin-page="reservations"] .admin-reservation-card .reservation-update-btn {
    min-width: 0;
    width: 100%;
    padding-inline: 0.75rem;
    font-size: 0.95rem;
    line-height: 1.2;
    white-space: nowrap;
  }
}

.admin-gallery-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

.admin-gallery-card {
  cursor: grab;
}

.admin-gallery-order {
  display: grid;
  gap: 0.65rem;
  margin: 0.85rem 0;
}

.admin-gallery-order__badge {
  display: inline-flex;
  width: fit-content;
  min-height: 34px;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  border: 1px solid #dcc2a3;
  background: #fff7ee;
  color: #5f4327;
  font-weight: 700;
  font-size: 0.9rem;
}

.admin-gallery-order__actions,
.admin-gallery-order__jump {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  align-items: center;
}

.admin-gallery-order__jump label {
  margin: 0;
  font-weight: 600;
  color: #5c4329;
}

.admin-gallery-order__jump input {
  width: 92px;
}

.admin-gallery-card.is-dragging {
  opacity: 0.65;
  border-color: #c68c50;
}

@media (max-width: 900px) {
  .admin-header .site-branding {
    align-items: center;
    gap: 0.45rem;
  }

  .admin-badge {
    font-size: 0.72rem;
    padding: 0.15rem 0.45rem;
  }

  .admin-header.site-header--sticky.is-mobile-open nav {
    background: #fff7ee;
    border-color: #d7b38a;
  }

  .admin-header.site-header--sticky.is-mobile-open nav a {
    font-weight: 600;
  }

  .admin-gallery-card {
    cursor: default;
  }

  .site-header-actions {
    justify-content: stretch;
  }

  .site-notifications,
  .site-notifications__toggle,
  .site-auth-link {
    width: 100%;
  }

  .site-notifications__panel {
    left: 0;
    right: auto;
    width: min(100vw - 2rem, 360px);
  }

  .admin-toolbar__group {
    width: 100%;
    min-width: 0;
  }

  .admin-gallery-order__actions > button,
  .admin-gallery-order__jump > button,
  .admin-gallery-order__jump input {
    width: 100%;
  }

  .admin-gallery-order__jump {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* Homepage visual refinement */
.hero--home {
  isolation: isolate;
  min-height: clamp(520px, 66vh, 650px);
  padding: clamp(1rem, 2.2vw, 1.65rem);
  border-color: rgba(218, 190, 158, 0.92);
  background:
    radial-gradient(720px 440px at 6% 10%, rgba(255, 253, 248, 0.96) 0%, rgba(255, 253, 248, 0) 70%),
    radial-gradient(620px 420px at 76% 92%, rgba(218, 168, 107, 0.22) 0%, rgba(218, 168, 107, 0) 70%),
    linear-gradient(118deg, #f9f4ed 0%, #f4e8da 56%, #ead0b1 100%);
  box-shadow:
    0 34px 70px rgba(74, 46, 24, 0.17),
    inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.hero--home::before {
  z-index: 0;
  background:
    linear-gradient(104deg, rgba(255, 252, 247, 0.86) 0%, rgba(255, 249, 241, 0.5) 45%, rgba(255, 249, 241, 0.05) 72%),
    radial-gradient(circle at 24% 24%, rgba(255, 255, 255, 0.72), transparent 46%);
}

.hero--home::after {
  inset: auto auto -34% -12%;
  width: clamp(260px, 32vw, 470px);
  background: radial-gradient(circle, rgba(207, 142, 73, 0.12) 0%, rgba(207, 142, 73, 0) 72%);
}

.hero-inner--home {
  position: relative;
  z-index: 1;
  grid-template-columns: minmax(0, 1.02fr) minmax(330px, 0.98fr);
  gap: clamp(1.5rem, 4vw, 3.6rem);
  min-height: clamp(480px, 60vh, 590px);
}

.hero-inner--home > .hero-image {
  display: block;
  grid-column: 2;
  grid-row: 1;
  place-self: center;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: min(75svh, 650px);
  min-width: 0;
  object-fit: contain;
  border-radius: 34px;
  box-shadow: 0 24px 48px rgba(72, 40, 18, 0.22);
}

.hero--home .hero-content {
  max-width: 620px;
  padding: clamp(1rem, 3vw, 2.4rem) clamp(0.2rem, 1vw, 0.8rem);
}

.hero--home .eyebrow,
.section-kicker {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.75rem;
  color: #9a6635;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-transform: uppercase;
}

.hero--home .eyebrow::before,
.section-kicker::before {
  content: "";
  flex: 0 0 2rem;
  height: 1px;
  background: linear-gradient(90deg, #bd7e43, #ddb684);
}

.hero--home h1 {
  max-width: 10ch;
  font-size: clamp(3.4rem, 5.7vw, 5.4rem);
  line-height: 0.94;
  letter-spacing: -0.035em;
  color: #2a1c13;
}

.hero--home .hero-content > p:not(.eyebrow):not(.hero-cta) {
  max-width: 49ch;
  margin-top: 1.45rem;
  color: #5c493a;
  font-size: clamp(1.02rem, 1.3vw, 1.15rem);
  line-height: 1.75;
}

.hero--home .hero-cta {
  gap: 0.85rem;
  margin-top: 1.55rem;
}

.hero--home .hero-cta a {
  min-height: 48px;
  padding-inline: 1.35rem;
}

.section-intro {
  max-width: 62ch;
  margin: -0.35rem 0 clamp(1.35rem, 3vw, 2rem);
  color: #645245;
  font-size: 1.02rem;
}

#prestations,
#booking,
.reviews-section {
  scroll-margin-top: 6.5rem;
}

#prestations h2,
#booking h2,
.reviews-section h2 {
  margin-bottom: 0.8rem;
  color: #251911;
}

#prestations .services-grid {
  counter-reset: home-service;
  gap: clamp(1rem, 2vw, 1.35rem);
}

#prestations .service-card {
  counter-increment: home-service;
  position: relative;
  overflow: hidden;
  min-height: 340px;
  padding: 1.45rem;
  border-color: rgba(222, 202, 179, 0.95);
  border-radius: 22px;
  background:
    radial-gradient(250px 160px at 100% 0%, rgba(222, 181, 132, 0.16), transparent 72%),
    linear-gradient(165deg, rgba(255, 253, 250, 0.98), rgba(249, 239, 227, 0.96));
  box-shadow:
    0 18px 38px rgba(70, 43, 22, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

#prestations .service-card::before {
  content: counter(home-service, decimal-leading-zero);
  position: absolute;
  top: 1.1rem;
  right: 1.15rem;
  color: rgba(155, 101, 49, 0.62);
  font-family: "Cormorant Garamond", serif;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

#prestations .service-card::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, #d6a266, rgba(214, 162, 102, 0.08));
}

#prestations .service-card h3 {
  min-height: 3.25em;
  margin: 0;
  padding-right: 2.6rem;
  color: #261b14;
  font-size: 1.24rem;
}

#prestations .service-card__description {
  min-height: 4.8em;
  color: #625246;
  font-size: 0.96rem;
}

#prestations .service-card__price,
#prestations .service-card__duration {
  min-height: auto;
  color: #4e3a2a;
  font-size: 0.98rem;
}

#prestations .service-card__price {
  margin-top: 0.2rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(221, 197, 169, 0.72);
}

#prestations .service-card__price strong,
#prestations .service-card__duration strong {
  color: #8b592c;
}

#prestations .service-card__action {
  padding-top: 0.55rem;
}

#prestations .service-card__action a {
  min-height: 44px;
}

#prestations .service-card:hover {
  transform: translateY(-7px);
  border-color: #d2aa7c;
  box-shadow:
    0 24px 48px rgba(70, 43, 22, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

#booking {
  padding-inline: clamp(1rem, 3vw, 2.4rem);
  border: 1px solid rgba(224, 201, 174, 0.9);
  border-radius: 36px;
  background:
    radial-gradient(620px 360px at 100% 0%, rgba(221, 174, 117, 0.18), transparent 70%),
    linear-gradient(145deg, rgba(255, 251, 246, 0.8), rgba(244, 231, 214, 0.74));
  box-shadow:
    0 28px 60px rgba(76, 47, 24, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.booking-login-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-color: rgba(214, 179, 137, 0.92);
}

.booking-login-card p {
  margin: 0;
}

.booking-login-card__actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}

.booking-login-card__actions a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  justify-content: center;
  padding: 0.52rem 0.9rem;
  border: 1px solid #d4b18b;
  border-radius: 999px;
  background: rgba(255, 251, 246, 0.9);
  color: #63411f;
  font-weight: 700;
}

.booking-login-card__actions a:first-child {
  border-color: #bd7d40;
  background: linear-gradient(135deg, #d8a46a, #bd7b3d);
  color: #fff;
  box-shadow: 0 9px 20px rgba(160, 97, 40, 0.22);
}

.reviews-heading {
  max-width: 720px;
}

.reviews-heading .section-kicker {
  margin-bottom: 0.7rem;
}

@media (max-width: 960px) {
  .hero-inner--home {
    grid-template-columns: 1fr;
    gap: 1.4rem;
  }

  .hero-inner--home > .hero-image {
    grid-column: 1;
    grid-row: 2;
  }

  .hero--home h1 {
    max-width: 12ch;
  }
}

@media (max-width: 700px) {
  .hero--home {
    min-height: auto;
    border-radius: 24px;
  }

  .hero-inner--home {
    min-height: auto;
  }

  .hero--home .hero-content {
    padding: 0.8rem 0.25rem 0.2rem;
  }

  .hero--home h1 {
    font-size: clamp(2.75rem, 13vw, 3.65rem);
  }

  .hero--home .hero-cta a {
    flex: 1 1 140px;
  }

  #booking {
    padding-inline: 0.85rem;
    border-radius: 24px;
  }

  .booking-login-card {
    grid-template-columns: 1fr;
  }

  .booking-login-card__actions {
    flex-wrap: wrap;
  }

  .booking-login-card__actions a {
    flex: 1 1 120px;
  }
}

/* Homepage feedback refinements */
#booking {
  padding-block: clamp(2rem, 3.6vw, 3rem);
}

#booking .booking-layout {
  grid-auto-rows: auto;
  align-content: start;
}

#booking .booking-layout > section {
  height: auto;
  min-height: 0;
}

#booking [aria-labelledby="booking-step-2"] {
  align-self: start;
}

.reviews-section {
  margin-top: clamp(1.6rem, 3.5vw, 3rem);
  padding-top: clamp(1.8rem, 3.4vw, 2.8rem);
  padding-bottom: clamp(1rem, 2.4vw, 1.8rem);
}

.reviews-section:has(.review-card--empty) .reviews-layout {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.reviews-section:has(.review-card--empty) .reviews-grid {
  grid-template-columns: 1fr;
}

.reviews-section .review-card--empty {
  width: 100%;
  padding: 1.05rem 1.2rem;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(74, 47, 24, 0.07);
}

.reviews-section .review-card--empty p:nth-child(3) {
  margin-top: 0.25rem;
}

main#main-content:has(.hero--home) {
  padding-bottom: clamp(0.75rem, 2vw, 1.5rem);
}

@media (min-width: 1180px) {
  #booking .booking-layout {
    grid-template-columns: minmax(0, 1.45fr) minmax(220px, 0.56fr) minmax(300px, 0.76fr);
    grid-template-areas: "step1 step2 step3";
    align-items: start;
  }

  #booking [aria-labelledby="booking-step-3"] {
    position: sticky;
    top: 6.2rem;
  }
}

@media (max-width: 700px) {
  main > section {
    padding-block: clamp(1.7rem, 7vw, 2.35rem);
  }

  .hero-inner--home > .hero-image {
    border-radius: 20px;
    box-shadow: 0 16px 30px rgba(72, 40, 18, 0.18);
  }

  #prestations .services-grid {
    gap: 0;
    border-top: 1px solid rgba(211, 174, 133, 0.72);
  }

  #prestations .service-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem 0.85rem;
    min-height: 0;
    padding: 1.15rem 0.15rem;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid rgba(211, 174, 133, 0.72);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #prestations .service-card:hover {
    transform: none;
    border-color: rgba(211, 174, 133, 0.72);
    box-shadow: none;
  }

  #prestations .service-card::before {
    position: static;
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    color: rgba(139, 89, 44, 0.68);
    font-size: 1rem;
  }

  #prestations .service-card::after {
    display: none;
  }

  #prestations .service-card h3 {
    grid-column: 1;
    grid-row: 1;
    min-height: 0;
    padding-right: 0;
    font-size: 1.14rem;
    line-height: 1.25;
  }

  #prestations .service-card__description {
    grid-column: 1 / -1;
    min-height: 0;
    margin-top: 0.05rem;
    font-size: 0.92rem;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  #prestations .service-card__price,
  #prestations .service-card__duration {
    min-height: 0;
    margin: 0.15rem 0 0;
    padding: 0;
    border: 0;
    font-size: 0.9rem;
  }

  #prestations .service-card__price {
    grid-column: 1;
  }

  #prestations .service-card__duration {
    grid-column: 2;
    text-align: right;
  }

  #prestations .service-card__action {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    margin: 0;
    padding-top: 0.2rem;
  }

  #prestations .service-card__action a {
    width: auto;
    min-height: 38px;
    padding: 0.45rem 1.15rem;
    box-shadow: none;
  }

  #booking {
    width: 100%;
    padding: 1.9rem 1rem 1.6rem;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
  }

  #booking .booking-layout {
    gap: 0.7rem;
    margin-top: 1rem;
  }

  #booking .booking-layout > section {
    gap: 0.65rem;
    padding: 0.9rem;
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(74, 47, 24, 0.07);
  }

  #booking [aria-labelledby="booking-step-1"] .js-booking-selection {
    display: none;
  }

  #booking [aria-labelledby="booking-step-1"] h3,
  #booking [aria-labelledby="booking-step-2"] h3,
  #booking [aria-labelledby="booking-step-3"] h3 {
    margin-bottom: 0.35rem;
    font-size: 1.45rem;
  }

  #booking .calendar {
    padding: 0.7rem;
    border-radius: 13px;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
    padding: 0.58rem 0.65rem;
    font-size: 0.91rem;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row--highlight {
    padding: 0.68rem 0.72rem;
  }

  .reviews-section {
    margin-top: 0.6rem;
    padding-top: 1.5rem;
    padding-bottom: 0.7rem;
  }

  .reviews-section .review-card--empty {
    padding: 0.9rem 1rem;
  }

  footer.site-footer {
    margin-top: 0.75rem;
  }
}

/* Prestations: premium, compact treatment menu */
#prestations .services-grid {
  gap: 0.95rem;
}

#prestations .service-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto minmax(3.5rem, 1fr) auto auto;
  gap: 0.65rem 0.55rem;
  min-height: 295px;
  padding: 1.35rem;
  border-radius: 20px;
  background:
    linear-gradient(150deg, rgba(255, 254, 251, 0.98), rgba(248, 237, 224, 0.94));
  box-shadow:
    0 12px 28px rgba(70, 43, 22, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

#prestations .service-card h3 {
  grid-column: 1 / -1;
  min-height: 2.7em;
  padding-right: 2.3rem;
  font-size: 1.18rem;
  line-height: 1.25;
}

#prestations .service-card__description {
  grid-column: 1 / -1;
  min-height: 0;
  margin: 0;
  line-height: 1.55;
}

#prestations .service-card__price,
#prestations .service-card__duration {
  align-self: center;
  min-height: 0;
  margin: 0;
  padding: 0.5rem 0.62rem;
  border: 1px solid rgba(218, 188, 153, 0.65);
  border-radius: 10px;
  background: rgba(255, 249, 241, 0.76);
  font-size: 0.88rem;
  line-height: 1.25;
  white-space: nowrap;
}

#prestations .service-card__price {
  grid-column: 1;
}

#prestations .service-card__duration {
  grid-column: 2;
}

#prestations .service-card__action {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding-top: 0.15rem;
}

#prestations .service-card__action a {
  width: auto;
  min-height: 40px;
  padding: 0.48rem 1rem;
  gap: 0.45rem;
  box-shadow: 0 8px 16px rgba(160, 97, 40, 0.16);
}

#prestations .service-card__action a::after {
  content: "\2192";
  font-size: 1rem;
  transition: transform 0.2s ease;
}

#prestations .service-card__action a:hover::after {
  transform: translateX(3px);
}

#prestations .service-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 20px 38px rgba(70, 43, 22, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

@media (max-width: 700px) {
  #prestations .section-intro {
    margin-bottom: 1.1rem;
  }

  #prestations .services-grid {
    gap: 0;
    padding-inline: 0.85rem;
    overflow: hidden;
    border: 1px solid rgba(211, 174, 133, 0.7);
    border-radius: 20px;
    background: rgba(255, 251, 246, 0.56);
    box-shadow: 0 12px 28px rgba(70, 43, 22, 0.07);
  }

  #prestations .service-card {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-rows: auto auto auto;
    gap: 0.42rem 0.65rem;
    min-height: 0;
    padding: 1.05rem 0.15rem;
    border: 0;
    border-bottom: 1px solid rgba(211, 174, 133, 0.66);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #prestations .service-card:last-child {
    border-bottom: 0;
  }

  #prestations .service-card:hover {
    transform: none;
    box-shadow: none;
  }

  #prestations .service-card::before {
    grid-column: 3;
    grid-row: 1;
  }

  #prestations .service-card h3 {
    grid-column: 1 / 3;
    grid-row: 1;
    min-height: 0;
    padding-right: 0;
    font-size: 1.1rem;
  }

  #prestations .service-card__description {
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 0;
    font-size: 0.9rem;
    line-height: 1.45;
    -webkit-line-clamp: 2;
  }

  #prestations .service-card__price,
  #prestations .service-card__duration {
    grid-row: 3;
    align-self: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 0.84rem;
  }

  #prestations .service-card__price {
    grid-column: 1;
  }

  #prestations .service-card__duration {
    grid-column: 2;
    text-align: right;
  }

  #prestations .service-card__action {
    grid-column: 3;
    grid-row: 3;
    align-self: center;
    padding: 0;
  }

  #prestations .service-card__action a {
    min-height: 36px;
    padding: 0.4rem 0.75rem;
    font-size: 0.9rem;
    box-shadow: none;
  }
}

@media (max-width: 380px) {
  #prestations .service-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  #prestations .service-card::before {
    grid-column: 2;
  }

  #prestations .service-card h3 {
    grid-column: 1;
  }

  #prestations .service-card__duration {
    grid-column: 2;
  }

  #prestations .service-card__action {
    grid-column: 1 / -1;
    grid-row: 4;
    justify-self: end;
    margin-top: 0.2rem;
  }
}

/* Admin reservations: one-off blocked time ranges */
.admin-unavailability-panel {
  display: grid;
  gap: 1.1rem;
}

.admin-unavailability-panel .admin-panel__head {
  align-items: flex-start;
  gap: 1rem;
}

.admin-unavailability-panel .admin-panel__head p:last-child {
  max-width: 760px;
  margin: 0.35rem 0 0;
  color: var(--muted, #6e5a49);
}

.admin-unavailability-form {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(110px, 0.7fr) minmax(110px, 0.7fr) minmax(220px, 1.5fr) auto;
  gap: 0.75rem;
  align-items: end;
  padding: 1rem;
  border: 1px solid rgba(214, 166, 110, 0.48);
  border-radius: 18px;
  background: rgba(255, 251, 246, 0.72);
}

.admin-unavailability-form label {
  display: grid;
  gap: 0.4rem;
  margin: 0;
}

.admin-unavailability-form label > span {
  color: #674629;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.admin-unavailability-form label small {
  font-weight: 500;
}

.admin-unavailability-form input,
.admin-unavailability-form button {
  min-height: 46px;
}

.admin-unavailability-form button {
  white-space: nowrap;
}

.admin-unavailability-list {
  margin-top: 0.1rem;
}

.admin-unavailability-list td {
  vertical-align: middle;
}

@media (max-width: 1120px) {
  .admin-unavailability-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .admin-unavailability-form__reason {
    grid-column: 1 / 3;
  }
}

@media (max-width: 700px) {
  .admin-unavailability-panel .admin-panel__head {
    display: grid;
  }

  .admin-unavailability-panel .admin-chip {
    justify-self: start;
  }

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

  .admin-unavailability-form__reason {
    grid-column: auto;
  }

  .admin-unavailability-form button {
    width: 100%;
  }
}

/* Auth: compact, aligned account forms */
.auth-page .auth-section {
  width: min(100% - 2rem, 640px);
}

.auth-page .auth-card {
  width: 100%;
  max-width: 640px;
  padding: clamp(1.25rem, 3vw, 1.65rem);
  border-radius: 22px;
}

.auth-page .auth-card h2,
.auth-page .auth-card .auth-title {
  width: min(100%, 520px);
  margin: 0 auto 1rem;
}

.auth-page .auth-card .auth-title {
  font-size: clamp(2rem, 4vw, 2.65rem);
}

.gallery-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: fit-content;
  max-width: 100%;
  margin-top: clamp(1rem, 2.4vw, 1.5rem);
  margin-inline: auto;
  padding: 0.45rem;
  border: 1px solid rgba(212, 184, 148, 0.75);
  border-radius: 999px;
  background: rgba(255, 250, 242, 0.72);
  box-shadow: 0 10px 24px rgba(74, 47, 24, 0.08);
}

.gallery-pagination .reviews-pagination-side,
.gallery-pagination .reviews-pagination-pages {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.gallery-pagination .reviews-pagination-pages {
  max-width: none;
  overflow: visible;
}

.gallery-pagination-ellipsis {
  display: inline-flex;
  min-width: 1.35rem;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  color: #8a6a4d;
  font-weight: 700;
}

.gallery-pagination-status,
.gallery-pagination-mobile-pages,
.gallery-pagination .gallery-page-disabled {
  display: none;
}

/* Galerie publique : garder le pied de page proche de la dernière rangée. */
body:has(.gallery-grid--public) main#main-content {
  padding-bottom: clamp(0.9rem, 1.6vw, 1.4rem);
}

body:has(.gallery-grid--public) main#main-content > section[aria-label="Galerie photos"] {
  padding-bottom: clamp(0.9rem, 1.6vw, 1.4rem);
}

body:has(.gallery-grid--public) .site-footer {
  margin-top: clamp(0.65rem, 1.2vw, 1rem);
}

@media (max-width: 760px) {
  .gallery-pagination {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 0.65rem;
    padding: 0.85rem;
    border-radius: 20px;
  }

  .gallery-pagination .reviews-pagination-pages {
    display: none;
  }

  .gallery-pagination-status {
    display: inline-flex;
    grid-column: 1 / -1;
    grid-row: 1;
    align-items: baseline;
    justify-content: center;
    gap: 0.3rem;
    padding: 0.1rem 0;
    color: #6a4a2e;
    font-size: 0.9rem;
    font-weight: 500;
  }

  .gallery-pagination-mobile-pages {
    display: flex;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: clamp(0.3rem, 2vw, 0.55rem);
  }

  .gallery-pagination-mobile-pages .reviews-page-link {
    flex: 0 0 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0.35rem 0.45rem;
  }

  .gallery-pagination-status strong {
    color: #9b622f;
    font-size: 1.08em;
  }

  .gallery-pagination .reviews-pagination-prev,
  .gallery-pagination .reviews-pagination-next {
    grid-row: 3;
    width: 100%;
  }

  .gallery-pagination .reviews-pagination-prev {
    grid-column: 1;
  }

  .gallery-pagination .reviews-pagination-next {
    grid-column: 2;
  }

  .gallery-pagination .reviews-pagination-side .reviews-page-link {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 0.6rem 0.35rem;
    border-radius: 12px;
    font: inherit;
    font-weight: 600;
  }

  .gallery-pagination .gallery-page-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #967f69;
    background: #f3ebe1;
    border-color: #e5d6c4;
    box-shadow: none;
    cursor: default;
  }

  .gallery-pagination a:focus-visible {
    outline: 3px solid #9b622f;
    outline-offset: 3px;
  }
}

.auth-page .auth-card form,
.auth-page .auth-alt-actions {
  width: min(100%, 520px);
  margin-inline: auto;
}

.auth-page .auth-card form {
  display: grid;
  gap: 0.85rem;
}

.auth-page .auth-card form > p,
.auth-page .auth-form-grid p {
  margin: 0;
}

.auth-page .auth-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.auth-page .auth-card input {
  min-height: 44px;
}

.auth-page .auth-card form > p:has(button) {
  margin-top: 0.1rem;
}

.auth-page .auth-alt-actions {
  justify-content: flex-start;
  gap: 0.65rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(222, 199, 171, 0.68);
}

.auth-page .auth-alt-actions .button-link {
  min-height: 38px;
  padding: 0.5rem 0.85rem;
}

@media (max-width: 640px) {
  .auth-page .auth-section {
    width: min(100% - 1.25rem, 640px);
  }

  .auth-page .auth-card {
    padding: 1.05rem;
    border-radius: 18px;
  }

  .auth-page .auth-form-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .auth-page .auth-card form > p:has(button) {
    display: flex;
    justify-content: center;
  }

  .auth-page .auth-alt-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    justify-content: stretch;
    align-items: start;
    text-align: center;
  }

  .auth-page .auth-alt-actions .button-link {
    width: fit-content;
  }
}

@media (min-width: 701px) and (max-width: 1250px) {
  #prestations .service-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #prestations .service-card__price,
  #prestations .service-card__duration {
    width: 100%;
    min-width: 0;
    padding: 0.45rem 0.38rem;
    text-align: center;
    white-space: normal;
  }

  #prestations .service-card__price strong,
  #prestations .service-card__duration strong {
    display: block;
    margin-bottom: 0.12rem;
    font-size: 0.76rem;
  }

  #prestations .service-card__action {
    grid-column: 1 / -1;
  }
}

@media (min-width: 701px) {
  #prestations .services-grid {
    grid-auto-rows: 1fr;
    align-items: stretch;
  }

  #prestations .service-card {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto minmax(4rem, 1fr) auto auto;
    height: 100%;
    min-height: 320px;
    padding: 1.35rem;
    border-color: rgba(216, 182, 143, 0.82);
    background:
      radial-gradient(220px 130px at 100% 0%, rgba(218, 170, 113, 0.13), transparent 72%),
      linear-gradient(150deg, rgba(255, 254, 251, 0.99), rgba(248, 237, 224, 0.95));
  }

  #prestations .service-card::before {
    display: inline-flex;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    top: 1rem;
    right: 1rem;
    border: 1px solid rgba(201, 142, 82, 0.38);
    border-radius: 50%;
    background: rgba(255, 248, 239, 0.86);
    color: #a76c35;
    font-family: Inter, sans-serif;
    font-size: 0.67rem;
    letter-spacing: 0.05em;
  }

  #prestations .service-card h3 {
    min-height: 3em;
    padding-right: 2.7rem;
  }

  #prestations .service-card__price,
  #prestations .service-card__duration {
    display: grid;
    min-height: 56px;
    place-content: center;
    gap: 0.12rem;
    text-align: center;
  }

  #prestations .service-card__price strong,
  #prestations .service-card__duration strong {
    display: block;
    margin: 0;
    color: #9b6533;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #prestations .service-card__action {
    width: 100%;
    padding-top: 0.25rem;
  }

  #prestations .service-card__action a {
    width: 100%;
    min-height: 42px;
    justify-content: center;
    border: 1px solid rgba(181, 112, 51, 0.72);
    background: linear-gradient(135deg, #dca767, #bf793a);
    box-shadow: 0 9px 18px rgba(153, 89, 34, 0.2);
  }

  #prestations .service-card:hover {
    transform: translateY(-5px);
    border-color: rgba(193, 137, 78, 0.88);
  }
}

/* Booking: clear three-step appointment flow */
#booking {
  padding-block: clamp(2rem, 3.2vw, 2.75rem);
}

#booking .booking-login-card {
  margin-top: 1.15rem;
  padding: 0.85rem 1rem;
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(74, 47, 24, 0.07);
}

#booking .booking-layout {
  gap: 0.9rem;
  margin-top: 1.1rem;
  grid-auto-rows: auto;
  align-items: start;
  align-content: start;
}

#booking .booking-layout > section,
#booking .booking-steps-main > section {
  height: auto;
  min-height: 0;
  gap: 0.75rem;
  padding: 1.05rem;
  display: flex;
  flex-direction: column;
  position: relative;
  border-radius: 18px;
  border: 1px solid var(--line);
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.95) 0%, rgba(255, 250, 244, 0.88) 100%);
  box-shadow:
    0 12px 26px rgba(74, 47, 24, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

#booking .booking-layout > section::before,
#booking .booking-steps-main > section::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 2px;
  background: linear-gradient(90deg, #d39a5c, rgba(211, 154, 92, 0.12));
}

#booking .booking-steps-main {
  display: grid;
  gap: 0.9rem;
  align-content: start;
  min-width: 0;
}

#booking [aria-labelledby="booking-step-1"] h3,
#booking [aria-labelledby="booking-step-2"] h3,
#booking [aria-labelledby="booking-step-3"] h3 {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.35rem;
  font-size: 1.48rem;
}

#booking [aria-labelledby="booking-step-1"] h3::before,
#booking [aria-labelledby="booking-step-2"] h3::before,
#booking [aria-labelledby="booking-step-3"] h3::before {
  display: inline-flex;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(196, 131, 70, 0.48);
  border-radius: 50%;
  background: #fff7ed;
  color: #9d632e;
  font-family: Inter, sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
}

#booking [aria-labelledby="booking-step-1"] h3::before {
  content: "1";
}

#booking [aria-labelledby="booking-step-2"] h3::before {
  content: "2";
}

#booking [aria-labelledby="booking-step-3"] h3::before {
  content: "3";
}

#booking [aria-labelledby="booking-step-1"] form,
#booking [aria-labelledby="booking-step-1"] form > p {
  margin: 0;
}

#booking [aria-labelledby="booking-step-1"] label[for="service_id"] {
  display: inline-block;
  margin-bottom: 0.5rem;
  color: #8b6038;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#booking [aria-labelledby="booking-step-1"] label[for="service_id"] + br {
  display: none;
}

#booking #service_id {
  min-height: 44px;
  border-color: rgba(218, 187, 151, 0.9);
  background-color: rgba(255, 253, 250, 0.95);
}

#booking .calendar {
  margin-top: 0.75rem;
  padding: 0.8rem;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(248, 237, 223, 0.92));
  box-shadow: none;
}

#booking .calendar-days button {
  min-height: 32px;
  border-radius: 9px;
  box-shadow: none;
}

#booking [aria-labelledby="booking-step-1"] .js-booking-selection {
  display: none;
}

#booking [aria-labelledby="booking-step-2"] {
  align-self: start;
}

#booking #slot-info {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border: 1px dashed rgba(204, 157, 108, 0.62);
  border-radius: 12px;
  background: rgba(255, 249, 241, 0.68);
  color: #68503b;
  line-height: 1.5;
}

#booking #slot-list {
  margin-top: 0;
}

#booking .booking-payment-mode {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0;
  padding: 0.7rem;
}

#booking .booking-payment-mode legend {
  margin-left: 0.15rem;
}

#booking .booking-payment-mode__option {
  min-width: 0;
  min-height: 62px;
  margin: 0;
  padding: 0.55rem;
}

#booking .booking-payment-mode__hint {
  grid-column: 1 / -1;
  margin-top: 0.15rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(222, 199, 171, 0.62);
  font-size: 0.78rem;
  line-height: 1.45;
}

#booking .js-summary-compact {
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(225, 204, 179, 0.78);
  border-radius: 12px;
  background: rgba(255, 252, 248, 0.7);
}

#booking .js-summary-compact .summary-main {
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(225, 204, 179, 0.78);
  border-radius: 0;
  box-shadow: none;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
  min-height: 43px;
  padding: 0.55rem 0.75rem;
  font-size: 0.88rem;
  line-height: 1.35;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row--highlight {
  margin: 0;
  border-radius: 0;
}

#booking [aria-labelledby="booking-step-3"] .js-summary-compact::after {
  display: none;
}

#booking [aria-labelledby="booking-step-3"] > p:last-child {
  margin-top: 0;
  padding-top: 0.15rem;
}

#booking [aria-labelledby="booking-step-3"] > p:last-child button {
  min-height: 44px;
  border-radius: 12px;
}

@media (min-width: 1024px) {
  #booking .booking-layout {
    grid-template-columns: minmax(0, 1.58fr) minmax(340px, 0.72fr);
    grid-template-rows: max-content;
    grid-template-areas: "main step3";
  }

  #booking .booking-steps-main {
    grid-area: main;
  }

  #booking .booking-steps-main [aria-labelledby="booking-step-1"],
  #booking [aria-labelledby="booking-step-2"] {
    grid-area: auto;
  }

  #booking [aria-labelledby="booking-step-3"] {
    grid-area: step3;
    position: static;
    top: auto;
    align-self: start;
  }
}

@media (max-width: 700px) {
  #booking {
    padding-top: 1.7rem;
  }

  #booking .booking-login-card {
    margin-top: 0.9rem;
  }

  #booking .booking-layout > section,
  #booking .booking-steps-main > section {
    padding: 0.85rem;
    border-radius: 15px;
  }

  #booking [aria-labelledby="booking-step-1"] h3,
  #booking [aria-labelledby="booking-step-2"] h3,
  #booking [aria-labelledby="booking-step-3"] h3 {
    font-size: 1.3rem;
  }

  #booking [aria-labelledby="booking-step-1"] h3::before,
  #booking [aria-labelledby="booking-step-2"] h3::before,
  #booking [aria-labelledby="booking-step-3"] h3::before {
    flex-basis: 27px;
    width: 27px;
    height: 27px;
  }

  #booking .calendar-weekdays,
  #booking .calendar-days {
    gap: 0.25rem;
  }

  #booking .calendar-weekdays li {
    font-size: 0.68rem;
  }

  #booking .calendar-days button {
    min-height: 31px;
    font-size: 0.78rem;
  }

  #booking .booking-payment-mode {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 0.55rem;
  }

  #booking .booking-payment-mode__option {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.45rem;
    min-height: 58px;
    padding: 0.45rem;
  }

  #booking .booking-payment-mode__content strong {
    font-size: 0.88rem;
  }

  #booking .booking-payment-mode__content small {
    font-size: 0.72rem;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
    display: flex;
    min-height: 40px;
    justify-content: space-between;
    padding: 0.5rem 0.62rem;
  }

  #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row span {
    text-align: right;
  }
}

@media (max-width: 380px) {
  #booking .booking-payment-mode {
    grid-template-columns: 1fr;
  }

  #booking .booking-payment-mode__hint {
    grid-column: 1;
  }

  #booking #slot-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ========================================================================== */
/* Admin workspace — final isolated design system                             */
/* ========================================================================== */

.admin-body {
  --admin-bg: #f4f0eb;
  --admin-panel: #fffdf9;
  --admin-panel-soft: #faf6f0;
  --admin-text: #28211d;
  --admin-muted: #6e6258;
  --admin-line: #ded2c4;
  --admin-line-strong: #cdbba8;
  --admin-accent: #995526;
  --admin-accent-dark: #753b18;
  --admin-accent-soft: #f6e7d6;
  --admin-success: #2f6b46;
  --admin-success-soft: #eaf4ed;
  --admin-danger: #9b3f3a;
  --admin-danger-soft: #faecea;
  --admin-warning: #8d5b1d;
  --admin-warning-soft: #fff2dc;
  --admin-info: #456a83;
  color: var(--admin-text);
  background:
    radial-gradient(circle at 8% 4%, rgba(255, 255, 255, 0.88), transparent 30%),
    radial-gradient(circle at 92% 96%, rgba(225, 205, 181, 0.34), transparent 34%),
    var(--admin-bg);
}

.admin-body::before {
  opacity: 0.35;
}

.admin-body main.admin-page {
  width: min(calc(100% - 2rem), 1440px);
  margin-inline: auto;
  padding: 1.15rem 0 3rem;
  display: grid;
  gap: 1.15rem;
  align-content: start;
}

.admin-body .admin-page > section,
.admin-body .admin-section-grid {
  width: 100%;
  margin: 0;
  padding: 0;
}

.admin-body p {
  color: var(--admin-muted);
}

.admin-body .admin-panel h2,
.admin-body .admin-tool-card h2,
.admin-body .admin-page section:not(.admin-hero) > h2 {
  margin: 0;
  font-family: "Inter", sans-serif;
  font-size: clamp(1.15rem, 1.8vw, 1.42rem);
  line-height: 1.25;
  letter-spacing: -0.025em;
  color: var(--admin-text);
}

.admin-body .admin-page h3 {
  font-family: "Inter", sans-serif;
  letter-spacing: -0.018em;
}

/* Header */
.admin-header.site-header {
  width: min(calc(100% - 2rem), 1440px);
  top: 0.55rem;
  margin: 0.6rem auto 0;
  padding: 0.7rem 0.8rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "brand actions"
    "nav nav";
  gap: 0.65rem 1rem;
  border: 1px solid rgba(205, 187, 168, 0.9);
  border-radius: 20px;
  background: rgba(255, 253, 249, 0.95);
  box-shadow: 0 12px 30px rgba(57, 43, 33, 0.11);
  backdrop-filter: blur(16px);
}

.admin-header .site-branding {
  grid-area: brand;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}

.admin-header .site-branding a {
  font-size: clamp(1.55rem, 2vw, 1.9rem);
  line-height: 1;
}

.admin-header .admin-badge {
  min-height: 26px;
  padding: 0.18rem 0.55rem;
  border-color: var(--admin-line-strong);
  background: var(--admin-accent-soft);
  color: var(--admin-accent-dark);
  font-size: 0.68rem;
}

.admin-header nav {
  grid-area: nav;
  width: 100%;
  min-width: 0;
  justify-self: stretch;
  overflow: hidden;
}

.admin-header nav ul {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: 0.3rem;
  overflow-x: auto;
  padding: 0.1rem 0 0.15rem;
  scrollbar-width: thin;
}

.admin-header nav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.5rem 0.7rem;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #4e443c;
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}

.admin-header nav a::after {
  display: none;
}

.admin-header nav a:hover {
  border-color: var(--admin-line);
  background: var(--admin-panel-soft);
  color: var(--admin-accent-dark);
}

.admin-header nav a.is-active,
.admin-header nav a[aria-current="page"] {
  border-color: #302823;
  background: #302823;
  color: #fff;
}

.admin-header .admin-link-site {
  margin-left: auto;
  border-color: #d8c7b5;
  background: #fff;
  color: var(--admin-accent-dark);
}

.admin-header .site-header-actions {
  grid-area: actions;
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 0.5rem;
}

.site-logout-form {
  display: block !important;
  margin: 0;
}

.site-logout-form > input[type="hidden"] {
  display: none;
}

@media (max-width: 900px) {
  .mobile-only-auth .site-logout-form .site-auth-link {
    display: flex !important;
    width: 100%;
  }
}

.admin-header .site-notifications__toggle,
.admin-header .site-auth-link {
  min-height: 40px;
  border-radius: 11px;
  font-size: 0.86rem;
  font-weight: 700;
  white-space: nowrap;
}

.admin-header .site-logout-form .site-auth-link {
  width: auto;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--admin-line);
  background: #fff;
  color: #52473f;
  box-shadow: none;
}

.admin-header .site-notifications__toggle {
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--admin-accent);
  background: var(--admin-accent);
  color: #fff;
  box-shadow: none;
}

.admin-header .site-notifications__count {
  background: #fff;
  color: var(--admin-accent-dark);
}

.admin-header .site-notifications__count.is-empty {
  background: rgba(255, 255, 255, 0.82);
  color: #655044;
}

.admin-header .site-auth-link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--admin-line);
  background: #fff;
  color: #52473f;
}

.admin-header .site-auth-link:hover {
  border-color: var(--admin-line-strong);
  color: var(--admin-danger);
}

.admin-header .site-notifications__panel {
  border-color: var(--admin-line);
  background: var(--admin-panel);
  box-shadow: 0 20px 46px rgba(52, 39, 30, 0.18);
}

@media (min-width: 1700px) {
  .admin-header.site-header {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "brand nav actions";
    gap: 0.8rem;
  }

  .admin-header nav ul {
    justify-content: center;
  }

  .admin-header nav a {
    padding-inline: 0.55rem;
    font-size: 0.82rem;
  }

  .admin-header .admin-link-site {
    margin-left: 0;
  }
}

/* Shared surfaces */
.admin-body .admin-hero {
  min-height: 0;
  padding: clamp(1.35rem, 2.6vw, 2rem);
  border: 1px solid var(--admin-line);
  border-radius: 22px;
  align-items: center;
  background:
    radial-gradient(500px 210px at 95% 95%, rgba(198, 137, 79, 0.18), transparent 72%),
    linear-gradient(118deg, #fffdfa 0%, #faf4ed 55%, #f2e3d2 100%);
  box-shadow: 0 12px 30px rgba(57, 43, 33, 0.08);
}

.admin-body .admin-hero__content > p:first-child {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 0.45rem;
  color: var(--admin-accent);
  font-size: 0.72rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.admin-body .admin-hero__content > p:first-child::before {
  content: "";
  width: 26px;
  height: 1px;
  background: currentColor;
}

.admin-body .admin-hero h1 {
  margin: 0 0 0.5rem;
  font-size: clamp(2.45rem, 4.2vw, 3.7rem);
  line-height: 0.98;
}

.admin-body .admin-hero__content > p:last-child {
  max-width: 70ch;
  margin: 0;
  font-size: 0.97rem;
  line-height: 1.6;
}

.admin-body .admin-chip {
  min-height: 32px;
  padding: 0.28rem 0.7rem;
  border-color: #d7c4b0;
  background: rgba(255, 253, 249, 0.86);
  color: #67472f;
  font-size: 0.68rem;
}

.admin-body .admin-panel {
  overflow: hidden;
  padding: clamp(1.05rem, 2vw, 1.4rem);
  border: 1px solid var(--admin-line);
  border-radius: 20px;
  background: var(--admin-panel);
  box-shadow: 0 10px 26px rgba(57, 43, 33, 0.07);
}

.admin-body .admin-panel__head {
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid #ebe3da;
}

.admin-body .admin-panel__head h2 {
  margin: 0;
}

.admin-body .admin-section-eyebrow {
  margin: 0 0 0.28rem;
  color: var(--admin-accent);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}

.admin-body .admin-panel__meta {
  min-height: 32px;
  padding: 0.3rem 0.65rem;
  border: 1px solid var(--admin-line);
  background: var(--admin-panel-soft);
  color: #665548;
  font-size: 0.74rem;
}

.admin-body button,
.admin-body .btn-secondary,
.admin-body .button-link {
  min-height: 42px;
  border-radius: 11px;
  font-size: 0.9rem;
  font-weight: 700;
}

.admin-body button:not(.btn-secondary):not(.site-notifications__delete):not(.mobile-menu-toggle) {
  border-color: var(--admin-accent);
  background: var(--admin-accent);
  color: #fff;
  box-shadow: 0 8px 16px rgba(117, 59, 24, 0.14);
}

.admin-body button:not(.btn-secondary):not(.site-notifications__delete):not(.mobile-menu-toggle):hover {
  border-color: var(--admin-accent-dark);
  background: var(--admin-accent-dark);
  transform: translateY(-1px);
}

.admin-body .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.95rem;
  border: 1px solid var(--admin-line-strong);
  background: #fff;
  color: #51463e;
  box-shadow: none;
}

.admin-body .btn-secondary:hover {
  border-color: #aa8d73;
  background: var(--admin-panel-soft);
  color: var(--admin-accent-dark);
}

.admin-body button:disabled,
.admin-body .btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.admin-body .js-delete,
.admin-body .js-gallery-delete,
.admin-body .js-delete-slot,
.admin-body .js-delete-blocked,
.admin-body .js-delete-weekday,
.admin-body [data-action="delete"] {
  border-color: #e2b8b4 !important;
  background: var(--admin-danger-soft) !important;
  color: var(--admin-danger) !important;
  box-shadow: none !important;
}

.admin-body [data-action="approve"] {
  border-color: #b9d7c3;
  background: var(--admin-success-soft);
  color: var(--admin-success);
}

.admin-body [data-action="reject"] {
  border-color: #e5cca2;
  background: var(--admin-warning-soft);
  color: var(--admin-warning);
}

.admin-body input,
.admin-body select,
.admin-body textarea {
  min-height: 44px;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--admin-line-strong);
  border-radius: 11px;
  background: #fff;
  color: var(--admin-text);
  font: inherit;
  box-shadow: inset 0 1px 2px rgba(58, 44, 33, 0.035);
}

.admin-body textarea {
  min-height: 108px;
  resize: vertical;
}

.admin-body input:hover,
.admin-body select:hover,
.admin-body textarea:hover {
  border-color: #bda690;
}

.admin-body input:focus,
.admin-body select:focus,
.admin-body textarea:focus {
  border-color: var(--admin-accent);
  outline: 3px solid rgba(153, 85, 38, 0.14);
  outline-offset: 0;
}

.admin-form {
  display: grid;
  gap: 0.9rem;
}

.admin-form__field {
  display: grid !important;
  gap: 0.38rem;
  margin: 0;
  color: #4d423a;
  font-size: 0.84rem;
  font-weight: 700;
}

.admin-form__field span {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-form__field small,
.admin-form__toggle small {
  color: #88796d;
  font-size: 0.74rem;
  font-weight: 500;
}

.admin-form__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.admin-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.admin-form__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  margin: 0;
  padding: 0.75rem 0.8rem;
  border: 1px solid var(--admin-line);
  border-radius: 12px;
  background: var(--admin-panel-soft);
}

.admin-form__toggle > span {
  display: grid;
  gap: 0.08rem;
}

.admin-body .switch input:focus-visible + .switch-track,
.admin-body .stripe-toggle input:focus-visible + .stripe-toggle__control {
  outline: 3px solid rgba(153, 85, 38, 0.28);
  outline-offset: 3px;
}

.admin-body form .switch input,
.admin-body form .stripe-toggle input {
  position: absolute;
  width: 1px;
  height: 1px;
  min-height: 1px;
  padding: 0;
  border: 0;
}

.admin-file-field input[type="file"] {
  padding: 0.45rem;
  background: var(--admin-panel-soft);
}

.admin-file-field input[type="file"]::file-selector-button {
  margin-right: 0.7rem;
  padding: 0.55rem 0.7rem;
  border: 0;
  border-radius: 8px;
  background: #3a3029;
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.admin-feedback:empty,
.admin-feedback-bar:has(.admin-feedback:empty) {
  display: none;
}

.admin-feedback:not(:empty) {
  min-height: 0;
  margin: 0.75rem 0 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid #c3d8c8;
  border-radius: 11px;
  background: var(--admin-success-soft);
  color: var(--admin-success);
}

.admin-feedback.is-error:not(:empty) {
  border-color: #e2b8b4;
  background: var(--admin-danger-soft);
  color: var(--admin-danger);
}

.site-flash {
  width: min(calc(100% - 2rem), 1440px);
  margin: 0.8rem auto 0;
  padding: 0.75rem 0.9rem;
  border: 1px solid #c3d8c8;
  border-radius: 12px;
  background: #f1f8f3;
}

.site-flash--error {
  border-color: #e2b8b4;
  background: #fff0ee;
}

.site-flash p {
  margin: 0;
}

/* Tables */
.admin-body .admin-table-scroll {
  overflow: auto;
  border: 1px solid var(--admin-line);
  border-radius: 14px;
  background: #fff;
}

.admin-body .admin-data-table {
  min-width: 720px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.admin-body .admin-data-table th,
.admin-body .admin-data-table td {
  padding: 0.78rem 0.85rem;
  border-bottom-color: #ece5dd;
  vertical-align: middle;
}

.admin-body .admin-data-table th {
  background: #f6f1eb;
  color: #594b40;
  font-size: 0.72rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.admin-body .admin-data-table tbody tr:hover td {
  background: #fcf9f5;
}

.admin-table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.admin-table-actions button {
  min-height: 36px;
  padding: 0.45rem 0.65rem;
  font-size: 0.8rem;
}

.admin-empty-cell {
  height: 110px;
  text-align: center !important;
  color: var(--admin-muted);
}

.admin-empty-state {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 1.5rem;
  border: 1px dashed var(--admin-line-strong);
  border-radius: 14px;
  background: var(--admin-panel-soft);
  text-align: center;
}

.admin-empty-state strong {
  color: var(--admin-text);
  font-size: 1rem;
}

.admin-empty-state p {
  margin: 0.25rem 0 0;
}

.admin-contact-link {
  color: var(--admin-accent-dark);
  text-decoration: underline;
  text-decoration-color: #d9b99f;
  text-underline-offset: 3px;
}

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

.admin-body .admin-pagination {
  justify-content: flex-end;
  margin-top: 0.75rem;
}

.admin-body .admin-pagination button {
  min-height: 36px;
}

/* Dashboard */
.admin-body .admin-section-grid {
  gap: 1rem;
}

.admin-body .admin-section-grid--stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-body .admin-metric-card {
  min-height: 150px;
  padding: 1rem 1.05rem;
  border: 1px solid var(--admin-line);
  border-radius: 18px;
  background: var(--admin-panel);
  box-shadow: 0 8px 22px rgba(57, 43, 33, 0.06);
}

.admin-body .admin-metric-card--alert {
  border-color: #dcc2a3;
  background: #fffaf3;
}

.admin-body .admin-metric-card strong {
  color: var(--admin-text);
  font-size: clamp(2rem, 3vw, 2.7rem);
}

.admin-body .admin-metric-card__label {
  color: var(--admin-accent);
  font-size: 0.7rem;
}

.admin-body .admin-metric-card p {
  max-width: 30ch;
  font-size: 0.88rem;
}

.admin-body .admin-section-grid--main {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-body .quick-actions--admin {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.admin-body .quick-actions--admin a {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0.72rem 2.4rem 0.72rem 0.8rem;
  border: 1px solid var(--admin-line);
  border-radius: 11px;
  background: #fff;
  color: #4a3e35;
  font-size: 0.86rem;
  font-weight: 700;
}

.admin-body .quick-actions--admin a::after {
  content: "→";
  position: absolute;
  right: 0.85rem;
  color: var(--admin-accent);
}

.admin-body .quick-actions--admin a:hover {
  border-color: #bca48e;
  background: var(--admin-accent-soft);
  color: var(--admin-accent-dark);
}

/* Form/list workspaces */
.booking-notice {
  margin-top: 1.5rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--admin-line);
  scroll-margin-top: 220px;
}

.booking-notice h3 {
  margin: 0 0 0.65rem;
  font-size: 1.15rem;
}

.booking-notice > p,
.booking-notice .admin-form p {
  font-size: 0.85rem;
  line-height: 1.6;
}

.booking-notice .admin-form p {
  margin: 0;
}

.booking-notice__example {
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: var(--admin-accent-soft);
  color: var(--admin-accent-dark);
}

.booking-notice__hint {
  color: #746457;
}

.booking-notice__error {
  color: #9b2424;
}

.admin-workspace-grid {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.admin-workspace-grid--form-list {
  grid-template-columns: minmax(300px, 0.7fr) minmax(620px, 1.7fr);
}

.admin-workspace-grid--media {
  grid-template-columns: minmax(300px, 0.62fr) minmax(0, 1.7fr);
}

.admin-panel--form {
  position: sticky;
  top: 6.1rem;
}

/* Schedule */
.admin-schedule-tools {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.admin-tool-card {
  display: flex;
  flex-direction: column;
}

.admin-tool-card__head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #ebe3da;
}

.admin-tool-card__number {
  display: inline-flex;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid #dbc7b2;
  border-radius: 10px;
  background: var(--admin-accent-soft);
  color: var(--admin-accent-dark);
  font-size: 0.72rem;
  font-weight: 750;
}

.admin-form--compact {
  height: 100%;
  align-content: start;
}

.admin-form--compact button {
  width: 100%;
  margin-top: auto;
}

.admin-schedule-lists {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

/* Gallery */
.admin-home-hero-panel {
  overflow: hidden;
}

.admin-home-hero-editor {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(340px, 1.1fr);
  gap: 1rem;
  align-items: center;
}

.admin-home-hero-editor > img {
  width: 100%;
  aspect-ratio: 16 / 8;
  object-fit: cover;
  object-position: center 42%;
  border: 1px solid var(--admin-line);
  border-radius: 16px;
  background: var(--admin-panel-soft);
}

.admin-home-hero-editor .admin-form {
  align-content: center;
}

.admin-gallery-upload-panel {
  position: static;
}

.admin-gallery-upload-items {
  display: grid;
  gap: 0.75rem;
}

.admin-gallery-upload-item {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.7rem;
  border: 1px solid var(--admin-line);
  border-radius: 14px;
  background: var(--admin-panel-soft);
}

.admin-gallery-upload-item > img {
  width: 82px;
  height: 104px;
  object-fit: cover;
  border-radius: 10px;
}

.admin-gallery-upload-item > div,
.admin-gallery-upload-item .admin-form__field {
  min-width: 0;
}

.admin-gallery-upload-item p {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin: 0 0 0.55rem;
}

.admin-gallery-upload-item p small {
  overflow: hidden;
  color: var(--admin-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-gallery-upload-item .admin-form__field + .admin-form__field {
  margin-top: 0.55rem;
}

.admin-gallery-library {
  min-width: 0;
}

.admin-info-note {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin-bottom: 1rem;
  padding: 0.75rem 0.8rem;
  border: 1px solid #cad9e2;
  border-radius: 12px;
  background: #f1f7fa;
}

.admin-info-note > span {
  display: inline-flex;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--admin-info);
  color: #fff;
  font-family: serif;
  font-weight: 700;
}

.admin-info-note p {
  margin: 0;
  color: #456174;
  font-size: 0.84rem;
}

.admin-body .admin-gallery-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.admin-body .admin-gallery-card,
.admin-body .admin-gallery-card.service-card {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto;
  gap: 0.7rem;
  min-height: 0;
  height: auto;
  padding: 0.85rem;
  border: 1px solid var(--admin-line);
  border-radius: 16px;
  background: #fff;
  box-shadow: none;
  transform: none;
}

.admin-body .admin-gallery-card:hover {
  border-color: var(--admin-line-strong);
  transform: none;
}

.admin-body .admin-gallery-card::before {
  display: none;
}

.admin-body .admin-gallery-card > img,
.admin-body .admin-gallery-card__image {
  width: 100%;
  height: 190px;
  object-fit: cover;
  border-radius: 11px;
}

.admin-body .admin-gallery-card p,
.admin-body .admin-gallery-card.service-card p,
.admin-body .admin-gallery-card.service-card p:nth-of-type(n) {
  display: block;
  grid-column: auto;
  grid-row: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.admin-body .admin-gallery-card .field-toggle {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 0;
  border-top: 1px solid #eee7df;
  border-bottom: 1px solid #eee7df;
}

.admin-body .admin-gallery-order {
  margin: 0;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid #eee7df;
}

.admin-body .admin-gallery-order__actions button,
.admin-body .admin-gallery-order__jump button {
  min-height: 36px;
  padding: 0.4rem 0.6rem;
  font-size: 0.78rem;
}

.admin-body .admin-gallery-order__jump {
  display: grid;
  grid-template-columns: auto 72px 1fr;
}

.admin-body .admin-gallery-order__jump input {
  width: 72px;
  min-height: 36px;
}

/* Reservations */
.admin-body .admin-page[data-admin-page="reservations"] {
  width: min(calc(100% - 2rem), 1440px);
}

.admin-body .admin-page[data-admin-page="reservations"] .admin-panel {
  overflow: hidden;
}

.admin-body .admin-onsite-booking-panel__head > div {
  max-width: 850px;
}

.admin-body .admin-onsite-booking-panel__head p:last-child {
  margin: 0.35rem 0 0;
}

.admin-body .admin-onsite-booking-form {
  display: grid;
  grid-template-columns: minmax(220px, 1.35fr) minmax(220px, 1.2fr) minmax(150px, 0.72fr) minmax(125px, 0.58fr);
  gap: 0.75rem;
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--admin-line);
  border-radius: 15px;
  background: var(--admin-panel-soft);
}

.admin-body .admin-onsite-booking-form[hidden] {
  display: none;
}

.admin-body .admin-onsite-booking-form > label {
  display: grid;
  gap: 0.38rem;
  min-width: 0;
}

.admin-body .admin-onsite-client-search {
  grid-column: 1 / -1;
}

.admin-body .admin-onsite-booking-form > label small,
.admin-body .admin-toolbar__group small {
  color: var(--admin-muted);
  font-size: 0.76rem;
  line-height: 1.4;
}

.admin-body .admin-onsite-booking-form > label > span {
  color: var(--admin-muted);
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.admin-body .admin-onsite-booking-form select,
.admin-body .admin-onsite-booking-form input {
  width: 100%;
  min-height: 44px;
}

.admin-body .admin-onsite-planning {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 0.85rem;
}

.admin-body .admin-onsite-planning__step {
  min-width: 0;
  padding: 0.9rem;
  border: 1px solid var(--admin-line);
  border-radius: 14px;
  background: #fffdf9;
}

.admin-body .admin-onsite-planning__title {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.75rem;
}

.admin-body .admin-onsite-planning__title > span {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border: 1px solid #dfb98f;
  border-radius: 50%;
  color: var(--admin-accent-dark);
  font-weight: 800;
}

.admin-body .admin-onsite-planning__title h3 {
  margin: 0;
  font-size: clamp(1.05rem, 2vw, 1.3rem);
}

.admin-body .admin-onsite-calendar {
  padding: 0.8rem;
}

.admin-body .admin-onsite-calendar .calendar-days button {
  min-height: 40px;
}

.admin-body .admin-onsite-calendar .calendar-days button:disabled:not(.is-blocked) {
  cursor: not-allowed;
  opacity: 0.58;
}

.admin-body .admin-onsite-planning__help {
  margin: 0.7rem 0 0;
  color: var(--admin-muted);
  font-size: 0.8rem;
  line-height: 1.5;
}

.admin-body .admin-onsite-slot-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  gap: 0.6rem;
  margin-top: 0.85rem;
}

.admin-body .admin-onsite-slot-list button {
  min-height: 44px;
  padding: 0.65rem;
  border: 1px solid #dfc8ac;
  border-radius: 11px;
  background: #fff8ef;
  color: var(--admin-accent-dark);
  box-shadow: none;
}

.admin-body .admin-onsite-slot-list button:hover,
.admin-body .admin-onsite-slot-list button.is-active {
  border-color: var(--admin-accent);
  background: var(--admin-accent);
  color: #fff;
}

.admin-body .admin-onsite-slot-list__empty {
  grid-column: 1 / -1;
  margin: 0;
  padding: 1rem;
  border: 1px dashed #dfcfbd;
  border-radius: 11px;
  color: var(--admin-muted);
  text-align: center;
}

.admin-body .admin-onsite-booking-summary {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid #dfcfbd;
  border-radius: 12px;
  background: #fffaf3;
}

.admin-body .admin-onsite-booking-summary strong {
  color: var(--admin-accent-dark);
}

.admin-body .admin-onsite-booking-summary p {
  margin: 0;
  text-align: right;
}

.admin-body .admin-onsite-booking-form__actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
}

@media (max-width: 1100px) {
  .admin-body .admin-onsite-booking-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-onsite-planning {
    grid-template-columns: 1fr;
  }
}

.admin-body .admin-reservation-record__quick-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
  padding: 0.75rem;
  border: 1px solid #dfcfbd;
  border-radius: 13px;
  background: #fff8ee;
}

.admin-body .admin-reservation-record__quick-actions p {
  flex: 1 1 240px;
  margin: 0;
  font-size: 0.78rem;
}

.admin-body .admin-reservation-record__quick-actions .js-complete-now {
  background: var(--admin-success);
  border-color: var(--admin-success);
  color: #fff;
}

.admin-body .admin-reservations-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.admin-body .admin-reservations-summary__card,
.admin-body .admin-reservations-summary__card--wide {
  padding: 0.8rem 0.9rem;
  border-color: var(--admin-line);
  border-radius: 13px;
  background: var(--admin-panel-soft);
}

.admin-body .admin-reservations-summary__card strong {
  font-size: 1.65rem;
}

.admin-body .admin-reservations-summary__card p {
  font-size: 0.78rem;
}

.admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-records,
.admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.admin-body .admin-page[data-admin-page="reservations"] .admin-reservation-record {
  padding: 1rem;
  border-color: var(--admin-line);
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(57, 43, 33, 0.055);
}

.admin-body .admin-reservation-record__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.admin-body .admin-reservation-record__block,
.admin-body .admin-reservation-record__block:nth-child(3) {
  grid-column: auto;
  min-height: 102px;
  padding: 0.75rem 0.8rem;
  border-color: #e7ded5;
  border-radius: 12px;
  background: var(--admin-panel-soft);
}

.admin-body .admin-reservation-record__block strong {
  font-size: 0.96rem;
}

.admin-body .admin-reservation-record__block p {
  font-size: 0.78rem;
}

.admin-body .admin-reservation-record__editor {
  grid-template-columns: minmax(135px, 1fr) minmax(110px, 0.75fr) minmax(160px, 1.1fr) auto;
  gap: 0.6rem;
  padding: 0.75rem;
  border-color: #e2d6c9;
  border-radius: 13px;
  background: #faf7f2;
}

.admin-body .admin-reservation-record__editor-status,
.admin-body .admin-reservation-record__editor .reservation-update-btn {
  grid-column: auto;
}

.admin-body .admin-reservation-record__editor .reservation-update-btn {
  min-width: 118px;
  width: auto;
  min-height: 44px;
  margin: 0;
  align-self: end;
}

.admin-body .admin-status-pill {
  min-height: 30px;
  padding: 0.3rem 0.65rem;
  border-color: var(--admin-line);
  font-size: 0.74rem;
}

.admin-body .admin-unavailability-form {
  border-color: var(--admin-line);
  background: var(--admin-panel-soft);
}

.admin-help-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
}

.admin-help-panel > summary::-webkit-details-marker {
  display: none;
}

.admin-help-panel > summary::after {
  content: "+";
  display: inline-flex;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--admin-line);
  border-radius: 9px;
  background: var(--admin-panel-soft);
  color: var(--admin-accent-dark);
  font-size: 1.2rem;
}

.admin-help-panel[open] > summary {
  margin-bottom: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid #ebe3da;
}

.admin-help-panel[open] > summary::after {
  content: "−";
}

.admin-body .admin-toolbar {
  margin: 0 0 0.9rem;
  padding: 0.8rem;
  border: 1px solid var(--admin-line);
  border-radius: 14px;
  background: var(--admin-panel-soft);
  box-shadow: none;
}

.admin-body .admin-toolbar--inline {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 280px));
  justify-content: start;
}

/* Stripe */
.admin-body .stripe-toggle,
.admin-body .stripe-status-card,
.admin-body .stripe-help-card {
  border-color: var(--admin-line);
  border-radius: 14px;
  background: var(--admin-panel-soft);
}

.admin-body .stripe-status-card code,
.admin-body .stripe-help-card code {
  border-color: var(--admin-line);
  background: #fff;
}

/* Responsive admin */
@media (max-width: 1180px) {
  .admin-workspace-grid--form-list,
  .admin-workspace-grid--media {
    grid-template-columns: 1fr;
  }

  .admin-panel--form {
    position: static;
  }

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

  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-records,
  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-reservation-record__editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-reservation-record__editor .reservation-update-btn {
    width: 100%;
  }
}

@media (max-width: 900px) {
  .admin-header.site-header.site-header--sticky {
    width: 100%;
    top: 0;
    margin-top: 0;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
      "brand actions toggle"
      "nav nav nav" !important;
    gap: 0.55rem !important;
    padding: 0.65rem 0.75rem !important;
    border-radius: 0 0 16px 16px !important;
  }

  .admin-header .site-header-actions {
    grid-area: actions;
    width: auto;
  }

  .admin-header .site-notifications,
  .admin-header .site-notifications__toggle {
    width: auto;
  }

  .admin-header .site-notifications__label {
    display: none;
  }

  .admin-header .site-notifications__toggle {
    width: 42px;
    padding: 0.35rem;
    gap: 0.15rem;
  }

  .admin-header .site-notifications__icon {
    display: none;
  }

  .admin-header .site-notifications__count {
    min-width: 1.55rem;
    min-height: 1.55rem;
  }

  .admin-header.site-header.site-header--sticky nav {
    grid-area: nav;
    display: none !important;
  }

  .admin-header.site-header.site-header--sticky.is-mobile-open nav {
    display: block !important;
    max-height: calc(100dvh - 82px);
    overflow-y: auto;
    margin-top: 0.15rem;
    padding: 0.55rem;
    border: 1px solid var(--admin-line);
    border-radius: 12px;
    background: #fff;
  }

  .admin-header.site-header.site-header--sticky.is-mobile-open nav ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.3rem;
    overflow: visible;
  }

  .admin-header.site-header.site-header--sticky.is-mobile-open nav a {
    min-height: 42px;
    padding: 0.65rem;
  }

  .admin-header .admin-link-site {
    margin-left: 0;
  }

  .admin-header .mobile-only-auth {
    grid-column: 1 / -1;
  }

  .admin-header .mobile-only-auth .site-auth-link {
    width: 100%;
    justify-content: flex-start;
    border-color: transparent;
    background: transparent;
    color: var(--admin-danger);
  }

  .admin-header .site-notifications__panel {
    position: fixed;
    top: 70px;
    left: auto;
    right: 0.75rem;
    width: min(calc(100vw - 1.5rem), 360px);
  }

  .admin-body main.admin-page {
    width: min(calc(100% - 1.25rem), 1380px);
    padding-top: 0.8rem;
    gap: 0.85rem;
  }

  .admin-body .admin-hero {
    grid-template-columns: 1fr;
    padding: 1.15rem;
    border-radius: 18px;
  }

  .admin-body .admin-section-grid--stats,
  .admin-body .admin-section-grid--main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-section-grid--main > :last-child {
    grid-column: 1 / -1;
  }

  .admin-schedule-tools,
  .admin-schedule-lists {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-gallery-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-home-hero-editor {
    grid-template-columns: minmax(240px, 0.8fr) minmax(300px, 1.2fr);
  }

  .admin-body .admin-reservations-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .admin-home-hero-editor {
    grid-template-columns: 1fr;
  }

  .admin-gallery-upload-item {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .admin-gallery-upload-item > img {
    width: 64px;
    height: 86px;
  }

  .admin-gallery-upload-item p {
    display: block;
  }

  .admin-gallery-upload-item p small {
    display: block;
    margin-top: 0.15rem;
  }

  .admin-body .admin-table-scroll {
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .admin-body .stack-on-mobile {
    min-width: 0;
  }

  .admin-body .stack-on-mobile thead {
    display: table-header-group;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .admin-body .stack-on-mobile tr {
    border-color: var(--admin-line);
    background: #fff;
    box-shadow: 0 6px 16px rgba(57, 43, 33, 0.055);
  }

  .admin-body .stack-on-mobile td {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .admin-body .stack-on-mobile td[data-label="Actions"],
  .admin-body .stack-on-mobile td[data-label="Action"] {
    display: block;
  }

  .admin-table-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.35rem;
  }

  .admin-body .admin-pagination {
    justify-content: center;
  }
}

@media (max-width: 620px) {
  .admin-header .site-branding a {
    font-size: clamp(1.4rem, 6.5vw, 1.75rem) !important;
  }

  .admin-header .admin-badge {
    display: none;
  }

  .admin-body .admin-hero h1 {
    font-size: clamp(2.25rem, 11vw, 3rem);
  }

  .admin-body .admin-hero__aside {
    display: none;
  }

  .admin-body .admin-panel {
    padding: 0.9rem;
    border-radius: 16px;
  }

  .admin-body .admin-panel__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
  }

  .admin-body .admin-panel__meta {
    white-space: normal;
  }

  .admin-body .admin-section-grid--stats,
  .admin-body .admin-section-grid--main,
  .admin-body .quick-actions--admin,
  .admin-body .admin-gallery-list,
  .admin-body .admin-toolbar--inline {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-section-grid--main > :last-child {
    grid-column: auto;
  }

  .admin-body .admin-metric-card {
    min-height: 0;
  }

  .admin-form__split,
  .admin-body .admin-reservation-record__grid,
  .admin-body .admin-reservation-record__editor {
    grid-template-columns: 1fr;
  }

  .admin-form__actions {
    display: grid;
  }

  .admin-form__actions > * {
    width: 100%;
  }

  .admin-body .admin-reservation-record__editor .reservation-update-btn {
    grid-column: auto;
  }
}

@media (max-width: 440px) {
  .admin-header.site-header.site-header--sticky.is-mobile-open nav ul {
    grid-template-columns: 1fr;
  }

  .admin-body main.admin-page {
    width: min(calc(100% - 0.9rem), 1380px);
  }

  .admin-body .admin-reservations-summary {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-gallery-order__jump {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-gallery-order__jump input {
    width: 100%;
  }

  .admin-table-actions {
    grid-template-columns: 1fr;
  }
}

/* Admin security */
.admin-body .admin-workspace--security {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 1rem;
  max-width: 980px;
  margin: 0 auto !important;
}

.admin-body .admin-chip--warning {
  border-color: #d89b75;
  background: #fff0e7;
  color: #8a3e1e;
}

.admin-body .admin-security-note {
  align-content: start;
  background: #fbf7f1;
}

.admin-body .admin-security-note h2 {
  margin-top: 0;
}

@media (max-width: 760px) {
  .admin-body .admin-workspace--security {
    grid-template-columns: 1fr;
  }

  .admin-help-panel > summary .admin-panel__meta {
    display: none;
  }
}

/* Definitive cascade overrides */
.admin-body .admin-page > section.admin-hero {
  padding: clamp(1.35rem, 2.6vw, 2rem);
}

.admin-body .admin-page > section.admin-panel {
  padding: clamp(1.05rem, 2vw, 1.4rem);
}

.admin-body .admin-feedback-bar.is-error {
  display: block;
  padding: 0.85rem 1rem;
  border: 1px solid #e2b8b4;
  border-radius: 13px;
  background: var(--admin-danger-soft);
  color: var(--admin-danger);
}

.admin-body .admin-feedback-bar.is-error strong,
.admin-body .admin-feedback-bar.is-error li {
  color: inherit;
}

.admin-help-summary__copy {
  display: grid;
  gap: 0.2rem;
}

.admin-help-summary__copy .admin-section-eyebrow {
  margin: 0;
}

.admin-help-summary__copy > strong {
  color: var(--admin-text);
  font-size: 1.15rem;
}

@media (max-width: 1699px) {
  .admin-body .admin-panel--form {
    position: static;
  }
}

@media (min-width: 1700px) {
  .admin-body .admin-panel--form {
    position: sticky;
    top: 6.1rem;
  }
}

@media (min-width: 621px) and (max-width: 1399px) {
  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-records,
  .admin-body .admin-page[data-admin-page="reservations"] .admin-reservations-history-list {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-reservation-record__editor {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-reservation-record__editor .reservation-update-btn {
    width: 100%;
  }
}

.admin-body .site-notifications__delete {
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border-radius: 50%;
}

@media (max-width: 900px) {
  .admin-body .admin-page > section.admin-hero {
    padding: 1.15rem;
  }

  .admin-body .admin-page > section.admin-panel {
    padding: 0.9rem;
  }

  .admin-header .site-notifications__toggle {
    position: relative;
    width: 48px;
    min-width: 48px;
  }

  .admin-header .site-notifications__icon {
    display: inline-flex;
    font-size: 1rem;
  }

  .admin-header .site-notifications__count {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 1.15rem;
    min-height: 1.15rem;
    padding: 0.05rem 0.25rem;
    font-size: 0.64rem;
  }

  .admin-header .site-notifications__panel {
    max-height: calc(100dvh - 82px);
    overflow: hidden;
  }

  .admin-header .site-notifications__list {
    max-height: calc(100dvh - 154px);
    overscroll-behavior: contain;
  }

  body:not(.admin-body) .site-header.site-header--sticky {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-areas:
      "brand actions toggle"
      "nav nav nav" !important;
  }

  body:not(.admin-body) .site-header .site-branding {
    grid-area: brand;
  }

  body:not(.admin-body) .site-header .site-header-actions {
    grid-area: actions;
    width: auto;
  }

  body:not(.admin-body) .site-header .mobile-menu-toggle {
    grid-area: toggle;
  }

  body:not(.admin-body) .site-header nav {
    grid-area: nav;
  }
}

@media (max-width: 620px) {
  .admin-body .admin-onsite-booking-form {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-onsite-planning__step,
  .admin-body .admin-onsite-calendar {
    padding: 0.7rem;
  }

  .admin-body .admin-onsite-calendar .calendar-weekdays,
  .admin-body .admin-onsite-calendar .calendar-days {
    gap: 0.25rem;
  }

  .admin-body .admin-onsite-calendar .calendar-weekdays li {
    font-size: 0.68rem;
  }

  .admin-body .admin-onsite-calendar .calendar-days button {
    min-height: 36px;
    font-size: 0.8rem;
  }

  .admin-body .admin-onsite-slot-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-body .admin-onsite-booking-summary,
  .admin-body .admin-onsite-booking-form__actions {
    grid-column: auto;
  }

  .admin-body .admin-onsite-booking-summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-body .admin-onsite-booking-summary p {
    text-align: left;
  }

  .admin-body .admin-onsite-booking-form__actions,
  .admin-body .admin-reservation-record__quick-actions {
    display: grid;
  }

  .admin-body .admin-onsite-booking-form__actions button,
  .admin-body .admin-reservation-record__quick-actions button {
    width: 100%;
  }

  .admin-body .admin-reservation-record__editor {
    grid-template-columns: 1fr;
  }

  .admin-body .admin-reservation-refund-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Final header, branding and review alignment */
.site-branding__link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 300px;
  height: 120px;
  flex: 0 0 auto;
  line-height: 0 !important;
  overflow: hidden !important;
}

.site-branding__logo {
  display: block;
  width: 360px;
  height: 120px;
  max-width: none;
  flex: 0 0 auto;
  object-fit: contain;
  filter: contrast(1.1) saturate(1.05) drop-shadow(0 5px 8px rgba(95, 59, 33, 0.16));
  mix-blend-mode: multiply;
}

.admin-header .site-branding__link {
  width: 280px;
  height: 112px;
}

.admin-header .site-branding__logo {
  width: 336px;
  height: 112px;
}

.booking-payment-mode__hint.is-unavailable {
  border: 1px solid #dfb89a;
  border-radius: 12px;
  padding: 0.75rem;
  background: #fff5ed;
  color: #7d3e25;
  text-align: center;
}

.review-form-card {
  text-align: center;
}

.review-form-card h3,
.review-form-notice,
.review-form-error-summary,
.review-form-submit,
.review-form-footnote {
  text-align: center;
}

.review-form-notice,
.review-form-errors,
.review-form-error-summary {
  width: min(100%, 760px);
  margin: 0 auto 1rem;
}

.review-form-notice {
  padding: 0.9rem 1rem;
  border: 1px solid #dfbd96;
  border-radius: 13px;
  background: #fff7ed;
  color: #754923;
  font-weight: 650;
}

.review-form-notice--success {
  border-color: #a9cab4;
  background: #f0faf3;
  color: #2d6540;
}

.review-form-errors {
  padding: 0.85rem 1rem 0.85rem 2rem;
  border: 1px solid #e2b8b4;
  border-radius: 13px;
  background: #fff1f0;
  color: #8d302d;
  text-align: left;
}

.review-form-card form > p {
  width: 100%;
  max-width: none;
  margin-inline: auto;
  text-align: center;
}

.review-form-card form label {
  display: block;
  text-align: center;
}

.review-form-card form select,
.review-form-card form textarea {
  text-align: left;
}

.review-field-error {
  display: block;
  margin-top: 0.4rem;
  color: #9f332f;
  text-align: center;
}

.review-form-submit button {
  min-width: min(100%, 220px);
}

.review-form-card .review-form-submit,
.review-form-card .review-form-footnote {
  width: 100%;
  max-width: none;
  margin-inline: auto;
}

.review-form-card .review-form-submit {
  display: flex;
  justify-content: center;
}

@media (min-width: 901px) {
  .admin-header.site-header,
  .admin-header.site-header.site-header--sticky {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "brand actions"
      "nav nav" !important;
  }

  .admin-header nav {
    overflow: visible !important;
  }

  .admin-header nav ul {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    overflow: visible !important;
    gap: 0.35rem !important;
    padding: 0.1rem 0 !important;
    scrollbar-width: none;
  }

  .admin-header nav a {
    padding-inline: 0.65rem !important;
  }

  .admin-header .admin-link-site {
    margin-left: 0 !important;
  }

  body:not(.admin-body) .site-header.site-header--sticky {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    grid-template-areas: "brand nav actions" !important;
  }

  body:not(.admin-body) .site-header nav {
    min-width: 0;
    overflow: visible;
  }

  body:not(.admin-body) .site-header nav ul {
    justify-content: center;
    overflow: visible;
    gap: 0.65rem;
  }

  body:not(.admin-body) .site-header nav a {
    font-size: 0.94rem;
  }
}

@media (max-width: 900px) {
  .site-branding__link,
  .admin-header .site-branding__link {
    width: 200px;
    height: 80px;
  }

  .site-branding__logo,
  .admin-header .site-branding__logo {
    width: 240px;
    height: 80px;
  }

  body:not(.admin-body) .site-header .site-notifications__label {
    display: none;
  }

  body:not(.admin-body) .site-header .site-notifications__toggle {
    position: relative;
    width: 48px;
    min-width: 48px;
    padding: 0.35rem;
  }

  .admin-header.site-header.site-header--sticky.is-mobile-open nav ul,
  body:not(.admin-body) .site-header.site-header--sticky.is-mobile-open nav ul {
    overflow: visible !important;
  }
}

@media (max-width: 430px) {
  .site-branding__link,
  .admin-header .site-branding__link {
    width: 180px;
    height: 72px;
  }

  .site-branding__logo,
  .admin-header .site-branding__logo {
    width: 216px;
    height: 72px;
  }

  .review-form-submit button {
    width: 100%;
  }
}

/* Dashboard branding */
.dashboard-brand-logo {
  display: block;
  flex: 0 0 auto;
  max-width: none;
  object-fit: contain;
  filter: contrast(1.1) saturate(1.05) drop-shadow(0 7px 11px rgba(95, 59, 33, 0.18));
  mix-blend-mode: multiply;
}

.dashboard-brand-logo-frame {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 auto;
}

.admin-dashboard .admin-hero__aside {
  display: grid;
  justify-items: end;
  align-items: center;
  gap: 0.7rem;
}

.dashboard-brand-logo-frame--admin {
  width: 390px;
  height: 180px;
}

.dashboard-brand-logo--admin {
  width: 540px;
  height: 180px;
}

.admin-hero__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem;
}

.account-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 4vw, 3rem);
  padding-inline: clamp(1.2rem, 4vw, 2.5rem);
}

.account-dashboard-hero__content {
  min-width: 0;
}

.account-dashboard-hero__content > p:first-child {
  margin: 0 0 0.65rem;
  color: #a66a35;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.account-dashboard-hero__content > p:last-child {
  margin: 0.9rem 0 0;
  max-width: 64ch;
  color: #665344;
}

.dashboard-brand-logo-frame--client {
  width: 310px;
  height: 116px;
}

.dashboard-brand-logo--client {
  width: 348px;
  height: 116px;
}

@media (max-width: 620px) {
  .admin-body .admin-dashboard .admin-hero__aside {
    display: flex;
    grid-column: 1 / -1;
    width: 100%;
    justify-content: center;
  }

  .admin-dashboard .admin-hero__chips {
    display: none;
  }

  .dashboard-brand-logo-frame--admin,
  .dashboard-brand-logo-frame--client {
    width: min(100%, 320px);
    height: 145px;
  }

  .dashboard-brand-logo--admin,
  .dashboard-brand-logo--client {
    width: 435px;
    height: 145px;
  }

  .account-dashboard-hero {
    grid-template-columns: 1fr;
    justify-items: start;
    text-align: left;
  }

  .account-dashboard-hero__content > p:last-child {
    margin-inline: 0;
  }

  .dashboard-brand-logo-frame--client {
    display: none;
  }

  .dashboard-brand-logo--client {
    width: 246px;
    height: 78px;
  }

  .account-dashboard-hero {
    gap: 0;
    padding: 1.35rem 1.25rem 1.5rem;
  }

  .account-dashboard-hero__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .account-dashboard-hero__content > p:first-child {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.7rem;
    padding: 0.38rem 0.7rem;
    border: 1px solid rgba(202, 143, 84, 0.46);
    border-radius: 999px;
    background: rgba(255, 250, 244, 0.58);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
  }

  .account-dashboard-hero__content > p:first-child::before,
  .account-dashboard-hero__content > p:first-child::after {
    content: none;
  }

  .account-dashboard-hero__content h1 {
    font-size: clamp(2.15rem, 9vw, 2.55rem);
    line-height: 1;
  }

  .account-dashboard-hero__content > p:last-child {
    max-width: 34ch;
    margin-top: 0.75rem;
    font-size: 0.96rem;
    line-height: 1.5;
  }
}

/* ========================================================================== */
/* Homepage 2026 — editorial studio experience                                */
/* ========================================================================== */

.home-page {
  --home-ink: var(--text);
  --home-ink-soft: var(--text-soft);
  --home-plum: var(--brand-deep);
  --home-plum-deep: var(--brand-deep);
  --home-rose: var(--accent);
  --home-rose-soft: var(--accent-soft);
  --home-blush: var(--surface-2);
  --home-ivory: var(--surface);
  --home-paper: var(--bg);
  --home-line: var(--line);
  --home-container: 1440px;
  color: var(--home-ink);
  background:
    radial-gradient(circle at 6% 9%, rgba(239, 212, 177, 0.23), transparent 24rem),
    radial-gradient(circle at 94% 34%, rgba(217, 167, 109, 0.12), transparent 28rem),
    var(--home-paper);
  overflow-x: clip;
}

.home-page .home-main {
  padding: clamp(1rem, 2.4vw, 2rem) 0 clamp(2.5rem, 6vw, 5rem);
}

.home-page .home-main > section {
  width: min(calc(100% - 2rem), var(--home-container));
  max-width: var(--home-container);
}

.home-page .home-main h1,
.home-page .home-main h2 {
  color: var(--home-ink);
  letter-spacing: -0.035em;
}

.home-page .home-main h2 {
  margin: 0;
  font-size: clamp(2.75rem, 5vw, 4.65rem);
  font-weight: 600;
  line-height: 0.98;
}

.home-page .home-main p {
  color: var(--home-ink-soft);
}

.home-page .site-header.site-header--sticky {
  top: 0.65rem;
  width: min(calc(100% - 2rem), var(--home-container));
  min-height: 78px;
  margin-top: 0.65rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid rgba(66, 38, 17, 0.12);
  border-radius: 20px;
  background: rgba(251, 248, 243, 0.9);
  box-shadow: 0 16px 44px rgba(66, 38, 17, 0.1);
  backdrop-filter: blur(18px) saturate(1.2);
}

.home-page .site-header.is-scrolled {
  border-color: rgba(66, 38, 17, 0.18);
  background: rgba(251, 248, 243, 0.96);
  box-shadow: 0 18px 48px rgba(66, 38, 17, 0.16);
}

.home-page .site-branding__link {
  width: 218px;
  height: 72px;
}

.home-page .site-branding__logo {
  width: 250px;
  height: 72px;
  filter: contrast(1.1) saturate(0.78);
}

.home-page .site-header nav ul {
  gap: 0.15rem 0.35rem;
}

.home-page .site-header nav a {
  position: relative;
  padding: 0.65rem 0.6rem;
  border: 0;
  border-radius: 999px;
  color: #3f2f20;
  font-size: 0.88rem;
  font-weight: 600;
}

.home-page .site-header nav a::after {
  display: none;
}

.home-page .site-header nav a:hover,
.home-page .site-header nav a.is-active {
  border: 0;
  background: rgba(217, 167, 109, 0.1);
  color: var(--home-plum);
}

.home-page .site-header-actions {
  gap: 0.45rem;
}

.home-page .site-auth-link,
.home-page .site-notifications__toggle {
  min-height: 42px;
  border: 1px solid rgba(66, 38, 17, 0.12);
  background: transparent;
  color: var(--home-plum);
  box-shadow: none;
  font-size: 0.84rem;
}

.home-page .site-auth-link {
  padding: 0.58rem 0.9rem;
}

.home-page button.site-auth-link:hover,
.home-page a.site-auth-link:hover,
.home-page .site-notifications__toggle:hover {
  border-color: rgba(66, 38, 17, 0.25);
  background: var(--home-plum);
  color: #fffaf7;
  transform: translateY(-1px);
}

.home-page .site-notifications__icon {
  filter: grayscale(1);
}

.home-page .site-notifications__count {
  background: var(--home-rose);
}

.home-page .site-notifications__count.is-empty {
  background: var(--home-rose-soft);
  color: var(--home-plum);
}

@media (min-width: 901px) {
  .home-page .site-header.site-header--sticky {
    grid-template-columns: 218px minmax(0, 1fr) auto !important;
    grid-template-areas: "brand nav actions" !important;
  }
}

.home-eyebrow,
.home-kicker {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 1rem;
  color: var(--home-rose) !important;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.home-kicker::before {
  content: "";
  width: 1.9rem;
  height: 1px;
  flex: 0 0 1.9rem;
  background: currentColor;
}

.home-section-heading {
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.home-section-heading--split {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.68fr);
  gap: clamp(2rem, 6vw, 6.5rem);
  align-items: end;
}

.home-section-heading--split > div:last-child > p:first-child {
  max-width: 50ch;
  margin: 0 0 1rem;
  font-size: 1.02rem;
  line-height: 1.75;
}

.home-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.76rem 1.2rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1;
  transition: transform 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}

.home-button:hover {
  transform: translateY(-2px);
}

.home-button--primary {
  background: var(--home-plum);
  color: #fffaf7;
  box-shadow: 0 14px 28px rgba(66, 38, 17, 0.22);
}

.home-button--primary:hover {
  background: var(--home-plum-deep);
  color: #fff;
  box-shadow: 0 18px 34px rgba(66, 38, 17, 0.28);
}

.home-button--ghost {
  border-color: rgba(66, 38, 17, 0.24);
  background: rgba(255, 255, 255, 0.35);
  color: var(--home-plum);
}

.home-button--ghost:hover {
  border-color: var(--home-plum);
  background: rgba(255, 255, 255, 0.72);
}

.home-button--light {
  background: #fffaf7;
  color: var(--home-plum);
  box-shadow: 0 14px 28px rgba(66, 38, 17, 0.22);
}

.home-button--outline-light {
  border-color: rgba(255, 250, 247, 0.38);
  color: #fffaf7;
}

.home-button--outline-light:hover {
  border-color: #fffaf7;
  background: rgba(255, 255, 255, 0.08);
}

.home-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding-bottom: 0.28rem;
  border-bottom: 1px solid currentColor;
  color: var(--home-plum);
  font-size: 0.9rem;
  font-weight: 700;
}

.home-text-link span {
  transition: transform 0.2s ease;
}

.home-text-link:hover span {
  transform: translate(2px, -2px);
}

/* Hero */
.home-page .home-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(380px, 0.82fr);
  gap: clamp(2.5rem, 6vw, 6rem);
  align-items: center;
  min-height: clamp(650px, 78vh, 760px);
  padding: clamp(2.5rem, 6vw, 5.5rem);
  overflow: hidden;
  border: 1px solid rgba(66, 38, 17, 0.12);
  border-radius: 38px;
  background:
    radial-gradient(circle at 90% 8%, rgba(255, 255, 255, 0.72), transparent 23rem),
    linear-gradient(128deg, #f9f4ed 0%, #f0dfca 100%);
  box-shadow: 0 30px 80px rgba(66, 38, 17, 0.12);
}

.home-page .home-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -12rem;
  right: -10rem;
  width: 31rem;
  height: 31rem;
  border: 1px solid rgba(66, 38, 17, 0.09);
  border-radius: 50%;
}

.home-page .home-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  bottom: 2.3rem;
  left: 0;
  width: clamp(4rem, 10vw, 8rem);
  height: 1px;
  background: rgba(66, 38, 17, 0.26);
}

.home-hero__content {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.home-hero__content h1 {
  max-width: 8.8ch;
  margin: 0;
  font-size: clamp(4.1rem, 7vw, 6.8rem);
  font-weight: 600;
  line-height: 0.86;
}

.home-hero__content h1 em {
  display: block;
  color: var(--home-rose);
  font-weight: 500;
}

.home-hero__intro {
  max-width: 51ch;
  margin: 1.7rem 0 0;
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.78;
}

.home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.9rem;
}

.home-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(2.4rem, 5vw, 4rem) 0 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid rgba(66, 38, 17, 0.17);
}

.home-hero__facts > div {
  min-width: 0;
  padding: 0 1rem;
  border-left: 1px solid rgba(66, 38, 17, 0.15);
}

.home-hero__facts > div:first-child {
  padding-left: 0;
  border-left: 0;
}

.home-hero__facts dt {
  margin-bottom: 0.24rem;
  color: var(--home-rose);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-hero__facts dd {
  margin: 0;
  color: var(--home-ink);
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.4;
}

.home-hero__visual {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 590px;
}

.home-hero__figure {
  position: absolute;
  inset: 0 0 0 2rem;
  overflow: hidden;
  border: 7px solid rgba(255, 250, 247, 0.7);
  border-radius: 49% 49% 28px 28px;
  background: #e0c4a4;
  box-shadow: 0 28px 64px rgba(72, 40, 18, 0.25);
}

.home-hero__figure::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 60%, rgba(58, 32, 15, 0.45));
}

.home-hero__figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 34%;
  transition: transform 0.7s cubic-bezier(0.2, 0.75, 0.2, 1);
}

.home-hero__figure:hover img {
  transform: scale(1.025);
}

.home-hero__figure figcaption {
  position: absolute;
  z-index: 2;
  right: 1.3rem;
  bottom: 1.25rem;
  left: 1.3rem;
  color: #fffaf7;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  font-style: italic;
  text-align: center;
}

.home-hero__price {
  position: absolute;
  z-index: 3;
  bottom: 4.3rem;
  left: -1.2rem;
  display: grid;
  min-width: 126px;
  min-height: 126px;
  place-content: center;
  margin: 0;
  padding: 1rem;
  border: 1px solid rgba(255, 250, 247, 0.7);
  border-radius: 50%;
  background: var(--home-plum);
  color: #fffaf7 !important;
  box-shadow: 0 18px 36px rgba(66, 38, 17, 0.25);
  font-family: "Cormorant Garamond", serif;
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.05;
  text-align: center;
  transform: rotate(-7deg);
}

.home-hero__price span {
  display: block;
  margin-bottom: 0.3rem;
  color: #e0b77f;
  font-family: "Inter", sans-serif;
  font-size: 0.57rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.home-hero__signature {
  position: absolute;
  top: 7.5rem;
  right: -4.2rem;
  margin: 0;
  color: rgba(66, 38, 17, 0.25) !important;
  font-family: "Cormorant Garamond", serif;
  font-size: 1rem;
  font-style: italic;
  letter-spacing: 0.08em;
  line-height: 1.05;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(90deg);
}

/* Studio values */
.home-page .home-values {
  padding-block: clamp(5rem, 9vw, 8.5rem);
}

.home-values .home-section-heading--split > p {
  max-width: 54ch;
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.8;
}

.home-values__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--home-line);
  border-bottom: 1px solid var(--home-line);
}

.home-values__grid article {
  position: relative;
  padding: clamp(2rem, 4vw, 3.2rem);
  border-left: 1px solid var(--home-line);
}

.home-values__grid article:first-child {
  padding-left: 0;
  border-left: 0;
}

.home-values__grid article > span {
  color: var(--home-rose);
  font-family: "Cormorant Garamond", serif;
  font-size: 1.1rem;
  font-style: italic;
}

.home-values__grid h3 {
  margin: 1.55rem 0 0.75rem;
  color: var(--home-ink);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.65rem, 2.6vw, 2.2rem);
  font-weight: 600;
}

.home-values__grid p {
  max-width: 34ch;
  margin: 0;
  line-height: 1.7;
}

/* Services */
.home-page #prestations.home-services {
  width: min(calc(100% - 2rem), var(--home-container));
  padding: clamp(3rem, 6vw, 5rem);
  border: 1px solid rgba(66, 38, 17, 0.11);
  border-radius: 38px;
  background: rgba(251, 248, 243, 0.78);
  box-shadow: 0 24px 70px rgba(66, 38, 17, 0.07);
}

.home-page #prestations .home-section-heading {
  margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.home-services__count {
  display: inline-flex;
  align-items: baseline;
  gap: 0.6rem;
  margin: 0;
  color: var(--home-plum) !important;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-services__count strong {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: -0.03em;
}

.home-page #prestations .services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--home-line);
}

.home-page #prestations .service-card {
  position: relative;
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr) auto;
  grid-template-areas:
    "number body meta"
    "number body action";
  grid-template-rows: 1fr auto;
  gap: 0.9rem 1.1rem;
  min-height: 190px;
  height: auto;
  padding: 1.7rem 1.5rem;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--home-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.home-page #prestations .service-card:nth-child(odd) {
  padding-left: 0;
  padding-right: 2rem;
}

.home-page #prestations .service-card:nth-child(even) {
  padding-left: 2rem;
  padding-right: 0;
  border-left: 1px solid var(--home-line);
}

.home-page #prestations .service-card::before,
.home-page #prestations .service-card::after {
  display: none;
}

.home-page #prestations .service-card:hover {
  z-index: 1;
  border-color: var(--home-line);
  background: rgba(233, 209, 208, 0.18);
  box-shadow: none;
  transform: none;
}

.service-card__number {
  grid-area: number;
  align-self: start;
  color: var(--home-rose);
  font-family: "Cormorant Garamond", serif;
  font-size: 1.2rem;
  font-style: italic;
  line-height: 1;
}

.service-card__body {
  grid-area: body;
  min-width: 0;
}

.home-page #prestations .service-card h3 {
  min-height: 0;
  margin: 0 0 0.7rem;
  padding: 0;
  color: var(--home-ink);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.4rem, 2vw, 1.75rem);
  font-weight: 600;
  line-height: 1.05;
}

.home-page #prestations .service-card__description {
  display: block;
  min-height: 0;
  margin: 0;
  color: var(--home-ink-soft);
  font-size: 0.84rem;
  line-height: 1.6;
}

.home-page #prestations .service-card__meta {
  grid-area: meta;
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  justify-content: flex-end;
}

.home-page #prestations .service-card__meta > span {
  min-width: 70px;
  color: var(--home-ink);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: right;
  white-space: nowrap;
}

.home-page #prestations .service-card__meta small {
  display: block;
  margin-bottom: 0.28rem;
  color: #8b7156;
  font-size: 0.56rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-page #prestations .service-card__action {
  grid-area: action;
  align-self: end;
  justify-self: end;
  display: inline-flex;
  width: auto;
  min-height: 38px;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0.52rem 0.88rem;
  border: 1px solid rgba(66, 38, 17, 0.2);
  border-radius: 999px;
  background: transparent;
  color: var(--home-plum);
  box-shadow: none;
  font-size: 0.78rem;
  font-weight: 750;
}

.home-page #prestations .service-card__action:hover {
  border-color: var(--home-plum);
  background: var(--home-plum);
  color: #fffaf7;
}

/* Gallery preview */
.home-page .home-portfolio {
  width: min(calc(100% - 2rem), var(--home-container));
  margin-top: clamp(5rem, 9vw, 8rem);
  padding: clamp(3rem, 6vw, 5rem);
  overflow: hidden;
  border-radius: 38px;
  background:
    radial-gradient(circle at 100% 0%, rgba(217, 167, 109, 0.2), transparent 26rem),
    var(--home-plum-deep);
  box-shadow: 0 30px 76px rgba(66, 38, 17, 0.2);
}

.home-portfolio .home-kicker,
.home-portfolio .home-section-heading h2,
.home-portfolio .home-section-heading p,
.home-portfolio .home-text-link {
  color: #fffaf7 !important;
}

.home-portfolio .home-kicker {
  color: #e0b77f !important;
}

.home-portfolio .home-section-heading--split > div:last-child > p:first-child {
  color: rgba(255, 250, 247, 0.68) !important;
}

.home-page .home-gallery.gallery-grid {
  display: grid;
  grid-template-columns: 1.12fr 0.82fr 0.94fr;
  gap: clamp(0.8rem, 2vw, 1.25rem);
  align-items: end;
  margin: 0;
}

.home-page .home-gallery__item.gallery-item {
  position: relative;
  display: grid;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 250, 247, 0.15);
  border-radius: 150px 150px 18px 18px;
  background: #8b6848;
  box-shadow: none;
}

.home-page .home-gallery__item:nth-child(1) {
  height: 510px;
}

.home-page .home-gallery__item:nth-child(2) {
  height: 410px;
}

.home-page .home-gallery__item:nth-child(3) {
  height: 460px;
}

.home-page .home-gallery__item > a {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}

.home-page .home-gallery__item > a::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 57%, rgba(58, 32, 15, 0.72));
}

.home-page .home-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 32%;
  transition: transform 0.65s cubic-bezier(0.2, 0.75, 0.2, 1), filter 0.4s ease;
}

.home-page .home-gallery__item:hover img {
  transform: scale(1.035);
  filter: saturate(1.05);
}

.home-page .home-gallery__item figcaption {
  position: relative;
  z-index: 2;
  align-self: end;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 1.15rem 1.25rem;
  color: #fffaf7;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.25rem;
  font-weight: 600;
  pointer-events: none;
}

.home-page .home-gallery__item figcaption span {
  color: #e0b77f;
  font-family: "Inter", sans-serif;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

/* Booking */
.home-page #booking.home-booking {
  width: min(calc(100% - 2rem), var(--home-container));
  margin-top: clamp(5rem, 9vw, 8rem);
  padding: clamp(3rem, 6vw, 5rem);
  border: 0;
  border-radius: 38px;
  background:
    radial-gradient(circle at 92% 0%, rgba(217, 167, 109, 0.2), transparent 24rem),
    var(--home-plum);
  box-shadow: 0 30px 78px rgba(66, 38, 17, 0.22);
}

.home-page #booking .home-section-heading {
  margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.home-page #booking .home-kicker {
  color: #e0b77f !important;
}

.home-page #booking .home-section-heading h2 {
  color: #fffaf7;
}

.home-page #booking .home-section-heading--split > div:last-child > p:first-child {
  color: rgba(255, 250, 247, 0.72);
}

.home-booking__steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
  color: rgba(255, 250, 247, 0.8);
  font-size: 0.72rem;
  font-weight: 650;
}

.home-booking__steps li {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
}

.home-booking__steps span {
  color: #e0b77f;
  font-family: "Cormorant Garamond", serif;
  font-size: 1rem;
  font-style: italic;
}

.home-page #booking .booking-login-card {
  margin: 0 0 1rem;
  border: 1px solid rgba(255, 250, 247, 0.16);
  background: rgba(255, 250, 247, 0.08);
  box-shadow: none;
}

.home-page #booking .booking-login-card p {
  color: #fffaf7;
}

.home-page #booking .booking-login-card__actions a {
  border-color: rgba(255, 250, 247, 0.28);
  background: transparent;
  color: #fffaf7;
}

.home-page #booking .booking-login-card__actions a:first-child {
  border-color: #fffaf7;
  background: #fffaf7;
  color: var(--home-plum);
  box-shadow: none;
}

.home-page #booking .booking-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(330px, 0.72fr);
  grid-template-areas: "main step3";
  gap: 1rem;
  align-items: start;
  margin-top: 0;
}

.home-page #booking .booking-steps-main {
  grid-area: main;
  gap: 1rem;
}

.home-page #booking .booking-layout > section,
.home-page #booking .booking-steps-main > section {
  position: relative;
  display: flex;
  min-height: 0;
  height: auto;
  flex-direction: column;
  gap: 0.8rem;
  padding: clamp(1.1rem, 2.4vw, 1.5rem);
  overflow: hidden;
  border: 1px solid rgba(78, 44, 56, 0.12);
  border-radius: 20px;
  background: #fffaf7;
  box-shadow: 0 18px 40px rgba(66, 38, 17, 0.17);
}

.home-page #booking .booking-layout > section::before,
.home-page #booking .booking-steps-main > section::before {
  height: 3px;
  background: linear-gradient(90deg, var(--home-rose), rgba(217, 167, 109, 0.06));
}

.home-page #booking .booking-layout > section::after,
.home-page #booking .booking-steps-main > section::after {
  display: none;
}

.home-page #booking .booking-layout > section {
  grid-area: step3;
}

.home-page #booking [aria-labelledby="booking-step-1"] h3,
.home-page #booking [aria-labelledby="booking-step-2"] h3,
.home-page #booking [aria-labelledby="booking-step-3"] h3 {
  margin: 0 0 0.3rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--home-ink);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.55rem, 2.3vw, 1.95rem);
  font-weight: 600;
}

.home-page #booking [aria-labelledby="booking-step-1"] h3::before,
.home-page #booking [aria-labelledby="booking-step-2"] h3::before,
.home-page #booking [aria-labelledby="booking-step-3"] h3::before {
  border-color: rgba(217, 167, 109, 0.35);
  background: var(--home-blush);
  color: var(--home-plum);
}

.home-page #booking label {
  color: var(--home-plum);
}

.home-page #booking [aria-labelledby="booking-step-1"] label[for="service_id"] {
  color: #8b6038;
}

.home-page #booking input,
.home-page #booking select,
.home-page #booking textarea {
  border-color: rgba(66, 38, 17, 0.18);
  background: #fff;
  color: var(--home-ink);
}

.home-page #booking #service_id {
  min-height: 48px;
  border-color: rgba(66, 38, 17, 0.2);
  background-color: #fff;
}

.home-page #booking .calendar {
  border: 1px solid rgba(66, 38, 17, 0.12);
  background: #f8eddf;
}

.home-page #booking .calendar-head p {
  color: var(--home-ink);
}

.home-page #booking .calendar-nav button {
  border: 1px solid rgba(66, 38, 17, 0.14);
  background: #fff;
  color: var(--home-plum);
  box-shadow: none;
}

.home-page #booking .calendar-days button {
  color: var(--home-ink);
}

.home-page #booking .calendar-days button:hover:not(:disabled),
.home-page #booking .calendar-days button.is-selected {
  background: var(--home-plum);
  color: #fffaf7;
}

.home-page #booking .booking-live-note {
  display: flex;
  align-items: center;
  gap: 0.48rem;
  margin: 0;
  color: #75624e;
  font-size: 0.76rem;
}

.home-page #booking .booking-live-note span {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #6c9b7c;
  box-shadow: 0 0 0 4px rgba(108, 155, 124, 0.13);
}

.home-page #booking #slot-info {
  border-color: rgba(217, 167, 109, 0.35);
  background: var(--home-blush);
  color: #68503b;
}

.home-page #booking #slot-list button {
  border-color: rgba(66, 38, 17, 0.15);
  background: #fff;
  color: var(--home-plum);
  box-shadow: none;
}

.home-page #booking #slot-list button:hover,
.home-page #booking #slot-list button.is-active {
  border-color: var(--home-plum);
  background: var(--home-plum);
  color: #fffaf7;
}

.home-page #booking .booking-payment-mode {
  border-color: rgba(66, 38, 17, 0.15);
  background: #f8eddf;
}

.home-page #booking .booking-payment-mode__option {
  border-color: rgba(66, 38, 17, 0.14);
  background: #fff;
}

.home-page #booking .booking-payment-mode__option:has(input:checked) {
  border-color: var(--home-rose);
  background: #fff4e6;
  box-shadow: 0 0 0 2px rgba(217, 167, 109, 0.1);
}

.home-page #booking .booking-payment-mode__hint.is-unavailable {
  border-color: #d7a7a2;
  background: #fff2ef;
  color: #7f4945;
}

.home-page #booking .js-summary-compact {
  border-color: rgba(66, 38, 17, 0.15);
  background: #fff;
}

.home-page #booking .js-summary-compact .summary-main {
  border-color: rgba(66, 38, 17, 0.12);
  background: var(--home-blush);
}

.home-page #booking .js-summary-compact .summary-main strong {
  color: var(--home-plum);
}

.home-page #booking .js-summary-compact .summary-row--highlight {
  background: #f3e4d4;
  color: var(--home-plum);
}

.home-page #booking #confirm-booking:not(:disabled) {
  background: var(--home-plum);
  color: #fffaf7;
  box-shadow: 0 12px 25px rgba(66, 38, 17, 0.22);
}

.home-page #booking button:disabled {
  background: #d8cbbc;
  color: #6b5d50;
  box-shadow: none;
}

/* Reviews */
.home-page .home-reviews {
  padding-block: clamp(5rem, 9vw, 8rem);
}

.home-page .home-reviews .reviews-heading {
  max-width: none;
}

.home-reviews__verified {
  display: inline-flex;
  align-items: center;
  gap: 0.48rem;
  margin: 0 !important;
  color: var(--home-plum) !important;
  font-size: 0.74rem !important;
  font-weight: 700;
}

.home-reviews__verified span {
  display: inline-flex;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--home-plum);
  color: #fffaf7;
  font-size: 0.68rem;
}

.home-page .home-reviews .reviews-grid {
  gap: 1rem;
}

.home-page .home-reviews .review-card {
  position: relative;
  min-height: 235px;
  padding: 1.65rem;
  border: 1px solid var(--home-line);
  border-radius: 22px;
  background: rgba(251, 248, 243, 0.84);
  box-shadow: 0 16px 38px rgba(66, 38, 17, 0.08);
}

.home-page .home-reviews .review-card::before {
  content: "“";
  position: absolute;
  top: 0.4rem;
  right: 1.25rem;
  color: rgba(217, 167, 109, 0.22);
  font-family: "Cormorant Garamond", serif;
  font-size: 5rem;
  line-height: 1;
}

.home-page .home-reviews .review-card__stars,
.home-page .home-reviews .review-card > p:first-child:not(.review-empty-eyebrow) {
  color: var(--home-rose);
  font-size: 0.85rem;
  letter-spacing: 0.14em;
}

.home-page .home-reviews .review-card--empty {
  min-height: 190px;
  text-align: left;
}

.home-page .home-reviews .review-form-card {
  margin-top: 1.25rem;
  border-color: var(--home-line);
  background: rgba(251, 248, 243, 0.86);
  box-shadow: 0 18px 44px rgba(66, 38, 17, 0.08);
}

.home-page .home-reviews .review-form-card h3 {
  color: var(--home-ink);
  font-family: "Cormorant Garamond", serif;
  font-size: 2rem;
}

.home-page .home-reviews .review-form-submit button:not(:disabled) {
  background: var(--home-plum);
  color: #fffaf7;
}

/* Visit CTA */
.home-page .home-visit {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(330px, 0.72fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  align-items: end;
  padding: clamp(3rem, 7vw, 6rem);
  overflow: hidden;
  border-radius: 38px;
  background:
    radial-gradient(circle at 94% 10%, rgba(239, 212, 177, 0.16), transparent 22rem),
    linear-gradient(130deg, #5b3b24 0%, #2f2116 100%);
  box-shadow: 0 30px 76px rgba(66, 38, 17, 0.22);
}

.home-page .home-visit::after {
  content: "DP";
  position: absolute;
  top: -2rem;
  right: 2rem;
  color: rgba(255, 250, 247, 0.035);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(9rem, 22vw, 18rem);
  font-weight: 600;
  line-height: 1;
}

.home-visit__content,
.home-visit__details {
  position: relative;
  z-index: 1;
}

.home-visit .home-kicker {
  color: #e0b77f !important;
}

.home-visit h2,
.home-visit__content > p:not(.home-kicker),
.home-visit__details dt,
.home-visit__details dd,
.home-visit__details a {
  color: #fffaf7 !important;
}

.home-visit__content > p:not(.home-kicker) {
  max-width: 52ch;
  margin: 1.35rem 0 0;
  color: rgba(255, 250, 247, 0.7) !important;
  line-height: 1.75;
}

.home-visit__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.8rem;
}

.home-visit__details {
  margin: 0;
  border-top: 1px solid rgba(255, 250, 247, 0.16);
}

.home-visit__details > div {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 250, 247, 0.16);
}

.home-visit__details dt {
  color: #e0b77f !important;
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-visit__details dd {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.55;
}

.home-visit__details a {
  display: inline-flex;
  gap: 0.4rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid rgba(255, 250, 247, 0.48);
}

/* Homepage footer */
.home-page .site-footer--home {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  width: min(calc(100% - 2rem), var(--home-container));
  gap: 2rem 4rem;
  align-items: end;
  margin-top: 1rem;
  padding: clamp(2.5rem, 5vw, 4rem) 0 1.4rem;
  border: 0;
  border-top: 1px solid var(--home-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.home-page .home-footer__brand {
  grid-column: 1;
  max-width: 470px;
}

.home-page .home-footer__eyebrow {
  margin: 0 0 0.3rem;
  color: var(--home-rose);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.home-page .home-footer__title {
  margin: 0 0 0.55rem;
  color: var(--home-ink);
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(2rem, 3.4vw, 3rem);
  font-weight: 600;
  line-height: 1;
}

.home-page .home-footer__brand > p:nth-child(3) {
  margin-bottom: 0.8rem;
}

.home-page .site-footer--home > p {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  padding-top: 1.1rem;
  border-top: 1px solid var(--home-line);
  color: #8b7156;
  font-size: 0.72rem;
}

.home-page .site-footer--home > nav {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 1rem 2.5rem;
  align-items: end;
}

.home-page .site-footer--home .footer-links {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
}

.home-page .site-footer--home .footer-links a {
  padding: 0;
  border: 0;
  color: var(--home-ink-soft);
  font-size: 0.78rem;
  font-weight: 650;
}

.home-page .site-footer--home .footer-links a:hover {
  color: var(--home-plum);
}

/* Homepage responsive */
@media (max-width: 1080px) {
  .home-page .site-branding__link {
    width: 190px;
  }

  .home-page .site-branding__logo {
    width: 220px;
  }

  .home-page .home-hero {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.78fr);
    gap: 2.5rem;
    padding: 3.5rem;
  }

  .home-hero__content h1 {
    font-size: clamp(3.8rem, 7vw, 5.7rem);
  }

  .home-hero__visual {
    min-height: 520px;
  }

  .home-page #prestations .services-grid {
    grid-template-columns: 1fr;
  }

  .home-page #prestations .service-card:nth-child(n) {
    padding: 1.55rem 0;
    border-left: 0;
  }
}

@media (max-width: 900px) {
  .home-page .site-header.site-header--sticky {
    min-height: 70px;
    gap: 0 0.35rem;
    padding: 0.35rem 0.55rem 0.35rem 0.75rem;
  }

  .home-page .site-header.site-header--sticky.is-mobile-open {
    row-gap: 0.45rem;
  }

  .home-page .site-branding__link {
    width: 190px;
    height: 66px;
  }

  .home-page .site-branding__logo {
    width: 222px;
    height: 66px;
  }

  .home-page .mobile-menu-toggle {
    border-color: rgba(66, 38, 17, 0.16);
    background: transparent;
    color: var(--home-plum);
    box-shadow: none;
  }

  .home-page .site-header.site-header--sticky.is-mobile-open nav {
    border: 1px solid rgba(66, 38, 17, 0.12);
    border-radius: 17px;
    background: rgba(251, 248, 243, 0.98);
    box-shadow: 0 18px 44px rgba(66, 38, 17, 0.14);
  }

  .home-page .site-header.site-header--sticky.is-mobile-open nav a {
    justify-content: flex-start;
    border-radius: 10px;
  }

  .home-page .home-hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: clamp(2.2rem, 7vw, 4rem);
  }

  .home-hero__content h1 {
    max-width: 10ch;
  }

  .home-hero__visual {
    width: min(100%, 560px);
    min-height: 570px;
    justify-self: center;
  }

  .home-section-heading--split {
    grid-template-columns: 1fr;
    gap: 1.4rem;
    align-items: start;
  }

  .home-section-heading--split > div:last-child > p:first-child {
    max-width: 60ch;
  }

  .home-page .home-gallery.gallery-grid {
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    align-items: stretch;
    overflow-x: auto;
    padding-bottom: 0.65rem;
    scroll-snap-type: x mandatory;
    scrollbar-color: rgba(255, 250, 247, 0.32) transparent;
  }

  .home-page .home-gallery__item.gallery-item:nth-child(n) {
    height: 430px;
    scroll-snap-align: start;
  }

  .home-page #booking .booking-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "main"
      "step3";
  }

  .home-page .home-visit {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .home-page .site-footer--home {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .home-page .site-footer--home > nav {
    grid-column: 1;
    grid-row: 2;
  }

  .home-page .site-footer--home > p {
    grid-row: 3;
  }
}

@media (max-width: 700px) {
  .home-page .home-main {
    padding-top: 0.75rem;
  }

  .home-page .home-main > section,
  .home-page #prestations.home-services,
  .home-page .home-portfolio,
  .home-page #booking.home-booking,
  .home-page .site-footer--home {
    width: min(calc(100% - 1.25rem), var(--home-container));
  }

  .home-page .home-main h2 {
    font-size: clamp(2.5rem, 12vw, 3.6rem);
  }

  .home-page .home-hero {
    width: min(calc(100% - 1.25rem), var(--home-container));
    padding: 2.25rem 1.35rem 1.35rem;
    border-radius: 27px;
  }

  .home-hero__content h1 {
    font-size: clamp(3.4rem, 16vw, 4.8rem);
  }

  .home-hero__intro {
    margin-top: 1.25rem;
    font-size: 0.96rem;
    line-height: 1.68;
  }

  .home-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    margin-top: 1.45rem;
  }

  .home-button {
    width: 100%;
  }

  .home-hero__facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 2rem;
    padding-top: 0.7rem;
  }

  .home-hero__facts > div,
  .home-hero__facts > div:first-child {
    display: block;
    padding: 0.15rem 0.55rem;
    border: 0;
    border-left: 1px solid rgba(66, 38, 17, 0.12);
  }

  .home-hero__facts > div:first-child {
    padding-left: 0;
    border-left: 0;
  }

  .home-hero__facts dt {
    font-size: 0.55rem;
  }

  .home-hero__facts dd {
    font-size: 0.65rem;
  }

  .home-hero__visual {
    min-height: 340px;
  }

  .home-hero__figure {
    inset: 0;
    border-width: 5px;
    border-radius: 130px 130px 20px 20px;
  }

  .home-hero__figure figcaption {
    font-size: 1rem;
  }

  .home-hero__price {
    bottom: 2.8rem;
    left: -0.35rem;
    min-width: 102px;
    min-height: 102px;
    font-size: 1.05rem;
  }

  .home-hero__signature {
    display: none;
  }

  .home-page .home-values {
    padding-block: 4.5rem;
  }

  .home-values__grid {
    grid-template-columns: 1fr;
  }

  .home-values__grid article,
  .home-values__grid article:first-child {
    padding: 1.65rem 0;
    border: 0;
    border-top: 1px solid var(--home-line);
  }

  .home-values__grid article:first-child {
    border-top: 0;
  }

  .home-values__grid h3 {
    margin-top: 0.65rem;
  }

  .home-page #prestations.home-services,
  .home-page .home-portfolio,
  .home-page #booking.home-booking,
  .home-page .home-visit {
    padding: 2.25rem 1.25rem;
    border-radius: 27px;
  }

  .home-page #prestations .service-card {
    grid-template-columns: 2.3rem minmax(0, 1fr);
    grid-template-areas:
      "number body"
      "meta meta"
      "action action";
    gap: 0.75rem 0.7rem;
    min-height: 0;
    padding: 1.35rem 0;
  }

  .home-page #prestations .service-card__meta {
    justify-content: flex-start;
    padding-left: 3rem;
  }

  .home-page #prestations .service-card__meta > span {
    text-align: left;
  }

  .home-page #prestations .service-card__action {
    width: calc(100% - 3rem);
    justify-self: end;
  }

  .home-page .home-gallery.gallery-grid {
    grid-template-columns: repeat(3, minmax(76vw, 1fr));
    margin-right: -1.25rem;
    padding-right: 1.25rem;
  }

  .home-page .home-gallery__item.gallery-item:nth-child(n) {
    height: min(110vw, 430px);
  }

  .home-booking__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
  }

  .home-booking__steps li {
    display: grid;
    gap: 0.1rem;
  }

  .home-page #booking .booking-layout > section,
  .home-page #booking .booking-steps-main > section {
    padding: 1rem;
    border-radius: 17px;
  }

  .home-page #booking .booking-payment-mode {
    grid-template-columns: 1fr;
  }

  .home-page #booking .booking-payment-mode__hint {
    grid-column: 1;
  }

  .home-page .home-reviews {
    padding-block: 4.5rem;
  }

  .home-page .home-reviews .review-card {
    min-height: 0;
  }

  .home-visit__actions {
    display: grid;
  }

  .home-visit__details > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .home-page .site-footer--home > nav {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

@media (max-width: 430px) {
  .home-page .site-header.site-header--sticky {
    width: calc(100% - 1rem);
    margin-top: 0.5rem;
  }

  .home-page .site-branding__link {
    width: 155px;
    height: 50px;
  }

  .home-page .site-branding__logo {
    width: 184px;
    height: 50px;
  }

  .home-page .site-header-actions {
    gap: 0.25rem;
  }

  .home-page .site-notifications__toggle {
    width: 40px;
    min-width: 40px;
    min-height: 40px;
  }

  .home-page .site-auth-link {
    max-width: 78px;
    min-height: 40px;
    overflow: hidden;
    padding-inline: 0.65rem;
    font-size: 0.72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .home-page .mobile-menu-toggle {
    width: 40px;
    min-width: 40px;
    min-height: 40px;
  }

  .home-page #booking .calendar {
    padding: 0.65rem;
  }

  .home-page #booking .calendar-days button {
    min-height: 30px;
  }

  .home-page #booking [aria-labelledby="booking-step-1"] h3,
  .home-page #booking [aria-labelledby="booking-step-2"] h3,
  .home-page #booking [aria-labelledby="booking-step-3"] h3 {
    font-size: 1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-hero__figure img,
  .home-page .home-gallery__item img,
  .home-page .home-button,
  .home-page .home-text-link span {
    transition: none !important;
  }
}

/* ========================================================================== */
/* Homepage — retour à la palette crème, caramel et brun d'origine            */
/* ========================================================================== */

.home-page {
  background:
    radial-gradient(circle at top right, #fcf3e7 0%, transparent 35%),
    radial-gradient(circle at bottom left, #efdfc9 0%, transparent 42%),
    var(--bg);
}

.home-page .home-main {
  padding-top: clamp(1.25rem, 3vw, 2.2rem);
}

.home-page .home-main > section {
  width: min(calc(100% - 2rem), var(--home-container));
}

/* Header uniforme et notification monochrome */
.home-page .site-header.site-header--sticky,
.home-page .site-header.site-header--sticky.is-scrolled {
  border-color: rgba(230, 215, 195, 0.95);
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(66, 38, 17, 0.12);
  backdrop-filter: none;
}

.home-page .site-branding__link,
.home-page .site-branding__logo {
  background: transparent;
}

.home-page .site-branding__logo {
  filter: none;
  mix-blend-mode: normal;
}

.home-page .site-header nav a {
  color: #3f2f20;
}

.home-page .site-header nav a:hover,
.home-page .site-header nav a.is-active {
  background: rgba(217, 167, 109, 0.18);
  color: var(--brand-deep);
}

.home-page .site-auth-link,
.home-page .site-notifications__toggle {
  border-color: var(--line);
  background: var(--surface);
  color: #6b4a2d;
}

.home-page button.site-auth-link:hover,
.home-page a.site-auth-link:hover,
.home-page .site-notifications__toggle:hover {
  border-color: var(--accent-hover);
  background: var(--accent-soft);
  color: var(--brand-deep);
}

.site-notifications__toggle {
  position: relative;
}

.site-notifications__icon {
  display: inline-flex;
  width: 1.15rem;
  height: 1.15rem;
  align-items: center;
  justify-content: center;
  color: currentColor;
  font-size: 0;
}

.site-notifications__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-notifications__count {
  position: absolute;
  top: -0.3rem;
  right: -0.3rem;
  min-width: 1.15rem;
  min-height: 1.15rem;
  padding: 0.05rem 0.28rem;
  border: 2px solid var(--surface);
  background: #bf7f42;
  font-size: 0.65rem;
}

.site-notifications__count.is-empty {
  display: none;
}

/* Prestations : esthétique conservée, teintes chaudes restaurées */
.home-page #prestations.home-services {
  margin-top: clamp(1.25rem, 3vw, 3.75rem);
  border-color: var(--line);
  background: rgba(255, 250, 245, 0.82);
  box-shadow: 0 24px 60px rgba(66, 38, 17, 0.08);
}

.home-page .home-kicker,
.home-page .home-eyebrow,
.home-page .service-card__number {
  color: var(--accent-hover) !important;
}

.home-page .home-services__count {
  color: #6b4a2d !important;
}

.home-page #prestations .service-card:hover {
  background: rgba(239, 212, 177, 0.24);
}

.home-page #prestations .service-card__meta small {
  color: #8b7156;
}

.home-page #prestations .service-card__action {
  border-color: rgba(184, 120, 61, 0.42);
  color: #754923;
}

.home-page #prestations .service-card__action:hover {
  border-color: var(--accent-hover);
  background: var(--accent-hover);
  color: #fff;
}

/* Réservation : structure conservée, palette initiale */
.home-page #booking.home-booking {
  border: 1px solid rgba(224, 201, 174, 0.9);
  background:
    radial-gradient(620px 360px at 100% 0%, rgba(221, 174, 117, 0.18), transparent 70%),
    linear-gradient(145deg, rgba(255, 251, 246, 0.92), rgba(244, 231, 214, 0.86));
  box-shadow:
    0 28px 60px rgba(76, 47, 24, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.home-page #booking .home-kicker {
  color: #a76c35 !important;
}

.home-page #booking .home-section-heading h2 {
  color: var(--text);
}

.home-page #booking .home-section-heading--split > div:last-child > p:first-child {
  color: var(--text-soft);
  font-size: 1.14rem;
  line-height: 1.75;
}

.home-booking__steps {
  gap: 0.6rem 1.25rem;
  color: #5c493a;
  font-size: 0.9rem;
}

.home-booking__steps span {
  color: #a76c35;
  font-size: 1.18rem;
}

.home-page #booking .booking-login-card {
  border-color: rgba(214, 179, 137, 0.92);
  background: rgba(255, 250, 244, 0.86);
}

.home-page #booking .booking-login-card p {
  color: var(--text-soft);
}

.home-page #booking .booking-login-card__actions a {
  border-color: #d4b18b;
  background: var(--surface);
  color: #63411f;
}

.home-page #booking .booking-login-card__actions a:first-child {
  border-color: var(--accent-hover);
  background: var(--accent);
  color: #fff;
}

.home-page #booking .booking-layout > section,
.home-page #booking .booking-steps-main > section {
  border-color: var(--line);
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(255, 250, 244, 0.92));
  box-shadow:
    0 12px 26px rgba(74, 47, 24, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.82);
}

.home-page #booking .booking-layout > section::before,
.home-page #booking .booking-steps-main > section::before {
  background: linear-gradient(90deg, #d39a5c, rgba(211, 154, 92, 0.12));
}

.home-page #booking [aria-labelledby="booking-step-1"] h3::before,
.home-page #booking [aria-labelledby="booking-step-2"] h3::before,
.home-page #booking [aria-labelledby="booking-step-3"] h3::before {
  border-color: rgba(196, 131, 70, 0.48);
  background: #fff7ed;
  color: #9d632e;
}

.home-page #booking label,
.home-page #booking [aria-labelledby="booking-step-1"] label[for="service_id"] {
  color: #8b6038;
}

.home-page #booking input,
.home-page #booking select,
.home-page #booking textarea,
.home-page #booking #service_id {
  border-color: rgba(218, 187, 151, 0.9);
  background-color: #fffdfa;
  color: var(--text);
}

.home-page #booking .calendar,
.home-page #booking .booking-payment-mode {
  border-color: rgba(218, 187, 151, 0.72);
  background: linear-gradient(180deg, #fffcf7, #f8eddf);
}

.home-page #booking .calendar-nav button,
.home-page #booking #slot-list button,
.home-page #booking .booking-payment-mode__option {
  border-color: #d4b38c;
  background: #fffdfa;
  color: #6b4a2d;
}

.home-page #booking .calendar-days button:hover:not(:disabled),
.home-page #booking .calendar-days button.is-selected,
.home-page #booking #slot-list button:hover,
.home-page #booking #slot-list button.is-active {
  border-color: var(--accent-hover);
  background: var(--accent-hover);
  color: #fff;
}

.home-page #booking #slot-info {
  border-color: rgba(204, 157, 108, 0.62);
  background: rgba(255, 249, 241, 0.82);
  color: #68503b;
}

.home-page #booking .booking-payment-mode__option:has(input:checked) {
  border-color: var(--accent-hover);
  background: #fff4e6;
  box-shadow: 0 0 0 2px rgba(217, 167, 109, 0.16);
}

.home-page #booking .js-summary-compact,
.home-page #booking .js-summary-compact .summary-main {
  border-color: rgba(225, 204, 179, 0.78);
  background: #fffdfa;
}

.home-page #booking .js-summary-compact .summary-main strong,
.home-page #booking .js-summary-compact .summary-row--highlight {
  color: #68451f;
}

.home-page #booking .js-summary-compact .summary-row--highlight {
  background: #f3e4d4;
}

.home-page #booking #confirm-booking:not(:disabled),
.home-page .home-reviews .review-form-submit button:not(:disabled) {
  background: var(--accent-hover);
  color: #fff;
  box-shadow: 0 12px 25px rgba(170, 107, 48, 0.24);
}

/* Avis */
.home-page .home-reviews__verified {
  color: #6b4a2d !important;
}

.home-page .home-reviews__verified span {
  background: var(--accent-hover);
  color: #fff;
}

.home-page .home-reviews .review-card,
.home-page .home-reviews .review-form-card {
  border-color: var(--line);
  background: rgba(255, 250, 245, 0.88);
  box-shadow: 0 16px 38px rgba(66, 38, 17, 0.08);
}

.home-page .home-reviews .review-card::before {
  color: rgba(217, 167, 109, 0.28);
}

.home-page .home-reviews .review-card__stars,
.home-page .home-reviews .review-card > p:first-child:not(.review-empty-eyebrow) {
  color: #b8773d;
}

/* Footer réduit aux quatre liens utiles */
.site-footer {
  display: block;
}

.site-footer > nav:only-child {
  grid-column: 1 / -1;
  grid-row: auto;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: clamp(1.5rem, 5vw, 4.5rem);
}

.site-footer > nav:only-child .footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  margin: 0;
  padding: 0;
}

.home-page .site-footer--home {
  display: block;
  width: min(calc(100% - 2rem), var(--home-container));
  margin-top: clamp(2rem, 4vw, 3.75rem);
  margin-bottom: clamp(1rem, 2vw, 2rem);
  padding: 1.5rem clamp(1.25rem, 3vw, 2.75rem);
  border: 1px solid #d9bd99;
  border-radius: 20px;
  background: linear-gradient(135deg, #fffaf5, #f1dfc9);
  box-shadow: 0 16px 34px rgba(66, 38, 17, 0.11);
  opacity: 1;
  transform: none;
}

.home-page .site-footer--home .footer-links a {
  padding: 0;
  border: 0;
  color: #5f4a39;
  font-size: 0.84rem;
  font-weight: 650;
}

.home-page .site-footer--home .footer-links a:hover {
  color: #8f5d2f;
}

/* Connexion : bouton d'action chaleureux et mieux identifiable */
body:not(.admin-body) .site-header a.site-auth-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.65rem 1.05rem;
  border: 1px solid #c88a4d;
  border-radius: 14px;
  background: linear-gradient(135deg, #dda765, #c78343);
  color: #fffaf5;
  box-shadow:
    0 9px 20px rgba(151, 91, 35, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  font-size: 0.84rem;
  font-weight: 750;
  letter-spacing: 0.01em;
}

body:not(.admin-body) .site-header a.site-auth-link::after {
  content: "\2192";
  font-size: 1rem;
  line-height: 1;
  transition: transform 0.2s ease;
}

body:not(.admin-body) .site-header a.site-auth-link:hover {
  border-color: #a96830;
  background: linear-gradient(135deg, #c98a4c, #a96830);
  color: #fff;
  box-shadow: 0 11px 24px rgba(151, 91, 35, 0.28);
}

body:not(.admin-body) .site-header a.site-auth-link:hover::after {
  transform: translateX(3px);
}

@media (max-width: 900px) {
  .home-page .site-header.site-header--sticky.is-mobile-open nav {
    border-color: var(--line);
    background: var(--surface);
    box-shadow: 0 14px 26px rgba(66, 38, 17, 0.14);
  }

  .home-page .mobile-menu-toggle {
    border-color: #d4b48f;
    background: #fff7ec;
    color: #6c4929;
  }

}

@media (max-width: 620px) {
  .home-page #booking .home-section-heading--split > div:last-child > p:first-child {
    font-size: 1.02rem;
  }

  .home-booking__steps {
    font-size: 0.8rem;
  }

  .site-footer > nav:only-child {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    display: grid;
    width: 100%;
    gap: 0.75rem 1rem;
  }

  .site-footer > nav:only-child .footer-links {
    display: grid;
    gap: 0.5rem;
    text-align: center;
  }
}

@media (min-width: 1100px) {
  .home-page #prestations.home-services {
    margin-top: clamp(2.5rem, 3.5vw, 3.75rem);
  }

  .home-page #booking.home-booking {
    margin-top: clamp(4rem, 5vw, 5rem);
    padding: clamp(2.5rem, 3.5vw, 3.5rem);
  }

  .home-page #booking .home-section-heading--booking {
    grid-template-columns: minmax(0, 1fr) minmax(420px, 0.72fr);
    gap: clamp(2rem, 3.5vw, 3.5rem);
    align-items: center;
    margin-bottom: 1.25rem;
  }

  .home-page #booking .home-section-heading--booking h2 {
    max-width: 15ch;
    font-size: clamp(3.5rem, 4.6vw, 4.25rem);
  }

  .home-page #booking .home-section-heading--booking > div:last-child > p:first-child {
    max-width: 46ch;
    font-size: 1.15rem;
    line-height: 1.65;
  }

  .home-page #booking .home-booking__steps {
    margin-top: 0.75rem;
  }

  .home-page #booking .booking-login-card {
    margin-bottom: 0.85rem;
    padding: 0.75rem 1rem;
  }

  .home-page #booking .booking-layout {
    grid-template-columns: minmax(0, 1.75fr) minmax(400px, 0.85fr);
    gap: 1.25rem;
  }

  .home-page #booking .booking-steps-main {
    gap: 0.8rem;
  }

  .home-page #booking .booking-layout > section,
  .home-page #booking .booking-steps-main > section {
    gap: 0.65rem;
    padding: 1.15rem;
  }

  .home-page #booking .booking-payment-mode__option {
    min-height: 56px;
  }

  .home-page #booking .booking-payment-mode__hint {
    line-height: 1.35;
  }

  .home-page #booking [aria-labelledby="booking-step-3"] .js-summary-compact .summary-row {
    min-height: 38px;
    padding: 0.45rem 0.7rem;
  }
}

/* Accueil : reprendre le header standard des autres pages sur desktop */
@media (min-width: 901px) {
  .home-page .site-header.site-header--sticky {
    top: 0;
    width: min(calc(100% - 2rem), var(--home-container));
    min-height: 0;
    margin-top: 0;
    padding: 0.8rem 1.2rem;
    border: 1px solid rgba(226, 208, 187, 0.95);
    border-radius: 18px;
    background: rgba(255, 250, 244, 0.82);
    box-shadow:
      0 14px 34px rgba(66, 38, 17, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(12px);
  }

  .home-page .site-header.site-header--sticky.is-scrolled {
    border-color: rgba(212, 182, 149, 0.95);
    background: rgba(255, 250, 244, 0.82);
    box-shadow: 0 18px 36px rgba(66, 38, 17, 0.2);
    backdrop-filter: blur(12px);
  }

  .home-page .site-branding__link {
    width: 300px;
    height: 120px;
  }

  .home-page .site-branding__logo {
    width: 360px;
    height: 120px;
    filter: contrast(1.1) saturate(1.05) drop-shadow(0 5px 8px rgba(95, 59, 33, 0.16));
    mix-blend-mode: multiply;
  }

  .home-page .site-header nav ul {
    gap: 0.35rem 0.9rem;
  }

  .home-page .site-header nav a {
    padding: 0.38rem 0.05rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #3f2f20;
    font-size: 0.98rem;
    font-weight: 500;
  }

  .home-page .site-header nav a::after {
    display: block;
  }

  .home-page .site-header nav a:hover,
  .home-page .site-header nav a.is-active {
    background: transparent;
    color: var(--brand-deep);
  }

  .home-page .site-header-actions {
    gap: 0.65rem;
  }
}

@media (min-width: 1100px) {
  .home-page #booking .home-section-heading--booking > div:last-child > p:first-child {
    font-size: 1.25rem;
  }

  .home-page #booking .home-booking__steps {
    font-size: 1rem;
  }

  .home-page #booking .home-booking__steps span {
    font-size: 1.28rem;
  }
}

/* Galerie et contact : largeur desktop cohérente avec le format 1440 px */
@media (min-width: 901px) {
  body:has(.gallery-grid--public) .site-header,
  body:has(#contact-title) .site-header,
  body:has(.gallery-grid--public) .site-footer,
  body:has(#contact-title) .site-footer,
  main#main-content:has(.gallery-grid--public) > section {
    width: min(calc(100% - 2rem), 1440px);
    max-width: 1440px;
  }
}

@media (min-width: 1024px) {
  main#main-content:has(section[aria-labelledby="contact-title"]) {
    width: min(calc(100% - 2rem), 1440px);
    max-width: 1440px;
  }
}

/* Notifications mobiles : un composant unique, lisible et contenu dans l'ecran */
@media (max-width: 900px) {
  .site-header.site-header--sticky .site-header-actions {
    width: auto;
    justify-self: end;
    justify-content: flex-end;
  }

  .site-header.site-header--sticky .site-notifications,
  .site-header.site-header--sticky .site-notifications__toggle {
    width: auto;
  }

  .site-header.site-header--sticky .site-notifications__toggle {
    position: relative;
    display: inline-flex;
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    padding: 0.35rem;
    gap: 0.15rem;
    border: 1px solid #8f4c20;
    border-radius: 12px;
    background: #8f4c20;
    color: #fffaf4;
    box-shadow: 0 8px 18px rgba(91, 49, 20, 0.2);
  }

  .site-header.site-header--sticky .site-notifications__toggle:hover,
  .site-header.site-header--sticky .site-notifications__toggle:focus-visible,
  .site-header.site-header--sticky .site-notifications__toggle[aria-expanded="true"] {
    border-color: #733a17;
    background: #733a17;
    color: #ffffff;
  }

  .site-header.site-header--sticky .site-notifications__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    filter: none;
  }

  .site-header.site-header--sticky .site-notifications__label {
    display: none;
  }

  .site-header.site-header--sticky .site-notifications__count {
    position: absolute;
    top: 2px;
    right: 2px;
  }

  .site-header.site-header--sticky .site-notifications__panel {
    position: fixed;
    top: 70px;
    right: 0.75rem;
    left: auto;
    width: min(calc(100vw - 1.5rem), 360px);
    max-width: calc(100vw - 1.5rem);
    max-height: calc(100dvh - 82px);
    box-sizing: border-box;
    overflow: hidden;
    border-color: #dec4a3;
    background: rgba(255, 250, 244, 0.99);
    box-shadow: 0 18px 38px rgba(78, 45, 21, 0.18);
    z-index: 220;
  }

  .site-header.site-header--sticky .site-notifications__panel-head {
    gap: 0.75rem;
  }

  .site-header.site-header--sticky .site-notifications__read-all {
    min-height: 40px;
    padding: 0.5rem 0.8rem;
    border-color: #d9b994;
    background: #fffdf9;
    color: #5d3821;
    box-shadow: none;
  }

  .site-header.site-header--sticky .site-notifications__list {
    max-height: calc(100dvh - 154px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .admin-header.site-header.site-header--sticky.is-mobile-open nav a.is-active,
  .admin-header.site-header.site-header--sticky.is-mobile-open nav a[aria-current="page"] {
    border-color: #ddc0a0;
    background: #fff3e4;
    color: #5d3821;
  }
}

@media (max-width: 430px) {
  .home-page .site-header.site-header--sticky .site-notifications__toggle {
    width: 48px;
    min-width: 48px;
    min-height: 48px;
  }

  .site-header.site-header--sticky .site-notifications__panel {
    right: 0.5rem;
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
  }
}

/* Accueil : rapprocher naturellement la derniere section du footer */
.home-page .home-reviews {
  padding-bottom: clamp(2.5rem, 4vw, 4rem);
}

.home-page .home-main {
  padding-bottom: clamp(1.25rem, 2.5vw, 2.5rem);
}

.home-page .site-footer--home {
  margin-top: clamp(0.75rem, 1.5vw, 1.25rem);
}

@media (max-width: 720px) {
  .home-page .home-reviews {
    padding-bottom: 2.5rem;
  }

  .home-page .home-main {
    padding-bottom: 1.25rem;
  }
}

.legal-card--attention {
  border-color: #d9ad78;
  background:
    linear-gradient(135deg, rgba(255, 248, 237, 0.98), rgba(249, 232, 210, 0.96));
  box-shadow: 0 14px 30px rgba(139, 87, 37, 0.13);
}

.legal-card--attention h2::after {
  content: "À compléter avant publication";
  display: block;
  width: fit-content;
  margin-top: 0.55rem;
  padding: 0.28rem 0.58rem;
  border: 1px solid #d8aa73;
  border-radius: 999px;
  background: rgba(255, 252, 247, 0.82);
  color: #845222;
  font-family: Inter, sans-serif;
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Navigation publique : liens plus presents et plus confortables sur desktop */
@media (min-width: 901px) {
  body:not(.admin-body) .site-header nav ul {
    flex-wrap: nowrap;
    gap: clamp(0.85rem, 1.2vw, 1.2rem);
  }

  body:not(.admin-body) .site-header nav a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    padding-block: 0.45rem;
    font-size: 1.06rem;
    font-weight: 600;
    white-space: nowrap;
  }
}

/* Actions du compte : meme style caramel sur tous les headers desktop */
@media (min-width: 901px) {
  body .site-header.site-header--sticky .site-header-actions .site-notifications__toggle,
  body .site-header.site-header--sticky .site-header-actions .site-logout-form > .site-auth-link {
    width: auto;
    min-height: 44px;
    padding: 0.68rem 1.25rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #d9a76d;
    color: #fffdfd;
    box-shadow: 0 10px 22px rgba(201, 148, 88, 0.28);
    font-size: 1rem;
    font-weight: 700;
  }

  body .site-header.site-header--sticky .site-header-actions .site-notifications__toggle:hover,
  body .site-header.site-header--sticky .site-header-actions .site-notifications__toggle:focus-visible,
  body .site-header.site-header--sticky .site-header-actions .site-notifications__toggle[aria-expanded="true"],
  body .site-header.site-header--sticky .site-header-actions .site-logout-form > .site-auth-link:hover,
  body .site-header.site-header--sticky .site-header-actions .site-logout-form > .site-auth-link:focus-visible {
    border-color: transparent;
    background: #c89458;
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(176, 116, 54, 0.3);
  }

  body .site-header.site-header--sticky .site-header-actions .site-notifications__count:not(.is-empty) {
    border-color: #fff8ef;
    background: #fff8ef;
    color: #8a5427;
  }

  body:not(.admin-body) .site-header.site-header--sticky .site-header-actions {
    flex-wrap: nowrap;
  }

  body:not(.admin-body) .site-header.site-header--sticky .site-notifications__label {
    display: none;
  }

  body:not(.admin-body) .site-header.site-header--sticky .site-header-actions .site-notifications__toggle {
    width: 48px;
    min-width: 48px;
    min-height: 48px;
    flex: 0 0 48px;
    justify-content: center;
    padding: 0.35rem;
    gap: 0;
  }
}

/* Header public intermediaire : garder logo, navigation et compte sur une ligne. */
@media (min-width: 901px) and (max-width: 1380px) {
  body:not(.admin-body) .site-header.site-header--sticky {
    grid-template-columns: clamp(160px, 18vw, 220px) minmax(0, 1fr) auto !important;
    column-gap: clamp(0.45rem, 0.8vw, 0.7rem);
    padding-inline: 0.8rem;
  }

  body:not(.admin-body) .site-header .site-branding__link {
    width: clamp(160px, 18vw, 220px);
    height: clamp(64px, 7.2vw, 88px);
  }

  body:not(.admin-body) .site-header .site-branding__logo {
    width: 120%;
    height: 100%;
  }

  body:not(.admin-body) .site-header nav ul {
    flex-wrap: nowrap;
    gap: clamp(0.35rem, 0.65vw, 0.55rem);
  }

  body:not(.admin-body) .site-header nav a {
    min-height: 40px;
    padding-block: 0.35rem;
    font-size: clamp(0.82rem, 1.15vw, 0.94rem);
    white-space: nowrap;
  }

  body:not(.admin-body) .site-header .site-header-actions {
    flex-wrap: nowrap;
    gap: 0.35rem;
  }

  body:not(.admin-body) .site-header .site-notifications__label {
    display: none;
  }

  body:not(.admin-body) .site-header.site-header--sticky .site-header-actions .site-notifications__toggle {
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0.35rem;
  }

  body:not(.admin-body) .site-header.site-header--sticky .site-header-actions .site-logout-form > .site-auth-link {
    min-height: 44px;
    padding-inline: clamp(0.72rem, 1.25vw, 1rem);
    font-size: clamp(0.84rem, 1.15vw, 0.94rem);
    white-space: nowrap;
  }
}

/* Cible ouverte depuis une notification. */
.admin-reservation-record.is-notification-target,
.admin-data-table tr:target {
  outline: 3px solid rgba(201, 148, 88, 0.72);
  outline-offset: 4px;
  box-shadow: 0 18px 38px rgba(176, 116, 54, 0.2);
  animation: notification-target-pulse 1.4s ease-out 1;
}

@keyframes notification-target-pulse {
  0% {
    outline-color: rgba(201, 148, 88, 1);
    box-shadow: 0 0 0 12px rgba(201, 148, 88, 0.24);
  }
  100% {
    outline-color: rgba(201, 148, 88, 0.72);
    box-shadow: 0 18px 38px rgba(176, 116, 54, 0.2);
  }
}

@media (prefers-reduced-motion: reduce) {
  .admin-reservation-record.is-notification-target,
  .admin-data-table tr:target {
    animation: none;
    scroll-behavior: auto;
  }
}

/* Déplacement d’un rendez-vous depuis l’espace cliente. */
.client-reservation-actions {
  display: grid;
  gap: 0.55rem;
  min-width: 170px;
}

.client-reservation-actions form,
.client-reservation-actions button {
  width: 100%;
  margin: 0;
}

.client-reservation-actions .btn-secondary {
  min-height: 46px;
  padding: 0.65rem 1rem;
  white-space: nowrap;
}

.reschedule-dialog {
  width: min(calc(100% - 2rem), 660px);
  max-height: min(90dvh, 760px);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid #dfc7aa;
  border-radius: 26px;
  background: #fffaf5;
  color: #3b2b1f;
  box-shadow: 0 30px 80px rgba(48, 29, 16, 0.3);
}

.reschedule-dialog::backdrop {
  background: rgba(42, 29, 19, 0.58);
  backdrop-filter: blur(5px);
}

.reschedule-dialog__form {
  display: grid;
  gap: 1rem;
  padding: clamp(1.15rem, 3.5vw, 2rem);
  background:
    radial-gradient(560px 220px at 100% 0%, rgba(219, 172, 115, 0.16), transparent 72%),
    linear-gradient(180deg, #fffaf5 0%, #f8eee2 100%);
}

.reschedule-dialog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.reschedule-dialog__eyebrow {
  margin: 0 0 0.25rem;
  color: #986332;
  font-size: 0.74rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.reschedule-dialog h2 {
  margin: 0;
  color: #352419;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2rem, 6vw, 2.7rem);
  line-height: 1;
}

.reschedule-dialog__close {
  display: inline-grid;
  place-items: center;
  width: 42px;
  min-width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0;
  border: 1px solid #dfc7aa;
  border-radius: 50%;
  background: rgba(255, 251, 246, 0.9);
  color: #6b4a2f;
  box-shadow: none;
  font-size: 1.5rem;
  line-height: 1;
}

.reschedule-dialog__service {
  margin: 0;
  color: #3e2d20;
  font-size: 1.05rem;
  font-weight: 750;
}

.reschedule-dialog__current {
  margin: -0.45rem 0 0;
  color: #6b594a;
}

.reschedule-dialog__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.reschedule-dialog__fields label {
  display: grid;
  gap: 0.42rem;
  margin: 0;
  color: #5c422c;
  font-weight: 700;
}

.reschedule-dialog__fields input,
.reschedule-dialog__fields select {
  width: 100%;
  min-height: 50px;
  margin: 0;
  border-color: #d9bd9c;
  background: #fffdf9;
}

.reschedule-dialog__feedback,
.reschedule-dialog__policy {
  margin: 0;
  padding: 0.8rem 0.9rem;
  border-radius: 13px;
  line-height: 1.55;
}

.reschedule-dialog__feedback {
  border: 1px solid #dfc49f;
  background: #fff7eb;
  color: #694721;
}

.reschedule-dialog__feedback.is-error {
  border-color: #ddb3ae;
  background: #fff1ef;
  color: #873a35;
}

.reschedule-dialog__policy {
  border-left: 3px solid #c99254;
  background: rgba(255, 252, 247, 0.74);
  color: #6b594a;
  font-size: 0.9rem;
}

.reschedule-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.7rem;
  padding-top: 0.15rem;
}

.reschedule-dialog__actions button {
  min-height: 48px;
  margin: 0;
}

@media (max-width: 620px) {
  .reschedule-dialog {
    width: min(calc(100% - 1rem), 660px);
    max-height: calc(100dvh - 1rem);
    border-radius: 20px;
  }

  .reschedule-dialog__fields {
    grid-template-columns: 1fr;
  }

  .reschedule-dialog__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .reschedule-dialog__actions button {
    width: 100%;
  }
}

/* Finitions de la page Contact. */
main#main-content:has(#contact-title) .contact-card__eyebrow {
  margin: 0 0 0.35rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #9a6635;
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.13em;
  line-height: 1.35;
  text-transform: uppercase;
}

main#main-content:has(#contact-title) .contact-card__note {
  margin: 0.15rem 0 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid #e4cfb3;
  border-radius: 13px;
  background: #fff8ef;
  color: #6b513a;
  line-height: 1.55;
}

main#main-content:has(#contact-title) .contact-policy-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

main#main-content:has(#contact-title) .contact-policy-grid p,
main#main-content:has(#contact-title) .contact-card--important .contact-policy-grid p:last-child {
  min-height: 100%;
  margin: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid #ead9c4;
  border-left: 3px solid rgba(200, 135, 63, 0.62);
  border-radius: 13px;
  background: rgba(255, 252, 247, 0.82);
  color: #594433;
  line-height: 1.58;
}

@media (max-width: 720px) {
  main#main-content:has(#contact-title) .contact-policy-grid {
    grid-template-columns: 1fr;
  }
}
