/* Nail Guide salon archive and single pages */
:root {
	--ng-ivory: #f7f4ef;
	--ng-surface: #fffcf8;
	--ng-greige: #d8d0c7;
	--ng-charcoal: #272522;
	--ng-muted: #77716b;
	--ng-rose: #b9868b;
	--ng-border: rgba(39, 37, 34, 0.1);
	--ng-content: 1200px;
	--ng-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

body.ng-salon-page {
	background: var(--ng-ivory);
	color: var(--ng-charcoal);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
	font-size: 16px;
	line-height: 1.75;
}

.ng-salon-page *, .ng-salon-page *::before, .ng-salon-page *::after { box-sizing: border-box; }
.ng-salon-page a { color: inherit; text-decoration: none; }
.ng-salon-page img { display: block; max-width: 100%; }
.ng-salon-page h1, .ng-salon-page h2, .ng-salon-page h3, .ng-salon-page p { margin-top: 0; }
.ng-salon-page a:focus-visible, .ng-salon-page button:focus-visible, .ng-salon-page [tabindex]:focus-visible { outline: 2px solid var(--ng-rose); outline-offset: 4px; }
.ng-skip-link { position: fixed; z-index: 10000; top: 8px; left: 8px; padding: 10px 16px; background: var(--ng-charcoal); color: #fff !important; transform: translateY(-150%); }
.ng-skip-link:focus { transform: translateY(0); }

/* Shared header */
.ng-site-header { position: relative; z-index: 50; border-bottom: 1px solid var(--ng-border); background: rgba(247, 244, 239, 0.94); backdrop-filter: blur(14px); }
.ng-site-header__inner { width: min(calc(100% - 40px), var(--ng-content)); min-height: 76px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ng-site-header__brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.ng-site-header__brand img { width: auto; height: 52px; object-fit: contain; }
.ng-site-nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 40px); font-size: 13px; letter-spacing: 0.04em; }
.ng-site-nav a { transition: color 0.25s ease; }
.ng-site-nav a:hover { color: var(--ng-rose); }
.ng-site-nav__publish { min-height: 44px; padding: 0 20px; display: inline-flex; align-items: center; border-radius: 999px; background: var(--ng-charcoal); color: #fff !important; }

/* Shared type and controls */
.ng-eyebrow { margin-bottom: 12px; color: var(--ng-rose); font-size: 11px; font-weight: 600; letter-spacing: 0.2em; line-height: 1.3; }
.ng-section-heading { margin-bottom: clamp(30px, 5vw, 54px); }
.ng-section-heading h2 { margin-bottom: 0; font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(28px, 4vw, 46px); font-weight: 300; letter-spacing: -0.035em; line-height: 1.25; }
.ng-button { min-height: 50px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 999px; font-size: 13px; font-weight: 600; letter-spacing: 0.03em; transition: transform 0.3s var(--ng-ease), background-color 0.3s ease, border-color 0.3s ease; }
.ng-button:hover { transform: translateY(-2px); }
.ng-button--primary { background: var(--ng-rose); color: #fff !important; }
.ng-button--outline { border-color: rgba(39, 37, 34, 0.2); background: rgba(255, 252, 248, 0.55); }
.ng-button--text { padding-inline: 10px; }
.ng-tag-list { padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 7px; list-style: none; }
.ng-tag-list li { padding: 5px 10px; border: 1px solid var(--ng-border); border-radius: 999px; background: rgba(255, 252, 248, 0.68); color: var(--ng-muted); font-size: 11px; line-height: 1.35; }
.ng-image-placeholder { width: 100%; height: 100%; min-height: 280px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 70% 25%, rgba(185, 134, 139, 0.18), transparent 30%), linear-gradient(145deg, #e7dfd5, #f6f0e8); color: rgba(39, 37, 34, 0.38); font-family: Georgia, serif; letter-spacing: 0.12em; }

/* Single salon hero */
.ng-salon-single { overflow: hidden; }
.ng-salon-hero { width: min(calc(100% - 40px), var(--ng-content)); min-height: min(780px, calc(100svh - 77px)); margin: 0 auto; padding: clamp(46px, 7vw, 90px) 0; display: grid; grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); align-items: center; gap: clamp(40px, 7vw, 96px); }
.ng-salon-hero__content { padding-left: clamp(0px, 2vw, 24px); }
.ng-salon-hero h1 { max-width: 620px; margin-bottom: 18px; font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(44px, 6vw, 78px); font-weight: 300; letter-spacing: -0.055em; line-height: 1.08; overflow-wrap: anywhere; }
.ng-salon-hero__catch { max-width: 520px; margin-bottom: 20px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(18px, 2.2vw, 25px); line-height: 1.7; }
.ng-salon-hero__location { margin-bottom: 18px; color: var(--ng-muted); font-size: 13px; letter-spacing: 0.04em; }
.ng-salon-hero .ng-tag-list { margin-bottom: 28px; }
.ng-salon-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.ng-salon-hero__visual { aspect-ratio: 4 / 5; max-height: 680px; overflow: hidden; border-radius: 30px; background: var(--ng-greige); }
.ng-salon-hero__visual img { width: 100%; height: 100%; object-fit: cover; }

/* Single sections */
.ng-salon-section { width: min(calc(100% - 40px), var(--ng-content)); margin: 0 auto; padding: clamp(72px, 10vw, 130px) 0; border-top: 1px solid var(--ng-border); }
.ng-salon-lead { max-width: 820px; color: #4f4b47; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(17px, 2vw, 22px); line-height: 2; }
.ng-salon-lead > :last-child { margin-bottom: 0; }
.ng-feature-grid { margin-top: clamp(40px, 7vw, 72px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--ng-border); border: 1px solid var(--ng-border); }
.ng-feature-item { min-height: 220px; padding: clamp(24px, 3vw, 34px); background: var(--ng-surface); }
.ng-feature-item span { display: block; margin-bottom: 44px; color: var(--ng-rose); font-size: 11px; letter-spacing: 0.12em; }
.ng-feature-item h3 { margin-bottom: 10px; font-size: 17px; font-weight: 500; }
.ng-feature-item p { margin-bottom: 0; color: var(--ng-muted); font-size: 13px; line-height: 1.8; }

/* Gallery */
.ng-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: min(72vw, 430px); gap: 16px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: thin; padding-bottom: 14px; }
.ng-gallery figure { aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border-radius: 22px; scroll-snap-align: start; background: var(--ng-greige); }
.ng-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ng-ease); }
.ng-gallery figure:hover img { transform: scale(1.025); }

/* Menu */
.ng-salon-menu-section { width: 100%; max-width: none; padding-inline: max(20px, calc((100vw - var(--ng-content)) / 2)); background: var(--ng-surface); }
.ng-menu-list { border-top: 1px solid var(--ng-border); }
.ng-menu-item { min-height: 112px; padding: 24px 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; border-bottom: 1px solid var(--ng-border); }
.ng-menu-item h3 { margin-bottom: 5px; font-size: 17px; font-weight: 500; }
.ng-menu-item p { margin-bottom: 0; color: var(--ng-muted); font-size: 13px; }
.ng-menu-item__price { color: var(--ng-charcoal) !important; font-size: 16px !important; font-weight: 600; white-space: nowrap; }

/* Story and information */
.ng-story-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ng-story-grid article { min-height: 300px; padding: clamp(26px, 4vw, 44px); border-radius: 22px; background: var(--ng-surface); }
.ng-story-grid h3 { padding-bottom: 20px; margin-bottom: 22px; border-bottom: 1px solid var(--ng-border); font-size: 17px; font-weight: 500; }
.ng-story-grid p { color: var(--ng-muted); font-size: 14px; line-height: 1.9; }
.ng-salon-info dl { margin: 0; border-top: 1px solid var(--ng-border); }
.ng-salon-info dl > div { padding: 20px 0; display: grid; grid-template-columns: minmax(110px, 22%) 1fr; gap: 20px; border-bottom: 1px solid var(--ng-border); }
.ng-salon-info dt { color: var(--ng-muted); font-size: 13px; }
.ng-salon-info dd { margin: 0; font-size: 14px; }

/* Access and final CTA */
.ng-access__grid { display: grid; grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr); gap: clamp(30px, 6vw, 72px); align-items: center; }
.ng-access__copy { color: var(--ng-muted); font-size: 14px; }
.ng-access__address { color: var(--ng-charcoal); font-size: 16px; }
.ng-access__copy a { display: inline-block; padding-bottom: 2px; border-bottom: 1px solid currentColor; color: var(--ng-charcoal); }
.ng-access__map { aspect-ratio: 16 / 10; overflow: hidden; border-radius: 22px; background: var(--ng-greige); }
.ng-access__map iframe { width: 100%; height: 100%; border: 0; }
.ng-salon-final { padding: clamp(90px, 12vw, 150px) 20px; text-align: center; background: var(--ng-charcoal); color: #fff; }
.ng-salon-final h2 { margin-bottom: 36px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(30px, 5vw, 52px); font-weight: 400; letter-spacing: 0.02em; line-height: 1.5; }
.ng-salon-final .ng-salon-actions { justify-content: center; }
.ng-salon-final .ng-button--outline { border-color: rgba(255,255,255,.35); background: transparent; color: #fff; }
.ng-mobile-reserve { display: none; }

/* Salon archive */
.ng-directory-hero { width: min(calc(100% - 40px), var(--ng-content)); min-height: 460px; margin: 0 auto; padding: clamp(70px, 10vw, 130px) 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.ng-directory-hero h1 { margin-bottom: 22px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(36px, 5.7vw, 68px); font-weight: 400; letter-spacing: -0.025em; line-height: 1.35; }
.ng-directory-hero > div > p:last-child { max-width: 610px; margin-bottom: 0; color: var(--ng-muted); }
.ng-directory-hero__count { margin-bottom: 4px; text-align: right; white-space: nowrap; }
.ng-directory-hero__count strong { display: block; font-family: "Helvetica Neue", Arial, sans-serif; font-size: 38px; font-weight: 300; line-height: 1; }
.ng-directory-hero__count span { color: var(--ng-muted); font-size: 11px; letter-spacing: 0.08em; }
.ng-salon-directory { padding: clamp(66px, 9vw, 110px) max(20px, calc((100vw - var(--ng-content)) / 2)); background: var(--ng-surface); }
.ng-directory-toolbar { margin-bottom: 36px; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.ng-directory-toolbar h2 { margin-bottom: 0; font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(25px, 3vw, 34px); font-weight: 300; letter-spacing: -0.025em; }
.ng-directory-toolbar p { margin-bottom: 0; color: var(--ng-muted); font-size: 12px; }
.ng-salon-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 34px) clamp(16px, 2.4vw, 28px); }
.ng-salon-card { min-width: 0; margin: 0; }
.ng-salon-card > a { height: 100%; display: block; border-radius: 24px; overflow: hidden; background: #fff; box-shadow: 0 12px 32px rgba(39, 37, 34, 0.055); transition: transform 0.45s var(--ng-ease), box-shadow 0.45s ease; }
.ng-salon-card > a:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(39, 37, 34, 0.09); }
.ng-salon-card__image { aspect-ratio: 4 / 4.35; overflow: hidden; background: var(--ng-greige); }
.ng-salon-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ng-ease); }
.ng-salon-card > a:hover .ng-salon-card__image img { transform: scale(1.025); }
.ng-salon-card__image .ng-image-placeholder { min-height: 0; }
.ng-salon-card__body { padding: 22px 22px 24px; }
.ng-salon-card__location { margin-bottom: 7px; color: var(--ng-muted); font-size: 11px; letter-spacing: 0.04em; }
.ng-salon-card h2 { margin-bottom: 12px; font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(19px, 2vw, 24px); font-weight: 400; letter-spacing: -0.025em; line-height: 1.3; }
.ng-salon-card .ng-tag-list { margin-bottom: 12px; }
.ng-salon-card__excerpt { margin-bottom: 18px; display: -webkit-box; overflow: hidden; color: var(--ng-muted); font-size: 12px; line-height: 1.75; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ng-salon-card__more { display: flex; justify-content: space-between; color: var(--ng-muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.ng-salon-card__more b { color: var(--ng-charcoal); font-size: 16px; font-weight: 400; }
.ng-pagination { margin-top: 60px; }
.ng-pagination .nav-links { display: flex; justify-content: center; align-items: center; gap: 7px; }
.ng-pagination .page-numbers { min-width: 44px; min-height: 44px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--ng-border); border-radius: 999px; font-size: 12px; }
.ng-pagination .current { border-color: var(--ng-charcoal); background: var(--ng-charcoal); color: #fff; }
.ng-directory-empty { padding: 80px 20px; border: 1px solid var(--ng-border); text-align: center; }

/* Shared footer */
.ng-site-footer { padding: 70px max(20px, calc((100vw - var(--ng-content)) / 2)) 30px; background: #211f1d; color: rgba(255,255,255,.7); }
.ng-site-footer__inner { display: flex; justify-content: space-between; gap: 50px; }
.ng-site-footer__name { margin-bottom: 8px; color: #fff; font-family: Georgia, serif; font-size: 25px; letter-spacing: 0.03em; }
.ng-site-footer__brand > p:last-child { font-size: 12px; }
.ng-site-footer__nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 16px 28px; font-size: 12px; }
.ng-site-footer__nav a:hover { color: #fff; }
.ng-site-footer__copyright { padding-top: 42px; margin: 38px 0 0; border-top: 1px solid rgba(255,255,255,.12); font-size: 10px; letter-spacing: 0.08em; }

/* Tablet */
@media (max-width: 1024px) {
	.ng-salon-hero { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 38px; }
	.ng-feature-grid { grid-template-columns: repeat(2, 1fr); }
	.ng-story-grid { grid-template-columns: 1fr; }
	.ng-story-grid article { min-height: 0; }
	.ng-salon-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile */
@media (max-width: 700px) {
	.ng-site-header__inner { min-height: 68px; }
	.ng-site-header__brand img { height: 44px; }
	.ng-site-nav > a:not(.ng-site-nav__publish) { display: none; }
	.ng-site-nav__publish { min-height: 42px; padding-inline: 15px; font-size: 11px; }
	.ng-salon-hero { min-height: 0; padding: 38px 0 66px; display: flex; flex-direction: column-reverse; align-items: stretch; gap: 34px; }
	.ng-salon-hero__visual { aspect-ratio: 4 / 4.75; max-height: none; border-radius: 22px; }
	.ng-salon-hero__content { padding-left: 0; }
	.ng-salon-hero h1 { font-size: clamp(38px, 12vw, 54px); }
	.ng-salon-hero__catch { font-size: 17px; }
	.ng-salon-actions .ng-button { flex: 1 1 150px; }
	.ng-feature-grid { grid-template-columns: 1fr; }
	.ng-feature-item { min-height: 0; }
	.ng-feature-item span { margin-bottom: 25px; }
	.ng-menu-item { min-height: 98px; gap: 16px; }
	.ng-salon-info dl > div { grid-template-columns: 88px 1fr; gap: 14px; }
	.ng-access__grid { grid-template-columns: 1fr; }
	.ng-access__map { aspect-ratio: 4 / 3; }
	.ng-mobile-reserve { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; padding: 10px 16px max(10px, env(safe-area-inset-bottom)); display: block; background: rgba(255,252,248,.94); border-top: 1px solid var(--ng-border); backdrop-filter: blur(14px); }
	.ng-mobile-reserve a { min-height: 50px; display: flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--ng-rose); color: #fff; font-size: 13px; font-weight: 600; }
	body.single-salon { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
	.ng-directory-hero { min-height: 390px; padding-block: 64px; display: block; }
	.ng-directory-hero h1 { font-size: clamp(34px, 10vw, 46px); }
	.ng-directory-hero__count { margin-top: 36px; text-align: left; }
	.ng-salon-directory { padding-inline: 16px; }
	.ng-salon-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
	.ng-salon-card > a { border-radius: 16px; }
	.ng-salon-card__image { aspect-ratio: 4 / 4.5; }
	.ng-salon-card__body { padding: 13px 12px 15px; }
	.ng-salon-card__location { margin-bottom: 4px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
	.ng-salon-card h2 { margin-bottom: 9px; font-size: clamp(14px, 4vw, 17px); }
	.ng-salon-card .ng-tag-list { gap: 4px; margin-bottom: 9px; }
	.ng-salon-card .ng-tag-list li { max-width: 100%; padding: 3px 7px; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
	.ng-salon-card__excerpt { margin-bottom: 12px; font-size: 10px; line-height: 1.6; }
	.ng-salon-card__more { font-size: 9px; }
	.ng-site-footer__inner { display: block; }
	.ng-site-footer__nav { margin-top: 32px; justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.ng-salon-page *, .ng-salon-page *::before, .ng-salon-page *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* =========================================================
   Salon landing page — editorial redesign
   ========================================================= */
body.single-salon { background: var(--ng-ivory); }
body.single-salon .ng-header:not(.is-scrolled) { border-bottom-color: rgba(255,255,255,.2); background: linear-gradient(to bottom, rgba(20,19,18,.36), transparent); backdrop-filter: none; }
body.single-salon .ng-header:not(.is-scrolled) .ng-logo__image { filter: brightness(0) invert(1); }
body.single-salon .ng-header:not(.is-scrolled) .ng-nav a:not(.ng-nav__publish), body.single-salon .ng-header:not(.is-scrolled) .ng-menu-button { color: #fff; }
body.single-salon .ng-header:not(.is-scrolled) .ng-nav__publish { border: 1px solid rgba(255,255,255,.54); background: rgba(255,255,255,.12); backdrop-filter: blur(12px); }
body.single-salon .ng-salon-single { overflow: clip; }

/* Hero */
body.single-salon .ng-salon-hero { width: 100%; min-height: min(940px, 100svh); padding: 0; display: grid; grid-template-columns: minmax(390px, 42%) minmax(0, 58%); align-items: stretch; gap: 0; background: #24221f; }
body.single-salon .ng-salon-hero__content { position: relative; z-index: 2; padding: clamp(150px, 15vh, 220px) clamp(44px, 7vw, 112px) clamp(70px, 10vh, 120px) max(40px, calc((100vw - var(--ng-content)) / 2)); display: flex; flex-direction: column; justify-content: flex-end; color: #fff; }
body.single-salon .ng-salon-hero__content::before { content: ""; position: absolute; top: 21%; left: max(40px, calc((100vw - var(--ng-content)) / 2)); width: 52px; height: 1px; background: rgba(255,255,255,.52); }
body.single-salon .ng-salon-hero .ng-eyebrow { margin-bottom: 18px; color: rgba(255,255,255,.58); letter-spacing: .24em; }
body.single-salon .ng-salon-hero__location { order: -1; margin-bottom: 18px; color: rgba(255,255,255,.7); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
body.single-salon .ng-demo-label { width: fit-content; margin: 0 0 18px; padding: 7px 11px; border: 1px solid rgba(255,255,255,.32); color: rgba(255,255,255,.88); font-size: 10px; letter-spacing: .12em; }
body.single-salon .ng-salon-hero h1 { max-width: 660px; margin-bottom: clamp(24px, 4vw, 40px); font-family: "Helvetica Neue", Arial, sans-serif; font-size: clamp(48px, 5.6vw, 82px); font-weight: 200; letter-spacing: -.055em; line-height: 1.04; }
body.single-salon .ng-salon-hero__catch { max-width: 520px; margin-bottom: 30px; display: -webkit-box; overflow: hidden; color: rgba(255,255,255,.78); font-family: inherit; font-size: clamp(14px, 1.35vw, 17px); font-weight: 300; line-height: 2; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
body.single-salon .ng-salon-hero .ng-tag-list { margin-bottom: 32px; }
body.single-salon .ng-salon-hero .ng-tag-list li { padding: 7px 12px; border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: rgba(255,255,255,.82); backdrop-filter: blur(8px); }
body.single-salon .ng-salon-hero .ng-button--outline { border-color: rgba(255,255,255,.4); background: transparent; color: #fff; }
body.single-salon .ng-salon-hero__visual { position: relative; aspect-ratio: auto; max-height: none; overflow: hidden; border-radius: 0; background: #cfc5bb; }
body.single-salon .ng-salon-hero__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(36,34,31,.18), transparent 35%), linear-gradient(0deg, rgba(20,18,17,.2), transparent 32%); pointer-events: none; }
body.single-salon .ng-salon-hero__visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.002); }
body.single-salon .ng-salon-hero__caption { position: absolute; z-index: 1; right: 30px; bottom: 24px; margin: 0; color: rgba(255,255,255,.68); font-size: 9px; letter-spacing: .22em; writing-mode: vertical-rl; }

/* Editorial rhythm */
body.single-salon .ng-salon-section { width: min(calc(100% - 40px), var(--ng-content)); padding: clamp(100px, 12vw, 170px) 0; border-top: 0; }
body.single-salon .ng-section-heading { max-width: 780px; margin-bottom: clamp(48px, 7vw, 86px); }
body.single-salon .ng-section-heading .ng-eyebrow { margin-bottom: 18px; }
body.single-salon .ng-section-heading h2 { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(34px, 4.8vw, 62px); font-weight: 400; letter-spacing: -.025em; line-height: 1.48; }
body.single-salon .ng-salon-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: clamp(54px, 9vw, 120px); align-items: center; }
body.single-salon .ng-salon-lead { max-width: 590px; color: #514c47; font-family: inherit; font-size: clamp(15px, 1.45vw, 18px); font-weight: 300; line-height: 2.25; }
body.single-salon .ng-salon-intro__visual { aspect-ratio: 5 / 6; max-height: 650px; margin: 0; overflow: hidden; border-radius: 2px; }
body.single-salon .ng-salon-intro__visual img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; transform: scale(1.14); }

/* Feature blocks */
body.single-salon .ng-feature-grid { margin-top: clamp(70px, 9vw, 110px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 0; border-top: 1px solid var(--ng-border); border-bottom: 1px solid var(--ng-border); background: transparent; }
body.single-salon .ng-feature-item { min-height: 250px; padding: 34px clamp(24px, 3vw, 40px) 38px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid var(--ng-border); background: transparent; }
body.single-salon .ng-feature-item:last-child { border-right: 0; }
body.single-salon .ng-feature-item span { margin: 0 0 64px; color: var(--ng-muted); font-family: "Helvetica Neue", Arial, sans-serif; font-size: 11px; font-weight: 300; letter-spacing: .18em; }
body.single-salon .ng-feature-item h3 { margin-bottom: 12px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 20px; font-weight: 400; }
body.single-salon .ng-feature-item p { margin: 0; color: var(--ng-muted); font-size: 13px; line-height: 1.8; }

/* Asymmetric gallery */
body.single-salon .ng-gallery { display: grid; grid-template-columns: 1.55fr .75fr .75fr; grid-template-rows: repeat(2, minmax(220px, 320px)); grid-auto-flow: row; grid-auto-columns: auto; gap: 14px; overflow: visible; padding: 0; }
body.single-salon .ng-gallery figure { min-width: 0; aspect-ratio: auto; margin: 0; border-radius: 2px; }
body.single-salon .ng-gallery figure:first-child { grid-row: 1 / span 2; }
body.single-salon .ng-gallery figure:nth-child(n+6) { display: none; }
body.single-salon .ng-gallery img { width: 100%; height: 100%; object-fit: cover; }

/* Menu */
body.single-salon .ng-salon-menu-section { width: 100%; max-width: none; padding-inline: max(20px, calc((100vw - var(--ng-content)) / 2)); background: var(--ng-surface); }
body.single-salon .ng-menu-list { max-width: 940px; margin-left: auto; border-top: 1px solid rgba(39,37,34,.16); }
body.single-salon .ng-menu-item { min-height: 132px; padding: 30px 6px; gap: 40px; border-bottom-color: rgba(39,37,34,.14); }
body.single-salon .ng-menu-item h3 { margin-bottom: 8px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 19px; font-weight: 400; }
body.single-salon .ng-menu-item p { font-size: 12px; line-height: 1.8; }
body.single-salon .ng-menu-item__price { font-family: "Helvetica Neue", Arial, sans-serif; font-size: 20px !important; font-weight: 300; letter-spacing: .02em; }
body.single-salon .ng-menu-item__popular { margin-bottom: 8px; display: inline-block; color: var(--ng-rose); font-size: 9px; letter-spacing: .16em; }

/* Philosophy */
body.single-salon .ng-salon-story { padding: clamp(110px, 13vw, 180px) 20px; background: var(--ng-greige); }
body.single-salon .ng-salon-story__inner { width: min(100%, var(--ng-content)); margin: 0 auto; }
body.single-salon .ng-story-grid { display: grid; grid-template-columns: 1fr; gap: clamp(70px, 10vw, 130px); }
body.single-salon .ng-story-item { min-height: 460px; padding: 0; display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(50px, 9vw, 120px); border-radius: 0; background: transparent; }
body.single-salon .ng-story-item:nth-child(even) figure { order: 2; }
body.single-salon .ng-story-item figure { aspect-ratio: 5 / 6; max-height: 640px; margin: 0; overflow: hidden; }
body.single-salon .ng-story-item img { width: 100%; height: 100%; object-fit: cover; }
body.single-salon .ng-story-item__number { color: var(--ng-muted); font-size: 10px !important; letter-spacing: .18em; }
body.single-salon .ng-story-item h3 { padding: 0; margin: 14px 0 24px; border: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(27px, 3.5vw, 43px); font-weight: 400; }
body.single-salon .ng-story-item p { color: #57514c; font-size: 14px; line-height: 2.05; }

/* Information */
body.single-salon .ng-salon-info { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(50px, 9vw, 120px); }
body.single-salon .ng-salon-info .ng-section-heading { margin: 0; }
body.single-salon .ng-salon-info dl { margin: 0; border-top: 1px solid rgba(39,37,34,.16); }
body.single-salon .ng-salon-info dl > div { min-height: 82px; padding: 25px 2px; grid-template-columns: minmax(100px, 28%) 1fr; align-items: center; border-bottom-color: rgba(39,37,34,.14); }
body.single-salon .ng-salon-info dt { color: var(--ng-muted); font-size: 11px; letter-spacing: .08em; }
body.single-salon .ng-salon-info dd { font-size: 14px; font-weight: 300; }

/* Access */
body.single-salon .ng-access { width: 100%; max-width: none; padding-inline: max(20px, calc((100vw - var(--ng-content)) / 2)); background: var(--ng-surface); }
body.single-salon .ng-access__grid { grid-template-columns: minmax(240px, .5fr) minmax(0, 1.5fr); gap: clamp(50px, 8vw, 110px); }
body.single-salon .ng-access__copy { padding-left: 2px; font-size: 13px; line-height: 2; }
body.single-salon .ng-access__address { margin-bottom: 20px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 18px; line-height: 1.8; }
body.single-salon .ng-access__copy a { margin-top: 22px; font-size: 12px; letter-spacing: .06em; }
body.single-salon .ng-access__map { aspect-ratio: 16 / 9; border-radius: 2px; filter: saturate(.68) contrast(.94); }

/* Final CTA */
body.single-salon .ng-salon-final { position: relative; padding: clamp(120px, 15vw, 200px) 20px; overflow: hidden; background: #24221f; }
body.single-salon .ng-salon-final::before { content: "NG"; position: absolute; top: 50%; left: 50%; color: rgba(255,255,255,.025); font-family: Georgia, serif; font-size: min(42vw, 540px); line-height: 1; transform: translate(-50%,-50%); pointer-events: none; }
body.single-salon .ng-salon-final > * { position: relative; z-index: 1; }
body.single-salon .ng-salon-final h2 { margin-bottom: 12px; font-size: clamp(34px, 5.4vw, 62px); font-weight: 400; }
body.single-salon .ng-salon-final__name { margin-bottom: 42px; color: rgba(255,255,255,.55); font-size: 12px; letter-spacing: .1em; }
body.single-salon .ng-salon-final .ng-button--text { color: rgba(255,255,255,.7); }

/* Quiet one-time reveal */
.ng-reveal-ready body.single-salon .ng-reveal { opacity: 0; transform: translateY(16px); }
.ng-reveal-ready body.single-salon .ng-reveal.is-visible { opacity: 1; transform: translateY(0); transition: opacity .9s var(--ng-ease), transform .9s var(--ng-ease); }

@media (max-width: 1024px) {
	body.single-salon .ng-salon-hero { grid-template-columns: minmax(330px, 44%) minmax(0, 56%); }
	body.single-salon .ng-salon-hero__content { padding-inline: 38px; }
	body.single-salon .ng-salon-hero h1 { font-size: clamp(44px, 6vw, 64px); }
	body.single-salon .ng-salon-intro { grid-template-columns: 1fr 1fr; gap: 48px; }
	body.single-salon .ng-feature-grid { grid-template-columns: repeat(2, 1fr); }
	body.single-salon .ng-feature-item:nth-child(2) { border-right: 0; }
	body.single-salon .ng-feature-item:nth-child(-n+2) { border-bottom: 1px solid var(--ng-border); }
	body.single-salon .ng-salon-info { grid-template-columns: 1fr; gap: 44px; }
}

@media (max-width: 700px) {
	body.single-salon .ng-header__inner { width: calc(100% - 32px); }
	body.single-salon .ng-header:not(.is-scrolled) .ng-logo__image { filter: none; }
	body.single-salon .ng-header:not(.is-scrolled) .ng-menu-button { color: var(--ng-charcoal); }
	body.single-salon .ng-salon-hero { min-height: auto; display: flex; flex-direction: column; background: var(--ng-ivory); }
	body.single-salon .ng-salon-hero__visual { order: 1; width: 100%; aspect-ratio: 4 / 4.9; min-height: 0; border-radius: 0; }
	body.single-salon .ng-salon-hero__visual::after { background: linear-gradient(0deg, rgba(30,28,26,.2), transparent 36%); }
	body.single-salon .ng-salon-hero__caption { right: 16px; bottom: 16px; }
	body.single-salon .ng-salon-hero__content { order: 2; padding: 40px 20px 76px; display: block; color: var(--ng-charcoal); }
	body.single-salon .ng-salon-hero__content::before { display: none; }
	body.single-salon .ng-salon-hero .ng-eyebrow { margin-bottom: 11px; color: var(--ng-rose); }
	body.single-salon .ng-salon-hero__location { margin-bottom: 12px; color: var(--ng-muted); }
	body.single-salon .ng-demo-label { margin-bottom: 14px; border-color: var(--ng-border); color: var(--ng-rose); }
	body.single-salon .ng-salon-hero h1 { margin-bottom: 24px; font-size: clamp(36px, 10.8vw, 46px); line-height: 1.08; }
	body.single-salon .ng-salon-hero__catch { margin-bottom: 26px; color: var(--ng-muted); font-size: 14px; line-height: 1.9; -webkit-line-clamp: 4; }
	body.single-salon .ng-salon-hero .ng-tag-list { margin-bottom: 28px; }
	body.single-salon .ng-salon-hero .ng-tag-list li { border-color: var(--ng-border); background: var(--ng-surface); color: var(--ng-muted); backdrop-filter: none; }
	body.single-salon .ng-salon-hero .ng-button--outline { border-color: rgba(39,37,34,.2); color: var(--ng-charcoal); }
	body.single-salon .ng-salon-section { width: calc(100% - 40px); padding-block: 88px; }
	body.single-salon .ng-section-heading { margin-bottom: 42px; }
	body.single-salon .ng-section-heading h2 { font-size: clamp(30px, 9vw, 40px); }
	body.single-salon .ng-salon-intro { display: flex; flex-direction: column; gap: 42px; }
	body.single-salon .ng-salon-intro__visual { width: calc(100% + 20px); margin-right: -20px; aspect-ratio: 5 / 5.8; }
	body.single-salon .ng-salon-lead { font-size: 15px; line-height: 2.15; }
	body.single-salon .ng-feature-grid { margin-top: 58px; grid-template-columns: 1fr; }
	body.single-salon .ng-feature-item { min-height: 180px; padding: 26px 8px 30px; flex-direction: row; justify-content: flex-start; gap: 34px; border-right: 0; border-bottom: 1px solid var(--ng-border); }
	body.single-salon .ng-feature-item:last-child { border-bottom: 0; }
	body.single-salon .ng-feature-item span { flex: 0 0 30px; margin: 3px 0 0; }
	body.single-salon .ng-feature-item h3 { font-size: 19px; }
	body.single-salon .ng-gallery { margin-right: -20px; display: grid; grid-auto-flow: column; grid-auto-columns: min(82vw, 340px); grid-template-columns: none; grid-template-rows: 1fr; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; }
	body.single-salon .ng-gallery figure, body.single-salon .ng-gallery figure:first-child { grid-row: auto; aspect-ratio: 4 / 5; scroll-snap-align: start; }
	body.single-salon .ng-gallery figure:nth-child(n+6) { display: block; }
	body.single-salon .ng-salon-menu-section, body.single-salon .ng-access { width: 100%; padding-inline: 20px; }
	body.single-salon .ng-menu-item { min-height: 112px; padding-block: 25px; }
	body.single-salon .ng-menu-item__price { font-size: 17px !important; }
	body.single-salon .ng-salon-story { padding: 90px 20px; }
	body.single-salon .ng-story-item { min-height: 0; display: flex; flex-direction: column; align-items: stretch; gap: 34px; }
	body.single-salon .ng-story-item:nth-child(even) figure { order: 0; }
	body.single-salon .ng-story-item figure { aspect-ratio: 5 / 5.8; }
	body.single-salon .ng-salon-info { display: block; }
	body.single-salon .ng-salon-info .ng-section-heading { margin-bottom: 42px; }
	body.single-salon .ng-salon-info dl > div { min-height: 76px; grid-template-columns: 86px 1fr; gap: 16px; }
	body.single-salon .ng-access__grid { display: flex; flex-direction: column; align-items: stretch; gap: 36px; }
	body.single-salon .ng-access__map { order: -1; width: calc(100% + 40px); margin-left: -20px; aspect-ratio: 1 / .82; }
	body.single-salon .ng-salon-final { padding-block: 110px; }
	body.single-salon .ng-salon-final h2 { font-size: 34px; line-height: 1.55; }
}

@media (prefers-reduced-motion: reduce) {
	.ng-reveal-ready body.single-salon .ng-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Salon LP v2 — reusable detail components */
body.single-salon .ng-salon-hero { grid-template-columns: minmax(360px, 34%) minmax(0, 66%); }
body.single-salon .ng-salon-hero__content { padding-right: clamp(34px, 5vw, 76px); }
body.single-salon .ng-salon-hero__summary { max-width: 520px; margin: -14px 0 28px; color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.9; }
body.single-salon .ng-salon-hero__visual img { transform: none; }
body.single-salon .ng-salon-features .ng-feature-grid { margin-top: 0; }
body.single-salon .ng-feature-item:has(h3:only-child) { min-height: 210px; }
body.single-salon .ng-feature-item h3:only-child { margin-bottom: 0; }

body.single-salon .ng-salon-recommended { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(50px,9vw,120px); align-items: start; }
body.single-salon .ng-salon-recommended .ng-section-heading { margin: 0; }
body.single-salon .ng-salon-recommended ul { padding: 0; margin: 0; border-top: 1px solid var(--ng-border); list-style: none; }
body.single-salon .ng-salon-recommended li { min-height: 72px; padding: 20px 4px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid var(--ng-border); font-size: 14px; }
body.single-salon .ng-salon-recommended li span { color: var(--ng-rose); font-size: 11px; }

body.single-salon .ng-salon-designs { width: 100%; max-width: none; padding-inline: max(20px,calc((100vw - var(--ng-content))/2)); background: var(--ng-surface); }
body.single-salon .ng-gallery a { width: 100%; height: 100%; display: block; }

body.single-salon .ng-menu-item small { margin-top: 9px; display: block; color: var(--ng-muted); font-size: 10px; }
body.single-salon .ng-staff-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(18px,3vw,36px); }
body.single-salon .ng-staff-grid article { min-width: 0; }
body.single-salon .ng-staff-grid img { width: 100%; aspect-ratio: 4/5; object-fit: cover; margin-bottom: 24px; }
body.single-salon .ng-staff-grid h3 { margin: 7px 0 12px; font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: 24px; font-weight: 400; }
body.single-salon .ng-staff-grid p { color: var(--ng-muted); font-size: 12px; line-height: 1.8; }
body.single-salon .ng-staff-grid a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid var(--ng-border); font-size: 11px; }

body.single-salon .ng-editor-note { padding: clamp(90px,10vw,140px) 20px; background: #e9e3dc; }
body.single-salon .ng-editor-note > div { width: min(100%,820px); margin: 0 auto; }
body.single-salon .ng-editor-note h2 { margin: 0 0 26px; font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(28px,4vw,42px); font-weight: 400; }
body.single-salon .ng-editor-note p:last-child { margin-bottom: 0; color: #57514c; line-height: 2.1; }

body.single-salon .ng-access__map { min-height: 520px; aspect-ratio: auto; }
body.single-salon .ng-salon-final .ng-salon-actions { justify-content: center; }
body.single-salon .ng-salon-final .ng-button--outline { min-width: 150px; }
body.single-salon .ng-mobile-reserve { transition: transform .35s var(--ng-ease),opacity .35s ease; }
body.single-salon .ng-mobile-reserve.is-near-final { opacity: 0; transform: translateY(120%); pointer-events: none; }

@media (max-width:1024px) {
	body.single-salon .ng-salon-hero { grid-template-columns: minmax(330px,40%) minmax(0,60%); }
	body.single-salon .ng-salon-recommended { grid-template-columns: 1fr; gap: 40px; }
	body.single-salon .ng-staff-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width:700px) {
	body.single-salon .ng-salon-hero { display:flex; }
	body.single-salon .ng-salon-hero__summary { margin-top:-10px; color:var(--ng-muted); }
	body.single-salon .ng-salon-hero .ng-salon-actions { display:grid; grid-template-columns:1fr; }
	body.single-salon .ng-salon-hero .ng-button { width:100%; }
	body.single-salon .ng-salon-recommended { display:block; }
	body.single-salon .ng-salon-recommended .ng-section-heading { margin-bottom:42px; }
	body.single-salon .ng-salon-designs { width:100%; padding-inline:20px; }
	body.single-salon .ng-staff-grid { margin-right:-20px; display:grid; grid-auto-flow:column; grid-auto-columns:min(82vw,330px); grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; }
	body.single-salon .ng-staff-grid article { scroll-snap-align:start; }
	body.single-salon .ng-access__map { min-height:0; aspect-ratio:1/.88; }
	body.single-salon .ng-salon-final .ng-salon-actions { display:grid; grid-template-columns:1fr; width:min(100%,340px); margin-inline:auto; }
	body.single-salon .ng-salon-final .ng-button { width:100%; min-height:54px; }
}

/* Salon Hero v3 — immersive first view
   ================================================================ */

body.single-salon .ng-salon-hero {
	width: 100%;
	min-height: clamp(720px, 92svh, 980px);
	display: grid;
	grid-template-columns: minmax(340px, 31%) minmax(0, 69%);
	align-items: stretch;
	gap: 0;
	padding: 0;
	background: #211f1d;
}

body.single-salon .ng-salon-hero__content {
	position: relative;
	z-index: 2;
	min-width: 0;
	padding: clamp(138px, 15vh, 190px) clamp(34px, 4.5vw, 72px) clamp(46px, 7vh, 78px) max(32px, calc((100vw - var(--ng-content)) / 2));
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: #fff;
}

body.single-salon .ng-salon-hero__content::before {
	display: none;
}

body.single-salon .ng-salon-hero__meta {
	margin-bottom: clamp(30px, 4vh, 48px);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}

body.single-salon .ng-salon-hero__meta .ng-eyebrow,
body.single-salon .ng-salon-hero__meta .ng-demo-label {
	margin: 0;
}

body.single-salon .ng-salon-hero__meta .ng-eyebrow {
	color: rgba(255,255,255,.52);
	font-size: 9px;
	font-weight: 500;
	letter-spacing: .24em;
}

body.single-salon .ng-demo-label {
	padding: 6px 9px;
	border-color: rgba(255,255,255,.24);
	color: rgba(255,255,255,.72);
	font-size: 9px;
	letter-spacing: .1em;
}

body.single-salon .ng-salon-hero h1 {
	max-width: 7.5em;
	margin: 0 0 clamp(24px, 3vh, 34px);
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	font-size: clamp(44px, 5vw, 84px);
	font-weight: 200;
	letter-spacing: -.06em;
	line-height: 1.07;
	text-wrap: balance;
	word-break: keep-all;
	overflow-wrap: anywhere;
}

body.single-salon .ng-salon-hero__location {
	order: initial;
	margin: 0 0 18px;
	color: rgba(255,255,255,.56);
	font-size: 10px;
	letter-spacing: .12em;
	line-height: 1.7;
	text-transform: uppercase;
}

body.single-salon .ng-salon-hero__catch {
	max-width: 36em;
	margin: 0 0 24px;
	display: -webkit-box;
	overflow: hidden;
	color: rgba(255,255,255,.72);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(13px, 1.15vw, 16px);
	font-weight: 400;
	line-height: 1.9;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

body.single-salon .ng-salon-hero .ng-tag-list {
	margin: 0 0 clamp(30px, 4vh, 42px);
	gap: 7px;
}

body.single-salon .ng-salon-hero .ng-tag-list li {
	padding: 6px 10px;
	border-color: rgba(255,255,255,.18);
	background: transparent;
	color: rgba(255,255,255,.7);
	font-size: 10px;
	backdrop-filter: none;
}

body.single-salon .ng-salon-hero .ng-salon-actions {
	display: grid;
	grid-template-columns: minmax(170px, 1fr) auto;
	gap: 10px;
}

body.single-salon .ng-salon-hero .ng-button {
	min-height: 54px;
	padding-inline: 22px;
	justify-content: space-between;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
}

body.single-salon .ng-salon-hero .ng-button span {
	display: inline-block;
	margin-left: 22px;
	transition: transform .4s var(--ng-ease);
}

body.single-salon .ng-salon-hero .ng-button:hover span,
body.single-salon .ng-salon-hero .ng-button:focus-visible span {
	transform: translateX(4px);
}

body.single-salon .ng-salon-hero .ng-button--primary:hover {
	background: #a9757a;
}

body.single-salon .ng-salon-hero .ng-button--outline {
	border-color: rgba(255,255,255,.28);
	background: transparent;
	color: rgba(255,255,255,.84);
}

body.single-salon .ng-salon-hero__scroll {
	position: absolute;
	right: -52px;
	bottom: clamp(28px, 4vh, 46px);
	z-index: 3;
	display: flex;
	align-items: center;
	gap: 13px;
	color: rgba(255,255,255,.66);
	font-size: 8px;
	letter-spacing: .18em;
	writing-mode: vertical-rl;
}

body.single-salon .ng-salon-hero__scroll i {
	width: 1px;
	height: 34px;
	display: block;
	background: rgba(255,255,255,.4);
}

body.single-salon .ng-salon-hero__visual {
	position: relative;
	min-width: 0;
	min-height: inherit;
	aspect-ratio: auto;
	max-height: none;
	overflow: hidden;
	border-radius: 0;
	background: #d4cbc1;
}

body.single-salon .ng-salon-hero__visual::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(33,31,29,.1), transparent 22%);
	pointer-events: none;
}

body.single-salon .ng-salon-hero__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ng-salon-image-position, 50% 50%);
	transform: none;
}

body.single-salon .ng-salon-hero__caption {
	right: 26px;
	bottom: 25px;
	color: rgba(255,255,255,.62);
}

@keyframes ng-salon-hero-image-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ng-salon-hero-copy-in {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}

body.single-salon .ng-salon-hero__visual {
	animation: ng-salon-hero-image-in 1.15s cubic-bezier(.22,1,.36,1) both;
}

body.single-salon .ng-salon-hero__meta,
body.single-salon .ng-salon-hero h1,
body.single-salon .ng-salon-hero__location,
body.single-salon .ng-salon-hero__catch,
body.single-salon .ng-salon-hero .ng-tag-list,
body.single-salon .ng-salon-hero .ng-salon-actions,
body.single-salon .ng-salon-hero__scroll {
	animation: ng-salon-hero-copy-in .9s cubic-bezier(.22,1,.36,1) both;
}

body.single-salon .ng-salon-hero__meta { animation-delay: .12s; }
body.single-salon .ng-salon-hero h1 { animation-delay: .18s; }
body.single-salon .ng-salon-hero__location { animation-delay: .25s; }
body.single-salon .ng-salon-hero__catch { animation-delay: .31s; }
body.single-salon .ng-salon-hero .ng-tag-list { animation-delay: .38s; }
body.single-salon .ng-salon-hero .ng-salon-actions { animation-delay: .48s; }
body.single-salon .ng-salon-hero__scroll { animation-delay: .6s; }

@media (max-width: 1024px) {
	body.single-salon .ng-salon-hero {
		min-height: clamp(690px, 88svh, 880px);
		grid-template-columns: minmax(320px, 36%) minmax(0, 64%);
	}

	body.single-salon .ng-salon-hero__content {
		padding-inline: 32px;
	}

	body.single-salon .ng-salon-hero h1 {
		font-size: clamp(42px, 5.6vw, 64px);
	}

	body.single-salon .ng-salon-hero .ng-salon-actions {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 700px) {
	body.single-salon .ng-salon-hero {
		min-height: 0;
		display: flex;
		flex-direction: column;
		background: var(--ng-ivory);
	}

	body.single-salon .ng-salon-hero__visual {
		order: 1;
		width: 100%;
		height: clamp(430px, 56svh, 590px);
		min-height: 0;
		aspect-ratio: auto;
	}

	body.single-salon .ng-salon-hero__visual::after {
		background: linear-gradient(0deg, rgba(33,31,29,.12), transparent 28%);
	}

	body.single-salon .ng-salon-hero__content {
		order: 2;
		padding: 34px 20px 60px;
		display: flex;
		color: var(--ng-charcoal);
	}

	body.single-salon .ng-salon-hero__meta {
		margin-bottom: 24px;
		gap: 10px 12px;
	}

	body.single-salon .ng-salon-hero__meta .ng-eyebrow {
		color: var(--ng-rose);
	}

	body.single-salon .ng-demo-label {
		border-color: var(--ng-border);
		color: var(--ng-rose);
	}

	body.single-salon .ng-salon-hero h1 {
		max-width: 100%;
		margin-bottom: 20px;
		font-size: clamp(36px, 11vw, 46px);
		line-height: 1.08;
	}

	body.single-salon .ng-salon-hero__location {
		margin-bottom: 13px;
		color: var(--ng-muted);
	}

	body.single-salon .ng-salon-hero__catch {
		margin-bottom: 20px;
		color: var(--ng-muted);
		font-size: 13px;
		line-height: 1.8;
		-webkit-line-clamp: 2;
	}

	body.single-salon .ng-salon-hero .ng-tag-list {
		margin-bottom: 26px;
	}

	body.single-salon .ng-salon-hero .ng-tag-list li {
		border-color: var(--ng-border);
		background: var(--ng-surface);
		color: var(--ng-muted);
	}

	body.single-salon .ng-salon-hero .ng-salon-actions {
		width: 100%;
		display: grid;
		grid-template-columns: 1fr;
	}

	body.single-salon .ng-salon-hero .ng-button {
		width: 100%;
		min-height: 54px;
	}

	body.single-salon .ng-salon-hero .ng-button--outline {
		border-color: rgba(39,37,34,.18);
		color: var(--ng-charcoal);
	}

	body.single-salon .ng-salon-hero__scroll {
		position: static;
		margin-top: 30px;
		align-self: center;
		flex-direction: column;
		color: var(--ng-muted);
		writing-mode: initial;
	}

	body.single-salon .ng-salon-hero__scroll i {
		height: 26px;
		background: var(--ng-greige);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.single-salon .ng-salon-hero__visual,
	body.single-salon .ng-salon-hero__meta,
	body.single-salon .ng-salon-hero h1,
	body.single-salon .ng-salon-hero__location,
	body.single-salon .ng-salon-hero__catch,
	body.single-salon .ng-salon-hero .ng-tag-list,
	body.single-salon .ng-salon-hero .ng-salon-actions,
	body.single-salon .ng-salon-hero__scroll {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/* Salon LP v3 — editorial brand experience
   ================================================================ */
body.single-salon {
	--ng-lp-ink: #201f1d;
	--ng-lp-paper: #f7f4ef;
	--ng-lp-milk: #eee9e2;
	--ng-lp-line: rgba(39,37,34,.13);
}

body.single-salon .ng-salon-single {
	background: var(--ng-lp-paper);
}

body.single-salon .ng-salon-single h2 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
	font-weight: 400;
	letter-spacing: -.04em;
	line-height: 1.45;
}

/* Full-bleed cinematic hero */
body.single-salon .ng-salon-hero {
	position: relative;
	isolation: isolate;
	width: 100%;
	height: max(760px, calc(100svh - 76px));
	min-height: 0;
	display: block;
	overflow: hidden;
	background: #302d29;
}

body.single-salon .ng-salon-hero__visual {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: 0;
	animation: ng-salon-cinema-in 1.35s var(--ng-ease) both;
}

body.single-salon .ng-salon-hero__visual img,
body.single-salon .ng-salon-hero__visual .ng-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--ng-salon-image-position, 50% 50%);
	animation: ng-salon-breathe 16s ease-in-out 1.4s infinite alternate;
}

body.single-salon .ng-salon-hero__visual::after {
	display: none;
}

body.single-salon .ng-salon-hero__shade {
	position: absolute;
	z-index: 1;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(22,20,18,.58) 0%, rgba(22,20,18,.18) 48%, rgba(22,20,18,.04) 75%),
		linear-gradient(0deg, rgba(20,18,17,.54) 0%, transparent 48%);
}

body.single-salon .ng-salon-hero__content {
	position: relative;
	z-index: 2;
	width: min(calc(100% - 80px), 1340px);
	height: 100%;
	margin: 0 auto;
	padding: clamp(86px, 11vh, 132px) 0 clamp(46px, 7vh, 76px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	color: #fff;
}

body.single-salon .ng-salon-hero__meta {
	width: 100%;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

body.single-salon .ng-salon-hero__meta .ng-eyebrow {
	color: rgba(255,255,255,.72);
	font-size: 9px;
	letter-spacing: .3em;
}

body.single-salon .ng-salon-hero .ng-demo-label {
	margin: 0;
	border-color: rgba(255,255,255,.34);
	color: rgba(255,255,255,.8);
}

body.single-salon .ng-salon-hero h1 {
	width: min(10em, 88%);
	max-width: none;
	margin: auto 0 clamp(52px, 8vh, 92px);
	font-size: clamp(64px, 9vw, 142px);
	font-weight: 200;
	letter-spacing: -.075em;
	line-height: .94;
	text-shadow: 0 2px 24px rgba(0,0,0,.1);
}

body.single-salon .ng-salon-hero__lower {
	width: 100%;
	padding-top: 24px;
	display: grid;
	grid-template-columns: minmax(0,1fr) auto;
	align-items: end;
	gap: 60px;
	border-top: 1px solid rgba(255,255,255,.32);
}

body.single-salon .ng-salon-hero__location {
	margin: 0 0 10px;
	color: rgba(255,255,255,.68);
	font-size: 10px;
	letter-spacing: .15em;
}

body.single-salon .ng-salon-hero__catch {
	max-width: 500px;
	margin: 0;
	color: #fff;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(15px,1.45vw,20px);
	line-height: 1.8;
	-webkit-line-clamp: 2;
}

body.single-salon .ng-salon-hero .ng-salon-actions {
	display: flex;
	align-items: center;
	gap: 12px;
}

body.single-salon .ng-salon-hero .ng-button {
	min-width: 190px;
	min-height: 54px;
	padding-inline: 24px;
}

body.single-salon .ng-salon-hero .ng-button--outline {
	min-width: 150px;
	border-color: rgba(255,255,255,.42);
	background: rgba(20,18,17,.08);
	color: #fff;
	backdrop-filter: blur(8px);
}

body.single-salon .ng-salon-hero__scroll {
	position: absolute;
	right: 0;
	bottom: 40%;
	z-index: 3;
	color: rgba(255,255,255,.68);
}

@keyframes ng-salon-cinema-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes ng-salon-breathe {
	from { transform: scale(1); }
	to { transform: scale(1.025); }
}

/* Brand story */
body.single-salon .ng-salon-story {
	padding: clamp(130px,15vw,220px) max(24px,calc((100vw - 1280px)/2));
	background: var(--ng-lp-paper);
}

body.single-salon .ng-salon-story__intro {
	position: relative;
	width: min(100%,1060px);
	margin: 0 auto clamp(80px,10vw,150px);
}

body.single-salon .ng-salon-story__intro h2 {
	width: min(830px,85%);
	margin: 0;
	font-size: clamp(42px,6.5vw,86px);
	line-height: 1.35;
}

body.single-salon .ng-salon-story__index {
	position: absolute;
	right: 0;
	bottom: -.15em;
	margin: 0;
	color: var(--ng-greige);
	font-family: Georgia,serif;
	font-size: clamp(70px,10vw,140px);
	font-style: italic;
	line-height: 1;
}

body.single-salon .ng-salon-story__body {
	display: grid;
	grid-template-columns: minmax(0,1.18fr) minmax(290px,.62fr);
	align-items: end;
	gap: clamp(54px,8vw,130px);
}

body.single-salon .ng-salon-story__body figure {
	width: 100%;
	aspect-ratio: 1.18/1;
	margin: 0;
	overflow: hidden;
}

body.single-salon .ng-salon-story__body img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

body.single-salon .ng-salon-lead {
	max-width: 460px;
	padding-bottom: 20px;
	color: #514c47;
	font-size: clamp(15px,1.25vw,18px);
	line-height: 2.35;
}

body.single-salon .ng-salon-lead p:nth-child(n+3) {
	display: none;
}

/* Editorial gallery */
body.single-salon .ng-salon-designs {
	width: 100%;
	padding: clamp(110px,13vw,190px) max(24px,calc((100vw - 1320px)/2));
	background: #252321;
	color: #fff;
}

body.single-salon .ng-salon-designs header {
	margin-bottom: clamp(64px,8vw,110px);
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 40px;
}

body.single-salon .ng-salon-designs h2 {
	margin: 0;
	font-size: clamp(38px,5vw,68px);
}

body.single-salon .ng-salon-designs header > p {
	margin: 0 0 8px;
	color: rgba(255,255,255,.48);
	font-size: 10px;
	letter-spacing: .13em;
}

body.single-salon .ng-gallery {
	display: grid;
	grid-template-columns: repeat(12,minmax(0,1fr));
	grid-auto-flow: row;
	grid-auto-columns: auto;
	gap: clamp(12px,1.4vw,22px);
	overflow: visible;
	padding: 0;
}

body.single-salon .ng-gallery figure {
	margin: 0;
	border-radius: 0;
	background: #393532;
}

body.single-salon .ng-gallery__item--1 { grid-column: 1/span 7; grid-row: span 2; aspect-ratio: 1.1/1; }
body.single-salon .ng-gallery__item--2 { grid-column: 8/span 5; aspect-ratio: 1.2/1; margin-top: 14%; }
body.single-salon .ng-gallery__item--3 { grid-column: 8/span 5; aspect-ratio: 1/1.15; }
body.single-salon .ng-gallery__item--4 { grid-column: 1/span 4; aspect-ratio: 1/1.25; margin-top: 12%; }
body.single-salon .ng-gallery__item--5 { grid-column: 5/span 8; aspect-ratio: 1.45/1; }
body.single-salon .ng-gallery__item--6 { grid-column: 3/span 7; aspect-ratio: 1.25/1; }

body.single-salon .ng-gallery a,
body.single-salon .ng-gallery img {
	width: 100%;
	height: 100%;
	display: block;
}

body.single-salon .ng-gallery img {
	object-fit: cover;
	transition: transform 1.1s var(--ng-ease);
}

/* Reasons */
body.single-salon .ng-salon-reasons {
	padding: clamp(130px,15vw,210px) max(24px,calc((100vw - 1200px)/2));
	background: var(--ng-lp-milk);
}

body.single-salon .ng-salon-reasons__heading {
	width: min(100%,760px);
	margin: 0 auto clamp(80px,10vw,140px);
	text-align: center;
}

body.single-salon .ng-salon-reasons__heading h2 {
	margin: 0 0 28px;
	font-size: clamp(40px,5.2vw,68px);
}

body.single-salon .ng-salon-reasons__heading > p:last-child {
	color: var(--ng-muted);
	font-size: 13px;
}

body.single-salon .ng-salon-reasons .ng-feature-grid {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 0 7vw;
	border: 0;
	background: transparent;
}

body.single-salon .ng-salon-reasons .ng-feature-item {
	min-height: 260px;
	padding: 46px 0 54px;
	display: grid;
	grid-template-columns: 62px 1fr;
	align-items: start;
	gap: 28px;
	border-top: 1px solid rgba(39,37,34,.22);
	background: transparent;
}

body.single-salon .ng-salon-reasons .ng-feature-item span {
	margin: 6px 0 0;
	color: var(--ng-rose);
	font-family: Georgia,serif;
	font-size: 18px;
	font-style: italic;
}

body.single-salon .ng-salon-reasons .ng-feature-item h3 {
	margin-bottom: 18px;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(22px,2.2vw,31px);
	font-weight: 400;
}

body.single-salon .ng-salon-reasons .ng-feature-item p {
	max-width: 390px;
	font-size: 13px;
	line-height: 2;
}

body.single-salon .ng-reasons-fit {
	margin-top: clamp(60px,8vw,110px);
	padding: 30px 0;
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 40px;
	border-block: 1px solid rgba(39,37,34,.18);
}

body.single-salon .ng-reasons-fit > p {
	margin: 8px 0 0;
	color: var(--ng-rose);
	font-size: 9px;
	letter-spacing: .2em;
}

body.single-salon .ng-reasons-fit ul {
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	list-style: none;
}

body.single-salon .ng-reasons-fit li {
	color: #554f4a;
	font-size: 12px;
}

body.single-salon .ng-reasons-fit li::before {
	content: "—";
	margin-right: 9px;
	color: var(--ng-rose);
}

/* Treatment menu */
body.single-salon .ng-salon-menu-section {
	width: 100%;
	padding: clamp(130px,15vw,210px) max(24px,calc((100vw - 1120px)/2));
	display: grid;
	grid-template-columns: minmax(260px,.65fr) minmax(0,1.35fr);
	align-items: start;
	gap: clamp(70px,10vw,150px);
	background: var(--ng-lp-paper);
}

body.single-salon .ng-salon-menu-section__heading {
	position: sticky;
	top: 120px;
}

body.single-salon .ng-salon-menu-section__heading h2 {
	margin: 0 0 30px;
	font-size: clamp(36px,4.4vw,58px);
}

body.single-salon .ng-salon-menu-section__heading > p:last-child {
	max-width: 300px;
	color: var(--ng-muted);
	font-size: 12px;
	line-height: 2;
}

body.single-salon .ng-menu-list {
	border-top-color: var(--ng-lp-line);
}

body.single-salon .ng-menu-item {
	min-height: 170px;
	padding: 34px 0;
	grid-template-columns: 42px 1fr auto;
	align-items: start;
	gap: 22px;
}

body.single-salon .ng-menu-item__number {
	padding-top: 7px;
	color: var(--ng-greige);
	font-family: Georgia,serif;
	font-size: 13px;
	font-style: italic;
}

body.single-salon .ng-menu-item h3 {
	margin-bottom: 12px;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(20px,2vw,27px);
	font-weight: 400;
}

body.single-salon .ng-menu-item p {
	max-width: 420px;
	line-height: 1.9;
}

body.single-salon .ng-menu-item__meta {
	min-width: 110px;
	text-align: right;
}

body.single-salon .ng-menu-item__price {
	color: var(--ng-charcoal);
	font-family: "Helvetica Neue",Arial,sans-serif;
	font-size: 18px;
	font-weight: 400;
}

body.single-salon .ng-menu-item__popular {
	margin-bottom: 8px;
	color: var(--ng-rose);
}

/* Artists */
body.single-salon .ng-salon-staff {
	padding: clamp(120px,14vw,200px) max(24px,calc((100vw - 1280px)/2));
	background: #ded7cf;
}

body.single-salon .ng-salon-staff > header {
	width: min(100%,700px);
	margin-bottom: clamp(64px,8vw,110px);
}

body.single-salon .ng-salon-staff h2 {
	margin: 0;
	font-size: clamp(40px,5.2vw,68px);
}

body.single-salon .ng-salon-staff .ng-staff-grid {
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: clamp(24px,4vw,56px);
}

body.single-salon .ng-salon-staff .ng-staff-grid article {
	display: block;
}

body.single-salon .ng-salon-staff .ng-staff-grid article:nth-child(even) {
	margin-top: 90px;
}

body.single-salon .ng-staff-grid figure {
	margin: 0;
	aspect-ratio: 4/5;
	overflow: hidden;
}

body.single-salon .ng-staff-grid img {
	height: 100%;
	margin: 0;
	object-fit: cover;
}

body.single-salon .ng-staff-card__copy {
	padding: 26px 8px 10px 0;
}

body.single-salon .ng-staff-card__copy h3 {
	margin: 7px 0 18px;
	font-size: clamp(25px,2.5vw,35px);
}

body.single-salon .ng-staff-card__role {
	color: var(--ng-rose) !important;
	font-size: 9px !important;
	letter-spacing: .16em;
}

body.single-salon .ng-staff-card__specialty {
	color: #4d4843 !important;
}

/* Access as a destination */
body.single-salon .ng-access {
	padding: clamp(120px,14vw,190px) max(24px,calc((100vw - 1280px)/2));
	background: var(--ng-lp-paper);
}

body.single-salon .ng-access__heading {
	margin-bottom: clamp(60px,8vw,100px);
}

body.single-salon .ng-access__heading h2 {
	margin: 0;
	font-size: clamp(40px,5vw,66px);
}

body.single-salon .ng-access__grid {
	display: grid;
	grid-template-columns: minmax(300px,.7fr) minmax(0,1.3fr);
	align-items: stretch;
	gap: clamp(50px,7vw,100px);
}

body.single-salon .ng-access__copy {
	padding: 10px 0;
	display: flex;
	flex-direction: column;
}

body.single-salon .ng-access__address {
	margin-bottom: 10px;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(20px,2vw,27px);
	line-height: 1.7;
}

body.single-salon .ng-access__station {
	margin-bottom: 34px;
	color: var(--ng-muted);
	font-size: 12px;
}

body.single-salon .ng-access__route {
	margin-bottom: 34px;
	color: var(--ng-muted);
	font-size: 12px;
	line-height: 1.9;
}

body.single-salon .ng-access dl {
	margin: auto 0 34px;
	border-top: 1px solid var(--ng-lp-line);
}

body.single-salon .ng-access dl > div {
	padding: 13px 0;
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 15px;
	border-bottom: 1px solid var(--ng-lp-line);
	font-size: 11px;
}

body.single-salon .ng-access dt {
	color: var(--ng-muted);
	font-weight: 400;
}

body.single-salon .ng-access dd {
	margin: 0;
}

body.single-salon .ng-access__copy .ng-access__website {
	margin-top: 0;
	font-size: inherit;
	letter-spacing: inherit;
}

body.single-salon .ng-access__map {
	min-height: 620px;
	aspect-ratio: auto;
	filter: saturate(.65) contrast(.94);
}

body.single-salon .ng-access__map iframe {
	width: 100%;
	height: 100%;
}

body.single-salon .ng-access__map-link {
	width: fit-content;
	padding-bottom: 6px;
	border-bottom: 1px solid var(--ng-charcoal);
	font-size: 11px;
	letter-spacing: .08em;
}

/* Final reservation */
body.single-salon .ng-salon-final {
	position: relative;
	min-height: min(820px,88svh);
	padding: clamp(110px,16vw,210px) 24px;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: #1e1d1b;
	color: #fff;
	text-align: center;
}

body.single-salon .ng-salon-final::before {
	content: "NG";
	position: absolute;
	left: 50%;
	top: 50%;
	color: rgba(255,255,255,.025);
	font-family: Georgia,serif;
	font-size: min(48vw,680px);
	font-weight: 400;
	line-height: .8;
	transform: translate(-50%,-50%);
}

body.single-salon .ng-salon-final.has-background-image {
	background-image:
		linear-gradient(rgba(25,23,21,.7),rgba(25,23,21,.76)),
		var(--ng-cta-image);
	background-position: center;
	background-size: cover;
}

body.single-salon .ng-salon-final.has-background-image::before {
	color: rgba(255,255,255,.035);
}

body.single-salon .ng-salon-final__inner {
	position: relative;
	z-index: 1;
	width: min(100%,900px);
}

body.single-salon .ng-salon-final h2 {
	margin: 0 0 26px;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(44px,6.3vw,82px);
	font-weight: 400;
	line-height: 1.4;
}

body.single-salon .ng-salon-final__name {
	margin-bottom: 54px;
	color: rgba(255,255,255,.48);
	letter-spacing: .16em;
}

body.single-salon .ng-salon-final .ng-salon-actions {
	justify-content: center;
	gap: 12px;
}

body.single-salon .ng-salon-final .ng-button {
	min-width: 190px;
	min-height: 58px;
}

/* Related salons */
body.single-salon .ng-related-salons {
	padding: clamp(100px,12vw,170px) max(24px,calc((100vw - 1280px)/2));
	background: var(--ng-lp-paper);
}

body.single-salon .ng-related-salons > header {
	margin-bottom: clamp(48px,6vw,80px);
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
}

body.single-salon .ng-related-salons h2 {
	margin: 0;
	font-size: clamp(34px,4.2vw,54px);
}

body.single-salon .ng-related-salons > header > a {
	padding-bottom: 6px;
	border-bottom: 1px solid var(--ng-charcoal);
	font-size: 11px;
}

body.single-salon .ng-related-salons__grid {
	display: grid;
	grid-template-columns: repeat(3,minmax(0,1fr));
	gap: clamp(18px,3vw,40px);
}

body.single-salon .ng-related-salon__image {
	aspect-ratio: 4/5;
	margin-bottom: 22px;
	overflow: hidden;
	background: var(--ng-greige);
}

body.single-salon .ng-related-salon__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .9s var(--ng-ease);
}

body.single-salon .ng-related-salon:hover img {
	transform: scale(1.025);
}

body.single-salon .ng-related-salon > p {
	margin-bottom: 8px;
	color: var(--ng-muted);
	font-size: 9px;
	letter-spacing: .15em;
}

body.single-salon .ng-related-salon h3 {
	margin: 0;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: clamp(18px,2vw,25px);
	font-weight: 400;
}

@media (max-width: 1024px) {
	body.single-salon .ng-salon-hero h1 { font-size: clamp(60px,10vw,104px); }
	body.single-salon .ng-salon-story__body { grid-template-columns: minmax(0,1.05fr) minmax(260px,.7fr); gap: 50px; }
	body.single-salon .ng-salon-menu-section { grid-template-columns: 1fr 1.4fr; gap: 60px; }
	body.single-salon .ng-salon-staff .ng-staff-grid { gap: 24px; }
	body.single-salon .ng-salon-staff .ng-staff-grid article:nth-child(even) { margin-top: 60px; }
	body.single-salon .ng-access__grid { grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 44px; }
}

@media (max-width: 700px) {
	body.single-salon .ng-salon-hero {
		height: max(660px, calc(100svh - 64px));
		min-height: 0;
		display: block;
		background: #302d29;
	}

	body.single-salon .ng-salon-hero__shade {
		background: linear-gradient(0deg,rgba(20,18,17,.68) 0%,rgba(20,18,17,.14) 58%,rgba(20,18,17,.18) 100%);
	}

	body.single-salon .ng-salon-hero__content {
		width: calc(100% - 40px);
		padding: 88px 0 42px;
		display: flex;
		color: #fff;
	}

	body.single-salon .ng-salon-hero__meta {
		margin: 0;
	}

	body.single-salon .ng-salon-hero__meta .ng-eyebrow {
		color: rgba(255,255,255,.72);
	}

	body.single-salon .ng-salon-hero .ng-demo-label {
		margin: 0;
		border-color: rgba(255,255,255,.32);
		color: rgba(255,255,255,.8);
	}

	body.single-salon .ng-salon-hero h1 {
		width: 100%;
		margin: auto 0 34px;
		font-size: clamp(46px,15vw,67px);
		line-height: .98;
		color: #fff;
	}

	body.single-salon .ng-salon-hero__lower {
		padding-top: 18px;
		display: block;
	}

	body.single-salon .ng-salon-hero__location {
		color: rgba(255,255,255,.64);
	}

	body.single-salon .ng-salon-hero__catch {
		max-width: 90%;
		margin-bottom: 24px;
		color: #fff;
		font-size: 13px;
		line-height: 1.8;
		-webkit-line-clamp: 2;
	}

	body.single-salon .ng-salon-hero .ng-salon-actions {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 8px;
	}

	body.single-salon .ng-salon-hero .ng-button {
		width: auto;
		min-width: 0;
		min-height: 50px;
	}

	body.single-salon .ng-salon-hero .ng-button--outline {
		min-width: 124px;
		color: #fff;
	}

	body.single-salon .ng-salon-hero__scroll {
		display: none;
	}

	body.single-salon .ng-salon-story {
		padding: 100px 20px 110px;
	}

	body.single-salon .ng-salon-story__intro {
		margin-bottom: 64px;
	}

	body.single-salon .ng-salon-story__intro h2 {
		width: 100%;
		font-size: 36px;
		line-height: 1.55;
	}

	body.single-salon .ng-salon-story__index {
		position: static;
		margin-top: 30px;
		font-size: 62px;
		text-align: right;
	}

	body.single-salon .ng-salon-story__body {
		display: flex;
		flex-direction: column;
		gap: 46px;
	}

	body.single-salon .ng-salon-story__body figure {
		width: calc(100% + 20px);
		aspect-ratio: 4/5;
	}

	body.single-salon .ng-salon-lead {
		padding: 0;
		font-size: 14px;
		line-height: 2.2;
	}

	body.single-salon .ng-salon-designs {
		padding: 100px 20px 110px;
	}

	body.single-salon .ng-salon-designs header {
		margin-bottom: 54px;
		display: block;
	}

	body.single-salon .ng-salon-designs h2 {
		font-size: 37px;
	}

	body.single-salon .ng-salon-designs header > p {
		margin-top: 22px;
	}

	body.single-salon .ng-gallery {
		margin-right: -20px;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 78vw;
		grid-template-columns: none;
		grid-template-rows: 1fr;
		gap: 12px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	body.single-salon .ng-gallery .ng-gallery__item {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 4/5;
		margin: 0;
		scroll-snap-align: start;
	}

	body.single-salon .ng-salon-reasons {
		padding: 100px 20px 110px;
	}

	body.single-salon .ng-salon-reasons__heading {
		margin-bottom: 64px;
		text-align: left;
	}

	body.single-salon .ng-salon-reasons__heading h2 {
		font-size: 36px;
	}

	body.single-salon .ng-salon-reasons .ng-feature-grid {
		display: block;
	}

	body.single-salon .ng-salon-reasons .ng-feature-item {
		min-height: 0;
		padding: 34px 0 40px;
		grid-template-columns: 42px 1fr;
		gap: 18px;
	}

	body.single-salon .ng-reasons-fit {
		margin-top: 56px;
		display: block;
	}

	body.single-salon .ng-reasons-fit > p {
		margin-bottom: 22px;
	}

	body.single-salon .ng-reasons-fit ul {
		display: block;
	}

	body.single-salon .ng-reasons-fit li {
		margin-bottom: 12px;
	}

	body.single-salon .ng-salon-menu-section {
		padding: 100px 20px 110px;
		display: block;
	}

	body.single-salon .ng-salon-menu-section__heading {
		position: static;
		margin-bottom: 64px;
	}

	body.single-salon .ng-salon-menu-section__heading h2 {
		font-size: 36px;
	}

	body.single-salon .ng-menu-item {
		min-height: 0;
		padding: 28px 0 32px;
		grid-template-columns: 30px 1fr;
		gap: 16px;
	}

	body.single-salon .ng-menu-item__meta {
		grid-column: 2;
		display: flex;
		align-items: center;
		justify-content: space-between;
		text-align: left;
	}

	body.single-salon .ng-salon-staff {
		padding: 100px 20px 110px;
	}

	body.single-salon .ng-salon-staff h2 {
		font-size: 36px;
	}

	body.single-salon .ng-salon-staff .ng-staff-grid {
		margin-right: -20px;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 82vw;
		grid-template-columns: none;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	body.single-salon .ng-salon-staff .ng-staff-grid article,
	body.single-salon .ng-salon-staff .ng-staff-grid article:nth-child(even) {
		margin: 0;
		display: block;
		scroll-snap-align: start;
	}

	body.single-salon .ng-staff-card__copy {
		padding: 24px 10px 10px 0;
	}

	body.single-salon .ng-access {
		padding: 100px 20px 110px;
	}

	body.single-salon .ng-access__heading h2 {
		font-size: 36px;
	}

	body.single-salon .ng-access__grid {
		display: flex;
		flex-direction: column;
		gap: 44px;
	}

	body.single-salon .ng-access__map {
		order: -1;
		width: calc(100% + 40px);
		min-height: 0;
		aspect-ratio: 1/.9;
		margin-left: -20px;
	}

	body.single-salon .ng-salon-final {
		min-height: 720px;
		padding: 110px 20px;
	}

	body.single-salon .ng-salon-final h2 {
		font-size: 39px;
		line-height: 1.5;
	}

	body.single-salon .ng-salon-final .ng-salon-actions {
		display: grid;
		grid-template-columns: 1fr;
		width: min(100%,330px);
	}

	body.single-salon .ng-related-salons {
		padding: 90px 20px 110px;
	}

	body.single-salon .ng-related-salons > header {
		display: block;
	}

	body.single-salon .ng-related-salons > header > a {
		margin-top: 24px;
		display: inline-block;
	}

	body.single-salon .ng-related-salons__grid {
		margin-right: -20px;
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 72vw;
		grid-template-columns: none;
		gap: 14px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
	}

	body.single-salon .ng-related-salon {
		scroll-snap-align: start;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.single-salon .ng-salon-hero__visual,
	body.single-salon .ng-salon-hero__visual img,
	body.single-salon .ng-salon-hero__visual .ng-image-placeholder {
		animation: none !important;
	}
}

/* Nail Guide salon conversion/density refinements — 3.3.3 */
body.single-salon .ng-booking-bar {
	width:min(1120px,calc(100% - 40px));
	margin:0 auto;
	padding:28px 32px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:28px;
	border:1px solid var(--ng-border);
	background:#fff;
}
body.single-salon .ng-booking-bar__copy h2 { margin:5px 0 8px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(24px,2.6vw,36px); font-weight:400; }
body.single-salon .ng-booking-bar__copy > p:last-child { margin:0; color:var(--ng-muted); font-size:12px; line-height:1.8; }
body.single-salon .ng-booking-bar__actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; }
body.single-salon .ng-booking-bar .ng-button { min-height:48px; padding:0 20px; font-size:11px; }

body.single-salon .ng-salon-story,
body.single-salon .ng-salon-reasons,
body.single-salon .ng-salon-designs,
body.single-salon .ng-salon-menu-section,
body.single-salon .ng-salon-staff,
body.single-salon .ng-salon-faq,
body.single-salon .ng-access,
body.single-salon .ng-related-salons { padding-top:clamp(72px,8vw,112px); padding-bottom:clamp(72px,8vw,112px); }
body.single-salon .ng-salon-story__intro h2,
body.single-salon .ng-salon-reasons__heading h2,
body.single-salon .ng-salon-menu-section__heading h2,
body.single-salon .ng-access__heading h2,
body.single-salon .ng-related-salons h2,
body.single-salon .ng-salon-staff h2 { font-size:clamp(30px,4vw,52px); line-height:1.45; }
body.single-salon .ng-salon-lead { max-width:700px; font-size:15px; line-height:2; }
body.single-salon .ng-feature-item h3 { font-size:18px; }
body.single-salon .ng-feature-item p { margin-top:10px; font-size:12px; line-height:1.9; }
body.single-salon .ng-salon-final h2 { font-size:clamp(30px,4vw,50px); }

body.single-salon .ng-salon-faq { width:min(960px,calc(100% - 40px)); margin:0 auto; }
body.single-salon .ng-salon-faq header { margin-bottom:36px; }
body.single-salon .ng-salon-faq h2 { margin:8px 0 0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(30px,4vw,48px); font-weight:400; }
body.single-salon .ng-salon-faq details { border-top:1px solid var(--ng-border); }
body.single-salon .ng-salon-faq details:last-child { border-bottom:1px solid var(--ng-border); }
body.single-salon .ng-salon-faq summary { list-style:none; cursor:pointer; padding:24px 0; display:flex; gap:18px; align-items:flex-start; font-size:15px; line-height:1.7; }
body.single-salon .ng-salon-faq summary::-webkit-details-marker { display:none; }
body.single-salon .ng-salon-faq summary span,
body.single-salon .ng-salon-faq details > div > span { color:var(--ng-rose); font-family:Georgia,serif; font-size:13px; }
body.single-salon .ng-salon-faq details > div { padding:0 0 24px 31px; display:flex; gap:18px; }
body.single-salon .ng-salon-faq details > div p { margin:0; color:var(--ng-muted); font-size:13px; line-height:1.9; }

@media (max-width: 767px) {
	body.single-salon .ng-booking-bar { width:calc(100% - 32px); margin-top:20px; padding:24px 20px; display:block; }
	body.single-salon .ng-booking-bar__copy h2 { font-size:26px; }
	body.single-salon .ng-booking-bar__actions { margin-top:20px; display:grid; grid-template-columns:1fr; }
	body.single-salon .ng-booking-bar .ng-button { width:100%; }
	body.single-salon .ng-salon-story,
	body.single-salon .ng-salon-reasons,
	body.single-salon .ng-salon-designs,
	body.single-salon .ng-salon-menu-section,
	body.single-salon .ng-salon-staff,
	body.single-salon .ng-salon-faq,
	body.single-salon .ng-access,
	body.single-salon .ng-related-salons { padding-top:64px; padding-bottom:64px; }
	body.single-salon .ng-salon-story__intro h2,
	body.single-salon .ng-salon-reasons__heading h2,
	body.single-salon .ng-salon-menu-section__heading h2,
	body.single-salon .ng-access__heading h2,
	body.single-salon .ng-related-salons h2,
	body.single-salon .ng-salon-staff h2,
	body.single-salon .ng-salon-faq h2 { font-size:30px; line-height:1.5; }
	body.single-salon .ng-salon-hero h1 { font-size:clamp(34px,10vw,44px) !important; }
	body.single-salon .ng-salon-final h2 { font-size:30px !important; }
	body.single-salon .ng-mobile-reserve { display:block; }
	body.single-salon { padding-bottom:68px; }
}


/* Salon mobile first-view & sticky reserve hotfix v3.3.4
   Restores the immersive demo-style hero on smartphones and guarantees
   that the reserve action remains visible above the browser safe area. */
@media (max-width: 767px) {
	body.single-salon .ng-salon-hero {
		position: relative;
		min-height: min(760px, 88svh);
		display: block;
		background: #211f1d;
		overflow: hidden;
	}

	body.single-salon .ng-salon-hero__visual {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 100%;
		aspect-ratio: auto;
	}

	body.single-salon .ng-salon-hero__visual::after {
		background:
			linear-gradient(180deg, rgba(22,20,18,.08) 0%, rgba(22,20,18,.18) 35%, rgba(22,20,18,.78) 100%),
			linear-gradient(90deg, rgba(22,20,18,.18), transparent 62%);
	}

	body.single-salon .ng-salon-hero__content {
		position: relative;
		z-index: 2;
		min-height: min(760px, 88svh);
		padding: 104px 20px 42px;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		color: #fff;
	}

	body.single-salon .ng-salon-hero__meta {
		margin-bottom: 18px;
	}

	body.single-salon .ng-salon-hero__meta .ng-eyebrow,
	body.single-salon .ng-salon-hero__location,
	body.single-salon .ng-salon-hero__catch {
		color: rgba(255,255,255,.82);
	}

	body.single-salon .ng-salon-hero h1 {
		max-width: 9em;
		margin-bottom: 18px;
		color: #fff;
		font-size: clamp(34px, 10.5vw, 46px) !important;
		line-height: 1.04;
		text-shadow: 0 2px 18px rgba(0,0,0,.2);
	}

	body.single-salon .ng-salon-hero__catch {
		max-width: 31em;
		margin-bottom: 18px;
		font-size: 13px;
		line-height: 1.75;
		-webkit-line-clamp: 3;
	}

	body.single-salon .ng-salon-hero .ng-salon-actions {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, .72fr);
		gap: 9px;
		width: 100%;
	}

	body.single-salon .ng-salon-hero .ng-button {
		min-height: 48px;
		padding-inline: 16px;
		border-radius: 999px;
		font-size: 11px;
	}

	body.single-salon .ng-salon-hero .ng-button--primary {
		background: var(--ng-rose);
		color: #fff;
	}

	body.single-salon .ng-salon-hero .ng-button--outline {
		border-color: rgba(255,255,255,.48);
		background: rgba(25,22,20,.18);
		color: #fff;
		backdrop-filter: blur(8px);
	}

	body.single-salon .ng-salon-hero__scroll {
		display: none;
	}

	body.single-salon .ng-booking-bar {
		margin-top: 0;
	}

	body.single-salon .ng-mobile-reserve {
		position: fixed !important;
		z-index: 9999 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		width: 100% !important;
		padding: 9px 14px calc(9px + env(safe-area-inset-bottom)) !important;
		display: block !important;
		visibility: visible !important;
		opacity: 1;
		transform: none;
		background: rgba(255,252,248,.96);
		border-top: 1px solid rgba(39,37,34,.1);
		box-shadow: 0 -8px 24px rgba(35,30,28,.08);
		backdrop-filter: blur(16px);
	}

	body.single-salon .ng-mobile-reserve a {
		width: 100%;
		min-height: 50px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
		background: var(--ng-rose);
		color: #fff;
		font-size: 13px;
		font-weight: 600;
		letter-spacing: .04em;
		box-shadow: 0 8px 18px color-mix(in srgb, var(--ng-salon-accent) 22%, transparent);
	}

	body.single-salon .ng-mobile-reserve.is-near-final {
		opacity: 1;
		transform: none;
		pointer-events: auto;
	}

	body.single-salon {
		padding-bottom: calc(78px + env(safe-area-inset-bottom));
	}
}

/* Nail Guide salon polish v3.4.3 — verified production selectors */
body.single-salon .ng-menu-panel { min-width: 0; }
body.single-salon .ng-menu-more {
	margin-top: 64px;
	text-align: center;
}
body.single-salon .ng-menu-more > a,
body.single-salon .ng-menu-more > a:link,
body.single-salon .ng-menu-more > a:visited,
body.single-salon .ng-menu-more > a:hover,
body.single-salon .ng-menu-more > a:focus {
	width: 100%;
	min-height: 62px;
	padding: 15px 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	border: 1.5px solid var(--ng-salon-accent);
	border-radius: 999px;
	background: transparent;
	color: var(--ng-salon-accent) !important;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .02em;
	line-height: 1.45;
	text-decoration: none;
	box-shadow: none;
}
body.single-salon .ng-menu-more > a:hover { background: color-mix(in srgb, var(--ng-salon-accent) 8%, transparent); }
body.single-salon .ng-menu-more > a span { font-size: 20px; line-height: 1; }
body.single-salon .ng-menu-more > p {
	margin: 24px auto 0;
	color: #85817d;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.85;
	text-align: center;
}

body.single-salon .ng-related-salons__lead {
	margin: 14px 0 0;
	color: var(--ng-muted);
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: 15px;
}
body.single-salon .ng-related-salons__grid { align-items: stretch; }
body.single-salon .ng-related-salon {
	height: 100%;
	padding: 10px;
	display: flex;
	flex-direction: column;
	border: 1px solid rgba(255,255,255,.78);
	border-radius: 24px;
	background: linear-gradient(145deg,rgba(255,255,255,.78),rgba(255,255,255,.48));
	box-shadow: 0 18px 44px rgba(53,45,40,.09), inset 0 1px 0 rgba(255,255,255,.92);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	overflow: hidden;
	transition: transform .4s var(--ng-ease), box-shadow .4s ease;
}
body.single-salon .ng-related-salon:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 52px rgba(53,45,40,.13), inset 0 1px 0 rgba(255,255,255,.96);
}
body.single-salon .ng-related-salon__image {
	aspect-ratio: 4/3.35;
	margin: 0;
	border-radius: 17px;
}
body.single-salon .ng-related-salon__body {
	padding: 20px 16px 16px;
	display: flex;
	flex: 1;
	flex-direction: column;
}
body.single-salon .ng-related-salon__location {
	margin: 0 0 8px;
	color: #8a8580;
	font-size: 10px;
	letter-spacing: .06em;
}
body.single-salon .ng-related-salon h3 { margin: 0 0 12px; }
body.single-salon .ng-related-salon__excerpt {
	margin: 0 0 18px;
	display: -webkit-box;
	overflow: hidden;
	color: #77716c;
	font-size: 12px;
	line-height: 1.75;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
body.single-salon .ng-related-salon__more {
	margin-top: auto;
	min-height: 42px;
	padding: 10px 16px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid color-mix(in srgb, var(--ng-salon-accent) 58%, transparent);
	border-radius: 999px;
	color: var(--ng-salon-accent);
	font-size: 11px;
	letter-spacing: .05em;
}
body.single-salon .ng-related-salon__more b { font-size: 16px; font-weight: 400; }

@media (max-width: 767px) {
	body.single-salon .ng-menu-more { margin-top: 56px; }
	body.single-salon .ng-menu-more > a,
	body.single-salon .ng-menu-more > a:link,
	body.single-salon .ng-menu-more > a:visited,
	body.single-salon .ng-menu-more > a:hover,
	body.single-salon .ng-menu-more > a:focus {
		min-height: 58px;
		padding-inline: 18px;
		gap: 10px;
		font-size: 13px;
	}
	body.single-salon .ng-menu-more > p { margin-top: 20px; font-size: 10px; line-height: 1.8; }
	body.single-salon .ng-related-salons > header { margin-bottom: 34px; }
	body.single-salon .ng-related-salons__grid { grid-template-columns: 1fr; gap: 24px; }
	body.single-salon .ng-related-salon { padding: 9px; border-radius: 22px; }
	body.single-salon .ng-related-salon__image { aspect-ratio: 4/3.05; border-radius: 15px; }
	body.single-salon .ng-related-salon__body { padding: 18px 14px 14px; }
	body.single-salon .ng-related-salon h3 { font-size: 22px; }
}

/* ==========================================================
   Nail Guide salon refinements — v3.4.4
   Related salon cards: rounded glass-card presentation
   ========================================================== */
body.single-salon .ng-related-salons {
	background:
		radial-gradient(circle at 12% 8%, rgba(255,255,255,.72), transparent 34%),
		linear-gradient(180deg, #eee8e1 0%, #f5f1ec 100%);
}
body.single-salon .ng-related-salons > header > a,
body.single-salon .ng-related-salons > header > a:link,
body.single-salon .ng-related-salons > header > a:visited {
	color: var(--ng-salon-accent);
	border-bottom-color: color-mix(in srgb, var(--ng-salon-accent) 72%, transparent);
}
body.single-salon .ng-related-salon {
	position: relative;
	isolation: isolate;
	padding: 10px;
	border: 1px solid rgba(255,255,255,.86);
	border-radius: 26px;
	background: linear-gradient(145deg, rgba(255,255,255,.82), rgba(255,255,255,.52));
	box-shadow: 0 18px 46px rgba(54,45,40,.10), inset 0 1px 0 rgba(255,255,255,.96);
	backdrop-filter: blur(20px) saturate(118%);
	-webkit-backdrop-filter: blur(20px) saturate(118%);
}
body.single-salon .ng-related-salon::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	left: 9%;
	width: 64%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent);
}
body.single-salon .ng-related-salon__image {
	aspect-ratio: 4 / 3;
	border-radius: 18px;
	box-shadow: 0 10px 28px rgba(56,47,42,.08);
}
body.single-salon .ng-related-salon__body {
	padding: 22px 18px 18px;
}
body.single-salon .ng-related-salon h3 {
	font-size: clamp(20px,2.1vw,27px);
	line-height: 1.35;
}
body.single-salon .ng-related-salon__more {
	min-height: 44px;
	background: rgba(255,255,255,.38);
	transition: background .3s ease, color .3s ease, border-color .3s ease;
}
body.single-salon .ng-related-salon:hover .ng-related-salon__more {
	background: color-mix(in srgb, var(--ng-salon-accent) 9%, transparent);
	border-color: color-mix(in srgb, var(--ng-salon-accent) 82%, transparent);
	color: var(--ng-salon-accent);
}

@media (max-width: 767px) {
	body.single-salon .ng-related-salons {
		padding-inline: 20px;
	}
	body.single-salon .ng-related-salons > header {
		align-items: flex-end;
		gap: 18px;
	}
	body.single-salon .ng-related-salons h2 {
		font-size: clamp(34px,10vw,44px);
	}
	body.single-salon .ng-related-salons__lead {
		font-size: 14px;
	}
	body.single-salon .ng-related-salons > header > a {
		flex: 0 0 auto;
		font-size: 10px;
	}
	body.single-salon .ng-related-salon {
		padding: 9px;
		border-radius: 24px;
		box-shadow: 0 16px 38px rgba(54,45,40,.10), inset 0 1px 0 rgba(255,255,255,.96);
	}
	body.single-salon .ng-related-salon__image {
		aspect-ratio: 4 / 3;
		border-radius: 17px;
	}
	body.single-salon .ng-related-salon__body {
		padding: 19px 15px 15px;
	}
	body.single-salon .ng-related-salon__location {
		font-size: 10px;
	}
	body.single-salon .ng-related-salon h3 {
		margin-bottom: 10px;
		font-size: 22px;
	}
	body.single-salon .ng-related-salon__excerpt {
		margin-bottom: 16px;
		font-size: 11px;
		-webkit-line-clamp: 2;
	}
	body.single-salon .ng-related-salon__more {
		min-height: 42px;
		padding-inline: 15px;
	}
}

/* v3.5.0 — image-free salon introduction with per-salon accent color */
body.single-salon .ng-salon-single {
	--ng-salon-accent: #be8c95;
}

body.single-salon .ng-salon-intro {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: min(860px, 92svh);
	padding: clamp(110px, 16vw, 210px) max(28px, calc((100vw - 1180px) / 2));
	background:
		radial-gradient(circle at 78% 22%, color-mix(in srgb, var(--ng-salon-accent) 24%, transparent), transparent 34%),
		linear-gradient(135deg, #24211f 0%, #2d2926 54%, #1d1b19 100%);
	color: #fff;
}

body.single-salon .ng-salon-intro::before,
body.single-salon .ng-salon-intro::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 999px;
	filter: blur(1px);
	pointer-events: none;
}

body.single-salon .ng-salon-intro::before {
	inset: auto auto -36% -18%;
	width: 58vw;
	max-width: 760px;
	aspect-ratio: 1;
	background: color-mix(in srgb, var(--ng-salon-accent) 16%, transparent);
	filter: blur(90px);
}

body.single-salon .ng-salon-intro::after {
	top: 0;
	left: clamp(22px, 5vw, 70px);
	width: 12px;
	height: 100%;
	border-radius: 0;
	background: linear-gradient(180deg, var(--ng-salon-accent), color-mix(in srgb, var(--ng-salon-accent) 22%, transparent));
	opacity: .72;
}

body.single-salon .ng-salon-intro__glow {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(115deg, transparent 0 48%, rgba(255,255,255,.035) 48% 49%, transparent 49% 100%);
	background-size: 220px 220px;
	animation: ng-intro-drift 18s linear infinite;
}

body.single-salon .ng-salon-intro__inner {
	width: min(100%, 970px);
	margin: 0 auto;
}

body.single-salon .ng-salon-intro__eyebrow {
	margin: 0 0 28px;
	color: var(--ng-salon-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .22em;
}

body.single-salon .ng-salon-intro h2 {
	max-width: 880px;
	margin: 0;
	font-family: "Noto Serif JP", "Yu Mincho", serif;
	font-size: clamp(42px, 7vw, 92px);
	font-weight: 400;
	line-height: 1.34;
	letter-spacing: .015em;
	text-wrap: balance;
}

body.single-salon .ng-salon-intro__copy {
	max-width: 720px;
	margin-top: clamp(38px, 5vw, 66px);
	color: rgba(255,255,255,.76);
	font-size: clamp(15px, 1.4vw, 18px);
	line-height: 2.05;
}

body.single-salon .ng-salon-intro__copy p { margin: 0 0 1.25em; }
body.single-salon .ng-salon-intro__copy p:nth-child(n+3) { display: none; }

body.single-salon .ng-salon-intro__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 30px;
	margin-top: clamp(42px, 6vw, 72px);
	color: rgba(255,255,255,.66);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .2em;
}

body.single-salon .ng-salon-intro__meta span { display: inline-flex; gap: 9px; align-items: center; }
body.single-salon .ng-salon-intro__meta b { color: var(--ng-salon-accent); font-weight: 700; }

body.single-salon .ng-salon-intro__cta {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 52px;
	min-width: min(100%, 390px);
	margin-top: 48px;
	padding: 19px 24px;
	border: 1px solid color-mix(in srgb, var(--ng-salon-accent) 84%, white 16%);
	background: var(--ng-salon-accent);
	color: #fff !important;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
	text-decoration: none;
	transition: transform .35s ease, box-shadow .35s ease, filter .35s ease;
}

body.single-salon .ng-salon-intro__cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 45px color-mix(in srgb, var(--ng-salon-accent) 28%, transparent);
	filter: brightness(1.04);
}

body.single-salon .ng-salon-intro__rail {
	position: absolute;
	right: clamp(18px, 4vw, 58px);
	top: 50%;
	transform: translateY(-50%);
	color: rgba(255,255,255,.42);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .24em;
	writing-mode: vertical-rl;
}

.ng-reveal-ready body.single-salon .ng-salon-intro .ng-salon-intro__eyebrow,
.ng-reveal-ready body.single-salon .ng-salon-intro h2,
.ng-reveal-ready body.single-salon .ng-salon-intro .ng-salon-intro__copy,
.ng-reveal-ready body.single-salon .ng-salon-intro .ng-salon-intro__meta,
.ng-reveal-ready body.single-salon .ng-salon-intro .ng-salon-intro__cta {
	opacity: 0;
	transform: translateY(24px);
}

.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__eyebrow,
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible h2,
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__copy,
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__meta,
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__cta {
	opacity: 1;
	transform: translateY(0);
	transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);
}
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible h2 { transition-delay: .12s; }
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__copy { transition-delay: .24s; }
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__meta { transition-delay: .36s; }
.ng-reveal-ready body.single-salon .ng-salon-intro.is-visible .ng-salon-intro__cta { transition-delay: .48s; }

@keyframes ng-intro-drift { to { background-position: 220px 220px; } }

@media (max-width: 767px) {
	body.single-salon .ng-salon-intro {
		min-height: auto;
		padding: 112px 34px 104px 48px;
	}
	body.single-salon .ng-salon-intro::after { left: 20px; width: 8px; }
	body.single-salon .ng-salon-intro h2 { font-size: clamp(38px, 12vw, 56px); line-height: 1.34; }
	body.single-salon .ng-salon-intro__copy { margin-top: 32px; font-size: 14px; line-height: 1.95; }
	body.single-salon .ng-salon-intro__meta { gap: 14px 18px; margin-top: 38px; font-size: 9px; }
	body.single-salon .ng-salon-intro__cta { width: 100%; min-width: 0; margin-top: 38px; padding: 17px 19px; }
	body.single-salon .ng-salon-intro__rail { right: 11px; font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	body.single-salon .ng-salon-intro__glow { animation: none; }
	.ng-reveal-ready body.single-salon .ng-salon-intro * { transition: none !important; }
}


/* v3.5.1 — use each salon theme color across every accent element */
body.single-salon .ng-salon-single {
	--ng-rose: var(--ng-salon-accent);
}

body.single-salon .ng-salon-single :is(.ng-eyebrow, .ng-menu-item__popular, .ng-feature-item > span, .ng-story-item__number, .ng-salon-recommended li span) {
	color: var(--ng-salon-accent);
}

body.single-salon .ng-salon-single .ng-button--primary,
body.single-salon .ng-salon-single .ng-booking-primary,
body.single-salon .ng-salon-single .ng-salon-intro__cta {
	background-color: var(--ng-salon-accent);
	border-color: var(--ng-salon-accent);
}

body.single-salon .ng-salon-single :is(.ng-button--outline, .ng-menu-more > a, .ng-related-salon__more) {
	border-color: color-mix(in srgb, var(--ng-salon-accent) 68%, transparent);
}

body.single-salon .ng-salon-single .ng-menu-more > a,
body.single-salon .ng-salon-single .ng-related-salon__more,
body.single-salon .ng-salon-single .ng-related-salons > header > a {
	color: var(--ng-salon-accent) !important;
}

body.single-salon .ng-salon-single a:focus-visible,
body.single-salon .ng-salon-single button:focus-visible {
	outline-color: var(--ng-salon-accent);
}

body.single-salon .ng-mobile-reserve {
	--ng-rose: var(--ng-salon-accent, #be8c95);
}
body.single-salon .ng-mobile-reserve a {
	background: var(--ng-salon-accent, #be8c95);
	box-shadow: 0 8px 18px color-mix(in srgb, var(--ng-salon-accent, #be8c95) 22%, transparent);
}

/* ==========================================================
   v3.5.2 urgent fix — related salons mobile layout
   Reset the legacy horizontal carousel rules so added salons
   render as clean full-width stacked cards on small screens.
   ========================================================== */
@media (max-width: 767px) {
	body.single-salon .ng-related-salons__grid {
		width: 100%;
		margin-right: 0;
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-auto-flow: row;
		grid-auto-columns: auto;
		gap: 24px;
		overflow-x: visible;
		scroll-snap-type: none;
	}

	body.single-salon .ng-related-salon {
		width: 100%;
		min-width: 0;
		scroll-snap-align: none;
	}

	body.single-salon .ng-related-salon__image,
	body.single-salon .ng-related-salon__body {
		min-width: 0;
	}
}


/* 3.5.9: archive card accents and shared footer repair */
body.post-type-archive-salon .ng-salon-card h2 {
	color: var(--ng-card-accent, var(--ng-charcoal));
}

body.post-type-archive-salon .ng-salon-card__more b {
	color: var(--ng-card-accent, var(--ng-charcoal));
}

body.post-type-archive-salon .ng-salon-card > a:hover h2,
body.post-type-archive-salon .ng-salon-card > a:hover .ng-salon-card__more b {
	opacity: .78;
}

.ng-footer__container {
	width: min(calc(100% - 40px), 1200px);
	margin-inline: auto;
}

.ng-footer__logo {
	display: inline-flex;
}

.ng-footer__logo img {
	width: auto;
	height: 52px;
	filter: brightness(0) invert(1);
	opacity: .92;
}

.ng-footer__brand > p {
	color: rgba(255,255,255,.68);
}

@media (max-width: 700px) {
	.ng-footer__container {
		width: min(calc(100% - 28px), 1200px);
	}

	.ng-footer__statement {
		min-height: 300px;
	}

	.ng-footer__statement strong {
		font-size: clamp(2rem, 10vw, 2.65rem);
	}

	.ng-footer__top {
		padding-top: 54px;
	}

	.ng-footer__logo img {
		height: 46px;
	}
}


/* 3.6.3: intentional photo-free salon presentation. */
body.single-salon .ng-salon-single.is-photo-empty .ng-salon-hero__visual {
	background:
		radial-gradient(circle at 72% 22%, color-mix(in srgb, var(--ng-salon-accent) 24%, transparent), transparent 30%),
		linear-gradient(145deg, #e9e1d8 0%, #f8f3ed 58%, #ded2c7 100%);
}
body.single-salon .ng-salon-single.is-photo-empty .ng-salon-hero__visual::before {
	content: "NG"; position: absolute; inset: 0; display: grid; place-items: center;
	color: rgba(39,37,34,.08); font-family: Georgia, serif; font-size: clamp(140px, 25vw, 420px);
	font-weight: 400; letter-spacing: -.12em; line-height: 1; transform: translateX(-.04em);
}
body.single-salon .ng-salon-single.is-photo-empty .ng-image-placeholder--hero {
	position: relative; z-index: 1; min-height: 100%; gap: 10px; align-content: center;
	background: transparent; color: rgba(39,37,34,.54); font-family: inherit; text-align: center;
}
body.single-salon .ng-salon-single.is-photo-empty .ng-image-placeholder--hero span {
	font-size: 13px; letter-spacing: .34em;
}
body.single-salon .ng-salon-single.is-photo-empty .ng-image-placeholder--hero small {
	font-size: 9px; letter-spacing: .28em; opacity: .7;
}
body.single-salon .ng-salon-single.is-photo-empty .ng-salon-hero__visual::after {
	background: linear-gradient(90deg, rgba(36,34,31,.08), transparent 42%), linear-gradient(0deg, rgba(20,18,17,.08), transparent 35%);
}

/* ==========================================================
   v3.8.0 — Nail Guide brand cards + career directory
   ========================================================== */
:root {
	--ng-guide-blue: #be8c95;
	--ng-guide-blue-deep: #a9757a;
	--ng-guide-blue-soft: #f7ecee;
}

/* Salon archive: never inherit each salon's theme color. */
body.post-type-archive-salon .ng-salon-card h2,
body.post-type-archive-salon .ng-salon-card__more b,
body.post-type-archive-salon .ng-salon-card > a:hover h2,
body.post-type-archive-salon .ng-salon-card > a:hover .ng-salon-card__more b {
	color: var(--ng-guide-blue-deep);
}

/* Related salon cards use the Nail Guide brand as well. */
body.single-salon .ng-related-salon h3,
body.single-salon .ng-related-salon__more b,
body.single-salon .ng-related-salons > header > a span {
	color: var(--ng-guide-blue-deep);
}

body.single-salon .ng-related-salon:hover h3,
body.single-salon .ng-related-salon:hover .ng-related-salon__more b {
	opacity: .78;
}

/* Jobs page */
body.ng-template-page-jobs .ng-jobs-page {
	background: #fffdfa;
}

body.ng-template-page-jobs .ng-job-search,
body.ng-template-page-jobs .ng-job-list,
body.ng-template-page-jobs .ng-career-cta {
	width: min(calc(100% - 40px), 1200px);
	margin-inline: auto;
}

body.ng-template-page-jobs .ng-job-search {
	margin-top: clamp(52px, 7vw, 92px);
	padding: clamp(26px, 4vw, 48px);
	border: 1px solid #e8e4df;
	border-radius: 28px;
	background: #fff;
	box-shadow: 0 18px 54px rgba(39, 37, 34, .06);
}

.ng-job-search__heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
}

.ng-job-search__heading h2 {
	margin: 4px 0 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(25px, 3.2vw, 40px);
	font-weight: 400;
}

.ng-job-search__reset {
	color: #7f7770;
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.ng-job-search__form {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.ng-job-search__form label {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.ng-job-search__form label > span {
	color: #726b65;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
}

.ng-job-search__form input,
.ng-job-search__form select {
	width: 100%;
	height: 54px;
	padding: 0 16px;
	border: 1px solid #ddd8d2;
	border-radius: 14px;
	background: #fffdfa;
	color: #302d2a;
	font-size: 14px;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.ng-job-search__form input:focus,
.ng-job-search__form select:focus {
	border-color: var(--ng-guide-blue);
	box-shadow: 0 0 0 4px rgba(190, 140, 149, .18);
}

.ng-job-search__keyword {
	grid-column: span 2;
}

.ng-job-search__form button {
	grid-column: span 2;
	height: 54px;
	align-self: end;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 22px;
	border: 0;
	border-radius: 999px;
	background: var(--ng-guide-blue);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: transform .25s ease, background .25s ease;
}

.ng-job-search__form button:hover {
	transform: translateY(-2px);
	background: #a9757a;
}

.ng-job-search__form button b {
	font-size: 18px;
	font-weight: 400;
}

body.ng-template-page-jobs .ng-job-list {
	padding-block: clamp(72px, 9vw, 124px);
}

body.ng-template-page-jobs .ng-job-card-grid .ng-salon-card h2,
body.ng-template-page-jobs .ng-job-card-grid .ng-salon-card__more b {
	color: var(--ng-guide-blue-deep);
}

.ng-job-salon-card__conditions {
	display: grid;
	gap: 7px;
	margin: 0 0 13px;
	padding: 12px 0;
	border-top: 1px solid #eeeae5;
	border-bottom: 1px solid #eeeae5;
}

.ng-job-salon-card__conditions p {
	margin: 0;
	color: #4d4945;
	font-size: 12px;
	line-height: 1.55;
}

.ng-job-salon-card__conditions span {
	display: inline-block;
	min-width: 62px;
	margin-right: 9px;
	color: #8b837c;
	font-size: 10px;
	letter-spacing: .04em;
}

body.ng-template-page-jobs .ng-career-cta {
	margin-bottom: clamp(72px, 9vw, 120px);
	padding: clamp(34px, 5vw, 64px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	border-radius: 28px;
	background: var(--ng-guide-blue-soft);
}

body.ng-template-page-jobs .ng-career-cta h2 {
	margin: 8px 0 14px;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(25px, 3vw, 38px);
	font-weight: 400;
	line-height: 1.45;
}

body.ng-template-page-jobs .ng-career-cta p { margin: 0; }

@media (max-width: 900px) {
	.ng-job-search__form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ng-job-search__keyword { grid-column: span 2; }
}

@media (max-width: 600px) {
	body.ng-template-page-jobs .ng-job-search,
	body.ng-template-page-jobs .ng-job-list,
	body.ng-template-page-jobs .ng-career-cta { width: min(calc(100% - 28px), 1200px); }
	body.ng-template-page-jobs .ng-job-search { padding: 22px 16px; border-radius: 20px; }
	.ng-job-search__heading { align-items: flex-start; margin-bottom: 20px; }
	.ng-job-search__form { grid-template-columns: 1fr; gap: 12px; }
	.ng-job-search__keyword,
	.ng-job-search__form button { grid-column: auto; }
	.ng-job-search__form input,
	.ng-job-search__form select,
	.ng-job-search__form button { height: 52px; }
	body.ng-template-page-jobs .ng-career-cta { align-items: flex-start; flex-direction: column; padding: 28px 22px; border-radius: 20px; }
}


/* v3.9.0 — definitive Nail Guide rose brand and real job system. */
:root {
	--ng-brand: #be8c95;
	--ng-brand-deep: #a9757a;
	--ng-brand-soft: #f7ecee;
}
body.post-type-archive-salon .ng-salon-card h2,
body.post-type-archive-salon .ng-salon-card__more,
body.post-type-archive-salon .ng-salon-card__more b,
body.single-salon .ng-related-salon h3,
body.single-salon .ng-related-salon__more,
body.single-salon .ng-related-salon__more b,
body.single-salon .ng-related-salons > header > a,
body.single-salon .ng-related-salons > header > a span,
body.ng-template-page-jobs .ng-job-card-grid .ng-salon-card h2,
body.ng-template-page-jobs .ng-job-card-grid .ng-salon-card__more,
body.ng-template-page-jobs .ng-job-card-grid .ng-salon-card__more b {
	color: var(--ng-brand-deep) !important;
}
body.ng-template-page-jobs .ng-career-cta { background: var(--ng-brand-soft); }
body.ng-template-page-jobs .ng-global-button--primary,
.ng-job-search__form button { background: var(--ng-brand); color: #fff; }
body.ng-template-page-jobs .ng-global-button--primary:hover,
.ng-job-search__form button:hover { background: var(--ng-brand-deep); }
.ng-job-search__form input:focus,
.ng-job-search__form select:focus { border-color: var(--ng-brand); box-shadow: 0 0 0 4px rgba(190,140,149,.18); }
.ng-job-salon-card__salon { margin: 0 0 5px; color: #7f7770; font-size: 11px; letter-spacing: .04em; }

.ng-job-detail { background: #fffdfa; color: var(--ng-charcoal); }
.ng-job-detail__hero { min-height: 680px; display: grid; grid-template-columns: minmax(0, 47%) minmax(0, 53%); background: #f4efe9; }
.ng-job-detail__copy { padding: clamp(110px,12vw,180px) max(28px,calc((100vw - 1200px)/2)); padding-right: clamp(40px,7vw,100px); display:flex; flex-direction:column; justify-content:center; }
.ng-job-detail__salon { margin: 22px 0 8px; color: var(--ng-brand-deep); font-size: 13px; letter-spacing: .08em; }
.ng-job-detail__copy h1 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(36px,5vw,68px); font-weight:400; line-height:1.35; }
.ng-job-detail__lead { max-width:620px; margin:28px 0 0; color:#57514c; line-height:2; }
.ng-job-detail__summary { margin-top:38px; display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; }
.ng-job-detail__summary span { padding:8px 13px; border-radius:999px; background:var(--ng-brand-soft); color:var(--ng-brand-deep); font-size:12px; }
.ng-job-detail__summary strong { font-size:18px; }
.ng-job-detail__summary small { width:100%; color:#77716b; }
.ng-job-detail__visual { min-height:680px; overflow:hidden; }
.ng-job-detail__visual img { width:100%; height:100%; object-fit:cover; }
.ng-job-detail__layout { width:min(calc(100% - 40px),1200px); margin:0 auto; padding:clamp(80px,10vw,140px) 0; display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:clamp(44px,7vw,90px); align-items:start; }
.ng-job-detail__content section + section { margin-top:80px; }
.ng-job-detail__content h2 { margin:0 0 30px; padding-bottom:16px; border-bottom:1px solid #ddd5cd; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(25px,3vw,36px); font-weight:400; }
.ng-job-detail__editor { color:#514c47; line-height:2.05; }
.ng-job-detail__tags { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 55px; padding:0; list-style:none; }
.ng-job-detail__tags li { padding:8px 13px; border-radius:999px; background:var(--ng-brand-soft); color:var(--ng-brand-deep); font-size:12px; }
.ng-job-detail__table { margin:0; }
.ng-job-detail__table > div { display:grid; grid-template-columns:150px 1fr; gap:24px; padding:23px 0; border-bottom:1px solid #e9e3dc; }
.ng-job-detail__table dt { color:#8a837c; font-size:12px; }
.ng-job-detail__table dd { margin:0; line-height:1.9; }
.ng-job-detail__salon-link { display:flex; justify-content:space-between; padding:25px 28px; border:1px solid #ddd5cd; border-radius:18px; color:var(--ng-brand-deep); }
.ng-job-detail__apply { position:sticky; top:30px; padding:30px; border:1px solid #e2dbd4; border-radius:24px; background:#fff; box-shadow:0 18px 54px rgba(39,37,34,.07); }
.ng-job-detail__apply p { margin:0 0 14px; font-size:12px; letter-spacing:.08em; }
.ng-job-detail__apply strong { display:block; margin-bottom:22px; font-size:18px; }
.ng-job-detail__apply a { display:flex; justify-content:space-between; padding:17px 20px; border-radius:999px; background:var(--ng-brand); color:#fff; font-weight:600; }
.ng-job-detail__apply a:hover { background:var(--ng-brand-deep); }
.ng-job-detail__apply small { display:block; margin-top:15px; color:#8a837c; line-height:1.6; }
@media(max-width:850px){.ng-job-detail__hero{grid-template-columns:1fr}.ng-job-detail__copy{padding:100px 24px 60px}.ng-job-detail__visual{min-height:420px}.ng-job-detail__layout{grid-template-columns:1fr}.ng-job-detail__apply{position:static}.ng-job-detail__table>div{grid-template-columns:1fr;gap:8px}}

/* v4.1.0 — company-based jobs with multiple salon locations. */
.ng-job-location-list,.ng-salon-career__links{display:grid;gap:12px}.ng-job-location-list a,.ng-salon-career__links a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border:1px solid #e2dbd4;border-radius:18px;background:#fff;color:var(--ng-brand-deep);transition:.2s ease}.ng-job-location-list a:hover,.ng-salon-career__links a:hover{transform:translateY(-2px);border-color:var(--ng-brand)}.ng-job-location-list span,.ng-salon-career__links span{display:grid;gap:5px}.ng-job-location-list small,.ng-salon-career__links small{color:#817972;font-size:12px}.ng-job-location-list b,.ng-salon-career__links b{font-size:12px;white-space:nowrap}.ng-salon-career{width:min(calc(100% - 40px),1200px);margin:clamp(80px,10vw,130px) auto;padding:clamp(34px,5vw,62px);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,6vw,80px);border-radius:28px;background:var(--ng-brand-soft)}.ng-salon-career h2{margin:8px 0 14px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(26px,3vw,40px);font-weight:400}.ng-salon-career p{margin:0;color:#675f59}.ng-salon-career__links a{background:#fff}.ng-salon-career__links strong{color:#403b37}@media(max-width:760px){.ng-salon-career{grid-template-columns:1fr;width:min(calc(100% - 28px),1200px);padding:28px 20px;border-radius:20px}.ng-job-location-list a,.ng-salon-career__links a{align-items:flex-start;flex-direction:column;gap:12px}.ng-job-location-list b,.ng-salon-career__links b{align-self:flex-end}}

/* Nail Guide 4.1.1: structured job benefits */
.ng-job-detail__benefits {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
}
.ng-job-detail__benefits li {
  padding: 7px 11px;
  border: 1px solid rgba(190, 140, 149, .35);
  border-radius: 999px;
  background: #fbf6f7;
}


/* Nail Guide 4.2 */
.ng-job-detail__story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ng-job-detail__story-grid>div{padding:26px;border-radius:20px;background:#faf5f4;border:1px solid #eadfdb}.ng-job-detail__story-grid>div:last-child:nth-child(odd){grid-column:1/-1}.ng-job-detail__story-grid h3{margin:0 0 12px;color:var(--ng-brand-deep);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:20px;font-weight:400}.ng-job-detail__story-grid p{margin:0;color:#5f5852;line-height:1.95}.ng-brand-detail{background:#fffdfa;color:#272522}.ng-brand-detail__hero{min-height:560px;display:grid;place-items:center;padding:130px 24px 90px;text-align:center;background:#f4efe9}.ng-brand-detail__hero>div{width:min(100%,850px)}.ng-brand-detail__hero img{width:min(280px,60vw);max-height:150px;object-fit:contain;margin:0 auto 38px}.ng-brand-detail__hero h1{margin:10px 0 24px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(48px,8vw,92px);font-weight:400;line-height:1}.ng-brand-detail__concept{max-width:720px;margin:0 auto;color:#5d5650;font-size:clamp(16px,2vw,21px);line-height:2}.ng-brand-detail__body{width:min(calc(100% - 40px),1100px);margin:0 auto;padding:clamp(80px,10vw,140px) 0}.ng-brand-detail__body section+section{margin-top:100px}.ng-brand-detail__body h2{display:flex;align-items:baseline;gap:12px;margin:0 0 34px;padding-bottom:18px;border-bottom:1px solid #dfd6cf;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(28px,4vw,42px);font-weight:400}.ng-brand-detail__body h2 small{color:#9b8d84;font-size:12px}.ng-brand-detail__editor{max-width:780px;color:#554e49;line-height:2.05}.ng-brand-detail__links{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.ng-brand-detail__links a{padding:12px 18px;border-radius:999px;background:#f7ecee;color:#a9757a}.ng-brand-detail__salons,.ng-brand-detail__jobs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ng-brand-detail__salons a,.ng-brand-detail__jobs a{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid #e4dbd4;border-radius:18px;background:#fff;transition:.2s ease}.ng-brand-detail__salons a:hover,.ng-brand-detail__jobs a:hover{transform:translateY(-2px);border-color:#be8c95}.ng-brand-detail__salons strong,.ng-brand-detail__jobs strong{display:block}.ng-brand-detail__salons small,.ng-brand-detail__jobs small{display:block;margin-top:5px;color:#80766f;font-size:12px}.ng-brand-detail__salons b,.ng-brand-detail__jobs b{color:#a9757a;font-size:12px;white-space:nowrap}@media(max-width:760px){.ng-job-detail__story-grid,.ng-brand-detail__salons,.ng-brand-detail__jobs{grid-template-columns:1fr}.ng-job-detail__story-grid>div:last-child:nth-child(odd){grid-column:auto}.ng-brand-detail__hero{min-height:470px;padding:110px 20px 70px}.ng-brand-detail__body{width:min(calc(100% - 28px),1100px)}.ng-brand-detail__salons a,.ng-brand-detail__jobs a{align-items:flex-start;flex-direction:column}.ng-brand-detail__salons b,.ng-brand-detail__jobs b{align-self:flex-end}}

/* Nail Guide 4.3.0 — premium job detail */
body.single-ng_job .site-content{padding:0!important;max-width:none!important}body.single-ng_job .content-area,body.single-ng_job .site-main{width:100%;max-width:none;margin:0;padding:0}.ng-job-detail{overflow:hidden;background:#fffdfa;color:#2d2926}.ng-job-detail__hero{position:relative;min-height:clamp(680px,82vh,900px);display:flex;align-items:flex-end;background:#2c2826}.ng-job-detail__visual{position:absolute;inset:0;min-height:0}.ng-job-detail__visual img{width:100%;height:100%;object-fit:cover}.ng-job-detail__visual-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,25,23,.84) 0%,rgba(29,25,23,.57) 46%,rgba(29,25,23,.12) 80%),linear-gradient(0deg,rgba(29,25,23,.62),transparent 48%)}.ng-job-detail__hero-inner{position:relative;z-index:2;width:min(calc(100% - 48px),1200px);margin:0 auto;padding:150px 0 96px;color:#fff}.ng-job-detail__hero-inner .ng-component-label{color:rgba(255,255,255,.72)}.ng-job-detail__brand{margin:22px 0 8px;font-size:13px;letter-spacing:.18em}.ng-job-detail__hero h1{max-width:800px;margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(44px,7vw,92px);font-weight:400;line-height:1.18;letter-spacing:.02em}.ng-job-detail__lead{max-width:660px;margin:28px 0 0;color:rgba(255,255,255,.86);font-size:clamp(14px,1.6vw,18px);line-height:2}.ng-job-detail__hero-facts{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:38px}.ng-job-detail__hero-facts span{padding:8px 14px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(255,255,255,.1);font-size:12px}.ng-job-detail__hero-facts strong{font-size:clamp(18px,2.2vw,25px)}.ng-job-detail__hero-facts small{width:100%;color:rgba(255,255,255,.72)}.ng-job-detail__hero-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:60px;min-width:260px;margin-top:36px;padding:17px 22px;border-radius:999px;background:var(--ng-brand);color:#fff;font-size:13px;font-weight:600}.ng-job-detail__hero-cta:hover{background:var(--ng-brand-deep);color:#fff}.ng-job-detail__anchor{position:sticky;top:0;z-index:20;display:flex;justify-content:center;gap:clamp(18px,4vw,56px);padding:20px 24px;border-bottom:1px solid #ebe4dd;background:rgba(255,253,250,.94);backdrop-filter:blur(14px);overflow:auto}.ng-job-detail__anchor a{color:#625a54;font-size:12px;white-space:nowrap}.ng-job-detail__body{width:min(calc(100% - 40px),1100px);margin:0 auto;padding:clamp(80px,10vw,140px) 0}.ng-job-detail__tags{justify-content:center;margin:0 0 clamp(70px,9vw,110px)}.ng-job-detail__tags li{padding:10px 16px;border:1px solid rgba(190,140,149,.25);background:#fbf3f5;font-size:12px}.ng-job-detail__section+.ng-job-detail__section{margin-top:clamp(95px,12vw,150px)}.ng-job-detail__section-heading{display:grid;grid-template-columns:150px 1fr;align-items:end;margin-bottom:42px;padding-bottom:20px;border-bottom:1px solid #ddd5cd}.ng-job-detail__section-heading p{margin:0;color:var(--ng-brand-deep);font-size:11px;letter-spacing:.18em}.ng-job-detail__section-heading h2{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(31px,4vw,48px);font-weight:400}.ng-job-detail__editor{max-width:820px;margin-left:auto;color:#514b46;font-size:16px;line-height:2.15}.ng-job-detail__editor p:first-child{font-size:clamp(17px,2vw,21px)}.ng-job-detail__table{margin:0;border-top:1px solid #e7dfd8}.ng-job-detail__table>div{display:grid;grid-template-columns:200px 1fr;gap:40px;padding:28px 8px;border-bottom:1px solid #e7dfd8}.ng-job-detail__table dt{color:#8a817a;font-size:12px;letter-spacing:.06em}.ng-job-detail__table dd{margin:0;color:#4e4843;line-height:1.95}.ng-job-detail__table dd p{margin:8px 0 0}.ng-job-detail__salary{color:var(--ng-brand-deep);font-size:20px}.ng-job-detail__benefit-section{padding:clamp(35px,6vw,70px);border-radius:32px;background:#f8f1f1}.ng-job-detail__benefit-section .ng-job-detail__section-heading{border-color:#dfd0d0}.ng-job-detail__benefit-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}.ng-job-detail__benefit-cards li{display:flex;align-items:center;gap:10px;min-height:68px;padding:16px 18px;border:1px solid rgba(190,140,149,.2);border-radius:16px;background:#fff;color:#514b46}.ng-job-detail__benefit-cards span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--ng-brand-soft);color:var(--ng-brand-deep);font-size:11px}.ng-job-detail__benefit-note{margin-top:24px;color:#655d57;line-height:1.9}.ng-job-detail__story-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ng-job-detail__story-grid article{position:relative;padding:34px 28px;border:1px solid #e7ddd6;border-radius:24px;background:#fff}.ng-job-detail__story-grid article>span{display:block;margin-bottom:34px;color:var(--ng-brand);font-family:serif;font-size:28px}.ng-job-detail__story-grid h3{margin:0 0 18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:22px;font-weight:400}.ng-job-detail__story-grid p{margin:0;color:#625b55;line-height:1.95}.ng-job-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.ng-job-location-grid>a{overflow:hidden;border:1px solid #e4dcd5;border-radius:22px;background:#fff;color:#302c29;transition:.25s ease}.ng-job-location-grid>a:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(48,42,38,.09)}.ng-job-location-grid__image{height:210px;display:grid;place-items:center;overflow:hidden;background:#f2ece7;color:#a39991;font-size:11px;letter-spacing:.18em}.ng-job-location-grid__image img{width:100%;height:100%;object-fit:cover;transition:.4s ease}.ng-job-location-grid>a:hover img{transform:scale(1.035)}.ng-job-location-grid__copy{display:grid;gap:7px;padding:22px 24px}.ng-job-location-grid__copy strong{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:20px;font-weight:400}.ng-job-location-grid__copy small{color:#847c75;line-height:1.6}.ng-job-location-grid__copy b{display:flex;justify-content:space-between;margin-top:14px;color:var(--ng-brand-deep);font-size:12px}.ng-job-detail__brand-section{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(40px,8vw,100px);padding:clamp(50px,8vw,90px);border-radius:32px;background:#2d2926;color:#fff}.ng-job-detail__brand-section h2{margin:12px 0 0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(38px,5vw,64px);font-weight:400}.ng-job-detail__brand-copy{color:rgba(255,255,255,.76);line-height:2}.ng-job-detail__brand-copy p{margin-top:0}.ng-job-detail__brand-copy a{display:inline-flex;gap:55px;margin-top:24px;padding:14px 18px;border:1px solid rgba(255,255,255,.28);border-radius:999px;color:#fff;font-size:12px}.ng-job-detail__apply-section{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(40px,8vw,110px);align-items:center;padding:clamp(80px,10vw,140px) max(24px,calc((100vw - 1100px)/2));background:#efe3e5}.ng-job-detail__apply-section h2{margin:14px 0 24px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(34px,5vw,62px);font-weight:400;line-height:1.45}.ng-job-detail__apply-section>div>p:last-child{color:#6a605b}.ng-job-detail__apply-card{display:grid;gap:12px;padding:32px;border-radius:26px;background:#fff;box-shadow:0 22px 60px rgba(70,48,53,.09)}.ng-job-detail__apply-card>span{color:var(--ng-brand-deep);font-size:12px}.ng-job-detail__apply-card>strong{font-size:23px}.ng-job-detail__apply-card>small{color:#80766f;line-height:1.6}.ng-job-detail__apply-card>a{display:flex;justify-content:space-between;margin-top:10px;padding:18px 21px;border-radius:999px;background:var(--ng-brand);color:#fff;font-weight:600}.ng-job-detail__apply-card>a:hover{background:var(--ng-brand-deep);color:#fff}.ng-job-detail__apply-card>p{margin:0;color:#928982!important;font-size:11px}
@media(max-width:850px){.ng-job-detail__hero{min-height:720px;align-items:flex-end}.ng-job-detail__visual-shade{background:linear-gradient(0deg,rgba(28,24,22,.88) 0%,rgba(28,24,22,.46) 62%,rgba(28,24,22,.18) 100%)}.ng-job-detail__hero-inner{width:min(calc(100% - 40px),1200px);padding:120px 0 60px}.ng-job-detail__hero h1{font-size:clamp(40px,12vw,62px)}.ng-job-detail__hero-cta{width:100%;min-width:0}.ng-job-detail__anchor{justify-content:flex-start;padding:17px 20px}.ng-job-detail__body{width:min(calc(100% - 28px),1100px)}.ng-job-detail__section-heading{grid-template-columns:1fr;gap:9px;margin-bottom:28px}.ng-job-detail__table>div{grid-template-columns:1fr;gap:8px;padding:22px 4px}.ng-job-detail__benefit-section{padding:30px 18px;border-radius:22px}.ng-job-detail__benefit-cards,.ng-job-detail__story-grid,.ng-job-location-grid{grid-template-columns:1fr}.ng-job-detail__story-grid article{padding:28px 22px}.ng-job-location-grid__image{height:190px}.ng-job-detail__brand-section{grid-template-columns:1fr;padding:42px 24px;border-radius:24px}.ng-job-detail__apply-section{grid-template-columns:1fr;padding:75px 20px}.ng-job-detail__apply-card{padding:25px 21px}.ng-job-detail__tags{justify-content:flex-start}}


/* Nail Guide 4.3.1 — job detail refinements */
.ng-job-detail__empty-note{margin:0;color:#817871;font-size:14px}.ng-job-detail__apply-copy{min-width:0}.ng-job-detail__apply-section h2{max-width:720px;font-size:clamp(30px,4vw,50px);line-height:1.5}.ng-job-detail__apply-location{max-width:720px;margin:0 0 14px;color:var(--ng-brand-deep)!important;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(15px,2vw,20px);line-height:1.8;overflow-wrap:anywhere;word-break:auto}.ng-job-detail__condition-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border-top:0}.ng-job-detail__condition-cards>div{display:block;padding:22px 24px;border:1px solid #e7dfd8;border-radius:18px;background:#fff}.ng-job-detail__condition-cards dt{margin-bottom:10px;color:var(--ng-brand-deep);font-weight:600}.ng-job-detail__condition-cards dd{font-size:14px}.ng-job-detail__benefit-note:empty{display:none}
@media(max-width:850px){.ng-job-detail__condition-cards{grid-template-columns:1fr;gap:10px}.ng-job-detail__condition-cards>div{padding:18px 17px}.ng-job-detail__apply-section h2{font-size:clamp(27px,8vw,38px);line-height:1.55}.ng-job-detail__apply-location{font-size:15px;line-height:1.75}.ng-job-detail__apply-copy>p:last-child{font-size:13px;line-height:1.8}}


/* Nail Guide 4.3.2 — mobile hero logo and recruitment typography */
.ng-job-detail__visual--logo{
	background:#ddd9d5;
}
.ng-job-detail__visual--logo img{
	position:absolute;
	top:50%;
	left:50%;
	width:min(42vw,420px);
	height:auto;
	max-height:46%;
	object-fit:contain;
	transform:translate(-50%,-58%);
}
.ng-job-detail__apply-title-line{
	display:block;
}

@media(max-width:850px){
	.ng-job-detail__visual--logo img{
		top:82px;
		width:min(64vw,250px);
		max-height:245px;
		transform:translateX(-50%);
	}
	.ng-job-detail__hero-inner{
		padding-bottom:46px;
	}
	.ng-job-detail__brand{
		margin:14px 0 7px;
		font-size:10px;
		letter-spacing:.14em;
	}
	.ng-job-detail__hero h1{
		font-size:clamp(26px,7.6vw,32px);
		line-height:1.35;
		letter-spacing:.025em;
	}
	.ng-job-detail__hero-facts{
		margin-top:24px;
		gap:9px 12px;
	}
	.ng-job-detail__hero-cta{
		margin-top:24px;
	}
	.ng-job-detail__apply-section h2{
		font-size:22px;
		line-height:1.6;
		letter-spacing:.025em;
	}
	.ng-job-detail__apply-title-line{
		white-space:nowrap;
	}
}

@media(max-width:360px){
	.ng-job-detail__visual--logo img{
		width:min(62vw,215px);
		max-height:210px;
	}
	.ng-job-detail__hero h1{
		font-size:25px;
	}
	.ng-job-detail__apply-section h2{
		font-size:19px;
		letter-spacing:0;
	}
}

/* Nail Guide 4.3.3 — refined job navigation, logo stage and reveal motion */
body.single-ng_job .ng-job-detail__anchor{
	width:min(calc(100% - 32px),920px);
	margin:-28px auto 0;
	padding:7px;
	gap:5px;
	justify-content:center;
	border:1px solid rgba(190,140,149,.18);
	border-radius:999px;
	background:rgba(255,253,250,.92);
	box-shadow:0 14px 40px rgba(58,45,42,.10);
	-webkit-backdrop-filter:blur(18px);
	backdrop-filter:blur(18px);
}
body.single-ng_job .ng-job-detail__anchor a{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:38px;
	padding:9px 18px;
	border-radius:999px;
	color:#766c65;
	font-size:11px;
	font-weight:600;
	letter-spacing:.045em;
	transition:background .28s ease,color .28s ease,transform .28s ease;
}
body.single-ng_job .ng-job-detail__anchor a:hover,
body.single-ng_job .ng-job-detail__anchor a.is-active{
	background:var(--ng-brand-soft);
	color:var(--ng-brand-deep);
}
body.single-ng_job .ng-job-detail__anchor a:active{transform:scale(.97)}

body.single-ng_job .ng-job-detail__visual--logo{
	background:linear-gradient(180deg,#d8d4d0 0%,#c9c5c1 100%);
}
body.single-ng_job .ng-job-detail__visual--logo img{
	z-index:2;
	top:50%;
	left:50%;
	width:min(40vw,360px);
	height:min(20vw,180px);
	max-height:none;
	padding:18px 24px;
	border:1px solid rgba(255,255,255,.65);
	border-radius:4px;
	background:rgba(255,255,255,.94);
	box-shadow:0 18px 55px rgba(38,31,28,.18);
	object-fit:contain;
	object-position:center;
	transform:translate(-50%,-72%);
}
body.single-ng_job .ng-job-detail__visual--logo .ng-job-detail__visual-shade{z-index:1}

/* Progressive enhancement: content remains visible when JavaScript is unavailable. */
html.ng-job-motion-ready body.single-ng_job .ng-job-reveal{
	opacity:0;
	transform:translateY(24px);
	transition:opacity .82s cubic-bezier(.22,1,.36,1),transform .82s cubic-bezier(.22,1,.36,1);
	will-change:opacity,transform;
}
html.ng-job-motion-ready body.single-ng_job .ng-job-reveal.is-visible{
	opacity:1;
	transform:none;
}
html.ng-job-motion-ready body.single-ng_job .ng-job-reveal--soft{
	transform:translateY(14px);
}
html.ng-job-motion-ready body.single-ng_job .ng-job-detail__hero-inner.ng-job-reveal{
	transition-duration:1s;
}
html.ng-job-motion-ready body.single-ng_job .ng-job-detail__condition-cards>div.ng-job-reveal,
html.ng-job-motion-ready body.single-ng_job .ng-job-detail__benefit-cards>li.ng-job-reveal,
html.ng-job-motion-ready body.single-ng_job .ng-job-location-grid>a.ng-job-reveal{
	transition-delay:var(--ng-reveal-delay,0ms);
}

@media(max-width:850px){
	body.single-ng_job .ng-job-detail__anchor{
		top:8px;
		width:calc(100% - 20px);
		margin:-20px auto 0;
		justify-content:flex-start;
		padding:6px;
		gap:3px;
		border-radius:18px;
		overflow-x:auto;
		scrollbar-width:none;
		-webkit-overflow-scrolling:touch;
	}
	body.single-ng_job .ng-job-detail__anchor::-webkit-scrollbar{display:none}
	body.single-ng_job .ng-job-detail__anchor a{
		flex:0 0 auto;
		min-height:35px;
		padding:8px 13px;
		font-size:10px;
	}
	body.single-ng_job .ng-job-detail__visual--logo img{
		top:62px;
		width:min(74vw,290px);
		height:min(37vw,145px);
		padding:14px 18px;
		transform:translateX(-50%);
	}
}

@media(max-width:360px){
	body.single-ng_job .ng-job-detail__visual--logo img{
		top:58px;
		width:min(76vw,260px);
		height:min(38vw,132px);
		padding:12px 15px;
	}
}

@media(prefers-reduced-motion:reduce){
	html.ng-job-motion-ready body.single-ng_job .ng-job-reveal{
		opacity:1!important;
		transform:none!important;
		transition:none!important;
	}
}


/* Nail Guide 4.3.4 — restore vertical scrolling and refine logo hero */
html body.single-ng_job,
body.single-ng_job .site,
body.single-ng_job .site-content,
body.single-ng_job .content-area,
body.single-ng_job .site-main,
body.single-ng_job .ng-job-detail{
	overflow-y:visible!important;
	max-height:none!important;
	height:auto!important;
}
body.single-ng_job .ng-job-detail{
	overflow-x:clip!important;
}
body.single-ng_job .ng-job-detail__anchor{
	overscroll-behavior-x:contain;
	overscroll-behavior-y:auto;
	touch-action:pan-x pan-y;
}
body.single-ng_job .ng-job-detail__visual--logo{
	display:flex;
	align-items:flex-start;
	justify-content:center;
	padding-top:clamp(62px,8vw,100px);
	background:linear-gradient(180deg,#d9d5d1 0%,#c7c2be 100%);
}
body.single-ng_job .ng-job-detail__visual--logo img{
	position:relative;
	top:auto;
	left:auto;
	width:min(34vw,320px);
	height:auto;
	max-height:150px;
	padding:0;
	border:0;
	border-radius:0;
	background:transparent;
	box-shadow:none;
	object-fit:contain;
	object-position:center;
	transform:none;
}
@media(max-width:850px){
	body.single-ng_job .ng-job-detail__visual--logo{
		padding-top:26px;
	}
	body.single-ng_job .ng-job-detail__visual--logo img{
		width:min(56vw,220px);
		max-height:105px;
	}
	body.single-ng_job .ng-job-detail__hero-inner{
		padding-top:150px;
	}
}
@media(max-width:360px){
	body.single-ng_job .ng-job-detail__visual--logo img{
		width:min(58vw,205px);
		max-height:96px;
	}
}

/* Nail Guide 4.3.5 — image-led job hero and separated brand logo */
body.single-ng_job .ng-job-detail__visual--image img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	max-height:none;
	padding:0;
	border:0;
	border-radius:0;
	background:none;
	box-shadow:none;
	object-fit:cover;
	object-position:center;
	transform:none;
}
body.single-ng_job .ng-job-detail__visual--fallback{
	display:block;
	padding:0;
	background:
		radial-gradient(circle at 78% 24%,rgba(255,255,255,.18),transparent 30%),
		linear-gradient(135deg,#312c29 0%,#716965 52%,#c5bfba 100%);
}
body.single-ng_job .ng-job-detail__visual-placeholder{
	position:absolute;
	inset:0;
	display:grid;
	place-items:center;
	padding:40px;
	color:rgba(255,255,255,.12);
	font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
	font-size:clamp(54px,11vw,150px);
	letter-spacing:.12em;
	text-align:center;
}
body.single-ng_job .ng-job-detail__brand-heading{min-width:0}
body.single-ng_job .ng-job-detail__brand-logo{
	display:grid;
	place-items:center;
	width:min(100%,300px);
	min-height:150px;
	margin:0 0 34px;
	padding:24px;
	border-radius:20px;
	background:#fff;
}
body.single-ng_job .ng-job-detail__brand-logo img{
	width:100%;
	height:110px;
	object-fit:contain;
	object-position:center;
}
@media(max-width:850px){
	body.single-ng_job .ng-job-detail__hero-inner{padding-top:120px}
	body.single-ng_job .ng-job-detail__visual--image img{object-position:center}
	body.single-ng_job .ng-job-detail__brand-logo{width:min(100%,260px);min-height:130px;margin-bottom:28px;padding:20px}
	body.single-ng_job .ng-job-detail__brand-logo img{height:90px}
}

/* Nail Guide 4.3.6 — true full-width, centered job hero on desktop */
body.single-ng_job #page,
body.single-ng_job .site.grid-container,
body.single-ng_job .site-content,
body.single-ng_job #primary,
body.single-ng_job .content-area,
body.single-ng_job .site-main {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
body.single-ng_job .ng-job-detail {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	margin-left: -50vw;
	margin-right: -50vw;
}
body.single-ng_job .ng-job-detail__hero,
body.single-ng_job .ng-job-detail__visual {
	width: 100%;
	max-width: none;
}
body.single-ng_job .ng-job-detail__visual--image img {
	object-position: center center;
}
@media (min-width: 851px) {
	body.single-ng_job .ng-job-detail__hero-inner {
		width: min(calc(100% - 96px), 1200px);
	}
}
@media (max-width: 850px) {
	body.single-ng_job .ng-job-detail {
		left: auto;
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

/* =========================================================
   4.4.0 Salon detail conversion-LP enhancements
   ========================================================= */
body.single-salon .ng-concerns {
	position: relative;
	padding: clamp(84px, 10vw, 140px) max(20px, calc((100vw - var(--ng-content)) / 2));
	background: #fffaf8;
}
body.single-salon .ng-concerns__inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr); gap:clamp(48px,8vw,110px); align-items:start; }
body.single-salon .ng-concerns__heading h2,
body.single-salon .ng-visit-flow__heading h2 { margin:0 0 22px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(34px,4.6vw,60px); font-weight:400; line-height:1.5; letter-spacing:-.025em; }
body.single-salon .ng-concerns__heading > p:last-child,
body.single-salon .ng-visit-flow__heading > p:last-child { margin:0; color:var(--ng-muted); line-height:2; }
body.single-salon .ng-concerns__list { margin:0; padding:0; display:grid; gap:12px; list-style:none; }
body.single-salon .ng-concerns__list li { min-height:68px; padding:18px 22px; display:flex; align-items:center; gap:14px; border:1px solid rgba(185,134,139,.2); border-radius:16px; background:#fff; box-shadow:0 14px 40px rgba(62,47,43,.05); font-size:14px; line-height:1.7; }
body.single-salon .ng-concerns__list span { width:28px; height:28px; flex:0 0 28px; display:grid; place-items:center; border-radius:50%; background:rgba(185,134,139,.12); color:var(--ng-rose); font-weight:700; }

body.single-salon .ng-visit-flow { padding:clamp(96px,11vw,150px) max(20px,calc((100vw - var(--ng-content))/2)); background:linear-gradient(180deg,#f7f4ef 0%,#fffaf8 100%); }
body.single-salon .ng-visit-flow__heading { max-width:760px; margin-bottom:clamp(46px,7vw,76px); }
body.single-salon .ng-visit-flow__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
body.single-salon .ng-visit-flow__grid article { min-height:260px; padding:28px; display:flex; flex-direction:column; border:1px solid var(--ng-border); border-radius:20px; background:rgba(255,255,255,.78); }
body.single-salon .ng-visit-flow__grid article > span { margin-bottom:auto; color:var(--ng-rose); font-size:11px; letter-spacing:.18em; }
body.single-salon .ng-visit-flow__grid h3 { margin:46px 0 12px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:21px; font-weight:400; }
body.single-salon .ng-visit-flow__grid p { margin:0; color:var(--ng-muted); font-size:13px; line-height:1.85; }
body.single-salon .ng-visit-flow__cta { margin-top:34px; text-align:center; }
body.single-salon .ng-visit-flow__cta .ng-button { min-width:min(100%,360px); }

/* Make the reservation intent visible throughout the LP. */
body.single-salon .ng-salon-hero .ng-button--primary,
body.single-salon .ng-salon-final .ng-button--primary { box-shadow:0 14px 34px rgba(185,134,139,.24); }
body.single-salon .ng-salon-hero__catch { max-width:600px; }
body.single-salon .ng-salon-designs header,
body.single-salon .ng-salon-menu-section__heading,
body.single-salon .ng-salon-staff > header,
body.single-salon .ng-salon-faq > header { position:relative; }

@media (max-width: 900px) {
	body.single-salon .ng-concerns__inner { grid-template-columns:1fr; }
	body.single-salon .ng-visit-flow__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
	body.single-salon .ng-concerns { padding:76px 18px; }
	body.single-salon .ng-concerns__heading h2,
	body.single-salon .ng-visit-flow__heading h2 { font-size:clamp(29px,8.6vw,38px); }
	body.single-salon .ng-concerns__list li { min-height:62px; padding:15px 16px; border-radius:14px; font-size:13px; }
	body.single-salon .ng-visit-flow { padding:82px 18px; }
	body.single-salon .ng-visit-flow__grid { grid-template-columns:1fr; gap:10px; }
	body.single-salon .ng-visit-flow__grid article { min-height:0; padding:22px; }
	body.single-salon .ng-visit-flow__grid article > span { margin-bottom:20px; }
	body.single-salon .ng-visit-flow__grid h3 { margin:0 0 8px; font-size:19px; }
}

/* ==========================================================
   v4.4.1 — salon reservation LP polish and mobile collision fix
   ========================================================== */
body.single-salon .ng-salon-single {
	padding-bottom: 0;
}

/* Prevent fixed mobile reserve bar from covering the last content. */
@media (max-width: 767px) {
	body.single-salon .ng-salon-single {
		padding-bottom: 92px;
	}
	body.single-salon .ng-mobile-reserve {
		z-index: 9998;
	}
}

/* Treatments: establish an isolated layout so heading/copy never overlaps items. */
body.single-salon .ng-salon-menu-section,
body.single-salon .ng-salon-menu-section__heading,
body.single-salon .ng-menu-panel,
body.single-salon .ng-menu-list,
body.single-salon .ng-menu-item {
	min-width: 0;
}

body.single-salon .ng-salon-menu-section__heading {
	z-index: 1;
}

body.single-salon .ng-salon-menu-section__heading > * {
	position: static !important;
	transform: none !important;
}

body.single-salon .ng-salon-menu-section__heading > p:last-child {
	margin: 0;
	max-width: 34em;
}

body.single-salon .ng-menu-panel {
	position: relative;
	z-index: 2;
}

body.single-salon .ng-menu-item__copy,
body.single-salon .ng-menu-item__meta {
	min-width: 0;
}

body.single-salon .ng-menu-item h3,
body.single-salon .ng-menu-item p {
	overflow-wrap: anywhere;
	word-break: normal;
}

/* Give the strongest conversion sections a more deliberate LP-card rhythm. */
body.single-salon .ng-concerns__list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
body.single-salon .ng-concerns__list li {
	height: 100%;
}

body.single-salon .ng-salon-reasons .ng-feature-grid {
	gap: 14px;
}
body.single-salon .ng-salon-reasons .ng-feature-item {
	border: 1px solid rgba(39,37,34,.10);
	border-radius: 20px;
	background: rgba(255,255,255,.72);
	box-shadow: 0 18px 48px rgba(61,48,42,.055);
}

/* Make the visual gallery feel browsable and tactile. */
body.single-salon .ng-gallery__item a {
	display: block;
	height: 100%;
}
body.single-salon .ng-gallery__item img {
	transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .45s ease;
}
@media (hover:hover) {
	body.single-salon .ng-gallery__item:hover img {
		transform: scale(1.035);
		filter: saturate(1.04);
	}
}

/* Final booking panel: reserve visual hierarchy for the booking action. */
body.single-salon .ng-salon-final__inner {
	max-width: 760px;
}
body.single-salon .ng-salon-final .ng-button--primary {
	min-width: min(100%, 380px);
}

@media (max-width: 767px) {
	body.single-salon .ng-salon-menu-section {
		padding: 88px 20px 104px;
		display: block;
	}
	body.single-salon .ng-salon-menu-section__heading {
		position: relative !important;
		top: auto !important;
		margin: 0 0 52px;
		padding: 0;
	}
	body.single-salon .ng-salon-menu-section__heading h2 {
		margin-bottom: 24px;
		font-size: clamp(31px, 9vw, 38px);
		line-height: 1.45;
	}
	body.single-salon .ng-salon-menu-section__heading > p:last-child {
		font-size: 12px;
		line-height: 1.9;
	}
	body.single-salon .ng-menu-list {
		clear: both;
		position: relative;
		z-index: 2;
	}
	body.single-salon .ng-menu-item {
		padding: 28px 0 30px;
		grid-template-columns: 28px minmax(0,1fr);
		column-gap: 14px;
		row-gap: 14px;
	}
	body.single-salon .ng-menu-item__number {
		padding-top: 5px;
	}
	body.single-salon .ng-menu-item h3 {
		margin: 0 0 10px;
		font-size: clamp(18px, 5.4vw, 21px);
		line-height: 1.55;
	}
	body.single-salon .ng-menu-item p {
		font-size: 12px;
		line-height: 1.85;
	}
	body.single-salon .ng-menu-item__meta {
		grid-column: 2;
		min-width: 0;
		display: flex;
		flex-wrap: wrap;
		align-items: baseline;
		justify-content: flex-start;
		gap: 7px 14px;
		text-align: left;
	}
	body.single-salon .ng-menu-item__price {
		margin: 0;
		font-size: 17px !important;
		white-space: normal;
	}
	body.single-salon .ng-menu-item small {
		margin: 0;
	}
	body.single-salon .ng-menu-more {
		margin-top: 28px;
	}

	body.single-salon .ng-concerns__list {
		grid-template-columns: 1fr;
	}
	body.single-salon .ng-concerns__list li {
		min-height: 0;
	}

	body.single-salon .ng-salon-reasons .ng-feature-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
	}
	body.single-salon .ng-salon-reasons .ng-feature-item {
		padding: 26px 20px;
	}

	body.single-salon .ng-salon-final__inner {
		width: 100%;
	}
	body.single-salon .ng-salon-final .ng-salon-actions,
	body.single-salon .ng-salon-final .ng-button {
		width: 100%;
	}
}

/* Nail Guide 4.5.2 — job detail repairs */
body.single-ng_job .ng-job-detail__anchor{
	gap:6px!important;
	padding:7px!important;
}
body.single-ng_job .ng-job-detail__anchor a{
	border:1px solid rgba(190,140,149,.34)!important;
	background:rgba(255,255,255,.34)!important;
	color:#766c65!important;
	box-shadow:none!important;
}
body.single-ng_job .ng-job-detail__anchor a:hover{
	border-color:rgba(190,140,149,.62)!important;
	background:rgba(255,255,255,.58)!important;
	color:var(--ng-brand-deep)!important;
}
body.single-ng_job .ng-job-detail__anchor a.is-active{
	border-color:rgba(190,140,149,.5)!important;
	background:var(--ng-brand-soft)!important;
	color:var(--ng-brand-deep)!important;
}

/* Work is editorial copy: one calm, full-width glass panel. */
body.single-ng_job .ng-job-detail__work{
	display:block!important;
	visibility:visible!important;
}
body.single-ng_job .ng-job-detail__work .ng-job-detail__editor{
	display:block!important;
	width:100%!important;
	max-width:none!important;
	min-height:0!important;
	margin:0!important;
	padding:clamp(26px,4vw,42px)!important;
	border:1px solid var(--ng-glass-border)!important;
	border-radius:22px!important;
	background:rgba(255,255,255,.7)!important;
	color:#514b46!important;
	box-shadow:var(--ng-glass-shadow)!important;
	-webkit-backdrop-filter:blur(var(--ng-glass-blur));
	backdrop-filter:blur(var(--ng-glass-blur));
}
body.single-ng_job .ng-job-detail__work .ng-job-detail__editor p{
	margin:0!important;
	font-size:clamp(14px,1.6vw,17px)!important;
	line-height:2!important;
	white-space:normal!important;
}
body.single-ng_job .ng-job-detail__empty-note{color:#827872!important}

/* Brand block must remain a complete dark card even with global glass rules. */
body.single-ng_job .ng-job-detail__brand-section{
	display:grid!important;
	visibility:visible!important;
	opacity:1;
	grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr)!important;
	align-items:center!important;
	gap:clamp(34px,7vw,86px)!important;
	padding:clamp(42px,7vw,76px)!important;
	border:1px solid rgba(255,255,255,.12)!important;
	border-radius:28px!important;
	background:linear-gradient(135deg,rgba(38,34,32,.98),rgba(51,45,42,.96))!important;
	color:#fff!important;
	box-shadow:0 18px 46px rgba(20,16,14,.13),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
body.single-ng_job .ng-job-detail__brand-section *{visibility:visible}
body.single-ng_job .ng-job-detail__brand-heading,
body.single-ng_job .ng-job-detail__brand-copy{
	display:block!important;
	opacity:1!important;
	transform:none;
	min-width:0;
}
body.single-ng_job .ng-job-detail__brand-section .ng-component-label{color:rgba(255,255,255,.62)!important}
body.single-ng_job .ng-job-detail__brand-section h2{
	display:block!important;
	margin:12px 0 0!important;
	color:#fff!important;
	font-size:clamp(34px,5vw,58px)!important;
	line-height:1.25!important;
	word-break:break-word;
}
body.single-ng_job .ng-job-detail__brand-copy,
body.single-ng_job .ng-job-detail__brand-copy p{color:rgba(255,255,255,.78)!important}
body.single-ng_job .ng-job-detail__brand-copy a{
	color:#fff!important;
	border-color:rgba(255,255,255,.28)!important;
	background:rgba(255,255,255,.04)!important;
}
body.single-ng_job .ng-job-detail__brand-logo{
	width:min(100%,300px)!important;
	min-height:140px!important;
	margin:0 0 28px!important;
	padding:22px!important;
	border-radius:18px!important;
	background:rgba(255,255,255,.96)!important;
}
body.single-ng_job .ng-job-detail__brand-logo img{
	display:block!important;
	width:100%!important;
	height:100px!important;
	object-fit:contain!important;
}
@media(max-width:850px){
	body.single-ng_job .ng-job-detail__anchor a{padding:8px 11px!important}
	body.single-ng_job .ng-job-detail__brand-section{
		grid-template-columns:1fr!important;
		gap:24px!important;
		padding:34px 22px!important;
	}
	body.single-ng_job .ng-job-detail__brand-logo{width:min(100%,240px)!important;min-height:120px!important;margin-bottom:22px!important}
	body.single-ng_job .ng-job-detail__brand-logo img{height:82px!important}
}


/* Nail Guide 4.6.1 — logo-less brand typography and centered job anchor */
body.single-ng_job .ng-job-detail__brand-section{
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;
  align-items:end!important;
  position:relative!important;
  overflow:hidden!important;
}
body.single-ng_job .ng-job-detail__brand-section::before{
  content:"";
  position:absolute;
  left:clamp(28px,6vw,70px);
  top:clamp(30px,5vw,54px);
  width:64px;
  height:1px;
  background:var(--ng-brand,#c58d99);
  opacity:.85;
}
body.single-ng_job .ng-job-detail__brand-heading{padding-top:22px!important}
body.single-ng_job .ng-job-detail__brand-section .ng-component-label{
  margin:0 0 14px!important;
  color:rgba(255,255,255,.58)!important;
  letter-spacing:.22em!important;
}
body.single-ng_job .ng-job-detail__brand-section h2{
  margin:0!important;
  font-size:clamp(38px,6vw,68px)!important;
  letter-spacing:.02em!important;
}
body.single-ng_job .ng-job-detail__brand-tagline{
  max-width:520px;
  margin:22px 0 0!important;
  color:#fff!important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(19px,2.2vw,27px)!important;
  line-height:1.75!important;
}
body.single-ng_job .ng-job-detail__brand-logo{display:none!important}
body.single-ng_job .ng-job-detail__anchor{
  justify-content:center!important;
  text-align:center!important;
}
@media(max-width:850px){
  body.single-ng_job .ng-job-detail__anchor{
    justify-content:center!important;
    gap:3px!important;
    padding:12px 8px!important;
  }
  body.single-ng_job .ng-job-detail__anchor a{
    flex:1 1 0!important;
    padding:8px 4px!important;
    font-size:10px!important;
    text-align:center!important;
  }
  body.single-ng_job .ng-job-detail__brand-section{
    grid-template-columns:1fr!important;
    align-items:start!important;
  }
  body.single-ng_job .ng-job-detail__brand-section::before{
    left:22px;
    top:28px;
  }
  body.single-ng_job .ng-job-detail__brand-heading{padding-top:18px!important}
  body.single-ng_job .ng-job-detail__brand-copy{margin-top:4px!important}
}

/* Salon conversion finish v4.7.0
   A reservation-first LP system for every salon detail page. */
body.single-salon {
	--ng-salon-glass: rgba(255, 252, 248, .72);
	--ng-salon-glass-line: rgba(255, 255, 255, .58);
	--ng-salon-glass-shadow: 0 18px 52px rgba(55, 45, 39, .08);
}

body.single-salon .ng-salon-anchor {
	position: sticky;
	top: var(--ng-header-height, 64px);
	z-index: 55;
	width: 100%;
	padding: 12px 20px;
	background: rgba(247, 244, 239, .72);
	border-bottom: 1px solid rgba(72, 61, 54, .08);
	backdrop-filter: blur(18px) saturate(1.1);
	-webkit-backdrop-filter: blur(18px) saturate(1.1);
}
body.admin-bar.single-salon .ng-salon-anchor { top: calc(var(--ng-header-height, 64px) + 32px); }
body.single-salon .ng-salon-anchor__inner {
	width: min(100%, 1120px);
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
}
body.single-salon .ng-salon-anchor__inner::-webkit-scrollbar { display: none; }
body.single-salon .ng-salon-anchor a {
	flex: 0 0 auto;
	min-height: 38px;
	padding: 0 15px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(190, 140, 149, .32);
	border-radius: 999px;
	background: rgba(255,255,255,.34);
	color: #655e59;
	font-size: 10px;
	letter-spacing: .05em;
	transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}
body.single-salon .ng-salon-anchor a:hover,
body.single-salon .ng-salon-anchor a:focus-visible,
body.single-salon .ng-salon-anchor a.is-current {
	border-color: rgba(190, 140, 149, .5);
	background: rgba(190, 140, 149, .14);
	color: #9f6872;
}

/* Conversion-focused concern block. */
body.single-salon .ng-concerns {
	padding: clamp(90px, 11vw, 150px) max(20px, calc((100vw - 1120px) / 2));
	background:
		radial-gradient(circle at 90% 10%, rgba(190,140,149,.13), transparent 34%),
		var(--ng-lp-paper);
}
body.single-salon .ng-concerns__inner {
	display: grid;
	grid-template-columns: minmax(260px,.8fr) minmax(0,1.2fr);
	gap: clamp(48px,8vw,110px);
	align-items: start;
}
body.single-salon .ng-concerns__heading h2 {
	margin: 0 0 24px;
	font-size: clamp(36px,4.5vw,60px);
}
body.single-salon .ng-concerns__heading > p:last-child {
	max-width: 360px;
	color: var(--ng-muted);
	font-size: 13px;
	line-height: 2;
}
body.single-salon .ng-concerns__list {
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 12px;
	list-style: none;
}
body.single-salon .ng-concerns__list li {
	min-height: 96px;
	padding: 22px;
	display: flex;
	align-items: flex-start;
	gap: 13px;
	border: 1px solid var(--ng-salon-glass-line);
	border-radius: 20px;
	background: var(--ng-salon-glass);
	box-shadow: var(--ng-salon-glass-shadow);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	font-size: 13px;
	line-height: 1.8;
}
body.single-salon .ng-concerns__list li span {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: rgba(190,140,149,.13);
	color: var(--ng-rose);
	font-size: 11px;
}

/* Reasons should read as benefits, not database rows. */
body.single-salon .ng-salon-reasons .ng-feature-item {
	border-top: 1px solid rgba(39,37,34,.16);
}
body.single-salon .ng-salon-reasons .ng-feature-item p { color: #67605a; }
body.single-salon .ng-reasons-fit {
	padding: 30px;
	border: 1px solid rgba(255,255,255,.5);
	border-radius: 24px;
	background: rgba(255,255,255,.38);
	box-shadow: 0 16px 45px rgba(50,42,37,.06);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}

/* Stronger gallery affordance. */
body.single-salon .ng-gallery figure {
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(0,0,0,.12);
}
body.single-salon .ng-gallery a::after {
	content: "VIEW";
	position: absolute;
	right: 14px;
	bottom: 14px;
	padding: 7px 10px;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 999px;
	background: rgba(20,18,17,.28);
	color: #fff;
	font-size: 8px;
	letter-spacing: .14em;
	backdrop-filter: blur(8px);
}
body.single-salon .ng-gallery a { position: relative; }
body.single-salon .ng-gallery a:hover img { transform: scale(1.035); }

/* Popular services first and more easily scannable. */
body.single-salon .ng-menu-item__popular {
	display: inline-flex;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(190,140,149,.12);
	font-size: 9px;
	letter-spacing: .08em;
}
body.single-salon .ng-menu-more a {
	min-height: 54px;
	padding: 0 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid rgba(190,140,149,.38);
	border-radius: 999px;
	background: rgba(255,255,255,.48);
}

/* Staff cards become direct confidence builders. */
body.single-salon .ng-salon-staff .ng-staff-grid article {
	border-radius: 24px;
	overflow: hidden;
	background: rgba(255,255,255,.42);
	box-shadow: 0 20px 52px rgba(55,45,39,.08);
}
body.single-salon .ng-staff-card__copy { padding: 26px 24px 28px; }
body.single-salon .ng-staff-grid figure { border-radius: 0; }

/* First-visit flow and FAQ should reduce booking anxiety. */
body.single-salon .ng-visit-flow,
body.single-salon .ng-salon-faq {
	padding: clamp(100px,12vw,170px) max(20px,calc((100vw - 1120px)/2));
}
body.single-salon .ng-visit-flow { background: #eee8e1; }
body.single-salon .ng-visit-flow__heading { width: min(100%,700px); margin-bottom: 64px; }
body.single-salon .ng-visit-flow__heading h2,
body.single-salon .ng-salon-faq h2 { font-size: clamp(36px,4.8vw,62px); }
body.single-salon .ng-visit-flow__grid {
	display: grid;
	grid-template-columns: repeat(4,minmax(0,1fr));
	gap: 12px;
}
body.single-salon .ng-visit-flow__grid article {
	min-height: 260px;
	padding: 30px 24px;
	border: 1px solid rgba(255,255,255,.58);
	border-radius: 24px;
	background: rgba(255,255,255,.46);
	box-shadow: 0 18px 48px rgba(55,45,39,.06);
}
body.single-salon .ng-visit-flow__grid article > span {
	color: var(--ng-rose);
	font-family: Georgia,serif;
	font-style: italic;
}
body.single-salon .ng-visit-flow__grid h3 {
	margin: 44px 0 18px;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: 21px;
	font-weight: 400;
}
body.single-salon .ng-visit-flow__grid p { color: var(--ng-muted); font-size: 12px; line-height: 1.9; }
body.single-salon .ng-visit-flow__cta { margin-top: 44px; text-align: center; }
body.single-salon .ng-salon-faq { background: var(--ng-lp-paper); }
body.single-salon .ng-salon-faq > header { margin-bottom: 52px; }
body.single-salon .ng-salon-faq__list details {
	border-top: 1px solid rgba(39,37,34,.14);
}
body.single-salon .ng-salon-faq__list details:last-child { border-bottom: 1px solid rgba(39,37,34,.14); }
body.single-salon .ng-salon-faq__list summary {
	min-height: 82px;
	padding: 20px 4px;
	display: flex;
	align-items: center;
	gap: 20px;
	cursor: pointer;
	font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
	font-size: 17px;
	list-style: none;
}
body.single-salon .ng-salon-faq__list summary::-webkit-details-marker { display: none; }
body.single-salon .ng-salon-faq__list summary::after { content: "+"; margin-left: auto; color: var(--ng-rose); font-size: 20px; }
body.single-salon .ng-salon-faq__list details[open] summary::after { content: "−"; }
body.single-salon .ng-salon-faq__list summary span,
body.single-salon .ng-salon-faq__list details > div > span { color: var(--ng-rose); font-family: Georgia,serif; }
body.single-salon .ng-salon-faq__list details > div {
	padding: 0 4px 28px 40px;
	display: flex;
	gap: 18px;
	color: var(--ng-muted);
	font-size: 13px;
	line-height: 2;
}
body.single-salon .ng-salon-faq__list details > div p { margin: 0; }

/* A single, unmistakable reservation conclusion. */
body.single-salon .ng-salon-final .ng-button--primary {
	min-width: min(100%, 330px);
	box-shadow: 0 16px 45px rgba(190,140,149,.22);
}
body.single-salon .ng-salon-final__name { overflow-wrap: anywhere; }

@media (max-width: 900px) {
	body.single-salon .ng-concerns__inner { grid-template-columns: 1fr; }
	body.single-salon .ng-visit-flow__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
	body.single-salon .ng-salon-anchor {
		top: var(--ng-header-height, 60px);
		padding: 9px 10px;
	}
	body.admin-bar.single-salon .ng-salon-anchor { top: calc(var(--ng-header-height, 60px) + 46px); }
	body.single-salon .ng-salon-anchor__inner {
		justify-content: flex-start;
		gap: 7px;
		scroll-padding-inline: 10px;
	}
	body.single-salon .ng-salon-anchor a {
		min-height: 35px;
		padding-inline: 12px;
		font-size: 9px;
	}
	body.single-salon .ng-concerns { padding: 82px 20px; }
	body.single-salon .ng-concerns__heading h2 { font-size: 34px; }
	body.single-salon .ng-concerns__list { grid-template-columns: 1fr; }
	body.single-salon .ng-concerns__list li { min-height: 0; padding: 19px; }
	body.single-salon .ng-reasons-fit { display: block; padding: 24px 20px; }
	body.single-salon .ng-reasons-fit > p { margin-bottom: 18px; }
	body.single-salon .ng-visit-flow,
	body.single-salon .ng-salon-faq { padding: 86px 20px; }
	body.single-salon .ng-visit-flow__heading { margin-bottom: 44px; }
	body.single-salon .ng-visit-flow__grid { grid-template-columns: 1fr; }
	body.single-salon .ng-visit-flow__grid article { min-height: 0; padding: 26px 22px; }
	body.single-salon .ng-visit-flow__grid h3 { margin-top: 24px; }
	body.single-salon .ng-salon-faq__list summary { min-height: 72px; font-size: 15px; }
	body.single-salon .ng-salon-faq__list details > div { padding-left: 4px; }
}

@media (prefers-reduced-motion: reduce) {
	body.single-salon .ng-gallery img,
	body.single-salon .ng-salon-anchor a { transition: none !important; }
}

/* =========================================================
   Nail Guide Salon LP 4.8.0 — reservation-first polish
   ========================================================= */
body.single-salon {
	--ng-lp-paper: #fbf8f4;
	--ng-lp-card: rgba(255,255,255,.88);
	--ng-lp-line: rgba(108,84,79,.12);
	--ng-lp-shadow: 0 18px 55px rgba(68,48,43,.075);
	background:
		radial-gradient(circle at 8% 16%, rgba(190,140,149,.09), transparent 27rem),
		radial-gradient(circle at 92% 64%, rgba(218,194,179,.15), transparent 30rem),
		var(--ng-lp-paper);
}

body.single-salon .ng-salon-single { overflow: clip; }
body.single-salon .ng-salon-section,
body.single-salon .ng-concerns__inner,
body.single-salon .ng-salon-reasons,
body.single-salon .ng-visit-flow > *,
body.single-salon .ng-salon-faq > *,
body.single-salon .ng-related-salons > *,
body.single-salon .ng-access > * { position: relative; z-index: 1; }

/* Hero: photo first, copy readable, CTA unmistakable. */
body.single-salon .ng-salon-hero {
	min-height: min(900px, calc(100svh - 1px));
	background: #262220;
}
body.single-salon .ng-salon-hero__content {
	background: linear-gradient(135deg, rgba(28,24,23,.9), rgba(40,34,32,.72));
}
body.single-salon .ng-salon-hero h1 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 400;
	letter-spacing: .015em;
	line-height: 1.18;
}
body.single-salon .ng-salon-hero__visual::after {
	background: linear-gradient(90deg, rgba(30,25,23,.26), transparent 42%), linear-gradient(0deg, rgba(20,17,16,.16), transparent 38%);
}
body.single-salon .ng-salon-hero .ng-button--primary {
	min-height: 58px;
	padding-inline: 30px;
	box-shadow: 0 14px 34px rgba(190,140,149,.25);
}

/* Anchor navigation: centered and calm. */
body.single-salon .ng-salon-anchor {
	background: transparent;
}
body.single-salon .ng-salon-anchor__inner {
	width: min(calc(100% - 32px), 900px);
	margin-inline: auto;
	justify-content: center;
	padding: 8px;
	border: 1px solid rgba(255,255,255,.8);
	border-radius: 999px;
	background: rgba(255,255,255,.78);
	box-shadow: 0 16px 45px rgba(59,43,39,.09);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
}
body.single-salon .ng-salon-anchor a {
	border: 1px solid transparent;
	border-radius: 999px;
}
body.single-salon .ng-salon-anchor a.is-active {
	border-color: rgba(190,140,149,.28);
	background: rgba(190,140,149,.13);
}

/* Shared editorial headings and breathing room. */
body.single-salon .ng-salon-section,
body.single-salon .ng-concerns,
body.single-salon .ng-salon-reasons,
body.single-salon .ng-salon-menu-section,
body.single-salon .ng-salon-staff,
body.single-salon .ng-visit-flow,
body.single-salon .ng-salon-faq,
body.single-salon .ng-access,
body.single-salon .ng-related-salons {
	padding-top: clamp(88px, 10vw, 138px);
	padding-bottom: clamp(88px, 10vw, 138px);
}
body.single-salon .ng-section-heading h2,
body.single-salon .ng-concerns__heading h2,
body.single-salon .ng-salon-reasons__heading h2,
body.single-salon .ng-salon-menu-section__heading h2,
body.single-salon .ng-salon-staff header h2,
body.single-salon .ng-visit-flow__heading h2,
body.single-salon .ng-salon-faq header h2,
body.single-salon .ng-access__heading h2 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-weight: 400;
	letter-spacing: .015em;
	line-height: 1.48;
}

/* Concern cards. */
body.single-salon .ng-concerns { background: rgba(247,241,235,.7); }
body.single-salon .ng-concerns__list li {
	border: 1px solid rgba(255,255,255,.88);
	border-radius: 17px;
	background: var(--ng-lp-card);
	box-shadow: var(--ng-lp-shadow);
}
body.single-salon .ng-concerns__list li span {
	width: 26px; height: 26px; flex: 0 0 26px;
	display: inline-grid; place-items: center;
	border-radius: 50%;
	background: rgba(190,140,149,.12);
	color: var(--ng-rose);
}

/* Reasons and flow: consistent white cards. */
body.single-salon .ng-feature-grid,
body.single-salon .ng-visit-flow__grid { gap: 14px; }
body.single-salon .ng-feature-item,
body.single-salon .ng-visit-flow__grid article {
	border: 1px solid rgba(255,255,255,.92) !important;
	border-radius: 20px;
	background: var(--ng-lp-card);
	box-shadow: var(--ng-lp-shadow);
}
body.single-salon .ng-feature-item { padding: 30px 26px; }
body.single-salon .ng-feature-item span {
	width: 34px; height: 34px; display: grid; place-items: center;
	border-radius: 50%; background: rgba(190,140,149,.12); color: var(--ng-rose);
}

/* Gallery: image-led, soft radius. */
body.single-salon .ng-salon-designs { background: #211f1e; color: #fff; }
body.single-salon .ng-salon-designs .ng-eyebrow { color: rgba(255,255,255,.55); }
body.single-salon .ng-gallery figure { border-radius: 20px; box-shadow: 0 20px 50px rgba(0,0,0,.16); }
body.single-salon .ng-gallery img { transform: scale(1.002); }

/* Menu: clean list, popular choice immediately visible. */
body.single-salon .ng-salon-menu-section { background: rgba(248,243,238,.72); }
body.single-salon .ng-menu-panel {
	border: 1px solid rgba(255,255,255,.9);
	border-radius: 26px;
	background: rgba(255,255,255,.7);
	box-shadow: var(--ng-lp-shadow);
	overflow: hidden;
}
body.single-salon .ng-menu-item { padding-inline: clamp(22px,4vw,46px); }
body.single-salon .ng-menu-item__popular {
	padding: 5px 9px;
	border-radius: 999px;
	background: var(--ng-rose);
	color: #fff;
}

/* Staff cards: approachable and reservation friendly. */
body.single-salon .ng-staff-grid article {
	padding: 14px 14px 26px;
	border: 1px solid rgba(255,255,255,.92);
	border-radius: 24px;
	background: var(--ng-lp-card);
	box-shadow: var(--ng-lp-shadow);
}
body.single-salon .ng-staff-grid figure { overflow: hidden; border-radius: 18px; }
body.single-salon .ng-staff-grid img { margin-bottom: 0; }
body.single-salon .ng-staff-card__copy { padding: 20px 8px 0; }

/* FAQ and access. */
body.single-salon .ng-salon-faq { background: rgba(247,242,237,.72); }
body.single-salon .ng-salon-faq__list details {
	border: 1px solid rgba(255,255,255,.9);
	border-radius: 16px;
	background: rgba(255,255,255,.84);
	box-shadow: 0 10px 30px rgba(68,48,43,.045);
	overflow: hidden;
}
body.single-salon .ng-access__map { border-radius: 24px; box-shadow: var(--ng-lp-shadow); }
body.single-salon .ng-access__copy {
	padding: clamp(24px,4vw,42px);
	border: 1px solid rgba(255,255,255,.9);
	border-radius: 24px;
	background: rgba(255,255,255,.72);
	box-shadow: var(--ng-lp-shadow);
}

/* Final CTA: light, warm, and entirely focused on booking. */
body.single-salon .ng-salon-final {
	position: relative;
	isolation: isolate;
	padding: clamp(100px, 12vw, 155px) 20px;
	background:
		radial-gradient(circle at 75% 22%, rgba(255,255,255,.7), transparent 19rem),
		linear-gradient(135deg, #eadbd4, #d8b8ad 52%, #c89da4);
	color: #302725;
	overflow: hidden;
}
body.single-salon .ng-salon-final::before {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(115deg, rgba(255,255,255,.26), transparent 44%);
	z-index: -1;
}
body.single-salon .ng-salon-final__inner {
	width: min(100%, 760px);
	margin-inline: auto;
	padding: clamp(34px,6vw,62px);
	border: 1px solid rgba(255,255,255,.56);
	border-radius: 30px;
	background: rgba(255,255,255,.24);
	box-shadow: 0 24px 70px rgba(82,53,48,.14);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}
body.single-salon .ng-salon-final .ng-eyebrow { color: rgba(74,54,50,.6); }
body.single-salon .ng-salon-final h2 {
	margin-bottom: 14px;
	color: #352a28;
	font-size: clamp(32px,5vw,54px);
}
body.single-salon .ng-salon-final__name { color: rgba(53,42,40,.68); }
body.single-salon .ng-salon-final .ng-salon-actions { margin-top: 32px; }
body.single-salon .ng-salon-final .ng-button--primary {
	min-width: min(100%, 330px);
	min-height: 62px;
	box-shadow: 0 16px 35px rgba(136,75,85,.2);
}
body.single-salon .ng-salon-final .ng-button--outline {
	border-color: rgba(76,53,49,.2);
	background: rgba(255,255,255,.28);
	color: #392e2b;
}

/* Related salons. */
body.single-salon .ng-related-salon {
	border: 1px solid rgba(255,255,255,.9);
	border-radius: 22px;
	background: rgba(255,255,255,.84);
	box-shadow: var(--ng-lp-shadow);
	overflow: hidden;
}

@media (max-width: 700px) {
	body.single-salon .ng-salon-hero {
		min-height: 760px;
		position: relative;
		display: block;
	}
	body.single-salon .ng-salon-hero__visual { position: absolute; inset: 0; }
	body.single-salon .ng-salon-hero__visual::after {
		background: linear-gradient(0deg, rgba(27,23,22,.88) 0%, rgba(27,23,22,.54) 54%, rgba(27,23,22,.18) 100%);
	}
	body.single-salon .ng-salon-hero__content {
		min-height: 760px;
		padding: 126px 20px 76px;
		justify-content: flex-end;
		background: transparent;
	}
	body.single-salon .ng-salon-hero h1 {
		max-width: 10em;
		font-size: clamp(34px,10.8vw,48px);
		line-height: 1.25;
	}
	body.single-salon .ng-salon-anchor { padding-inline: 8px; }
	body.single-salon .ng-salon-anchor__inner {
		width: 100%;
		justify-content: flex-start;
		overflow-x: auto;
		scrollbar-width: none;
	}
	body.single-salon .ng-salon-anchor__inner::-webkit-scrollbar { display: none; }
	body.single-salon .ng-salon-anchor a { flex: 0 0 auto; }
	body.single-salon .ng-salon-section,
	body.single-salon .ng-concerns,
	body.single-salon .ng-salon-reasons,
	body.single-salon .ng-salon-menu-section,
	body.single-salon .ng-salon-staff,
	body.single-salon .ng-visit-flow,
	body.single-salon .ng-salon-faq,
	body.single-salon .ng-access,
	body.single-salon .ng-related-salons { padding-top: 82px; padding-bottom: 82px; }
	body.single-salon .ng-feature-item { min-height: 0; padding: 24px 20px; }
	body.single-salon .ng-menu-panel { border-radius: 20px; }
	body.single-salon .ng-menu-item { padding-inline: 18px; }
	body.single-salon .ng-staff-grid article { border-radius: 20px; }
	body.single-salon .ng-access__copy { padding: 24px 20px; border-radius: 20px; }
	body.single-salon .ng-salon-final { padding: 82px 16px; }
	body.single-salon .ng-salon-final__inner { padding: 34px 20px; border-radius: 24px; }
	body.single-salon .ng-salon-final h2 { font-size: 32px; }
	body.single-salon .ng-salon-final .ng-salon-actions { display: grid; width: 100%; }
}

/* Nail Guide 4.8.1 — salon sticky navigation and treatment menu refinement */
@media (max-width: 700px) {
	/* Keep the section navigation directly under the real mobile header. */
	body.single-salon .ng-salon-anchor {
		top: 58px !important;
		padding: 8px 8px !important;
		background: rgba(248, 245, 241, .82) !important;
		box-shadow: 0 8px 22px rgba(55, 45, 39, .055);
	}
	body.admin-bar.single-salon .ng-salon-anchor {
		top: 104px !important;
	}
	body.single-salon .ng-salon-anchor__inner {
		min-height: 44px;
		gap: 7px;
		padding: 2px 3px;
	}
	body.single-salon .ng-salon-anchor a {
		min-height: 34px;
		padding: 0 13px;
		font-size: 9px;
		line-height: 1;
	}

	/* Treatment section: remove conflicting legacy grid/card rules. */
	body.single-salon .ng-salon-menu-section {
		display: block !important;
		padding-inline: 14px !important;
	}
	body.single-salon .ng-salon-menu-section__heading {
		position: static !important;
		top: auto !important;
		margin: 0 6px 28px;
	}
	body.single-salon .ng-salon-menu-section__heading h2 {
		margin-bottom: 16px;
		font-size: 30px;
		line-height: 1.45;
	}
	body.single-salon .ng-salon-menu-section__heading > p:last-child {
		max-width: none;
		font-size: 11px;
		line-height: 1.85;
	}
	body.single-salon .ng-menu-panel {
		padding: 0 !important;
		border: 1px solid rgba(255,255,255,.92) !important;
		border-radius: 22px !important;
		background: rgba(255,255,255,.76) !important;
		overflow: hidden;
	}
	body.single-salon .ng-menu-list {
		border-top: 0 !important;
	}
	body.single-salon .ng-menu-item {
		min-height: 0 !important;
		padding: 24px 18px !important;
		display: grid !important;
		grid-template-columns: 28px minmax(0,1fr) !important;
		grid-template-areas:
			"number copy"
			"number meta" !important;
		align-items: start !important;
		gap: 8px 12px !important;
		border-bottom: 1px solid rgba(67,55,48,.10) !important;
		background: transparent !important;
		box-shadow: none !important;
	}
	body.single-salon .ng-menu-item:last-child {
		border-bottom: 0 !important;
	}
	body.single-salon .ng-menu-item__number {
		grid-area: number;
		padding-top: 4px !important;
		font-size: 11px !important;
		line-height: 1;
	}
	body.single-salon .ng-menu-item__copy {
		grid-area: copy;
		min-width: 0;
	}
	body.single-salon .ng-menu-item__popular {
		display: inline-flex !important;
		align-items: center;
		width: auto !important;
		min-width: 0 !important;
		max-width: 100%;
		height: auto !important;
		min-height: 22px;
		margin: 0 0 10px !important;
		padding: 5px 10px !important;
		border-radius: 999px !important;
		background: #ff8a3d !important;
		color: #fff !important;
		font-size: 8px !important;
		font-weight: 700;
		line-height: 1 !important;
		letter-spacing: .04em !important;
		white-space: nowrap;
		overflow: visible !important;
	}
	body.single-salon .ng-menu-item h3 {
		margin: 0 !important;
		font-size: 17px !important;
		line-height: 1.55 !important;
		word-break: normal;
		overflow-wrap: anywhere;
	}
	body.single-salon .ng-menu-item__copy > p {
		margin: 11px 0 0 !important;
		font-size: 11px !important;
		line-height: 1.8 !important;
	}
	body.single-salon .ng-menu-item__meta {
		grid-area: meta;
		min-width: 0 !important;
		margin-top: 5px;
		display: flex;
		align-items: baseline;
		flex-wrap: wrap;
		gap: 6px 12px;
		text-align: left !important;
	}
	body.single-salon .ng-menu-item__price {
		margin: 0 !important;
		font-size: 16px !important;
		font-weight: 500 !important;
		line-height: 1.4;
		white-space: normal !important;
	}
	body.single-salon .ng-menu-item__meta small {
		margin: 0 !important;
		font-size: 9px !important;
		line-height: 1.5;
	}
	body.single-salon .ng-menu-more {
		margin: 0 !important;
		padding: 24px 16px 28px;
		border-top: 1px solid rgba(67,55,48,.10);
		background: rgba(250,247,243,.68);
	}
	body.single-salon .ng-menu-more > a {
		min-height: 52px !important;
		padding: 0 18px !important;
		font-size: 10px !important;
		line-height: 1.45;
		text-align: center;
	}
	body.single-salon .ng-menu-more > p {
		margin: 14px 0 0 !important;
		font-size: 9px !important;
		line-height: 1.7 !important;
		text-align: center;
	}
}

/* =========================================================
   4.8.2 FAQ refinement — brand-accent aware
   ========================================================= */
body.single-salon .ng-salon-faq {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(88px, 9vw, 132px) 20px !important;
	background:
		radial-gradient(circle at 50% 8%, color-mix(in srgb, var(--ng-salon-accent) 9%, transparent), transparent 42%),
		linear-gradient(180deg, rgba(253,250,247,.94), rgba(250,247,244,.98));
}
body.single-salon .ng-salon-faq__inner {
	width: min(900px, 100%);
	margin: 0 auto;
}
body.single-salon .ng-salon-faq__header {
	margin: 0 auto clamp(44px, 6vw, 68px) !important;
	text-align: center;
}
body.single-salon .ng-salon-faq__header .ng-eyebrow {
	margin: 0 0 18px;
	color: var(--ng-salon-accent) !important;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .2em;
}
body.single-salon .ng-salon-faq__header h2 {
	margin: 0 !important;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: clamp(38px, 5.2vw, 62px) !important;
	font-weight: 400;
	line-height: 1.52;
	letter-spacing: .05em;
	color: #302d2b;
}
body.single-salon .ng-salon-faq__accent {
	width: 54px;
	height: 1px;
	margin: 25px auto 24px;
	display: block;
	background: var(--ng-salon-accent);
}
body.single-salon .ng-salon-faq__lead {
	margin: 0;
	color: #77716d;
	font-size: 15px;
	line-height: 2;
	letter-spacing: .035em;
}
body.single-salon .ng-salon-faq__list {
	display: grid;
	gap: 16px;
}
body.single-salon .ng-salon-faq__item {
	margin: 0 !important;
	border: 1px solid rgba(255,255,255,.9) !important;
	border-radius: 28px !important;
	background: rgba(255,255,255,.82) !important;
	box-shadow: 0 13px 38px rgba(79,62,54,.065) !important;
	overflow: hidden;
	transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
body.single-salon .ng-salon-faq__item[open] {
	border-color: color-mix(in srgb, var(--ng-salon-accent) 22%, #fff) !important;
	box-shadow: 0 16px 44px color-mix(in srgb, var(--ng-salon-accent) 10%, transparent) !important;
}
body.single-salon .ng-salon-faq__item summary {
	min-height: 94px;
	padding: 22px 26px !important;
	display: grid !important;
	grid-template-columns: 48px minmax(0,1fr) 28px;
	gap: 18px;
	align-items: center !important;
	list-style: none;
	cursor: pointer;
}
body.single-salon .ng-salon-faq__item summary::-webkit-details-marker { display: none; }
body.single-salon .ng-salon-faq__badge {
	width: 48px;
	height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	border-radius: 50%;
	background: color-mix(in srgb, var(--ng-salon-accent) 12%, #fff);
	color: var(--ng-salon-accent) !important;
	font-family: Georgia, serif !important;
	font-size: 21px !important;
	font-weight: 600;
	line-height: 1;
}
body.single-salon .ng-salon-faq__question {
	color: #2f2c2a !important;
	font-size: 17px !important;
	font-weight: 600;
	line-height: 1.75;
	letter-spacing: .025em;
}
body.single-salon .ng-salon-faq__toggle {
	position: relative;
	width: 24px;
	height: 24px;
	justify-self: end;
}
body.single-salon .ng-salon-faq__toggle::before,
body.single-salon .ng-salon-faq__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 1.5px;
	border-radius: 2px;
	background: var(--ng-salon-accent);
	transform: translate(-50%,-50%);
	transition: transform .28s ease, opacity .28s ease;
}
body.single-salon .ng-salon-faq__toggle::after { transform: translate(-50%,-50%) rotate(90deg); }
body.single-salon .ng-salon-faq__item[open] .ng-salon-faq__toggle::after { opacity: 0; transform: translate(-50%,-50%) rotate(0); }
body.single-salon .ng-salon-faq__answer {
	margin: 0 26px;
	padding: 25px 0 30px !important;
	display: grid !important;
	grid-template-columns: 48px minmax(0,1fr);
	gap: 18px;
	align-items: start;
	border-top: 1px dashed color-mix(in srgb, var(--ng-salon-accent) 25%, transparent);
}
body.single-salon .ng-salon-faq__answer p {
	margin: 4px 0 0 !important;
	color: #69635f !important;
	font-size: 15px !important;
	line-height: 2.05 !important;
	letter-spacing: .025em;
}
body.single-salon .ng-salon-faq__more-wrap {
	margin-top: 38px;
	text-align: center;
}
body.single-salon .ng-salon-faq__more {
	min-width: min(360px, 100%);
	min-height: 62px;
	padding: 0 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 32px;
	border: 1px solid var(--ng-salon-accent);
	border-radius: 999px;
	background: rgba(255,255,255,.55);
	color: var(--ng-salon-accent);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .04em;
	cursor: pointer;
	transition: color .25s ease, background .25s ease, transform .25s ease;
}
body.single-salon .ng-salon-faq__more:hover {
	background: var(--ng-salon-accent);
	color: #fff;
	transform: translateY(-2px);
}
body.single-salon .ng-sp-only { display: none; }

/* Keep the persistent reservation CTA in the same salon theme. */
body.single-salon .ng-mobile-reserve {
	background: rgba(255,252,249,.92) !important;
	border-top-color: color-mix(in srgb, var(--ng-salon-accent) 14%, transparent) !important;
}
body.single-salon .ng-mobile-reserve a {
	background: linear-gradient(110deg,
		color-mix(in srgb, var(--ng-salon-accent) 62%, #fff),
		var(--ng-salon-accent)) !important;
	box-shadow: 0 12px 28px color-mix(in srgb, var(--ng-salon-accent) 24%, transparent) !important;
}

@media (max-width: 767px) {
	body.single-salon .ng-salon-faq {
		padding: 76px 14px 100px !important;
	}
	body.single-salon .ng-salon-faq__header {
		margin-bottom: 38px !important;
	}
	body.single-salon .ng-salon-faq__header h2 {
		font-size: 38px !important;
		line-height: 1.55;
	}
	body.single-salon .ng-sp-only { display: block; }
	body.single-salon .ng-salon-faq__lead {
		font-size: 13px;
		line-height: 1.9;
	}
	body.single-salon .ng-salon-faq__list { gap: 12px; }
	body.single-salon .ng-salon-faq__item { border-radius: 22px !important; }
	body.single-salon .ng-salon-faq__item summary {
		min-height: 76px;
		padding: 16px 16px !important;
		grid-template-columns: 40px minmax(0,1fr) 24px;
		gap: 12px;
	}
	body.single-salon .ng-salon-faq__badge {
		width: 40px;
		height: 40px;
		font-size: 17px !important;
	}
	body.single-salon .ng-salon-faq__question {
		font-size: 14px !important;
		line-height: 1.7;
	}
	body.single-salon .ng-salon-faq__answer {
		margin: 0 16px;
		padding: 20px 0 23px !important;
		grid-template-columns: 40px minmax(0,1fr);
		gap: 12px;
	}
	body.single-salon .ng-salon-faq__answer p {
		font-size: 13px !important;
		line-height: 1.95 !important;
	}
	body.single-salon .ng-salon-faq__more-wrap { margin-top: 28px; }
	body.single-salon .ng-salon-faq__more {
		min-height: 56px;
		font-size: 13px;
	}
}

@supports not (color: color-mix(in srgb, #000, #fff)) {
	body.single-salon .ng-salon-faq__badge { background: rgba(190,140,149,.12); }
	body.single-salon .ng-salon-faq__item[open] { border-color: rgba(190,140,149,.24) !important; }
	body.single-salon .ng-salon-faq__answer { border-top-color: rgba(190,140,149,.24); }
	body.single-salon .ng-mobile-reserve a { background: var(--ng-salon-accent) !important; }
}

/* =========================================================
   4.8.3 FAQ toggle deduplication
   Legacy FAQ rules also added a summary::after symbol. The
   redesigned component draws its icon with .ng-salon-faq__toggle,
   so suppress the legacy pseudo-element to keep one icon only.
   ========================================================= */
body.single-salon .ng-salon-faq__item > summary::after {
	content: none !important;
	display: none !important;
}

/* 4.9.3 Salon search results + linked map */
.ng-directory-search{max-width:1200px;margin:0 auto;padding:clamp(52px,7vw,88px) 20px 36px}.ng-directory-search__heading,.ng-directory-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.ng-directory-search__heading h2,.ng-directory-toolbar h2{margin:5px 0 0;font-size:clamp(24px,3vw,38px);font-weight:400}.ng-directory-search__reset{font-size:12px;text-decoration:underline;text-underline-offset:4px}.ng-directory-search__form{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr auto;gap:10px;padding:18px;border:1px solid var(--ng-border);border-radius:24px;background:#fff;box-shadow:0 14px 40px rgba(39,37,34,.05)}.ng-directory-search__form label{display:flex;flex-direction:column;gap:6px;min-width:0}.ng-directory-search__form label>span{font-size:10px;letter-spacing:.08em;color:var(--ng-muted)}.ng-directory-search__form input,.ng-directory-search__form select{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--ng-border);border-radius:12px;background:#fff;color:var(--ng-charcoal)}.ng-directory-search__form button{align-self:end;min-height:48px;padding:0 22px;border:0;border-radius:999px;background:var(--ng-rose,#8f646a);color:#fff;white-space:nowrap;cursor:pointer}.ng-directory-toolbar>p strong{margin-right:5px;font-size:24px;font-weight:400}.ng-results-map-wrap{margin:0 0 42px}.ng-results-map{width:100%;height:clamp(360px,52vw,580px);border-radius:24px;overflow:hidden;background:#eee}.ng-results-map__note{margin:10px 4px 0;color:var(--ng-muted);font-size:11px}.ng-map-popup{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center}.ng-map-popup img{width:72px;height:72px;object-fit:cover;border-radius:8px}.ng-map-popup strong,.ng-map-popup small,.ng-map-popup a{display:block}.ng-map-popup strong{font-size:13px}.ng-map-popup small{margin-top:4px;color:#777;font-size:10px;line-height:1.5}.ng-map-popup a{margin-top:7px;color:#8f646a;font-size:11px}.leaflet-popup-content{margin:12px!important}
@media(max-width:900px){.ng-directory-search__form{grid-template-columns:1fr 1fr}.ng-directory-search__keyword{grid-column:span 2}.ng-directory-search__form button{grid-column:span 2}}
@media(max-width:600px){.ng-directory-search{padding:42px 15px 24px}.ng-directory-search__heading,.ng-directory-toolbar{align-items:flex-start}.ng-directory-search__form{grid-template-columns:1fr;padding:14px;border-radius:18px}.ng-directory-search__keyword,.ng-directory-search__form button{grid-column:auto}.ng-results-map{height:390px;border-radius:16px}}

/* 4.9.5 — richer search results */
body.post-type-archive-salon .ng-salon-directory{width:min(calc(100% - 40px),1200px);margin:0 auto;padding:50px 0 110px}
body.post-type-archive-salon .ng-directory-toolbar__actions{display:flex;align-items:center;gap:18px}
body.post-type-archive-salon .ng-sort-form select{min-height:42px;padding:0 38px 0 14px;border:1px solid var(--ng-border);border-radius:999px;background:#fff;color:var(--ng-charcoal);font-size:12px}
body.post-type-archive-salon .ng-salon-card-grid{display:grid;grid-template-columns:1fr;gap:22px}
body.post-type-archive-salon .ng-salon-card--result{display:grid;grid-template-columns:minmax(250px,34%) minmax(0,1fr);overflow:hidden;border:1px solid rgba(39,37,34,.09);border-radius:24px;background:#fff;box-shadow:0 14px 42px rgba(39,37,34,.055);transition:transform .35s var(--ng-ease),box-shadow .35s ease,border-color .35s ease}
body.post-type-archive-salon .ng-salon-card--result:hover,body.post-type-archive-salon .ng-salon-card--result.is-map-active{transform:translateY(-3px);border-color:rgba(185,134,139,.48);box-shadow:0 20px 52px rgba(39,37,34,.09)}
body.post-type-archive-salon .ng-salon-card__image-link{display:block;min-height:100%}
body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__image{height:100%;min-height:315px;aspect-ratio:auto}
body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__body{padding:30px 32px;display:flex;flex-direction:column}
body.post-type-archive-salon .ng-salon-card--result h2{margin:0 0 12px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(23px,2.5vw,34px);font-weight:400;line-height:1.35}
body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__location{margin:0 0 8px;color:var(--ng-rose);font-size:11px;letter-spacing:.06em}
body.post-type-archive-salon .ng-salon-card--result .ng-tag-list{margin-bottom:15px}
body.post-type-archive-salon .ng-salon-card--result .ng-tag-list li{background:#faf7f3}
body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__excerpt{max-width:720px;margin:0 0 18px;font-size:13px;line-height:1.85;-webkit-line-clamp:2}
body.post-type-archive-salon .ng-salon-card__facts{margin-top:auto;padding:15px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border-top:1px solid var(--ng-border)}
body.post-type-archive-salon .ng-salon-card__facts p{margin:0;min-width:0}
body.post-type-archive-salon .ng-salon-card__facts span,body.post-type-archive-salon .ng-salon-card__facts strong{display:block}
body.post-type-archive-salon .ng-salon-card__facts span{margin-bottom:3px;color:var(--ng-muted);font-size:9px;letter-spacing:.08em}
body.post-type-archive-salon .ng-salon-card__facts strong{overflow:hidden;font-size:12px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
body.post-type-archive-salon .ng-salon-card__actions{padding-top:18px;display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--ng-border)}
body.post-type-archive-salon .ng-card-detail,body.post-type-archive-salon .ng-card-reserve{min-height:44px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:12px;font-weight:600}
body.post-type-archive-salon .ng-card-detail{margin-right:auto;padding-left:0;color:var(--ng-muted)}
body.post-type-archive-salon .ng-card-detail b{margin-left:20px;color:var(--ng-charcoal);font-size:17px;font-weight:400}
body.post-type-archive-salon .ng-card-reserve{background:var(--ng-rose);color:#fff}
body.post-type-archive-salon .ng-results-map-wrap{position:relative}
body.post-type-archive-salon .ng-results-map{border:1px solid var(--ng-border);box-shadow:0 14px 40px rgba(39,37,34,.05)}
@media(max-width:760px){body.post-type-archive-salon .ng-salon-directory{width:calc(100% - 30px);padding:34px 0 80px}body.post-type-archive-salon .ng-directory-toolbar{align-items:flex-start}body.post-type-archive-salon .ng-directory-toolbar__actions{align-items:flex-end;flex-direction:column;gap:8px}body.post-type-archive-salon .ng-salon-card--result{grid-template-columns:1fr;border-radius:18px}body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__image{min-height:0;aspect-ratio:16/10}body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__body{padding:20px 18px 18px}body.post-type-archive-salon .ng-salon-card--result h2{font-size:23px}body.post-type-archive-salon .ng-salon-card__facts{grid-template-columns:1fr}body.post-type-archive-salon .ng-salon-card__actions{flex-wrap:wrap}body.post-type-archive-salon .ng-card-detail{width:100%;margin:0;justify-content:space-between}body.post-type-archive-salon .ng-card-reserve{width:100%}}

/* =========================================================
   4.9.6 — mobile spacing and readable salon directory
   ========================================================= */
body.post-type-archive-salon .ng-directory-toolbar > div:first-child {
	min-width: 0;
}
body.post-type-archive-salon .ng-directory-toolbar h2 {
	overflow: visible;
	word-break: keep-all;
}

@media (max-width: 760px) {
	body.post-type-archive-salon .ng-directory-search {
		padding: 46px 20px 32px;
	}
	body.post-type-archive-salon .ng-directory-search__heading {
		gap: 16px;
		margin-bottom: 22px;
	}
	body.post-type-archive-salon .ng-directory-search__heading h2 {
		font-size: 25px;
		line-height: 1.45;
	}
	body.post-type-archive-salon .ng-directory-search__form {
		padding: 16px;
		gap: 13px;
	}
	body.post-type-archive-salon .ng-directory-search__form input,
	body.post-type-archive-salon .ng-directory-search__form select,
	body.post-type-archive-salon .ng-directory-search__form button {
		min-height: 52px;
		font-size: 14px;
	}

	body.post-type-archive-salon .ng-salon-directory {
		width: calc(100% - 40px);
		padding: 42px 0 84px;
	}
	body.post-type-archive-salon .ng-directory-toolbar {
		display: block;
		margin-bottom: 26px;
	}
	body.post-type-archive-salon .ng-directory-toolbar .ng-component-label {
		margin-bottom: 6px;
		font-size: 10px;
		letter-spacing: .1em;
	}
	body.post-type-archive-salon .ng-directory-toolbar h2 {
		margin: 0;
		font-size: 26px;
		line-height: 1.45;
		letter-spacing: -.02em;
		white-space: normal;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions {
		width: 100%;
		margin-top: 17px;
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions > p {
		flex: 0 0 auto;
		font-size: 12px;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions > p strong {
		margin-right: 4px;
		font-size: 20px;
		font-weight: 400;
	}
	body.post-type-archive-salon .ng-sort-form {
		flex: 0 0 auto;
		margin: 0;
	}
	body.post-type-archive-salon .ng-sort-form select {
		min-width: 124px;
		min-height: 46px;
		padding: 0 40px 0 17px;
		font-size: 13px;
	}

	body.post-type-archive-salon .ng-salon-card-grid {
		gap: 24px;
	}
	body.post-type-archive-salon .ng-salon-card--result {
		border-radius: 22px;
	}
	body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__image {
		aspect-ratio: 16 / 10.5;
	}
	body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__body {
		padding: 24px 21px 21px;
	}
	body.post-type-archive-salon .ng-salon-card--result h2 {
		margin-bottom: 13px;
		font-size: 25px;
		line-height: 1.45;
	}
	body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__location {
		margin-bottom: 9px;
		font-size: 11px;
		line-height: 1.6;
	}
	body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__excerpt {
		margin-bottom: 20px;
		font-size: 14px;
		line-height: 1.9;
	}
	body.post-type-archive-salon .ng-salon-card__facts {
		gap: 13px;
		padding: 17px 0;
	}
	body.post-type-archive-salon .ng-salon-card__facts strong {
		font-size: 13px;
		line-height: 1.65;
		white-space: normal;
	}
	body.post-type-archive-salon .ng-salon-card__actions {
		gap: 12px;
		padding-top: 19px;
	}
	body.post-type-archive-salon .ng-card-detail,
	body.post-type-archive-salon .ng-card-reserve {
		min-height: 50px;
		font-size: 13px;
	}
}

@media (max-width: 380px) {
	body.post-type-archive-salon .ng-directory-search,
	body.post-type-archive-salon .ng-salon-directory {
		width: auto;
	}
	body.post-type-archive-salon .ng-directory-search {
		padding-inline: 18px;
	}
	body.post-type-archive-salon .ng-salon-directory {
		margin-inline: 18px;
	}
	body.post-type-archive-salon .ng-directory-toolbar h2 {
		font-size: 24px;
	}
	body.post-type-archive-salon .ng-sort-form select {
		min-width: 116px;
	}
}


/* =========================================================
   4.9.7 — definitive mobile toolbar layout
   Title and controls use separate rows so they never collide.
   ========================================================= */
body.post-type-archive-salon .ng-directory-toolbar,
body.post-type-archive-salon .ng-directory-toolbar * {
	box-sizing: border-box;
}
body.post-type-archive-salon .ng-directory-toolbar__title {
	min-width: 0;
}
body.post-type-archive-salon .ng-directory-toolbar__title h2 {
	max-width: 100%;
	overflow: visible;
	text-wrap: balance;
}

@media (max-width: 760px) {
	body.post-type-archive-salon .ng-salon-directory {
		width: auto;
		max-width: none;
		margin-right: 20px;
		margin-left: 20px;
	}
	body.post-type-archive-salon .ng-directory-toolbar {
		width: 100%;
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 18px;
		align-items: stretch;
	}
	body.post-type-archive-salon .ng-directory-toolbar__title {
		width: 100%;
		display: block;
	}
	body.post-type-archive-salon .ng-directory-toolbar__title .ng-component-label {
		margin: 0 0 8px;
	}
	body.post-type-archive-salon .ng-directory-toolbar__title h2 {
		width: 100%;
		margin: 0;
		padding: 0;
		font-size: clamp(24px, 7.2vw, 28px);
		line-height: 1.4;
		letter-spacing: -.025em;
		white-space: nowrap;
		word-break: keep-all;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions {
		width: 100%;
		margin: 0;
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 16px;
		align-items: center;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions > p {
		margin: 0;
		justify-self: start;
		white-space: nowrap;
	}
	body.post-type-archive-salon .ng-sort-form {
		min-width: 0;
		justify-self: end;
	}
	body.post-type-archive-salon .ng-sort-form label {
		display: block;
	}
	body.post-type-archive-salon .ng-sort-form select {
		width: 132px;
		max-width: 100%;
	}
}

@media (max-width: 360px) {
	body.post-type-archive-salon .ng-salon-directory {
		margin-right: 16px;
		margin-left: 16px;
	}
	body.post-type-archive-salon .ng-directory-toolbar__title h2 {
		font-size: 23px;
	}
	body.post-type-archive-salon .ng-directory-toolbar__actions {
		gap: 10px;
	}
	body.post-type-archive-salon .ng-sort-form select {
		width: 120px;
	}
}

/* =========================================================
   4.9.8 — actual mobile section inset fix
   Adds real inner spacing to the white salon collection panel.
   ========================================================= */
@media (max-width: 760px) {
	body.post-type-archive-salon .ng-salon-directory {
		width: auto !important;
		max-width: none !important;
		margin: 30px 16px 0 !important;
		padding: 38px 18px 76px !important;
		background: var(--ng-surface, #fffdf9);
	}

	body.post-type-archive-salon .ng-directory-toolbar {
		width: 100% !important;
		margin: 0 0 24px !important;
		padding: 0 !important;
		display: block !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__title {
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__title .ng-component-label {
		margin: 0 0 8px !important;
		font-size: 10px !important;
		line-height: 1.4 !important;
		letter-spacing: .11em !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__title h2 {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 0 !important;
		font-size: 25px !important;
		line-height: 1.45 !important;
		letter-spacing: -.025em !important;
		white-space: normal !important;
		word-break: keep-all !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__actions {
		width: 100% !important;
		margin: 20px 0 0 !important;
		padding: 0 !important;
		display: flex !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		gap: 16px !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__actions > p {
		margin: 0 !important;
		font-size: 12px !important;
		line-height: 1 !important;
		white-space: nowrap !important;
	}

	body.post-type-archive-salon .ng-directory-toolbar__actions > p strong {
		font-size: 20px !important;
		font-weight: 400 !important;
	}

	body.post-type-archive-salon .ng-sort-form {
		margin: 0 !important;
		flex: 0 0 auto !important;
	}

	body.post-type-archive-salon .ng-sort-form select {
		width: 122px !important;
		min-width: 122px !important;
		height: 46px !important;
		min-height: 46px !important;
		padding: 0 38px 0 16px !important;
		font-size: 13px !important;
		border-radius: 999px !important;
	}

	body.post-type-archive-salon .ng-salon-card-grid {
		width: 100% !important;
		margin: 0 !important;
		gap: 24px !important;
	}

	body.post-type-archive-salon .ng-salon-card--result {
		width: 100% !important;
		margin: 0 !important;
	}
}

@media (max-width: 360px) {
	body.post-type-archive-salon .ng-salon-directory {
		margin-right: 14px !important;
		margin-left: 14px !important;
		padding-right: 16px !important;
		padding-left: 16px !important;
	}
	body.post-type-archive-salon .ng-directory-toolbar__title h2 {
		font-size: 23px !important;
	}
	body.post-type-archive-salon .ng-sort-form select {
		width: 116px !important;
		min-width: 116px !important;
	}
}


/* Jobs owner CTA — stacked, natural layout (v1.0.2). */
body.ng-template-page-jobs .ng-career-cta {
	position: relative;
	display: block;
	overflow: hidden;
	padding: clamp(42px, 6vw, 76px);
}

body.ng-template-page-jobs .ng-career-cta::after {
	content: "";
	position: absolute;
	right: clamp(-110px, -6vw, -40px);
	top: 50%;
	width: clamp(220px, 28vw, 390px);
	aspect-ratio: 1;
	border: 1px solid rgba(190, 140, 149, .2);
	border-radius: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}

body.ng-template-page-jobs .ng-career-cta__content {
	position: relative;
	z-index: 1;
	max-width: 680px;
}

body.ng-template-page-jobs .ng-career-cta__description {
	max-width: 620px;
	margin: 0;
	font-size: clamp(14px, 1.25vw, 16px);
	line-height: 1.9;
}

body.ng-template-page-jobs .ng-career-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 54px;
	margin-top: 30px;
	padding: 0 28px;
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 600px) {
	body.ng-template-page-jobs .ng-career-cta {
		display: block;
		padding: 34px 22px 36px;
	}

	body.ng-template-page-jobs .ng-career-cta::after {
		right: -105px;
		top: auto;
		bottom: -125px;
		width: 240px;
		transform: none;
	}

	body.ng-template-page-jobs .ng-career-cta h2 {
		margin-bottom: 16px;
		font-size: clamp(25px, 8vw, 31px);
		line-height: 1.55;
	}

	body.ng-template-page-jobs .ng-career-cta__description {
		font-size: 14px;
		line-height: 1.85;
	}

	body.ng-template-page-jobs .ng-career-cta__button {
		width: 100%;
		margin-top: 24px;
		padding-inline: 18px;
		white-space: normal;
		text-align: center;
	}
}

/* 1.0.9 — desktop full-bleed backgrounds only.
   Keep the v1.0.8 section layouts, colors, spacing and card positions intact;
   only extend each top-level salon section to the viewport edges. */
@media (min-width: 1025px) {
	body.single-salon .ng-salon-single > :is(
		.ng-concerns,
		.ng-salon-reasons,
		.ng-salon-intro,
		.ng-visit-flow,
		.ng-salon-recommended,
		.ng-salon-menu-section,
		.ng-salon-designs,
		.ng-salon-staff,
		.ng-access,
		.ng-salon-faq,
		.ng-salon-final,
		.ng-salon-career,
		.ng-related-salons
	) {
		width: 100vw !important;
		max-width: none !important;
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
	}
}

/* 1.1.0 — HERO only: keep mobile, rebuild desktop from the approved mobile mood */
@media (min-width: 701px) {
	body.single-salon .ng-salon-hero {
		width: 100%;
		min-height: calc(100svh - var(--ng-header-height, 76px));
		display: grid;
		grid-template-columns: minmax(420px, 44%) minmax(0, 56%);
		background: #f8f4ef;
		color: #2e2a27;
	}

	body.single-salon .ng-salon-hero__visual {
		grid-column: 2;
		grid-row: 1;
		min-height: calc(100svh - var(--ng-header-height, 76px));
		background: #e6ddd4;
	}

	body.single-salon .ng-salon-hero__visual::after {
		background: linear-gradient(90deg, rgba(248,244,239,.16), transparent 18%);
	}

	body.single-salon .ng-salon-hero__visual img {
		object-position: center center;
	}

	body.single-salon .ng-salon-hero__shade {
		display: none;
	}

	body.single-salon .ng-salon-hero__content {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		min-width: 0;
		padding: clamp(118px, 14vh, 170px) clamp(44px, 6vw, 100px) clamp(70px, 9vh, 110px);
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		text-align: center;
		color: #2e2a27;
	}

	body.single-salon .ng-salon-hero__meta {
		margin: 0 0 26px;
		justify-content: center;
	}

	body.single-salon .ng-salon-hero__meta .ng-eyebrow {
		color: #ff7f2a;
		font-size: 10px;
		font-weight: 600;
		letter-spacing: .22em;
	}

	body.single-salon .ng-demo-label {
		border-color: rgba(46,42,39,.16);
		color: #746c66;
	}

	body.single-salon .ng-salon-hero h1 {
		max-width: 8.4em;
		margin: 0 0 30px;
		font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
		font-size: clamp(48px, 4.3vw, 72px);
		font-weight: 400;
		letter-spacing: .08em;
		line-height: 1.25;
		word-break: keep-all;
		overflow-wrap: normal;
		text-wrap: balance;
	}

	body.single-salon .ng-salon-hero__lower {
		width: min(100%, 520px);
	}

	body.single-salon .ng-salon-hero__location {
		margin: 0 0 12px;
		color: #756d67;
		font-size: 11px;
		letter-spacing: .08em;
		text-transform: none;
	}

	body.single-salon .ng-salon-hero__catch {
		max-width: 36em;
		margin: 0 auto 30px;
		color: #514b47;
		font-family: inherit;
		font-size: 14px;
		line-height: 1.9;
		-webkit-line-clamp: 3;
	}

	body.single-salon .ng-salon-hero .ng-tag-list {
		justify-content: center;
	}

	body.single-salon .ng-salon-hero .ng-tag-list li {
		border-color: rgba(46,42,39,.14);
		background: rgba(255,255,255,.58);
		color: #716963;
	}

	body.single-salon .ng-salon-hero .ng-salon-actions {
		width: min(100%, 390px);
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	body.single-salon .ng-salon-hero .ng-button {
		min-height: 54px;
		justify-content: center;
		gap: 16px;
	}

	body.single-salon .ng-salon-hero .ng-button--outline {
		border-color: rgba(46,42,39,.22);
		background: transparent;
		color: #3e3935;
	}

	body.single-salon .ng-salon-hero__scroll {
		display: none;
	}
}

@media (min-width: 701px) and (max-width: 1100px) {
	body.single-salon .ng-salon-hero {
		grid-template-columns: minmax(360px, 45%) minmax(0, 55%);
	}
	body.single-salon .ng-salon-hero__content {
		padding-inline: 38px;
	}
	body.single-salon .ng-salon-hero h1 {
		font-size: clamp(42px, 5vw, 58px);
	}
}
