.ln-section {
  --ln-ink: #241a22;
  --ln-brown: #b8215f;
  --ln-muted: #6f5f69;
  --ln-line: #f0dfe6;
  color: var(--ln-ink);
}

.ln-section h1,
.ln-section h2,
.ln-section .ln-brand {
  color: var(--ln-ink);
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 700;
  letter-spacing: -.01em;
}

.ln-section h1 { margin-bottom: 12px; font-size: clamp(2.6rem, 5vw, 4.2rem); line-height: 1.08; }
.ln-section h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.15; }

.ln-eyebrow { margin-bottom: 10px; color: var(--ln-brown); font-size: .74rem; font-weight: 600; letter-spacing: .22em; }
.ln-lead { max-width: 400px; color: var(--ln-muted); font-size: 1.15rem; line-height: 1.45; }

.ln-section .ln-btn { margin: 0 10px 10px 0; text-transform: none; font-weight: 500; letter-spacing: 0; }
.ln-section .ln-btn:focus-visible { outline: 2px solid var(--ln-brown); outline-offset: 3px; }

/* Hero */
.ln-hero .section-bg { background-size: cover; }
.ln-hero-points { margin-top: 18px; }
.ln-hero-points .icon-box h5 { margin: 0; font-size: .8rem; font-weight: 400; line-height: 1.3; text-transform: none; letter-spacing: 0; }

/* Footer */
.ln-footer, .ln-footer p, .ln-footer a { color: #eadfe5; font-size: .85rem; }
.ln-footer p { margin-bottom: 4px; }
.ln-footer a:hover, .ln-footer a:focus-visible { color: #fff; text-decoration: underline; }
.ln-footer h4 { color: #fff; font-size: .98rem; font-weight: 600; }
.ln-footer .ln-brand { color: #fff; font-size: 1.6rem; margin-bottom: 0; }
.ln-footer .ln-eyebrow { color: #eadfe5; font-size: .62rem; }
.ln-footer-legal { margin-top: 10px; border-top: 1px solid rgba(255, 255, 255, .16); padding-top: 10px; }

/* Inner pages */
.ln-center { margin-inline: auto; }
.ln-page-head .ln-lead { max-width: 560px; margin-inline: auto; }
.ln-section .icon-box h5 { text-transform: none; letter-spacing: 0; }
.ln-section .icon-box a { color: inherit; }
.ln-flush { padding: 0; }
.ln-flush .col-inner { margin: 0; }
.ln-section .ln-map .row { max-width: none; }
.ln-legal-links { text-align: end; }

.ln-contact .icon-box { margin-bottom: 16px; }
.ln-contact .icon-box-text { font-size: .92rem; }
.ln-news .post-item .box-text { padding: 12px 2px 4px; }
.ln-news .post-title { font-size: 1.02rem; line-height: 1.35; }

/* Contact form */
.ln-contact .wpcf7 label { display: block; margin-bottom: 10px; color: var(--ln-ink); font-size: .9rem; font-weight: 500; }
.ln-contact .wpcf7 input:not([type=submit]), .ln-contact .wpcf7 textarea { width: 100%; margin-top: 4px; border: 1px solid var(--ln-line); border-radius: 8px; background: #fff; color: var(--ln-ink); box-shadow: none; }
.ln-contact .wpcf7 input:focus, .ln-contact .wpcf7 textarea:focus { border-color: var(--ln-brown); }
.ln-contact .wpcf7 input[type=submit] { margin: 0; padding: 0 28px; border-radius: 99px; background: var(--ln-brown); color: #fff; font-weight: 500; text-transform: none; letter-spacing: 0; }

/* Images always cover their box: no stretching, no gaps at the corners. */
.ln-section .box-image, .ln-section .image-cover { overflow: hidden; }
.ln-section .box-image img, .ln-section .image-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.ln-section .gallery .box-image, .ln-section .post-item .box-image { border-radius: 10px; }
.ln-section .post-item .box { overflow: hidden; }
.ln-slider .banner, .ln-slider .flickity-viewport { border-radius: 14px; overflow: hidden; }
.ln-slider .banner-bg img { width: 100%; height: 100%; object-fit: cover; }
.ln-section .flickity-page-dots .dot { background: var(--ln-brown); }

/* Luxe salon */
body, .nav > li > a, .button, input, textarea, select { font-family: "DM Sans", system-ui, sans-serif; }
.ln-top { font-size: .78rem; letter-spacing: 0; text-transform: none; }
.ln-top i { color: #f28fb3; }
.ln-section.ln-hero h1 { color: #fff; }
.ln-section.ln-hero h1 em { color: #f6a6c4; font-style: italic; font-weight: 600; }
.ln-hero .ln-eyebrow { color: #f3dfe7; }
.ln-hero .ln-lead { color: #f4edf0; }
.ln-hero .icon-box h5 { color: #fff; }
.ln-hero-points { margin-top: 10px; }
.ln-hero .ln-btn { background: linear-gradient(100deg, #b8215f, #d6336f); border: 0; }
.ln-lines { display: flex; align-items: center; justify-content: center; gap: 14px; color: #b8215f; }
.ln-lines::before, .ln-lines::after { content: ""; width: 44px; height: 1px; background: currentColor; opacity: .6; }
.ln-about .ln-eyebrow, .ln-visit .ln-eyebrow { color: #b8215f; }

.ln-cal::before, .header-main .header-button-1 .button::before { content: ""; display: inline-block; width: 17px; height: 17px; margin-inline-end: 8px; vertical-align: -3px; background: currentColor; -webkit-mask: url(icons/calendar.svg) center / contain no-repeat; mask: url(icons/calendar.svg) center / contain no-repeat; }

.ln-service { overflow: hidden; border: 1px solid var(--ln-line); border-radius: 12px; background: #fff; box-shadow: 0 6px 16px rgba(184, 33, 95, .07); transition: transform .2s, box-shadow .2s; }
.ln-service:hover, .ln-service:focus-within { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(184, 33, 95, .14); }
.ln-service .box-image { border-radius: 11px 11px 0 0; }
.ln-service .box-text { position: relative; padding: 10px 30px 10px 12px; text-align: left; }
.ln-service .box-text::after { content: "→"; position: absolute; top: 50%; right: 12px; color: #b8215f; transform: translateY(-50%); }
.ln-service .icon-box { display: flex; align-items: center; }
.ln-service .icon-box h5 { margin: 0; color: var(--ln-ink); font-size: .92rem; font-weight: 600; }
.ln-section .ln-five > .col { flex-basis: 20%; max-width: 20%; padding-inline: 8px; }

.ln-round img, .ln-round .img-inner { border-radius: 16px; }
.ln-feats .icon-box { display: flex; align-items: center; }
.ln-feats .icon-box h5 { margin: 0; font-size: .86rem; font-weight: 500; line-height: 1.3; }
.ln-feats .col + .col .col-inner { border-inline-start: 1px solid var(--ln-line); padding-inline-start: 14px; }

.ln-section .ln-card { padding: 16px 20px 0; border-radius: 16px; background: linear-gradient(100deg, #7e1745, #b8215f 60%, #8f1a4e); }
.ln-card .icon-box { display: flex; align-items: center; }
.ln-section .ln-card .icon-box h5 { margin: 0 0 2px; color: #fff; font-family: "DM Sans", sans-serif; font-size: 1.3rem; font-weight: 600; }
.ln-card .icon-box-text { color: #f8e6ee; font-size: .9rem; }
.ln-card .ln-btn { margin: 0; color: #b8215f; }

.ln-review-slider .testimonial-box { margin: 8px; padding: 16px; border-radius: 12px; background: #fff; box-shadow: 0 6px 18px rgba(184, 33, 95, .08); }
.ln-review-slider .testimonial-box img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.ln-review-slider .testimonial-text { font-size: .86rem; line-height: 1.5; }
.ln-review-slider .star-rating { color: #f5a623; }

.ln-visit .icon-box { margin-bottom: 8px; }
.ln-visit .icon-box-text { font-size: .88rem; line-height: 1.45; }
.ln-visit .icon-box-text a { color: inherit; }
.ln-visit .social-icons a { color: #b8215f; }
.ln-map-col iframe { border-radius: 16px; }

.ln-subscribe .wpcf7 form { display: flex; gap: 0; }
.ln-subscribe .wpcf7 p { display: flex; flex: 1; margin: 0; }
.ln-subscribe .wpcf7-form-control-wrap { flex: 1; }
.ln-subscribe input[type=email] { height: 42px; margin: 0; border: 1px solid #4a3a46; border-radius: 8px 0 0 8px; background: transparent; color: #fff; box-shadow: none; }
.ln-subscribe input[type=submit] { height: 42px; margin: 0; padding: 0 16px; border: 0; border-radius: 0 8px 8px 0; background: #d6336f; color: #fff; }

/* Mobile menu: links and one booking button, nothing else from the theme defaults. */
#main-menu.mobile-sidebar { width: min(320px, 86vw); background: #fff; }
#main-menu .sidebar-menu { min-height: 100vh; padding: 62px 0 24px; background: #fff; }
#main-menu .nav-sidebar > li { margin: 0; border: 0; border-bottom: 1px solid #efe9e4; }
#main-menu .nav-sidebar > li > a { display: block; padding: 15px 24px; color: #231a14; font-size: 1.02rem; font-weight: 500; letter-spacing: 0; line-height: 1.3; text-transform: none; }
#main-menu .nav-sidebar > li.current-menu-item > a, #main-menu .nav-sidebar > li > a:hover { color: #b8215f; }
#main-menu .nav-sidebar > li.current-menu-item > a { box-shadow: inset 3px 0 0 #b8215f; }
#main-menu .nav-sidebar > li.header-button-1 { padding: 20px 24px 0; border: 0; }
#main-menu .nav-sidebar > li.header-button-1 > .header-button { display: block; }
#main-menu .header-button-1 .button { display: block; width: 100%; min-height: 48px; margin: 0; padding: 0 16px; background: #b8215f; border-color: #b8215f; color: #fff; font-size: 1rem; font-weight: 500; line-height: 48px; letter-spacing: 0; text-align: center; text-transform: none; }
.mfp-close-btn-in .mobile-sidebar ~ .mfp-close, .off-canvas .mfp-close { color: #231a14; opacity: 1; }
.header-main .nav-icon a { color: #b8215f; }

.absolute-footer { display: none; }

/* Header, set by the template's Theme Options */
.header-main .nav > li > a { font-weight: 500; letter-spacing: 0; text-transform: none; }
.header-main .header-button-1 .button { font-weight: 500; letter-spacing: 0; text-transform: none; }

@media (max-width: 849px) {
  .ln-section .ln-five > .col { flex-basis: 33.33%; max-width: 33.33%; }
  .ln-feats .col + .col .col-inner { border-inline-start: 0; padding-inline-start: 0; }
  .ln-review-slider .testimonial-box { margin: 6px; }
  }

@media (max-width: 549px) {
  .ln-section .ln-five > .col { flex-basis: 50%; max-width: 50%; }
  .ln-legal-links { text-align: start; }
}

@media (prefers-reduced-motion: reduce) {
  