/*
Theme Name: Kristina Lash Master
Author: Denis Komarovs
Description: A custom WordPress theme for Kristina Lash Master.
Version: 1.0.0
Text Domain: kristina-lash-master
*/

:root {
  --klm-header-height: clamp(4.25rem, 6vw, 5.25rem);
  --klm-ivory: #f8f3eb;
  --klm-espresso: #241b17;
  --klm-rose: #91483b;
  --klm-muted: #594a43;
  --klm-blush: #f0d8cf;
  --klm-beige: #f5e7dc;
  --klm-beige-deep: #c97360;
  --klm-beige-pressed: #9f4e40;
  --klm-navbar: #fffaf4;
}

/* Minimal modern reset */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

body,
h1,
h2,
h3,
p,
figure,
blockquote {
  margin: 0;
}

body {
  line-height: 1.5;
  min-height: 100vh;
  text-rendering: optimizeLegibility;
}

address {
  font-style: normal;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

button,
input,
textarea,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 2px solid var(--klm-rose);
  outline-offset: 4px;
}

.wp-site-blocks > * {
  margin-block-end: 0 !important;
  margin-block-start: 0 !important;
}

body {
  background: var(--klm-ivory);
  color: var(--klm-espresso);
  margin: 0;
  min-width: 320px;
  padding-top: var(--klm-header-height);
  transition: opacity 180ms ease;
}

body.page-is-leaving { opacity: 0; }

@keyframes klm-page-enter { from { opacity: 0; } to { opacity: 1; } }
body { animation: klm-page-enter 260ms ease both; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 160ms ease both klm-page-exit; }
::view-transition-new(root) { animation: 260ms ease both klm-page-enter; }
@keyframes klm-page-exit { to { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  body { animation: none; transition: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* Homepage hero */
.hero-section {
  display: flex;
  align-items: center;
  min-height: calc(100svh - var(--klm-header-height));
  overflow: hidden;
}

.hero-section__content {
  margin-inline: auto;
  padding: clamp(2.25rem, 6vh, 5rem) clamp(1.25rem, 6vw, 6.5rem);
  width: min(100%, 1180px);
}

.hero-section__eyebrow {
  color: var(--klm-rose);
  font-size: 0.69rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.hero-section h1 {
  color: var(--klm-espresso);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.4rem, min(7.2vw, 11vh), 7.4rem);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
  max-width: 11ch;
}

.hero-section h1 em {
  color: var(--klm-rose);
  font-weight: 400;
}

.hero-section__intro {
  color: rgba(36, 27, 23, 0.72);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.75;
  margin-top: clamp(1.5rem, 3vw, 2.3rem);
  max-width: 34rem;
}

.hero-section__actions {
  align-items: center;
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

.hero-button {
  align-items: center;
  display: inline-flex;
  font-size: 0.68rem;
  font-weight: 700;
  gap: 1.8rem;
  justify-content: space-between;
  letter-spacing: 0.13em;
  min-height: 3.25rem;
  padding: 0.85rem 1.15rem;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.hero-button span {
  font-size: 1rem;
  font-weight: 400;
}

.hero-button:hover {
  transform: translateY(-2px);
}

.hero-button--primary {
  background: var(--klm-espresso);
  border: 1px solid var(--klm-espresso);
  color: #fff;
}

.hero-button--primary:hover {
  background: var(--klm-rose);
  border-color: var(--klm-rose);
}

.hero-button--secondary {
  background: transparent;
  border: 1px solid rgba(36, 27, 23, 0.3);
  color: var(--klm-espresso);
}

.hero-button--secondary:hover {
  background: #fffaf4;
  border-color: var(--klm-espresso);
}

.hero-section__work-link {
  color: var(--klm-espresso);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.92rem;
  margin-top: 1.35rem;
}

.hero-section__work-link a {
  color: inherit;
  display: inline-block;
  position: relative;
  text-decoration: none;
}

.hero-section__work-link a::after {
  background: currentColor;
  bottom: -0.15rem;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
  width: 100%;
}

.hero-section__work-link a:hover::after,
.hero-section__work-link a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.hero-section__details {
  color: rgba(36, 27, 23, 0.58);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.66rem;
  gap: 0.75rem 1.5rem;
  letter-spacing: 0.09em;
  margin-top: clamp(1.75rem, 4vh, 3.5rem);
  text-transform: uppercase;
}

.hero-section__details span {
  align-items: center;
  display: inline-flex;
  gap: 0.6rem;
}

.hero-section__details span::before {
  background: var(--klm-rose);
  border-radius: 50%;
  content: "";
  height: 4px;
  width: 4px;
}

.hero-section__visual {
  align-items: center;
  background: linear-gradient(145deg, #ead5c9 0%, #c98876 48%, #73483d 100%);
  display: flex;
  justify-content: center;
  min-height: 0;
  overflow: hidden;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  position: relative;
}

.hero-section__visual::before {
  background: rgba(255, 250, 244, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 50%;
  content: "";
  height: min(33vw, 31rem);
  position: absolute;
  width: min(33vw, 31rem);
}

.hero-section__frame {
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.52);
  color: #fffaf4;
  display: flex;
  flex-direction: column;
  height: 78%;
  justify-content: center;
  position: relative;
  width: 76%;
  z-index: 1;
}

.hero-section__monogram {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 7vw, 6rem);
  height: clamp(6rem, 13vw, 10rem);
  justify-content: center;
  width: clamp(6rem, 13vw, 10rem);
}

.hero-section__frame p {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  line-height: 1.45;
  margin-top: 1.5rem;
  text-align: center;
  text-transform: uppercase;
}

.hero-section__frame strong {
  font-size: 0.58rem;
  letter-spacing: 0.32em;
}

.hero-section__image-note {
  bottom: 1.25rem;
  color: rgba(255, 250, 244, 0.78);
  font-size: 0.58rem;
  letter-spacing: 0.2em;
  position: absolute;
  right: 1.5rem;
  text-transform: uppercase;
}

/* Treatment menu */
.home-services, .home-reviews { background: #fffaf4; padding: clamp(3.5rem, 7vw, 6rem) clamp(1rem, 4vw, 3rem); }
.home-services > header, .home-reviews > header { margin: 0 auto clamp(2rem, 4vw, 3rem); max-width: 1180px; }
.home-services h2, .home-reviews h2, .home-gallery-preview h2, .home-contact h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.05; margin-top: .65rem; }
.home-services__grid { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); margin: 0 auto; max-width: 1180px; }
.home-services__grid > a { background: var(--klm-ivory); border: 1px solid rgba(36,27,23,.12); color: var(--klm-espresso); min-height: 20rem; padding: clamp(1.5rem,3vw,2.25rem); text-decoration: none; transition: background-color .2s ease, transform .2s ease; }
.home-services__grid > a:hover { background: #f2e4da; transform: translateY(-4px); }
.home-services__grid span { color: var(--klm-rose); font-size: .875rem; font-weight: 700; }
.home-services__grid h3 { font-family: Georgia,"Times New Roman",serif; font-size: 1.75rem; font-weight: 400; margin-top: 4rem; }
.home-services__grid p { color: var(--klm-muted); font-size: 1rem; line-height: 1.65; margin-top: .8rem; }
.home-services__grid i { display: block; font-size: .9375rem; font-style: normal; font-weight: 700; margin-top: 1.5rem; }
.home-gallery-preview { align-items: end; background: linear-gradient(135deg,#d7b3a4,#83584c); color: #fff; display: flex; gap: 2rem; justify-content: space-between; padding: clamp(3.5rem,8vw,7rem) max(clamp(1rem,4vw,3rem),calc((100% - 1180px)/2)); }
.home-gallery-preview > div { max-width: 40rem; }.home-gallery-preview .section-label { color: #fff; }.home-gallery-preview p:last-child { font-size: 1rem; line-height: 1.65; margin-top: 1rem; }.home-gallery-preview .hero-button { background: #fffaf4; flex: 0 0 auto; }
.google-rating, .google-reviews, .google-reviews__footer, .reviews-notice { margin-inline: auto; max-width: 1180px; }.google-rating { align-items: baseline; display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 1.5rem; }.google-rating strong { font-family: Georgia,serif; font-size: 2rem; font-weight: 400; }.google-rating span,.google-review__stars { color: #a94f3e; letter-spacing: .08em; }.google-rating p { color: var(--klm-muted); font-size: .9375rem; }.google-reviews { display: grid; gap: 1rem; grid-template-columns: repeat(3,1fr); }.google-review { background: var(--klm-ivory); border: 1px solid rgba(36,27,23,.12); padding: 1.4rem; }.google-review__author { align-items:center; display:flex; gap:.7rem; }.google-review__author img { border-radius:50%; height:2.5rem; width:2.5rem; }.google-review__author div { display:grid; }.google-review__author a { color:var(--klm-espresso); font-weight:700; }.google-review__author small { color:var(--klm-muted); font-size:.875rem; }.google-review__stars { margin-top:1rem; }.google-review > p { color:#493b35; font-size:1rem; line-height:1.65; margin-top:.7rem; }.google-review__source { color:var(--klm-espresso); display:inline-block; font-size:.875rem; font-weight:700; margin-top:1rem; }.google-reviews__footer { margin-top:1.25rem; }.google-reviews__footer a,.reviews-notice a { color:var(--klm-espresso); font-weight:700; }.google-reviews__footer p,.reviews-notice p { color:var(--klm-muted); font-size:.875rem; line-height:1.5; margin-top:.5rem; }
.home-contact { background: var(--klm-ivory); display:grid; gap:clamp(2rem,6vw,6rem); grid-template-columns:1fr 1.2fr; padding:clamp(3.5rem,7vw,6rem) max(clamp(1rem,4vw,3rem),calc((100% - 1180px)/2)); }.home-contact__intro > p:nth-of-type(2) { color:var(--klm-muted); font-size:1rem; line-height:1.65; margin:1rem 0 1.5rem; }.home-contact__details { display:grid; gap:1px; grid-template-columns:1fr 1fr; }.home-contact__details > div { background:#fffaf4; border:1px solid rgba(36,27,23,.11); display:grid; gap:.35rem; padding:1.25rem; }.home-contact__details span { color:var(--klm-rose); font-size:.875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.home-contact__details a,.home-contact__details p { color:var(--klm-espresso); font-size:.9375rem; line-height:1.6; overflow-wrap:anywhere; }
.treatments-section {
  background: #fffaf4;
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 4vw, 3rem);
  scroll-margin-top: calc(var(--klm-header-height) + 1rem);
}

.treatments-section__heading {
  margin-inline: auto;
  max-width: 48rem;
  text-align: center;
}

.section-label,
.treatment-card__type {
  color: var(--klm-rose);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.treatments-section__heading h1,
.treatments-section__heading h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 6vw, 5.25rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
  margin-top: 0.9rem;
}

.treatments-section__heading > p:last-child {
  color: var(--klm-muted);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.7;
  margin-top: 1.3rem;
}

.treatment-tabs {
  border-bottom: 1px solid rgba(36, 27, 23, 0.22);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 12rem));
  justify-content: center;
  margin: clamp(1.75rem, 3vw, 2.5rem) auto 0;
  max-width: 1180px;
}

.treatment-tab {
  background: transparent;
  border: 0;
  color: var(--klm-muted);
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.125rem;
  padding: 0.8rem clamp(0.35rem, 2vw, 1.2rem);
  position: relative;
}

.treatment-tab::after {
  background: var(--klm-rose);
  bottom: -1px;
  content: "";
  height: 2px;
  left: 50%;
  position: absolute;
  transform: translateX(-50%) scaleX(0);
  transition: transform 180ms ease;
  width: calc(100% - 2rem);
}

.treatment-tab:hover,
.treatment-tab.is-active {
  color: var(--klm-espresso);
}

.treatment-tab.is-active::after {
  transform: translateX(-50%) scaleX(1);
}

.treatment-tab-panel[hidden] {
  display: none;
}

.treatment-offers--brows {
  margin-top: clamp(1.5rem, 2.5vw, 2rem);
}

.consultation-note {
  align-items: center;
  border-bottom: 1px solid rgba(36, 27, 23, 0.12);
  border-top: 1px solid rgba(36, 27, 23, 0.12);
  display: grid;
  gap: 0.5rem 2rem;
  grid-template-columns: 1fr auto;
  margin: clamp(1.5rem, 2.5vw, 2rem) auto;
  max-width: 1180px;
  padding: 1.2rem 0;
}

.consultation-note > div {
  display: grid;
  gap: 0.35rem;
}

.consultation-note span {
  color: var(--klm-rose);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.consultation-note strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 400;
}

.consultation-note p {
  color: var(--klm-muted);
  font-size: 1rem;
  line-height: 1.55;
  justify-self: start;
}

.consultation-note > b {
  background: var(--klm-rose);
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.1rem;
  font-weight: 400;
  padding: 0.7rem 1.1rem;
}

.treatment-offers {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, 1fr);
  margin: 0 auto 1.5rem;
  max-width: 1180px;
  padding-block: 0.5rem;
}

.treatment-offers p {
  background: rgba(176, 117, 98, 0.08);
  display: grid;
  gap: 0.25rem;
  padding: 1rem 1.2rem;
}

.treatment-offers span {
  color: var(--klm-rose);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.treatment-offers strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  font-weight: 400;
}

.treatment-offers small {
  color: var(--klm-muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

.volume-guide {
  background: rgba(176, 117, 98, 0.08);
  border-left: 2px solid var(--klm-rose);
  margin: 0 auto clamp(1.25rem, 2.5vw, 2rem);
  max-width: 1180px;
  padding: 1rem 1.2rem;
}

.volume-guide summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 400;
  justify-content: space-between;
  list-style: none;
}

.volume-guide summary::-webkit-details-marker {
  display: none;
}

.volume-guide summary::after {
  content: "+";
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.35rem;
  line-height: 1;
  margin-left: 1rem;
}

.volume-guide[open] summary::after {
  content: "−";
}

.volume-guide p {
  color: var(--klm-muted);
  font-size: 1rem;
  line-height: 1.6;
  margin-top: 0.35rem;
}

.common-questions {
  border-bottom: 1px solid rgba(36, 27, 23, 0.18);
  border-top: 1px solid rgba(36, 27, 23, 0.18);
  margin: 0 auto clamp(1.25rem, 2.5vw, 2rem);
  max-width: 1180px;
}

.treatment-accordions {
  background: rgba(255, 250, 244, 0.6);
  border-inline: 1px solid rgba(36, 27, 23, 0.08);
  margin: clamp(1.4rem, 3vw, 2.25rem) auto clamp(1.5rem, 3vw, 2.25rem);
  max-width: 1180px;
  padding-inline: clamp(1rem, 2.5vw, 1.75rem);
}

.treatment-accordions .common-questions {
  margin: 0;
}

.treatment-accordions .common-questions + .common-questions {
  border-top: 0;
}

.common-questions > summary,
.common-questions__answers details summary {
  align-items: center;
  color: var(--klm-espresso);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  list-style: none;
}

.common-questions > summary::-webkit-details-marker,
.common-questions__answers details summary::-webkit-details-marker {
  display: none;
}

.common-questions > summary {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.125rem;
  padding: 1rem 0;
}

.common-questions summary::after {
  content: "+";
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.35rem;
  line-height: 1;
  margin-left: 1rem;
}

.common-questions details[open] > summary::after,
.common-questions[open] > summary::after {
  content: "−";
}

.common-questions__answers {
  border-top: 1px solid rgba(36, 27, 23, 0.12);
  padding-bottom: 0.5rem;
}

.treatment-add-on-offers .service-price-list {
  border-top-color: rgba(36, 27, 23, 0.08);
  padding: 0.65rem 0;
}

.treatment-add-on-offers .service-price-list__offer {
  margin: 0.35rem 0;
}

.common-questions__answers details {
  border-bottom: 1px solid rgba(36, 27, 23, 0.1);
}

.common-questions__answers details:last-child {
  border-bottom: 0;
}

.common-questions__answers details summary {
  font-size: 1rem;
  font-weight: 600;
  padding: 0.9rem 0;
}

.common-questions__answers details p {
  color: var(--klm-muted);
  font-size: 1rem;
  line-height: 1.65;
  max-width: 54rem;
  padding: 0 2.5rem 1rem 0;
}

.consultation-card__visual {
  align-items: center;
  background: linear-gradient(135deg, #d9b6a8, #8b5c50);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 21rem;
  padding: 2rem;
  text-align: center;
}

.consultation-card__visual.has-instagram-placeholder {
  isolation: isolate;
  overflow: hidden;
  position: relative;
}

.consultation-card__visual span,
.consultation-card__visual small {
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.consultation-card__visual strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  margin: 0.7rem 0;
}

.consultation-card__visual > span,
.consultation-card__visual > strong,
.consultation-card__visual > small,
.treatment-gallery__slide > span,
.treatment-gallery__slide > figcaption {
  display: none;
}

.treatment-list {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
  grid-template-columns: 1fr;
  margin-inline: auto;
  max-width: 1180px;
}

.treatment-card {
  background: var(--klm-ivory);
  border: 1px solid rgba(36, 27, 23, 0.1);
  display: grid;
  grid-template-columns: minmax(20rem, 42%) 1fr;
}

.treatment-card__image {
  align-items: center;
  aspect-ratio: 16 / 8.7;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 4vw, 3.4rem);
  justify-content: center;
  letter-spacing: -0.03em;
  overflow: hidden;
  position: relative;
}

.treatment-card__image::after {
  border: 1px solid rgba(255, 255, 255, 0.42);
  content: "";
  inset: 0.8rem;
  position: absolute;
}

.treatment-card__image small {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  margin-top: 0.7rem;
  text-transform: uppercase;
}

.treatment-card__image--classic { background: linear-gradient(135deg, #dbb8aa, #9e6257); }
.treatment-card__image--natural { background: linear-gradient(135deg, #c99c8d, #70463e); }
.treatment-card__image--glamour { background: linear-gradient(135deg, #a86658, #3f2824); }
.treatment-card__image--dramatic { background: linear-gradient(135deg, #71443b, #201715); }

.treatment-gallery {
  min-height: 21rem;
  color: #fff;
  overflow: hidden;
  position: relative;
}

.treatment-gallery__slides,
.treatment-gallery__slide {
  height: 100%;
  width: 100%;
}

.treatment-service-image {
  height: 100%;
  inset: 0;
  object-fit: cover;
  position: absolute;
  width: 100%;
  z-index: 0;
}

.treatment-gallery__slide--placeholder { background: linear-gradient(135deg, #e5d5c9, #b99280); }
.treatment-gallery__slide--placeholder > span { display: block; font-size: clamp(3rem, 7vw, 5rem); opacity: .58; }

.treatment-gallery__slide {
  align-items: center;
  display: none;
  flex-direction: column;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 4vw, 3.2rem);
  justify-content: center;
  letter-spacing: -0.03em;
  margin: 0;
  padding: 1rem 4rem 3.8rem;
  text-align: center;
}

.treatment-gallery__slide.is-active {
  display: flex;
}

.consultation-card__visual.is-instagram-loading {
  overflow: hidden;
  position: relative;
}

.consultation-card__visual.is-instagram-loading::after {
  animation: instagram-shimmer 1.35s infinite;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.42), transparent);
  content: "";
  inset: 0;
  position: absolute;
  transform: translateX(-100%);
  z-index: 1;
}

.treatment-gallery__button {
  align-items: center;
  background: rgba(36, 27, 23, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.58);
  border-radius: 0;
  color: transparent;
  cursor: pointer;
  display: flex;
  font-size: 0;
  height: 2.75rem;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background-color 160ms ease, transform 160ms ease;
  width: 2rem;
  z-index: 2;
}

.treatment-gallery__button:hover {
  background: rgba(36, 27, 23, 0.7);
  transform: translateY(-50%);
}

.treatment-gallery__button::before {
  border-left: 1.5px solid #fff;
  border-top: 1.5px solid #fff;
  content: "";
  height: 0.55rem;
  position: absolute;
  width: 0.55rem;
}

.treatment-gallery__button--previous::before { transform: rotate(-45deg); }
.treatment-gallery__button--next::before { transform: rotate(135deg); }

.treatment-gallery__button--previous { left: 0.8rem; }
.treatment-gallery__button--next { right: 0.8rem; }

.treatment-gallery__count {
  background: rgba(27, 19, 17, 0.78);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  position: absolute;
  right: 0.8rem;
  padding: 0.25rem 0.4rem;
  top: 0.7rem;
  z-index: 2;
}

.treatment-card__image--classic-alt { background: linear-gradient(135deg, #e2c7bd, #ad776b); }
.treatment-card__image--classic-full { background: linear-gradient(135deg, #c68d80, #75443b); }
.treatment-card__image--natural-alt { background: linear-gradient(135deg, #d8b2a4, #8a584d); }
.treatment-card__image--natural-full { background: linear-gradient(135deg, #b77e6f, #593730); }
.treatment-card__image--glamour-alt { background: linear-gradient(135deg, #bd8171, #654038); }
.treatment-card__image--glamour-full { background: linear-gradient(135deg, #925447, #32201d); }
.treatment-card__image--dramatic-alt { background: linear-gradient(135deg, #5e3832, #191211); }
.treatment-card__image--dramatic-full { background: linear-gradient(135deg, #422824, #090706); }
.brow-gallery--shape { background: linear-gradient(135deg, #d6b7a7, #866052); }
.brow-gallery--shape-soft { background: linear-gradient(135deg, #e2cabd, #9b7162); }
.brow-gallery--shape-defined { background: linear-gradient(135deg, #b98e7b, #65443a); }
.brow-gallery--tint { background: linear-gradient(135deg, #c4a08e, #68483d); }
.brow-gallery--tint-soft { background: linear-gradient(135deg, #dcc0b1, #906758); }
.brow-gallery--tint-deep { background: linear-gradient(135deg, #916959, #3f2b26); }
.brow-gallery--complete { background: linear-gradient(135deg, #b88672, #5c3d34); }
.brow-gallery--complete-soft { background: linear-gradient(135deg, #d2ad9b, #7a5548); }
.brow-gallery--complete-bold { background: linear-gradient(135deg, #805647, #2d201d); }

.treatment-card__body {
  display: flex;
  flex-direction: column;
  padding: clamp(1.3rem, 2.5vw, 2rem);
}

.treatment-card__title {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-top: 0.75rem;
}

.treatment-card__title h2,
.treatment-card__title h3,
.treatment-card__title strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  font-weight: 400;
  line-height: 1.1;
}

.treatment-card__time {
  color: var(--klm-muted);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-top: 0.55rem;
  text-transform: uppercase;
}

.treatment-card__description {
  color: #493b35;
  font-size: 1rem;
  line-height: 1.7;
  margin: 1.3rem 0 1.5rem;
}

.treatment-card__maintenance {
  border-top: 1px solid rgba(36, 27, 23, 0.12);
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: 1fr 1fr;
  margin-top: auto;
  padding-top: 1rem;
}

.treatment-card__maintenance div {
  display: flex;
  justify-content: space-between;
}

.treatment-card__maintenance span,
.treatment-card__maintenance p {
  color: #51423c;
  font-size: 0.875rem;
  line-height: 1.5;
}

.treatment-card__maintenance strong {
  color: var(--klm-espresso);
  font-size: 0.9375rem;
}

.treatment-card__maintenance p {
  grid-column: 1 / -1;
}

.treatments-section__booking {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: clamp(2rem, 4vw, 3rem);
}

.treatments-section__booking p {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.1rem;
}

.additional-services,
.service-price-list--brows {
  margin: clamp(1.5rem, 3vw, 2.5rem) auto 0;
  max-width: 1180px;
}

.additional-services > h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  font-weight: 400;
  margin-bottom: 1rem;
}

.service-price-list {
  border-top: 1px solid rgba(36, 27, 23, 0.18);
}

.service-price-list > div {
  align-items: center;
  border-bottom: 1px solid rgba(36, 27, 23, 0.14);
  display: flex;
  gap: 1.5rem;
  justify-content: space-between;
  padding: 1rem 0;
}

.service-price-list > div > span {
  color: var(--klm-espresso);
  display: grid;
  font-size: 1rem;
  line-height: 1.5;
}

.service-price-list small {
  color: var(--klm-rose);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.service-price-list strong {
  color: var(--klm-espresso);
  flex: 0 0 auto;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 400;
  text-align: right;
}

.service-price-list__offer {
  background: rgba(145, 72, 59, 0.07);
  padding-inline: 1rem !important;
}

.service-price-list__offer em {
  color: var(--klm-muted);
  font-size: 0.875rem;
  font-style: normal;
  margin-top: 0.2rem;
}

.service-price-list__offer del {
  color: var(--klm-muted);
  font-size: 0.9375rem;
  margin-right: 0.35rem;
}

.service-price-list a {
  color: var(--klm-espresso);
  text-underline-offset: 0.2rem;
}

.brow-treatment-list {
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
}

.treatment-details-link {
  color: var(--klm-espresso);
  font-size: 0.9375rem;
  font-weight: 700;
  margin-top: auto;
  text-decoration-color: var(--klm-rose);
  text-underline-offset: 0.25rem;
}

/* Site footer */
.gallery-page { background: #fffaf4; min-height: calc(100svh - var(--klm-header-height)); padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 4vw, 3rem); }
.gallery-page__heading { margin: 0 auto clamp(2rem, 4vw, 3rem); max-width: 48rem; text-align: center; }
.gallery-page__heading h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 5.25rem); font-weight: 400; letter-spacing: -0.045em; line-height: 1; margin-top: 0.9rem; }
.gallery-page__heading > p:last-child { color: var(--klm-muted); font-size: 1rem; line-height: 1.65; margin-top: 1rem; }
.instagram-gallery { display: grid; gap: clamp(0.65rem, 1.5vw, 1.1rem); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-inline: auto; max-width: 1180px; }
.instagram-post { aspect-ratio: 1; background: var(--klm-ivory); color: #fff; display: block; overflow: hidden; position: relative; }
.instagram-post img { filter: blur(20px); height: 100%; image-rendering: pixelated; object-fit: cover; opacity: 0.72; transform: scale(1.08); transition: filter 650ms ease, opacity 500ms ease, transform 650ms ease; width: 100%; }
.instagram-post img.is-resolved { filter: blur(0); image-rendering: auto; opacity: 1; transform: scale(1); }
.instagram-post::before { animation: instagram-shimmer 1.35s infinite; background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); content: ""; inset: 0; position: absolute; transform: translateX(-100%); transition: opacity 250ms ease; z-index: 1; }
.instagram-post.is-image-ready::before { animation: none; opacity: 0; pointer-events: none; }
.instagram-post::after { background: linear-gradient(transparent 35%, rgba(24, 17, 15, 0.9)); content: ""; inset: 0; opacity: 0; position: absolute; transition: opacity 220ms ease; z-index: 1; }
.instagram-post__caption { bottom: 1rem; font-size: 0.9375rem; left: 1rem; line-height: 1.5; opacity: 0; position: absolute; right: 1rem; transform: translateY(0.5rem); transition: opacity 220ms ease, transform 220ms ease; z-index: 2; }
.instagram-post__stats { align-items: center; background: rgba(0, 0, 0, 0.68); display: flex; gap: 0.8rem; opacity: 0; padding: 0.5rem 0.65rem; position: absolute; right: 0.75rem; top: 0.75rem; transform: translateY(-0.35rem); transition: opacity 220ms ease, transform 220ms ease; z-index: 3; }
.instagram-post__stats em { align-items: center; color: #fff; display: flex; font-size: 0.875rem; font-style: normal; font-weight: 700; gap: 0.3rem; }
.instagram-post__stats svg { fill: none; height: 1rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1rem; }
.instagram-post:hover img.is-resolved { transform: scale(1.035); }
.instagram-post:hover::after, .instagram-post:hover > .instagram-post__caption, .instagram-post:hover > .instagram-post__stats, .instagram-post:focus-visible::after, .instagram-post:focus-visible > .instagram-post__caption, .instagram-post:focus-visible > .instagram-post__stats { opacity: 1; transform: translateY(0); }
.instagram-post:focus-visible { outline: 3px solid var(--klm-rose); outline-offset: 3px; }
.instagram-gallery.is-loaded .instagram-post { animation: instagram-post-in 420ms ease both; }
.instagram-gallery.is-loaded .instagram-post:nth-child(3n + 2) { animation-delay: 70ms; }
.instagram-gallery.is-loaded .instagram-post:nth-child(3n + 3) { animation-delay: 140ms; }
.instagram-skeleton { aspect-ratio: 1; background: #eee5dc; overflow: hidden; position: relative; }
.instagram-skeleton::after { animation: instagram-shimmer 1.35s infinite; background: linear-gradient(90deg, transparent, rgba(255,255,255,.62), transparent); content: ""; inset: 0; position: absolute; transform: translateX(-100%); }
.instagram-skeleton span, .instagram-skeleton i, .instagram-skeleton b { background: rgba(145,72,59,.11); bottom: 1rem; height: .7rem; left: 1rem; position: absolute; right: 1rem; }
.instagram-skeleton i { bottom: 2.2rem; right: 25%; }
.instagram-skeleton b { bottom: 3.4rem; right: 48%; }
.instagram-fallback-card { align-items:center; aspect-ratio:1; background:linear-gradient(135deg,#ead6cb,#9b6a5c); color:#fff; display:flex; flex-direction:column; justify-content:center; overflow:hidden; position:relative; }
.instagram-fallback-card::after { animation:instagram-shimmer 2s infinite; background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.22) 45%,transparent 65%); content:""; inset:0; position:absolute; transform:translateX(-100%); }
.instagram-fallback-card span { border:1px solid rgba(255,255,255,.72); border-radius:50%; display:grid; font-family:Georgia,serif; font-size:2rem; height:4rem; place-items:center; width:4rem; }
.instagram-fallback-card small { font-size:.875rem; font-weight:700; letter-spacing:.12em; margin-top:.8rem; text-transform:uppercase; }
.instagram-gallery__batch-loading { display: contents; }
.instagram-gallery__controls { display: flex; justify-content: center; margin: 1.5rem auto 0; max-width: 1180px; }
.instagram-load-more { background: transparent; border: 1px solid var(--klm-rose); color: var(--klm-espresso); cursor: pointer; font-size: 0.9375rem; font-weight: 700; min-width: 12rem; padding: 0.8rem 1.1rem; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
.instagram-load-more span { color: var(--klm-muted); display: block; font-size: 0.875rem; font-weight: 400; margin-top: 0.15rem; }
.instagram-load-more:hover { background: var(--klm-rose); color: #fff; transform: translateY(-2px); }
.instagram-load-more:hover span { color: #fff; }
.instagram-load-more:focus-visible { outline: 3px solid var(--klm-rose); outline-offset: 3px; }
.instagram-gallery__complete { color: var(--klm-muted); font-size: 0.9375rem; }
@keyframes instagram-shimmer { to { transform: translateX(100%); } }
@keyframes instagram-post-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .instagram-skeleton::after, .instagram-gallery.is-loaded .instagram-post { animation: none; } }
.instagram-gallery__notice { border: 1px solid rgba(36, 27, 23, 0.16); margin: 0 auto; max-width: 50rem; padding: 2rem; text-align: center; }
.instagram-gallery__notice p { color: var(--klm-muted); font-size: 1rem; line-height: 1.65; }
.instagram-gallery__notice a { color: var(--klm-espresso); display: inline-block; font-weight: 700; margin-top: 0.75rem; text-underline-offset: 0.25rem; }
.gallery-page__follow { display: flex; justify-content: center; margin-top: clamp(2rem, 4vw, 3rem); }

.policy-page { background: #fffaf4; padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 4vw, 3rem); }
.policy-page__heading { margin: 0 auto; max-width: 50rem; text-align: center; }
.policy-page__heading h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 6vw, 5.25rem); font-weight: 400; letter-spacing: -0.045em; line-height: 1; margin-top: 0.9rem; }
.policy-page__heading > p:last-child { color: var(--klm-muted); font-size: 1rem; line-height: 1.7; margin-top: 1rem; }
.policy-page__contents { border-bottom: 1px solid rgba(36, 27, 23, 0.18); border-top: 1px solid rgba(36, 27, 23, 0.18); display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; justify-content: center; margin: clamp(2rem, 4vw, 3rem) auto; max-width: 1180px; padding: 1rem 0; }
.policy-page__contents a {
  color: var(--klm-espresso);
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 0.55rem 0.75rem;
  position: relative;
  text-decoration: none;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.policy-page__contents a::after {
  content: none;
}

.policy-page__contents a:hover {
  background: rgba(145, 72, 59, 0.08);
  color: var(--klm-rose);
}

.policy-page__contents a:focus-visible {
  background: rgba(145, 72, 59, 0.08);
  color: var(--klm-rose);
  outline: 2px solid var(--klm-rose);
  outline-offset: 2px;
}
@media (min-width: 900px) {
  .policy-page__contents { flex-wrap: nowrap; gap: .35rem; max-width: 1380px; }
  .policy-page__contents a { flex: 1 1 auto; font-size: clamp(.78rem, .9vw, .9375rem); padding-inline: .45rem; text-align: center; white-space: nowrap; }
}
@media (max-width: 899px) {
  .policy-page__contents { border: 0; display: grid; gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; }
  .policy-page__contents a { align-items: center; background: rgba(145, 72, 59, .07); border: 1px solid rgba(36, 27, 23, .14); display: flex; font-size: .875rem; justify-content: center; line-height: 1.25; min-height: 3.25rem; padding: .7rem .55rem; text-align: center; }
  .policy-page__contents a:hover,
  .policy-page__contents a:focus-visible { background: rgba(145, 72, 59, .14); }
}
.policy-page__body { margin-inline: auto; max-width: 980px; }
.policy-section { border-bottom: 1px solid rgba(36, 27, 23, 0.16); display: grid; gap: clamp(1rem, 3vw, 2.5rem); grid-template-columns: 3rem 1fr; padding: clamp(2rem, 4vw, 3rem) 0; scroll-margin-top: calc(var(--klm-header-height) + 1rem); }
.policy-section__number { color: var(--klm-rose); font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; padding-top: 0.25rem; }
.policy-section h2 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 400; line-height: 1.15; margin: 0.5rem 0 1.25rem; }
.policy-section p { color: #493b35; font-size: 1rem; line-height: 1.75; margin-top: 0.85rem; }
.policy-section p strong { color: var(--klm-espresso); }
.policy-callout { background: rgba(145, 72, 59, 0.08); border-left: 2px solid var(--klm-rose); margin: 1.25rem 0; padding: 1rem 1.2rem; }
.policy-callout strong { color: var(--klm-espresso); font-family: Georgia, "Times New Roman", serif; font-size: 1.1rem; font-weight: 400; }
.policy-callout p { margin-top: 0.35rem; }
.policy-contact { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.policy-contact a { border: 1px solid var(--klm-rose); color: var(--klm-espresso); font-size: 0.9375rem; font-weight: 700; padding: 0.7rem 1rem; text-decoration: none; transition: background-color 160ms ease, color 160ms ease; }
.policy-contact a:hover { background: var(--klm-rose); color: #fff; }

.contact-page {
  background: #fffaf4;
  min-height: calc(100svh - var(--klm-header-height));
  padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 4vw, 3rem);
}

.contact-page__heading {
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  max-width: 48rem;
  text-align: center;
}

.contact-page__heading h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 6vw, 5.25rem);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1;
  margin-top: 0.9rem;
}

.contact-page__heading > p:last-child {
  color: var(--klm-muted);
  font-size: 1rem;
  line-height: 1.65;
  margin-top: 1rem;
}

.contact-page__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-inline: auto;
  max-width: 1180px;
}

.contact-card,
.location-card {
  background: var(--klm-ivory);
  border: 1px solid rgba(36, 27, 23, 0.14);
  padding: clamp(1.5rem, 3vw, 2.25rem);
}

.contact-card h2,
.location-card h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 400;
  margin: 0.55rem 0 1.25rem;
}

.contact-links,
.contact-socials { display: grid; gap: 0.6rem; }
.contact-links a,
.contact-socials a { align-items: center; border: 1px solid rgba(36, 27, 23, 0.14); color: var(--klm-espresso); display: grid; gap: 0.8rem; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 4.25rem; padding: 0.7rem 0.8rem; text-decoration: none; transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease; }
.contact-links a:hover,
.contact-socials a:hover { background: #fffaf4; border-color: rgba(145, 72, 59, 0.55); transform: translateX(0.25rem); }
.contact-links a:focus-visible,
.contact-socials a:focus-visible { background: #fffaf4; border-color: var(--klm-rose); outline: 2px solid var(--klm-rose); outline-offset: 2px; }
.contact-links a > span:nth-child(2),
.contact-socials a > span:nth-child(2) { display: grid; font-size: 0.9375rem; min-width: 0; overflow-wrap: anywhere; }
.contact-links small,
.contact-socials small { color: var(--klm-rose); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.contact-links i,
.contact-socials i { font-size: 1rem; font-style: normal; transition: transform 180ms ease; }
.contact-links a:hover i,
.contact-socials a:hover i { transform: translate(0.15rem, -0.1rem); }
.contact-link__icon { align-items: center; background: rgba(145, 72, 59, 0.09); border-radius: 50%; display: flex; height: 2.5rem; justify-content: center; transition: background-color 180ms ease, color 180ms ease; width: 2.5rem; }
.contact-link__icon svg { fill: none; height: 1.2rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; width: 1.2rem; }
.contact-icon-fill { fill: currentColor; stroke: none; }
.contact-links a:hover .contact-link__icon,
.contact-socials a:hover .contact-link__icon { background: var(--klm-rose); color: #fff; }

.contact-socials {
  border-top: 1px solid rgba(36, 27, 23, 0.14);
  margin-top: 1.5rem;
  padding-top: 1.25rem;
}
.opening-hours { margin: 0; }
.opening-hours div { border-bottom: 1px solid rgba(36, 27, 23, 0.12); display: flex; font-size: 1rem; justify-content: space-between; padding: 0.55rem 0; }
.opening-hours div:last-child { border-bottom: 0; }
.opening-hours dd { color: var(--klm-muted); margin: 0; }
.location-card { align-items: stretch; display: grid; gap: 2rem; grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
.location-card p { color: var(--klm-muted); font-size: 1rem; line-height: 1.65; margin-bottom: 1.5rem; }
.location-card__map { align-items: stretch; background: #eadfd5; color: #fff; display: flex; flex-direction: column; justify-content: center; min-height: 20rem; overflow: hidden; padding: 0; position:relative; text-align: center; }
.location-card__map span { font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 5vw, 3.5rem); }
.location-card__map small { font-size: 0.875rem; margin-top: 0.5rem; }
.location-card__map iframe { border:0; height:100%; min-height:20rem; opacity:1; transition:opacity 450ms ease; width:100%; }
.location-card__map.is-map-loading iframe { opacity:0; }
.map-loading-placeholder { background:linear-gradient(135deg,#eee4da,#dfcdc0); inset:0; overflow:hidden; position:absolute; z-index:1; }
.map-loading-placeholder::after { animation:instagram-shimmer 1.35s infinite; background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent); content:""; inset:0; position:absolute; transform:translateX(-100%); }
.map-loading-placeholder span,.map-loading-placeholder i,.map-loading-placeholder b { background:rgba(145,72,59,.12); border-radius:999px; height:.75rem; left:10%; position:absolute; right:35%; top:18%; }
.map-loading-placeholder i { left:18%; right:18%; top:48%; }
.map-loading-placeholder b { left:28%; right:28%; top:56%; }
.location-card__map:not(.is-map-loading) .map-loading-placeholder { opacity:0; pointer-events:none; transition:opacity 300ms ease; }

.site-footer {
  background: var(--klm-espresso);
  color: #fffaf4;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1rem, 4vw, 3rem) 1.25rem;
}

.site-footer__inner {
  display: grid;
  gap: clamp(2rem, 4vw, 4rem);
  grid-template-columns: minmax(15rem, 1.7fr) repeat(3, minmax(9rem, 1fr));
  margin-inline: auto;
  max-width: 1180px;
}

.footer-brand {
  align-items: center;
  color: #fffaf4;
  display: inline-flex;
  gap: 0.75rem;
  text-decoration: none;
}

.footer-brand__mark {
  align-items: center;
  border: 1px solid rgba(255, 250, 244, 0.75);
  border-radius: 50%;
  display: flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.3rem;
  height: 2.65rem;
  justify-content: center;
  width: 2.65rem;
}

.footer-brand > span:last-child {
  display: grid;
}

.footer-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
  font-weight: 400;
}

.footer-brand small {
  color: #e7b8a9;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.site-footer__brand > p,
.site-footer__column p {
  color: #e8ddd7;
  font-size: 0.9375rem;
  line-height: 1.65;
}

.site-footer__brand > p {
  margin-top: 1rem;
  max-width: 19rem;
}

.site-footer__column {
  align-content: start;
  display: grid;
  gap: 0.65rem;
}

.site-footer__column h2 {
  color: #e7b8a9;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  margin-bottom: 0.25rem;
  text-transform: uppercase;
}

.site-footer__column a,
.site-footer__bottom a {
  color: #fffaf4;
  font-size: 0.9375rem;
  text-decoration-color: transparent;
  text-underline-offset: 0.25rem;
  transition: color 160ms ease, text-decoration-color 160ms ease;
}

.site-footer__column a:hover,
.site-footer__column a:focus-visible,
.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible {
  color: #f0c8ba;
  text-decoration-color: currentColor;
}

.site-footer__booking {
  border: 1px solid rgba(255, 250, 244, 0.65);
  justify-self: start;
  margin: 0.2rem 0;
  padding: 0.65rem 1rem;
  text-decoration: none;
}

.site-footer__bottom {
  border-top: 1px solid rgba(255, 250, 244, 0.2);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin: clamp(2.5rem, 5vw, 4rem) auto 0;
  max-width: 1180px;
  padding-top: 1.25rem;
}

.site-footer__bottom p,
.site-footer__bottom a {
  color: #d7c9c2;
  font-size: 0.875rem;
}

@media (max-width: 760px) {
  .home-services__grid,.google-reviews,.home-contact { grid-template-columns:1fr; }.home-gallery-preview { align-items:flex-start; flex-direction:column; }.home-contact__details { grid-template-columns:1fr; }
  .consultation-note {
    align-items: start;
    grid-template-columns: 1fr;
  }

  .consultation-note p {
    justify-self: start;
  }

  .treatment-list {
    grid-template-columns: 1fr;
  }

  .treatment-card {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }

  .treatment-gallery {
    aspect-ratio: 16 / 9;
    min-height: 0;
  }

  .consultation-card__visual {
    min-height: 15rem;
  }

  .treatment-offers {
    grid-template-columns: 1fr;
  }

  .treatment-gallery__slide figcaption {
    padding-inline: 3.7rem;
  }

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

  .site-footer__brand {
    grid-column: 1 / -1;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-page__grid,
  .location-card {
    grid-template-columns: 1fr;
  }

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

@media (max-width: 480px) {
  .site-footer__inner {
    grid-template-columns: 1fr;
  }

  .site-footer__brand {
    grid-column: auto;
  }

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


  .instagram-gallery { grid-template-columns: 1fr; }
}

/* Homepage composition */
.full-height-section { min-height: calc(100svh - var(--klm-header-height)); }
.home-hero { display: flex; min-height: calc(100svh - var(--klm-header-height)); padding-right: 0; position: relative; }
.home-hero::after { background: linear-gradient(90deg, rgba(12,9,8,.88) 0%, rgba(12,9,8,.72) 50%, rgba(12,9,8,.5) 100%); content: ""; inset: 0; pointer-events: none; position: absolute; z-index: 1; }
.home-hero .hero-section__content { align-content: center; max-width: none; padding-left: clamp(1rem, 6vw, 6rem); padding-right: clamp(1rem, 5vw, 5rem); position: relative; z-index: 2; }
.home-hero .hero-section__content { margin-inline: 0; width: 100%; }
.home-hero h1 { max-width: 14ch; }
.home-hero h1 { color: #fffaf4; }
.home-hero .section-label { color: #f0c5b7; }
.home-hero .hero-section__intro { color: #eee3dc; max-width: 44rem; }
.home-hero .hero-section__work-link { color: #fffaf4; }
.home-hero .hero-section__details { color: #eaded7; font-size: .875rem; margin-top: clamp(2rem,4vh,3rem); }
.home-hero .hero-button--primary { background: #fffaf4; border-color: #fffaf4; color: var(--klm-espresso); }
.home-hero .hero-button--primary:hover { background: #f0c5b7; border-color: #f0c5b7; }
.home-hero .hero-button--secondary { border-color: rgba(255,250,244,.7); color: #fffaf4; }
.home-hero .hero-button--secondary:hover { background: rgba(255,250,244,.12); border-color: #fffaf4; }
.home-hero-slideshow { inset: 0; min-height: 100%; opacity: .72; overflow: hidden; position: absolute; }
.home-hero-slideshow a { inset: 0; opacity: 0; position: absolute; transform: scale(1.035); transition: opacity 900ms ease, transform 5s ease; }
.home-hero-slideshow a.is-active { opacity: 1; transform: scale(1); z-index: 1; }
.home-hero-slideshow img { height: 100%; object-fit: cover; width: 100%; }
.home-hero-slideshow--placeholder { align-items:center; background:linear-gradient(135deg,#d7b3a4,#83584c); color:#fff; display:flex; font-family:Georgia,serif; font-size:2rem; justify-content:center; }
.home-about { align-items:center; background:var(--klm-espresso); color:#fffaf4; display:grid; gap:clamp(3rem,8vw,8rem); grid-template-columns:1fr 1.25fr; padding:clamp(4rem,8vw,7rem) max(clamp(1rem,4vw,3rem),calc((100% - 1180px)/2)); }
.home-about__copy h2 { font-family:Georgia,serif; font-size:clamp(2.5rem,6vw,4.8rem); font-weight:400; letter-spacing:-.04em; line-height:1; margin-top:.7rem; }.home-about__copy > p:nth-of-type(2) { color:#e4d7d0; font-size:1.05rem; line-height:1.75; margin:1.2rem 0; }.home-about__copy a { color:#fff; font-weight:700; text-underline-offset:.3rem; }.home-about .section-label { color:#e7b8a9; }
.home-stats { display:grid; grid-template-columns:1fr 1fr; }.home-stats > div { border:1px solid rgba(255,250,244,.2); min-height:13rem; padding:clamp(1.25rem,3vw,2rem); }.home-stats strong { color:#fff; font-family:Georgia,serif; font-size:clamp(2.8rem,6vw,5rem); font-weight:400; }.home-stats p { color:#e4d7d0; font-size:.9375rem; margin-top:.7rem; }
.certificate-slideshow { --certificate-gap:1.1rem; background:linear-gradient(135deg,#eadfd6,#d9c5b8); border:1px solid rgba(255,250,244,.16); box-shadow:inset 0 0 0 1px rgba(36,27,23,.1); height:clamp(22rem,42vw,34rem); isolation:isolate; overflow:hidden; position:relative; }
.certificate-slideshow::before,.certificate-slideshow::after { content:""; inset-block:0; pointer-events:none; position:absolute; width:clamp(.75rem,2vw,1.5rem); z-index:2; }
.certificate-slideshow::before { background:linear-gradient(90deg,#dfcec3,transparent); left:0; }
.certificate-slideshow::after { background:linear-gradient(-90deg,#dfcec3,transparent); right:0; }
.certificate-slideshow__track { animation:certificate-reel var(--certificate-duration) linear infinite; display:flex; gap:var(--certificate-gap); height:100%; padding-block:clamp(1.25rem,2.5vw,2rem); width:max-content; will-change:transform; }
.certificate-slideshow:hover .certificate-slideshow__track { animation-play-state:paused; }
.certificate-slideshow__group { display:flex; flex:none; gap:var(--certificate-gap); height:100%; }
.certificate-slide { flex:none; height:100%; margin:0; position:relative; }
.certificate-slide__frame { align-items:center; aspect-ratio:var(--certificate-ratio); display:flex; height:100%; justify-content:center; }
.certificate-slide img { border-radius:2px; box-shadow:0 1rem 2.5rem rgba(36,27,23,.2); display:block; height:100%; object-fit:contain; transition:filter .3s ease,transform .3s ease; width:100%; }
.certificate-slide:hover img { filter:brightness(1.025); transform:translateY(-3px); }
.certificate-slideshow--single .certificate-slideshow__track { animation:none; justify-content:center; min-width:100%; }
@keyframes certificate-reel { to { transform:translateX(calc(-50% - .55rem)); } }
@media (prefers-reduced-motion:reduce) { .certificate-slideshow { overflow-x:auto; }.certificate-slideshow__track { animation:none; }.certificate-slideshow__group[aria-hidden="true"] { display:none; } }
.certificate-slideshow--empty { align-items:center; color:var(--klm-espresso); display:flex; flex-direction:column; justify-content:center; text-align:center; }
.certificate-slideshow--empty span { font-family:Georgia,serif; font-size:5rem; opacity:.2; }.certificate-slideshow--empty p { color:var(--klm-muted); margin-top:.5rem; }
.home-services { align-content:center; background:#fffaf4; display:grid; position:relative; }
.home-services::before { color:rgba(145,72,59,.07); content:"03"; font-family:Georgia,serif; font-size:clamp(8rem,18vw,18rem); line-height:.7; pointer-events:none; position:absolute; right:3vw; top:7vh; }
.home-services > header { position:relative; z-index:1; }.home-services > header > p:last-child { color:var(--klm-muted); font-size:1rem; line-height:1.65; margin-top:.8rem; max-width:34rem; }
.home-services__grid { gap:clamp(.75rem,1.5vw,1.2rem); position:relative; z-index:1; }
.home-services__grid > a { background:#f8f3eb; border:1px solid rgba(36,27,23,.14); display:flex; flex-direction:column; min-height:22rem; overflow:hidden; position:relative; }
.home-services__grid > a::before { background:var(--klm-rose); content:""; height:3px; left:0; position:absolute; top:0; transform:scaleX(0); transform-origin:left; transition:transform .3s ease; width:100%; }
.home-services__grid > a:hover { background:#fff; box-shadow:0 22px 50px rgba(65,40,31,.1); transform:translateY(-7px); }
.home-services__grid > a:hover::before { transform:scaleX(1); }
.home-services__grid > a > span { border:1px solid rgba(145,72,59,.4); border-radius:50%; display:grid; height:2.4rem; place-items:center; width:2.4rem; }
.home-services__grid h3 { font-size:clamp(1.7rem,3vw,2.25rem); margin-top:auto; }
.home-services__grid i { color:var(--klm-rose); transition:letter-spacing .2s ease; }.home-services__grid > a:hover i { letter-spacing:.025em; }
.home-gallery-section { align-content:center; background:#ead7cc; display:grid; overflow:hidden; padding:clamp(3.5rem,7vw,6rem) max(clamp(1rem,4vw,3rem),calc((100% - 1180px)/2)); position:relative; }.home-gallery-section::before { color:rgba(36,27,23,.055); content:"04"; font-family:Georgia,serif; font-size:clamp(9rem,20vw,20rem); line-height:.7; pointer-events:none; position:absolute; right:-1vw; top:6vh; }.home-gallery-section > header { align-items:end; display:flex; justify-content:space-between; margin-bottom:2rem; position:relative; z-index:1; }.home-gallery-section h2 { font-family:Georgia,serif; font-size:clamp(2.2rem,5vw,4rem); font-weight:400; margin-top:.5rem; }.home-gallery-section header > a { color:var(--klm-espresso); font-weight:700; position:relative; text-decoration:none; }.home-gallery-section header > a::after { background:currentColor; bottom:-.3rem; content:""; height:1px; left:0; position:absolute; transform:scaleX(.35); transform-origin:left; transition:transform .25s ease; width:100%; }.home-gallery-section header > a:hover::after { transform:scaleX(1); }
.home-instagram-preview { display:grid; gap:clamp(.65rem,1.2vw,1rem); grid-template-columns:repeat(12,1fr); grid-template-rows:repeat(2,minmax(12rem,28vh)); min-height:min(62vh,42rem); position:relative; z-index:1; }.home-instagram-preview a { overflow:hidden; position:relative; }.home-instagram-preview a:nth-child(1) { grid-column:1/7; grid-row:1/3; }.home-instagram-preview a:nth-child(2) { grid-column:7/10; grid-row:1; }.home-instagram-preview a:nth-child(3) { grid-column:10/13; grid-row:1; }.home-instagram-preview a:nth-child(4) { grid-column:7/13; grid-row:2; }.home-instagram-preview a::after { align-items:flex-end; background:linear-gradient(transparent 55%,rgba(12,9,8,.65)); color:#fff; content:"View post ↗"; display:flex; font-size:.875rem; font-weight:700; inset:0; opacity:0; padding:1rem; position:absolute; transition:opacity .25s ease; }.home-instagram-preview img { height:100%; object-fit:cover; transition:transform .5s ease; width:100%; }.home-instagram-preview a:hover img { transform:scale(1.045); }.home-instagram-preview a:hover::after,.home-instagram-preview a:focus-visible::after { opacity:1; }.home-instagram-preview a:focus-visible { outline:3px solid var(--klm-rose); outline-offset:3px; }
.home-reviews { align-content:center; display:grid; }.home-contact { align-items:center; }
@media (max-width: 900px), (max-height: 680px) { .home-hero::after { background:rgba(12,9,8,.76); display:block; }.home-hero-slideshow { display:block; }.home-hero-slideshow a { inset:0; }.home-hero-slideshow img { object-position:center; } }
@media (max-width:760px) { .home-about { grid-template-columns:1fr; }.home-stats > div { min-height:10rem; }.certificate-slideshow { height:25rem; }.certificate-slideshow::before,.certificate-slideshow::after { width:.75rem; }.home-instagram-preview { grid-template-columns:1fr 1fr; grid-template-rows:none; min-height:0; }.home-instagram-preview a,.home-instagram-preview a:nth-child(n) { aspect-ratio:1; grid-column:auto; grid-row:auto; }.home-gallery-section > header { align-items:flex-start; flex-direction:column; gap:1rem; } }
@media (max-width:420px) { .home-stats { grid-template-columns:1fr; }.home-instagram-preview { gap:.65rem; } }

/* Homepage section navigation and wider composition */
.home-hero::before, .home-about::before, .home-services::before, .home-gallery-section::before, .home-reviews::before, .home-contact::before { font-family:Georgia,"Times New Roman",serif; font-size:clamp(4rem,8vw,7rem); line-height:1; opacity:.13; pointer-events:none; position:absolute; right:clamp(1rem,3vw,3rem); top:clamp(1rem,3vw,2.5rem); z-index:3; }
.home-hero::before { color:#fff; content:"01"; }.home-about { position:relative; }.home-about::before { color:#fff; content:"02"; }.home-reviews { position:relative; }.home-reviews::before { color:var(--klm-rose); content:"05"; }.home-contact { position:relative; }.home-contact::before { color:var(--klm-rose); content:"06"; }
.home-services::before { color:var(--klm-rose); content:"03"; }
.home-gallery-section::before { color:var(--klm-espresso); content:"04"; }
.home-services > header,.home-services__grid,.google-rating,.google-reviews,.google-reviews__footer,.reviews-notice { max-width:1380px; }
.home-about,.home-gallery-section,.home-contact { padding-left:max(clamp(1rem,4vw,3rem),calc((100% - 1380px)/2)); padding-right:max(clamp(1rem,4vw,3rem),calc((100% - 1380px)/2)); }
.home-section-nav { display:none; }
.google-review__author strong { color:var(--klm-espresso); font-weight:700; }
.home-contact__intro address { color:var(--klm-muted); font-size:1rem; line-height:1.65; margin:1rem 0 1.5rem; }
.site-footer address { color:inherit; font-size:inherit; line-height:1.65; }
.location-card address { color:var(--klm-muted); font-size:1rem; line-height:1.65; margin-bottom:1.5rem; }
.google-reviews { grid-template-columns:repeat(6,minmax(0,1fr)); }
.google-review { grid-column:span 2; }
.google-review:nth-child(4):nth-last-child(2) { grid-column:2 / span 2; }
.google-review:nth-child(5):last-child { grid-column:4 / span 2; }
@media (max-width:760px) {
  .google-reviews { grid-template-columns:1fr; }
  .google-review,
  .google-review:nth-child(4):nth-last-child(2),
  .google-review:nth-child(5):last-child { grid-column:auto; }
}
@media (min-width:1100px) and (min-height:700px) {
  .home-section-nav { align-items:flex-end; display:flex; flex-direction:column; gap:.45rem; position:fixed; right:1rem; top:50%; transform:translateY(-50%); z-index:20; }
  .home-section-nav a { align-items:center; background:rgba(255,250,244,.94); border:1px solid rgba(36,27,23,.16); border-radius:2rem; color:var(--klm-espresso); display:flex; height:2.35rem; justify-content:flex-end; overflow:hidden; text-decoration:none; transition:background-color .2s ease,border-color .2s ease,width .25s ease; width:2.35rem; }
  .home-section-nav a span { align-items:center; align-self:center; display:flex; flex:0 0 2.25rem; font-size:1rem; height:2.25rem; justify-content:center; min-width:2.25rem; order:2; width:2.25rem; }
  .home-section-nav svg { fill:none; height:1.05rem; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; width:1.05rem; }
  .home-section-nav a b { flex:1; font-size:.75rem; letter-spacing:.08em; opacity:0; padding-left:.85rem; text-align:left; text-transform:uppercase; transition:opacity .15s ease; white-space:nowrap; }
  .home-section-nav a.is-current { background:var(--klm-rose); border-color:var(--klm-rose); color:#fff; width:2.35rem; }
  .home-section-nav a:hover,.home-section-nav a:focus-visible { background:#fffaf4; border-color:var(--klm-rose); color:var(--klm-espresso); width:8.5rem; }
  .home-section-nav a.is-current:hover,.home-section-nav a.is-current:focus-visible { background:var(--klm-rose); color:#fff; width:8.5rem; }
  .home-section-nav a:hover b,.home-section-nav a:focus-visible b,.home-section-nav a.is-current:hover b,.home-section-nav a.is-current:focus-visible b { opacity:1; }
  .home-section-nav a.is-current span { background:transparent; color:inherit; }
  .home-section-nav a.is-current { box-shadow:0 5px 18px rgba(36,27,23,.16); }
  .home-section-nav a:focus-visible { outline:2px solid var(--klm-rose); outline-offset:2px; }
}
.home-contact__details > div { padding-left:4.25rem; position:relative; }
.home-contact__details > div::before { align-items:center; background:rgba(145,72,59,.1); border-radius:50%; color:var(--klm-rose); display:flex; font-size:1.1rem; height:2.35rem; justify-content:center; left:1.15rem; position:absolute; top:1.15rem; width:2.35rem; }
.home-contact__details > div:nth-child(1)::before { content:"✉"; }.home-contact__details > div:nth-child(2)::before { content:"☎"; }.home-contact__details > div:nth-child(3)::before { content:"◷"; }.home-contact__details > div:nth-child(4)::before { content:"↗"; }

/* Instagram unavailable states */
.instagram-unavailable { background:#fffaf4; border:1px solid rgba(36,27,23,.16); color:var(--klm-espresso); grid-column:1/-1; padding:1.25rem; position:relative; text-align:center; z-index:2; }
.instagram-unavailable strong { font-family:Georgia,"Times New Roman",serif; font-size:1.15rem; font-weight:400; }
.instagram-unavailable p { color:var(--klm-muted); font-size:.9375rem; line-height:1.5; margin-top:.3rem; }
.instagram-unavailable a { color:var(--klm-espresso); display:inline-block; font-size:.9375rem; font-weight:700; margin-top:.65rem; text-underline-offset:.25rem; }
.home-hero-slideshow--placeholder .instagram-unavailable { display:none; }
.instagram-placeholder-mark { border:1px solid rgba(255,255,255,.7); border-radius:50%; display:grid; height:5rem; place-items:center; width:5rem; }
.home-instagram-preview--placeholder { align-content:center; background:linear-gradient(135deg,#ead6cb,#b98272); grid-template-columns:1fr; grid-template-rows:auto; justify-items:center; padding:clamp(2rem,5vw,4rem); }
.home-instagram-preview--placeholder > .instagram-placeholder-mark { color:#fff; font-family:Georgia,serif; font-size:2rem; margin-top:1.5rem; }

@media (max-width: 820px) {
  .hero-section {
    min-height: calc(100svh - var(--klm-header-height));
  }

  .hero-section__content {
    align-content: center;
    display: grid;
    min-height: calc(100svh - var(--klm-header-height));
    padding-bottom: clamp(2rem, 5vh, 3.5rem);
    padding-top: clamp(2rem, 5vh, 3.5rem);
  }

  .hero-section__visual {
    display: none;
  }

  .hero-section__visual::before {
    height: min(72vw, 28rem);
    width: min(72vw, 28rem);
  }
}

@media (max-width: 480px) {
  .hero-section h1 {
    font-size: clamp(3.25rem, 17vw, 5rem);
  }

  .hero-section__content {
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }

  .hero-section__actions {
    gap: 0.45rem;
    width: 100%;
  }

  .hero-button {
    flex: 1 1 0;
    font-size: 0.54rem;
    gap: 0;
    justify-content: center;
    letter-spacing: 0.08em;
    padding: 0.72rem 0.45rem;
    text-align: center;
  }

  .hero-section__visual {
    min-height: 25rem;
  }

  .hero-section__frame {
    height: 82%;
    width: 86%;
  }
}

.site-header {
  background: rgba(255, 250, 244, 0.97);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(36, 27, 23, 0.1);
  left: 0;
  position: fixed;
  right: 0;
  top: var(--klm-admin-offset, 0px);
  width: 100%;
  z-index: 100;
}



.site-header__inner {
  align-items: center;
  box-sizing: border-box;
  display: grid !important;
  gap: 0;
  grid-template-areas: "brand navigation actions";
  grid-template-columns: 1fr auto 1fr;
  min-height: var(--klm-header-height);
  padding: 0 clamp(0.75rem, 1.5vw, 1.5rem);
  width: 100%;
}

.site-header.is-layout-constrained > .site-header__inner {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}

.site-brand {
  align-items: center;
  color: var(--klm-espresso);
  display: inline-flex;
  flex: 0 0 auto;
  gap: clamp(0.55rem, 1.2vw, 0.8rem);
  grid-area: brand;
  justify-self: start;
  text-decoration: none;
}

.site-brand__mark {
  align-items: center;
  border: 1px solid rgba(41, 36, 33, 0.55);
  border-radius: 50%;
  display: inline-flex;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 400;
  height: clamp(2.35rem, 4vw, 2.75rem);
  justify-content: center;
  line-height: 1;
  width: clamp(2.35rem, 4vw, 2.75rem);
}

.site-brand__words {
  display: flex;
  flex-direction: column;
  line-height: 1;
  text-transform: uppercase;
}

.site-brand__words strong {
  font-size: clamp(0.72rem, 1.2vw, 0.88rem);
  letter-spacing: 0.16em;
}

.site-brand__words small {
  color: var(--klm-rose);
  font-size: clamp(0.48rem, 0.85vw, 0.58rem);
  font-weight: 700;
  letter-spacing: 0.28em;
  margin-top: 0.34rem;
}

.site-navigation {
  font-size: clamp(0.67rem, 0.8vw, 0.76rem);
  font-weight: 600;
  grid-area: navigation;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.mobile-book-link {
  display: none;
}

.site-navigation .wp-block-navigation-item__content {
  padding-block: 0.6rem;
  position: relative;
}

.site-navigation .wp-block-navigation-item__content::after {
  background: var(--klm-rose);
  bottom: 0.2rem;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 180ms ease;
  width: 100%;
}

.site-navigation .wp-block-navigation-item__content:hover::after,
.site-navigation .wp-block-navigation-item__content:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.site-header__actions {
  flex: 0 0 auto;
  grid-area: actions;
  justify-self: end;
}

.book-button .wp-block-button__link {
  background: var(--klm-espresso);
  border: 1px solid var(--klm-espresso);
  border-radius: 0;
  color: #fff;
  font-size: clamp(0.62rem, 0.8vw, 0.72rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  padding: 0.85rem clamp(1rem, 2vw, 1.4rem);
  text-transform: uppercase;
  transition: background-color 180ms ease, border-color 180ms ease;
  white-space: nowrap;
}

.book-button .wp-block-button__link:hover,
.book-button .wp-block-button__link:focus-visible {
  background: var(--klm-beige-deep);
  border-color: var(--klm-beige-deep);
  color: #fff;
}

.book-button .wp-block-button__link:active {
  background: var(--klm-beige-pressed);
  border-color: var(--klm-beige-pressed);
  color: #fff;
}

@media (max-width: 1080px) {
  .site-header__inner {
    grid-template-areas: "navigation brand actions";
    grid-template-columns: auto 1fr auto;
    column-gap: 0.65rem;
  }

  .site-navigation {
    justify-self: start;
    margin: 0;
  }

  .site-brand {
    justify-self: start;
  }

  .site-header__actions {
    justify-self: end;
  }

  .site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }

  .site-navigation .wp-block-navigation__responsive-container-open {
    align-items: center;
    display: flex !important;
    height: 2.5rem;
    justify-content: center;
    position: relative;
    width: 2.5rem;
  }

  .site-navigation .wp-block-navigation__responsive-container-open {
    color: var(--klm-espresso);
  }

  .site-navigation .wp-block-navigation__responsive-container-open svg {
    display: none;
  }

  .site-navigation .wp-block-navigation__responsive-container-open::before {
    background: linear-gradient(
      to bottom,
      var(--klm-espresso) 0 2px,
      transparent 2px 8px,
      var(--klm-espresso) 8px 10px,
      transparent 10px 16px,
      var(--klm-espresso) 16px 18px
    );
    content: "";
    display: block;
    height: 18px;
    width: 25px;
  }

  .site-navigation .wp-block-navigation__responsive-container.is-menu-open {
    background: var(--klm-ivory);
    color: var(--klm-espresso);
    padding: 1.5rem clamp(1.25rem, 6vw, 3rem);
  }

  .site-navigation .wp-block-navigation__responsive-container-close {
    height: 2.5rem;
    left: clamp(0.75rem, 1.5vw, 1.5rem);
    right: auto;
    top: 1.35rem;
    width: 2.5rem;
  }

  .site-navigation .wp-block-navigation__responsive-container-close svg {
    height: 28px;
    stroke-width: 2.2;
    width: 28px;
  }

  .site-navigation .wp-block-navigation__responsive-container-content {
    align-items: flex-start;
    gap: 1.2rem;
    padding-top: 5rem;
  }

  .site-navigation .wp-block-navigation__container {
    align-items: flex-start;
    gap: 1.35rem;
  }

  .site-navigation .mobile-book-link {
    color: var(--klm-rose);
    display: flex;
  }

  .site-navigation .wp-block-navigation-item__content {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 8vw, 3rem);
    font-weight: 400;
    letter-spacing: -0.02em;
    text-transform: none;
  }
}

@media (max-width: 520px) {
  .site-header__inner {
    column-gap: 0.45rem;
    padding: 0 0.75rem;
  }

  .site-brand {
    gap: 0.45rem;
  }

  .site-brand__mark {
    height: 2.2rem;
    width: 2.2rem;
  }

  .site-brand__words strong {
    font-size: 0.65rem;
  }

  .site-brand__words small {
    font-size: 0.43rem;
    letter-spacing: 0.2em;
  }

  .book-button .wp-block-button__link {
    font-size: 0.56rem;
    letter-spacing: 0.1em;
    padding: 0.72rem 0.8rem;
  }

  .site-navigation .wp-block-navigation__responsive-container-open {
    height: 2.25rem;
    width: 2.25rem;
  }
}

@media (max-width: 360px) {
  .site-header__inner {
    padding: 0 0.6rem;
  }

  .site-brand__mark {
    height: 2rem;
    width: 2rem;
  }

  .site-brand__words {
    display: none;
  }

  .book-button .wp-block-button__link {
    padding-inline: 0.7rem;
  }
}

/* Custom responsive navigation */
.site-navigation__panel {
  align-items: center;
  display: flex;
  gap: clamp(1.4rem, 2.6vw, 2.5rem);
}

.site-navigation__panel a {
  color: var(--klm-espresso);
  padding: 0.65rem 0.15rem;
  position: relative;
  transition: color 180ms ease;
  text-decoration: none;
}

.site-navigation__panel a::before {
  display: none;
}

.site-navigation__panel a::after {
  background: currentColor;
  bottom: 0.25rem;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 220ms ease;
  width: 100%;
}

.site-navigation__panel a:hover,
.site-navigation__panel a:focus-visible {
  color: var(--klm-rose);
}

.site-navigation__panel a:hover::after,
.site-navigation__panel a:focus-visible::after,
.site-navigation__panel a.is-active::after {
  transform: scaleX(1);
  transform-origin: left;
}

.mobile-menu-toggle {
  display: none;
}

@media (max-width: 1080px) {
  .site-navigation {
    position: static;
  }

  .mobile-menu-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: 2.5rem;
    justify-content: center;
    padding: 0;
    width: 2.5rem;
  }

  .mobile-menu-toggle span {
    background: var(--klm-espresso);
    display: block;
    height: 2px;
    transition: opacity 180ms ease, transform 220ms ease;
    width: 25px;
  }

  .mobile-menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(7px) rotate(45deg);
  }

  .mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
  }

  .mobile-menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-navigation__panel {
    align-items: flex-start;
    background: var(--klm-navbar);
    border-bottom: 1px solid rgba(36, 27, 23, 0.11);
    border-top: 1px solid rgba(179, 95, 79, 0.16);
    box-shadow: 0 18px 35px rgba(71, 42, 31, 0.09);
    display: flex;
    flex-direction: column;
    gap: 0;
    left: 0;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0 clamp(1rem, 4vw, 2rem);
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 100%;
  transition: max-height 280ms ease, opacity 180ms ease, padding 280ms ease;
  }

  .mobile-menu-toggle[aria-expanded="true"] + .site-navigation__panel {
    max-height: 28rem;
    opacity: 1;
    padding-bottom: 0.65rem;
    padding-top: 0.65rem;
    pointer-events: auto;
  }

  .site-navigation__panel a {
    border-bottom: 1px solid rgba(41, 36, 33, 0.09);
    box-sizing: border-box;
    font-family: inherit;
    font-size: clamp(0.67rem, 0.8vw, 0.76rem);
    font-weight: 600;
    letter-spacing: 0.12em;
    padding: 0.65rem 0.8rem;
    text-transform: uppercase;
    transition: background-color 180ms ease, color 180ms ease;
    width: 100%;
  }

  .site-navigation__panel a:last-child {
    border-bottom: 0;
  }

  .site-navigation__panel a::after {
    display: none;
  }

  .site-navigation__panel a::before {
    display: none;
  }

  .site-navigation__panel a:hover,
  .site-navigation__panel a:focus-visible,
  .site-navigation__panel a.is-active {
    background: rgba(179, 95, 79, 0.08);
    color: var(--klm-espresso);
    outline: none;
  }

  .site-navigation__panel a.is-active {
    background: rgba(179, 95, 79, 0.13);
    box-shadow: none;
  }
}
/* Homepage contact and social icons */
.home-contact__details > div {
	position: relative;
	padding-left: 4.25rem;
}

/* Remove the old text-symbol icons */
.home-contact__details > div::before {
	content: none !important;
	display: none !important;
}

/* Email, phone and opening-hours icons */
.home-contact__icon {
	align-items: center;
	background: rgba(145, 72, 59, 0.1);
	border: 1px solid rgba(145, 72, 59, 0.2);
	border-radius: 50%;
	color: var(--klm-rose, #91483b);
	display: flex;
	height: 2.5rem;
	justify-content: center;
	left: 1.1rem;
	position: absolute;
	top: 1.1rem;
	width: 2.5rem;
}

.home-contact__icon svg {
	fill: none;
	height: 1.2rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 1.2rem;
}

/* Follow section */
.home-contact__details > .home-contact__follow {
	align-content: center;
	padding-left: 1.25rem;
}

.home-contact__socials {
	align-items: center;
	display: flex;
	gap: 0.65rem;
	margin-top: 0.4rem;
}

/* Instagram and Facebook buttons */
.home-contact__socials a {
	align-items: center;
	background: rgba(145, 72, 59, 0.08);
	border: 1px solid rgba(145, 72, 59, 0.25);
	border-radius: 50%;
	color: var(--klm-espresso, #241b17);
	display: inline-flex;
	height: 2.75rem;
	justify-content: center;
	transition:
		background-color 180ms ease,
		border-color 180ms ease,
		color 180ms ease,
		transform 180ms ease;
	width: 2.75rem;
}

.home-contact__socials svg {
	fill: none;
	height: 1.25rem;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 1.25rem;
}

/* Facebook icon needs a solid fill */
.home-contact__socials a:nth-child(2) svg {
	fill: currentColor;
	stroke: none;
}

.home-contact__socials a:hover {
	background: var(--klm-rose, #91483b);
	border-color: var(--klm-rose, #91483b);
	color: #ffffff;
	transform: translateY(-3px);
}

.home-contact__socials a:focus-visible {
	outline: 3px solid rgba(145, 72, 59, 0.35);
	outline-offset: 3px;
}