/* Castle Nails & Spa — shared finishing layer across every page */
:root, body.jd-body {
  --jd-primary: #b78353;
  --jd-primary-hover: #d9ac75;
  --jd-primary-soft: #f1dfca;
  --jd-secondary: #3b0208;
  --jd-accent: #b78353;
  --jd-accent-soft: #edd7bc;
  --jd-gold: #c49260;
  --jd-gold-bright: #e5bd8e;
  --jd-bg: #f9f1e8;
  --jd-bg-deep: #ead8c7;
  --jd-surface: #fffaf4;
  --jd-surface-2: #f2e5d9;
  --jd-text: #2b1010;
  --jd-text-muted: #5c4140;
  --jd-border: rgba(93,38,35,.2);
  --jd-shadow-md: 0 18px 48px rgba(56,7,13,.12);
}
html { scroll-behavior: smooth; }
body.jd-body { color:var(--jd-text); background: #350005 url('../photos/castle/velvet-red-2026.webp') center top / cover fixed; overflow-x: clip; }
body.jd-body .page { background: transparent; }
body.jd-body section:not(.jd-hero--kozy):not(.jd-page-hero):not(.svc-hero):not(.jd-cta):not(.jd-ready):not(.jd-offers),
body.jd-body .jd-about, body.jd-body .jd-services, body.jd-body .jd-gallery-section, body.jd-body .jd-contact,
body.jd-body .jd-overview-new, body.jd-body .svc-menu, body.jd-body .jd-news-page {
  background-color: rgba(250,243,235,.95); background-image: linear-gradient(rgba(255,250,244,.78),rgba(255,250,244,.78)),url('../photos/castle/velvet-red-2026.webp'); background-size: cover; background-attachment: scroll;
}
body.jd-body .jd-section:nth-of-type(4n + 2):not(.jd-cta):not(.jd-offers),
body.jd-body .jd-section:nth-of-type(4n + 3):not(.jd-cta):not(.jd-offers) { background-color: rgba(250,243,235,.95); }
body.jd-body .jd-header, body.jd-body .jd-header.is-scrolled { background:rgba(48,0,5,.96); border-top:2px solid #c89560; }
body.jd-body .jd-logo img { width:auto; height:72px; max-height:72px; border:0; border-radius:0; background:none; box-shadow:none; object-fit:contain; transform:scale(1.55); }
body.jd-body .jd-logo__text { color:#f6d8ab; }
body.jd-body .jd-nav a, body.jd-body .jd-drawer a { transition:color .25s ease, opacity .25s ease; }
body.jd-body .jd-nav a:hover, body.jd-body .jd-nav a.is-active { color:#f0c991; }
body.jd-body .jd-footer, body.jd-body .jd-ready, body.jd-body .jd-cta { background:linear-gradient(rgba(27,4,9,.56),rgba(27,4,9,.62)),url('../photos/castle/velvet-red-2026.webp') center / cover; color:#f8eade; }
body.jd-body .jd-footer__brand, body.jd-body .jd-footer h4 { color:#f5d9aa; }
body.jd-body .jd-footer a { color:#f9e9d5; }
body.jd-body .jd-footer a:hover { color:#eec48f; }
body.jd-body .jd-btn { background:#5b0b13; color:#fff3df; border-color:#5b0b13; transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease; }
body.jd-body .jd-btn:hover { background:#7d2630; border-color:#7d2630; color:#fff8ed; transform:translateY(-2px); }
body.jd-body .jd-btn:active { transform:translateY(1px); }
body.jd-body .jd-btn--light { background:#f4dfbd; border-color:#f4dfbd; color:#3d0710; }
body.jd-body .jd-btn--light:hover { background:#fff0d7; border-color:#fff0d7; color:#3d0710; }
body.jd-body .jd-btn--ghost { background:transparent; color:#5b0b13; border-color:#7d4a4e; }
body.jd-body .jd-btn--ghost:hover { background:#5b0b13; color:#fff3df; }
body.jd-body .jd-eyebrow { color:#8c4545; }
body.jd-body .jd-eyebrow::before { background:#b78353; }
body.jd-body .jd-display, body.jd-body h1, body.jd-body h2, body.jd-body h3 { text-wrap:balance; }
body.jd-body p { text-wrap:pretty; }
body.jd-body .jd-container { max-width:1320px; }
body.jd-body .jd-hero--kozy { min-height:min(860px,100dvh); background:#300005 url('../photos/castle/velvet-red-2026.webp') center / cover; }
body.jd-body .jd-hero__video-overlay { background:linear-gradient(90deg,rgba(35,0,4,.82),rgba(35,0,4,.38)),linear-gradient(0deg,rgba(35,0,4,.75),transparent 42%); }
body.jd-body .jd-hero__scene { object-fit:cover; }
body.jd-body .jd-hero__center { max-width:min(860px,90vw); }
body.jd-body .jd-hero__center::before { content:''; position:absolute; inset:-2.5rem; pointer-events:none; opacity:.27; background:radial-gradient(ellipse at center,rgba(219,153,101,.52),transparent 62%); animation:castleGlow 7s ease-in-out infinite alternate; }
body.jd-body .jd-hero__center > * { position:relative; }
body.jd-body .jd-hero__title-love, body.jd-body .jd-hero__title-nails { color:#fff0d9; text-shadow:0 12px 38px rgba(31,0,3,.35); }
body.jd-body .jd-hero__title-nails { font-size:clamp(3rem,8vw,8.2rem); line-height:1.06; padding-bottom:.12em; }
body.jd-body .jd-hero__title-love { font-size:clamp(3.2rem,8.8vw,8.5rem); line-height:1.08; }
body.jd-body .jd-hero__center em { color:#f0c993; }
body.jd-body .jd-hero__lead, body.jd-body .jd-hero__eyebrow { color:#fff0dc; }
body.jd-body .jd-page-hero__bg::after, body.jd-body .svc-hero__veil { background:linear-gradient(90deg,rgba(39,0,4,.75),rgba(39,0,4,.35)); }
body.jd-body .jd-page-hero, body.jd-body .svc-hero { background:#350005; }
body.jd-body .jd-page-hero h1, body.jd-body .svc-hero h1 { color:#fff3e3; }
body.jd-body .jd-offers.promotions, body.jd-body .jd-offers { background:linear-gradient(rgba(249,239,227,.84),rgba(249,239,227,.84)),url('../photos/castle/velvet-red-2026.webp') center / cover; }
body.jd-body .jd-offers.promotions::before { background:rgba(255,226,182,.18); }
body.jd-body .jd-brand-interlude {
  padding-block:clamp(1.35rem,3vw,2.5rem);
  background:radial-gradient(ellipse at 50% 48%,rgba(105,27,43,.38),rgba(40,0,8,.62) 72%),url('../photos/castle/velvet-red-2026.webp') center / cover!important;
  border-block:1px solid rgba(229,184,121,.22);
}
body.jd-body .jd-brand-interlude__logo {
  isolation:isolate;
  width:clamp(16rem,28vw,25rem);
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body.jd-body .jd-brand-interlude__logo::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:14% 4%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(236,187,113,.2),transparent 70%);
  filter:blur(18px);
  pointer-events:none;
}
body.jd-body .jd-brand-interlude__logo img {
  display:block;
  width:100%;
  max-height:none;
  height:clamp(11rem,20vw,18rem);
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center;
  border-radius:0;
  filter:brightness(1.15) contrast(1.07) drop-shadow(0 8px 15px rgba(14,0,4,.5)) drop-shadow(0 0 10px rgba(245,195,117,.24));
}
body.jd-body .jd-brand-interlude__line,
body.jd-body .jd-brand-interlude__line:last-child {
  background:linear-gradient(90deg,transparent,rgba(230,180,112,.58),transparent);
}
@media(max-width:600px) {
  body.jd-body .jd-brand-interlude__logo { width:min(76vw,20rem); }
  body.jd-body .jd-brand-interlude__logo img { height:clamp(11rem,55vw,14rem); }
}
body.jd-body .jd-gallery-section--ritual { background:linear-gradient(rgba(247,237,225,.85),rgba(247,237,225,.85)),url('../photos/castle/velvet-red-2026.webp') center / cover!important; }
body.jd-body #connect.jd-connect,
body.jd-body #contact.jd-section--deep {
  background:linear-gradient(rgba(19,6,10,.87),rgba(19,6,10,.9)),url('../photos/castle/velvet-red-2026.webp') center / cover!important;
}
/* The source theme styles this section for a dark surface. Castle uses a light
   gallery surface, so every heading and supporting label needs dark contrast. */
body.jd-body #gallery.jd-gallery-section--ritual .jd-display {
  color:#351b20!important;
  -webkit-text-fill-color:currentColor;
}
body.jd-body #gallery.jd-gallery-section--ritual .jd-display em { color:#79503e!important; }
body.jd-body #gallery.jd-gallery-section--ritual .jd-eyebrow { color:#704637!important; }
body.jd-body #gallery.jd-gallery-section--ritual .jd-gallery-section__lead { color:#493838!important; }
body.jd-body #gallery.jd-gallery-section--ritual .jd-gallery-section__services {
  color:#684537!important;
  border-color:rgba(104,69,55,.36);
}
body.jd-body .jd-gallery-section__bg img { opacity:.11; }
body.jd-body .jd-gallery-tile__frame, body.jd-body .gallery-item { overflow:hidden; }
body.jd-body .jd-gallery-tile__frame img, body.jd-body .gallery-item img { width:100%; height:100%; object-fit:cover; }
body.jd-body .jd-gallery-tile--1 .jd-gallery-tile__frame img,
body.jd-body .jd-gallery-tile--8 .jd-gallery-tile__frame img { object-position:left center; }
body.jd-body #gallery-page .gallery-item,
body.jd-body .jd-gallery-tile__frame { background:#e6d7ce; }
body.jd-body #gallery-page .gallery-item img,
body.jd-body .jd-gallery-tile__frame img { object-fit:contain; }
body.jd-body #gallery-page { display:block!important; columns:3 260px; column-gap:1rem; }
body.jd-body #gallery-page > * { display:block; break-inside:avoid; margin-bottom:1rem; }
body.jd-body #gallery-page .gallery-item { aspect-ratio:auto; }
body.jd-body #gallery-page .gallery-item img { display:block; width:100%; height:auto; }
body.jd-body #gallery .jd-gallery-tile__frame img { object-fit:contain!important; transform:none!important; }
body.jd-body .jd-gallery-tile__meta { background:rgba(58,3,10,.75); color:#fff2db; }
body.jd-body .jd-footer__grid { gap:clamp(2rem,5vw,5rem); }
body.jd-body a:focus-visible, body.jd-body button:focus-visible, body.jd-body input:focus-visible { outline:3px solid #e5b879; outline-offset:3px; }
body.jd-body .phone[hidden], body.jd-body .email[hidden], body.jd-body .btn-call-us[hidden], body.jd-body [hidden] { display:none!important; }
body.jd-body .modal-custom.is-open { display:flex; }
body.jd-body .modal-content-custom { position:relative; border:1px solid rgba(229,184,121,.45); border-radius:18px; box-shadow:0 30px 100px rgba(30,0,4,.4); overflow:hidden; }
body.jd-body .modal-flex { display:grid; grid-template-columns:minmax(180px,.68fr) 1fr; }
body.jd-body .modal-left { display:flex; flex-direction:column; justify-content:center; gap:.5rem; background:#4d0610 url('../photos/castle/velvet-red-2026.webp') center / cover!important; color:#fff1db; padding:2rem!important; }
body.jd-body .modal-left h2 { font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.12; margin:0; color:#fff1db; }
body.jd-body .modal-left p { margin:0; color:#f2d8b9; }
body.jd-body .modal-right { padding:2.5rem 2rem 2rem; color:#2b1010; line-height:1.55; }
body.jd-body .modal-right a { color:#6a151d; text-decoration:underline; text-underline-offset:3px; }
body.jd-body .modal-right input[type=checkbox] { width:18px; height:18px; accent-color:#6a151d; vertical-align:middle; }
body.jd-body .close-custom { position:absolute; z-index:2; top:.75rem; right:1rem; color:#3b0208; font-size:1.75rem; line-height:1; cursor:pointer; }
body.jd-body #continue-booking-btn { display:block; width:100%; margin-top:1.35rem; padding:.85rem 1rem; border:0; border-radius:999px; background:#5b0b13; color:#fff1db; font:inherit; font-weight:700; cursor:pointer; }
body.jd-body #continue-booking-btn:disabled { opacity:.5; cursor:not-allowed; }
body.jd-body .jd-float .button { background:#5b0b13; border-color:#5b0b13; }
@keyframes castleGlow { from{transform:scale(.92);opacity:.18} to{transform:scale(1.08);opacity:.34} }
@media (max-width:900px) { body.jd-body .jd-header,body.jd-body .jd-header.is-scrolled { height:78px; } body.jd-body .jd-header__bar,body.jd-body .jd-header.is-scrolled .jd-header__bar { height:76px; min-height:76px; } body.jd-body .jd-logo img { height:58px; max-height:58px; } body.jd-body .jd-hero--kozy { min-height:100dvh; } body.jd-body .jd-hero__title-love { font-size:clamp(3rem,14vw,5.7rem); } body.jd-body .jd-hero__title-nails { font-size:clamp(2.4rem,10vw,4.8rem); } }
@media (max-width:600px) { body.jd-body .jd-hero__center { max-width:calc(100vw - 2rem); } body.jd-body .jd-hero__center::before { inset:-1rem; } body.jd-body .jd-hero__video-overlay { background:linear-gradient(0deg,rgba(35,0,4,.88),rgba(35,0,4,.5)); } body.jd-body .jd-hero__actions { flex-wrap:wrap; justify-content:center; } body.jd-body .jd-hero__info { gap:.5rem; } body.jd-body .jd-footer__grid { grid-template-columns:1fr; } body.jd-body .jd-about-home__image img { object-position:center; } }
@media (max-width:600px) { body.jd-body .modal-flex { grid-template-columns:1fr; } body.jd-body .modal-left { padding:1.25rem 1.5rem!important; } body.jd-body .modal-left h2 { font-size:1.7rem; } body.jd-body .modal-right { padding:1.25rem 1.5rem 1.5rem; font-size:.95rem; } body.jd-body .close-custom { color:#fff2df; } body.jd-body .modal-content-custom { max-height:calc(100dvh - 6rem); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } body.jd-body .jd-hero__center::before { animation:none; } body.jd-body *,body.jd-body *::before,body.jd-body *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }
