/* Nail Guide desktop polish — 2026-08 sales launch pass */
@media (min-width: 1025px) {
  html { overflow-x: hidden; }
  body.ng-branded-site { font-size: 16px; }

  /* Shared desktop frame */
  body.ng-branded-site .ng-container,
  body.ng-branded-site .ng-header__inner,
  body.ng-branded-site .ng-site-header__inner,
  body.ng-branded-site .ng-page-hero__inner {
    width: min(1200px, calc(100% - 96px));
    margin-inline: auto;
  }
  body.ng-branded-site .ng-header__inner,
  body.ng-branded-site .ng-site-header__inner { min-height: 78px; }
  body.ng-branded-site .ng-site-nav,
  body.ng-branded-site .ng-header__nav { gap: 28px; font-size: 13px; }

  /* Generic page hero */
  body.ng-branded-site .ng-page-hero {
    min-height: 430px;
    padding: 132px 0 86px;
  }
  body.ng-branded-site .ng-page-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 64px;
  }
  body.ng-branded-site .ng-page-hero__copy { max-width: 840px; }
  body.ng-branded-site .ng-page-hero h1 {
    font-size: clamp(46px, 4.6vw, 68px);
    line-height: 1.28;
  }
  body.ng-branded-site .ng-page-hero__description {
    max-width: 680px;
    font-size: 15px;
    line-height: 2;
  }

  /* Salon search results */
  body.post-type-archive-salon .ng-directory-main {
    width: min(1200px, calc(100% - 96px));
    margin-inline: auto;
  }
  body.post-type-archive-salon .ng-directory-search,
  body.post-type-archive-salon .ng-directory-results {
    width: 100%;
  }
  body.post-type-archive-salon .ng-directory-toolbar {
    padding: 0 0 30px;
    align-items: flex-end;
  }
  body.post-type-archive-salon .ng-directory-toolbar h2 {
    font-size: 42px;
    line-height: 1.2;
  }
  body.post-type-archive-salon .ng-salon-card-grid { gap: 28px; }
  body.post-type-archive-salon .ng-salon-card--result {
    grid-template-columns: minmax(360px, 42%) minmax(0, 58%);
    min-height: 360px;
    border-radius: 28px;
  }
  body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__body {
    padding: 40px 42px 34px;
  }
  body.post-type-archive-salon .ng-salon-card--result h2 {
    font-size: clamp(30px, 2.5vw, 40px);
    margin-bottom: 18px;
  }
  body.post-type-archive-salon .ng-salon-card--result .ng-salon-card__excerpt {
    max-width: 680px;
    font-size: 14px;
    line-height: 1.9;
  }
  body.post-type-archive-salon .ng-salon-card__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    padding-block: 22px;
  }
  body.post-type-archive-salon .ng-salon-card__actions { margin-top: 22px; }

  /* Single salon LP: prevent the whole page looking mini on wide screens */
  body.single-salon .ng-salon-hero {
    width: min(1440px, 100%);
    min-height: 760px;
    grid-template-columns: minmax(430px, 38%) minmax(0, 62%);
  }
  body.single-salon .ng-salon-hero__content {
    padding: 72px clamp(54px, 6vw, 100px);
  }
  body.single-salon .ng-salon-hero h1 {
    max-width: 680px;
    font-size: clamp(56px, 5.2vw, 82px);
  }
  body.single-salon .ng-salon-hero__catch {
    max-width: 580px;
    font-size: 17px;
    line-height: 2;
  }
  body.single-salon .ng-salon-section {
    width: min(1200px, calc(100% - 96px));
    padding-block: 120px;
  }
  body.single-salon .ng-salon-menu-section,
  body.single-salon .ng-salon-designs {
    padding-inline: max(48px, calc((100vw - 1200px) / 2));
  }
  body.single-salon .ng-section-heading { max-width: 860px; margin-bottom: 64px; }
  body.single-salon .ng-section-heading h2 {
    font-size: clamp(42px, 4vw, 58px);
    line-height: 1.45;
  }
  body.single-salon .ng-salon-lead { font-size: 18px; max-width: 720px; }
  body.single-salon .ng-feature-item { min-height: 260px; padding: 38px; }
  body.single-salon .ng-feature-item h3 { font-size: 21px; }
  body.single-salon .ng-feature-item p { font-size: 14px; }
  body.single-salon .ng-gallery { grid-auto-columns: min(31vw, 430px); gap: 22px; }
  body.single-salon .ng-menu-list { max-width: 1020px; }
  body.single-salon .ng-menu-item { min-height: 128px; }
  body.single-salon .ng-menu-item h3 { font-size: 21px; }
  body.single-salon .ng-story-item p,
  body.single-salon .ng-salon-info dd,
  body.single-salon .ng-access__copy { font-size: 15px; }
  body.single-salon .ng-access__grid { grid-template-columns: .8fr 1.2fr; }

  /* Jobs directory */
  body.ng-template-page-jobs .ng-jobs-page {
    padding-bottom: 140px;
  }
  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(1200px, calc(100% - 96px));
  }
  body.ng-template-page-jobs .ng-job-search { padding: 44px; }
  body.ng-template-page-jobs .ng-job-search__heading h2 { font-size: 38px; }
  body.ng-template-page-jobs .ng-job-search__form {
    grid-template-columns: 1.35fr repeat(4, minmax(0, 1fr));
    gap: 14px;
    align-items: end;
  }
  body.ng-template-page-jobs .ng-job-search__keyword { grid-column: auto; }
  body.ng-template-page-jobs .ng-job-search__form button { min-width: 180px; }
  body.ng-template-page-jobs .ng-job-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
  }
  body.ng-template-page-jobs .ng-job-salon-card h2 { font-size: 24px; }
  body.ng-template-page-jobs .ng-career-cta {
    min-height: 380px;
    padding: 64px 72px !important;
    border-radius: 30px;
  }
  body.ng-template-page-jobs .ng-career-cta h2 { font-size: 48px; line-height: 1.45; }
  body.ng-template-page-jobs .ng-career-cta__description { font-size: 15px; }

  /* Contact / listing */
  body.ng-branded-site .ng-info-page { padding: 110px 48px 150px; }
  body.ng-branded-site .ng-info-page__inner { width: min(1200px, 100%); }
  body.ng-branded-site .ng-info-page__intro { max-width: 820px; margin-bottom: 64px; }
  body.ng-branded-site .ng-contact-layout { gap: 44px; }
  body.ng-branded-site .ng-contact-card { padding: 48px; }
  body.ng-branded-site .ng-listing-grid { gap: 30px; }
  body.ng-branded-site .ng-listing-card { padding: 44px; }
  body.ng-branded-site .ng-listing-flow { padding: 48px; }

  /* Footer */
  body.ng-branded-site .ng-site-footer__inner {
    width: min(1200px, calc(100% - 96px));
    margin-inline: auto;
  }
}

@media (min-width: 1440px) {
  body.ng-branded-site .ng-container,
  body.ng-branded-site .ng-header__inner,
  body.ng-branded-site .ng-site-header__inner,
  body.ng-branded-site .ng-page-hero__inner,
  body.post-type-archive-salon .ng-directory-main,
  body.ng-template-page-jobs .ng-job-search,
  body.ng-template-page-jobs .ng-job-list,
  body.ng-template-page-jobs .ng-career-cta,
  body.single-salon .ng-salon-section,
  body.ng-branded-site .ng-site-footer__inner {
    width: min(1280px, calc(100% - 128px));
  }
}

/* v1.0.5 — true full-width desktop pages, aligned with the TOP visual */
@media (min-width: 1025px) {
  /* Remove GeneratePress' boxed canvas only on Nail Guide functional pages. */
  body.single-salon,
  body.post-type-archive-salon,
  body.ng-template-page-jobs,
  body.ng-template-page-listing,
  body.ng-template-page-contact {
    background: #fffaf7;
  }

  body.single-salon #page,
  body.post-type-archive-salon #page,
  body.ng-template-page-jobs #page,
  body.ng-template-page-listing #page,
  body.ng-template-page-contact #page,
  body.single-salon .site.grid-container,
  body.post-type-archive-salon .site.grid-container,
  body.ng-template-page-jobs .site.grid-container,
  body.ng-template-page-listing .site.grid-container,
  body.ng-template-page-contact .site.grid-container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background: transparent;
  }

  body.single-salon #primary,
  body.post-type-archive-salon #primary,
  body.ng-template-page-jobs #primary,
  body.ng-template-page-listing #primary,
  body.ng-template-page-contact #primary,
  body.single-salon .content-area,
  body.post-type-archive-salon .content-area,
  body.ng-template-page-jobs .content-area,
  body.ng-template-page-listing .content-area,
  body.ng-template-page-contact .content-area,
  body.single-salon .site-main,
  body.post-type-archive-salon .site-main,
  body.ng-template-page-jobs .site-main,
  body.ng-template-page-listing .site-main,
  body.ng-template-page-contact .site-main {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  /* Salon detail: edge-to-edge first view like TOP. */
  body.single-salon .ng-salon-hero {
    width: 100vw;
    max-width: none;
    min-height: 100svh;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    grid-template-columns: minmax(430px, 36%) minmax(0, 64%);
  }
  body.single-salon .ng-salon-hero__content {
    padding-left: clamp(72px, 8vw, 154px);
    padding-right: clamp(52px, 6vw, 110px);
  }
  body.single-salon .ng-salon-hero__content::before {
    left: clamp(72px, 8vw, 154px);
  }

  /* Search page: remove the floating tinted canvas and let sections span the viewport. */
  body.post-type-archive-salon .ng-salon-archive {
    width: 100%;
    max-width: none;
    background: #fffaf7;
  }
  body.post-type-archive-salon .ng-directory-search,
  body.post-type-archive-salon .ng-salon-directory {
    width: 100%;
    max-width: none;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
  }
  body.post-type-archive-salon .ng-directory-search {
    padding-left: clamp(48px, 8vw, 150px);
    padding-right: clamp(48px, 8vw, 150px);
    background: #fbf7f3;
  }
  body.post-type-archive-salon .ng-salon-directory {
    padding-left: clamp(48px, 8vw, 150px);
    padding-right: clamp(48px, 8vw, 150px);
    background: #fffaf7;
  }
  body.post-type-archive-salon .ng-directory-search__inner,
  body.post-type-archive-salon .ng-directory-toolbar,
  body.post-type-archive-salon .ng-salon-card-grid,
  body.post-type-archive-salon .ng-directory-map,
  body.post-type-archive-salon .ng-directory-empty {
    width: 100%;
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
  }
  body.post-type-archive-salon .ng-salon-card--result {
    width: 100%;
    max-width: none;
    border: 1px solid rgba(76, 61, 54, .07);
    box-shadow: 0 18px 52px rgba(69, 51, 44, .065);
  }

  /* Keep secondary pages full-width while retaining readable content columns. */
  body.ng-template-page-jobs .ng-jobs-page,
  body.ng-template-page-listing .ng-info-page,
  body.ng-template-page-contact .ng-info-page {
    width: 100%;
    max-width: none;
    margin: 0;
    background: #fffaf7;
  }
}

/* v1.0.6 — Definitive full-viewport salon hero.
   Keep this at the end because this stylesheet loads after salon.css. */
@media (min-width: 1025px) {
  body.single-salon,
  body.single-salon #page,
  body.single-salon #content,
  body.single-salon #primary,
  body.single-salon .content-area,
  body.single-salon .site-main,
  body.single-salon .ng-salon-single {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  body.single-salon .ng-salon-hero {
    position: relative;
    width: 100%;
    max-width: none;
    height: max(720px, 100svh);
    min-height: 720px;
    margin: 0;
    padding: 0;
    display: block;
    overflow: hidden;
    background: #302d29;
  }

  body.single-salon .ng-salon-hero__visual {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: none;
    border-radius: 0;
  }

  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%);
  }

  body.single-salon .ng-salon-hero__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    background:
      linear-gradient(90deg, rgba(22,20,18,.66) 0%, rgba(22,20,18,.38) 35%, rgba(22,20,18,.10) 68%, rgba(22,20,18,.04) 100%),
      linear-gradient(0deg, rgba(20,18,17,.54) 0%, rgba(20,18,17,.05) 55%, rgba(20,18,17,.12) 100%);
    pointer-events: none;
  }

  body.single-salon .ng-salon-hero__content {
    position: relative;
    z-index: 2;
    width: min(calc(100% - 96px), 1340px);
    height: 100%;
    min-height: inherit;
    margin: 0 auto;
    padding: clamp(104px, 12vh, 150px) 0 clamp(48px, 7vh, 78px);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #fff;
  }

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

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

  body.single-salon .ng-salon-hero h1 {
    width: min(10em, 88%);
    max-width: none;
    margin: auto 0 clamp(46px, 7vh, 86px);
    font-size: clamp(64px, 8vw, 132px);
    line-height: .96;
  }

  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: 56px;
    border-top: 1px solid rgba(255,255,255,.32);
  }

  body.single-salon .ng-salon-hero .ng-salon-actions {
    display: flex;
    grid-template-columns: none;
    gap: 10px;
  }

  body.single-salon .ng-salon-hero__scroll {
    right: 0;
  }
}


/* v1.0.7 — Rebuilt desktop salon layout.
   Do not use the mobile editorial proportions on wide screens. */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-single {
    width: 100%;
    max-width: none;
    overflow: hidden;
  }

  /* Full-viewport hero, with content aligned to the TOP page rhythm. */
  body.single-salon .ng-salon-hero {
    width: 100vw;
    max-width: none;
    min-height: 780px;
    height: calc(100svh - 1px);
    margin: 0;
  }
  body.single-salon .ng-salon-hero__content {
    width: min(calc(100% - 120px), 1440px);
    min-height: 100%;
    margin-inline: auto;
    padding: clamp(118px, 14vh, 170px) 0 clamp(54px, 7vh, 84px);
    background: none;
  }
  body.single-salon .ng-salon-hero h1 {
    width: min(9.5em, 78%);
    margin: auto 0 clamp(50px, 7vh, 90px);
    font-size: clamp(66px, 7vw, 118px);
    line-height: 1.04;
    overflow-wrap: normal;
    word-break: keep-all;
  }
  body.single-salon .ng-salon-hero__lower {
    gap: 64px;
  }
  body.single-salon .ng-salon-hero__catch {
    max-width: 720px;
    margin-bottom: 0;
    font-size: 16px;
    line-height: 1.9;
  }

  /* Every editorial section gets a deliberate desktop content frame. */
  body.single-salon :is(
    .ng-concerns__inner,
    .ng-salon-reasons,
    .ng-visit-flow > *,
    .ng-salon-faq > *,
    .ng-access > *,
    .ng-related-salons > *,
    .ng-salon-section
  ) {
    width: min(calc(100% - 120px), 1360px);
    max-width: 1360px;
    margin-inline: auto;
  }

  /* The concern block was using a narrow mobile-like first column. */
  body.single-salon .ng-concerns {
    padding: 118px 60px;
  }
  body.single-salon .ng-concerns__inner {
    grid-template-columns: minmax(480px, .92fr) minmax(580px, 1.08fr);
    gap: clamp(72px, 7vw, 132px);
    align-items: center;
  }
  body.single-salon .ng-concerns__heading {
    min-width: 0;
  }
  body.single-salon .ng-concerns__heading h2 {
    max-width: 690px;
    margin-bottom: 28px;
    font-size: clamp(48px, 4.15vw, 70px);
    line-height: 1.42;
    letter-spacing: .01em;
    word-break: keep-all;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  body.single-salon .ng-concerns__heading > p:last-child {
    max-width: 560px;
    font-size: 15px;
    line-height: 2;
  }
  body.single-salon .ng-concerns__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
  body.single-salon .ng-concerns__list li {
    min-height: 116px;
    padding: 24px 26px;
    font-size: 14px;
    line-height: 1.85;
  }

  /* Dark story block: large but not oversized or vertically stretched. */
  body.single-salon .ng-salon-intro {
    min-height: 760px;
    padding: 130px 60px;
  }
  body.single-salon .ng-salon-intro__inner {
    width: min(100%, 1280px);
    margin-inline: auto;
  }
  body.single-salon .ng-salon-intro h2 {
    max-width: 920px;
    font-size: clamp(56px, 5.3vw, 86px);
    line-height: 1.36;
    word-break: keep-all;
    overflow-wrap: normal;
  }
  body.single-salon .ng-salon-intro__copy {
    max-width: 760px;
    font-size: 17px;
  }

  /* Avoid tiny cards and type across the remaining desktop sections. */
  body.single-salon .ng-section-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-size: clamp(42px, 3.7vw, 62px);
    word-break: keep-all;
  }
  body.single-salon .ng-feature-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  body.single-salon .ng-feature-item {
    min-height: 250px;
  }
  body.single-salon .ng-menu-list,
  body.single-salon .ng-salon-info,
  body.single-salon .ng-salon-faq__list {
    max-width: 1080px;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  body.single-salon .ng-salon-hero__content,
  body.single-salon :is(
    .ng-concerns__inner,
    .ng-salon-reasons,
    .ng-visit-flow > *,
    .ng-salon-faq > *,
    .ng-access > *,
    .ng-related-salons > *,
    .ng-salon-section
  ) {
    width: min(calc(100% - 72px), 1160px);
  }
  body.single-salon .ng-concerns {
    padding-inline: 36px;
  }
  body.single-salon .ng-concerns__inner {
    grid-template-columns: minmax(390px, .9fr) minmax(0, 1.1fr);
    gap: 56px;
  }
  body.single-salon .ng-concerns__heading h2 {
    font-size: clamp(44px, 4.5vw, 60px);
  }
}

/* =========================================================
   v1.0.8 — Salon desktop built from the approved SP design
   The mobile composition remains the source of truth.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon,
  body.single-salon #page,
  body.single-salon #content,
  body.single-salon .site-content,
  body.single-salon .content-area,
  body.single-salon .site-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-salon .ng-salon-single {
    width: 100% !important;
    max-width: none !important;
    overflow: clip !important;
    background: #fffdfa;
  }

  /* HERO — same hierarchy as SP, simply given room to breathe. */
  body.single-salon .ng-salon-hero {
    width: 100% !important;
    height: min(860px, 100svh) !important;
    min-height: 680px !important;
    margin: 0 !important;
    display: block !important;
  }

  body.single-salon .ng-salon-hero__visual,
  body.single-salon .ng-salon-hero__shade {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  body.single-salon .ng-salon-hero__shade {
    background:
      linear-gradient(90deg, rgba(28,25,23,.60) 0%, rgba(28,25,23,.38) 38%, rgba(28,25,23,.08) 72%, rgba(28,25,23,.02) 100%),
      linear-gradient(0deg, rgba(27,24,22,.52) 0%, rgba(27,24,22,.04) 58%, rgba(27,24,22,.12) 100%) !important;
  }

  body.single-salon .ng-salon-hero__content {
    width: min(calc(100% - 96px), 1220px) !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 132px 0 62px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
  }

  body.single-salon .ng-salon-hero__meta {
    width: min(100%, 760px) !important;
    margin: 0 !important;
  }

  body.single-salon .ng-salon-hero .ng-eyebrow {
    margin: 0 0 26px !important;
    font-size: 11px !important;
    letter-spacing: .26em !important;
  }

  body.single-salon .ng-salon-hero h1 {
    width: auto !important;
    max-width: 760px !important;
    margin: 0 0 38px !important;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-size: clamp(48px, 5vw, 76px) !important;
    font-weight: 400 !important;
    line-height: 1.18 !important;
    letter-spacing: .08em !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

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

  body.single-salon .ng-salon-hero__location,
  body.single-salon .ng-salon-hero__catch {
    max-width: 650px !important;
  }

  body.single-salon .ng-salon-hero__catch {
    margin: 12px 0 0 !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
  }

  body.single-salon .ng-salon-hero .ng-salon-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
  }

  body.single-salon .ng-salon-hero .ng-button {
    min-width: 176px !important;
    min-height: 52px !important;
    padding: 0 24px !important;
  }

  /* Shared desktop frame. Backgrounds remain full width; content is readable. */
  body.single-salon :is(
    .ng-concerns__inner,
    .ng-salon-reasons,
    .ng-salon-intro__inner,
    .ng-visit-flow__heading,
    .ng-visit-flow__grid,
    .ng-visit-flow__cta,
    .ng-salon-recommended,
    .ng-salon-menu-section,
    .ng-salon-designs > header,
    .ng-gallery,
    .ng-salon-staff,
    .ng-access,
    .ng-salon-faq__inner,
    .ng-salon-final__inner,
    .ng-salon-career,
    .ng-related-salons > *
  ) {
    width: min(calc(100% - 96px), 1180px) !important;
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-salon :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-related-salons
  ) {
    box-sizing: border-box !important;
  }

  /* Concerns */
  body.single-salon .ng-concerns {
    padding: 120px 0 !important;
  }
  body.single-salon .ng-concerns__inner {
    display: grid !important;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
    align-items: center !important;
    gap: 88px !important;
  }
  body.single-salon .ng-concerns__heading h2 {
    max-width: 540px !important;
    margin: 18px 0 26px !important;
    font-size: clamp(40px, 4vw, 58px) !important;
    line-height: 1.55 !important;
    letter-spacing: .03em !important;
    word-break: keep-all !important;
  }
  body.single-salon .ng-concerns__heading > p:last-child {
    max-width: 500px !important;
    font-size: 14px !important;
    line-height: 2 !important;
  }
  body.single-salon .ng-concerns__list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  body.single-salon .ng-concerns__list li {
    min-height: 110px !important;
    padding: 24px !important;
  }

  /* Reasons */
  body.single-salon .ng-salon-reasons {
    padding: 120px 0 !important;
    display: grid !important;
    grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr) !important;
    gap: 78px !important;
    align-items: start !important;
  }
  body.single-salon .ng-salon-reasons__heading {
    position: sticky !important;
    top: 120px !important;
  }
  body.single-salon .ng-salon-reasons__heading h2 {
    margin: 14px 0 24px !important;
    font-size: clamp(38px, 3.5vw, 54px) !important;
    line-height: 1.55 !important;
  }
  body.single-salon .ng-feature-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  body.single-salon .ng-feature-item {
    min-height: 190px !important;
    padding: 28px !important;
  }
  body.single-salon .ng-reasons-fit {
    grid-column: 2 !important;
    width: 100% !important;
    margin-top: 16px !important;
  }

  /* Dark story */
  body.single-salon .ng-salon-intro {
    min-height: 720px !important;
    padding: 128px 0 !important;
    display: flex !important;
    align-items: center !important;
  }
  body.single-salon .ng-salon-intro__inner {
    padding: 0 !important;
  }
  body.single-salon .ng-salon-intro h2 {
    max-width: 730px !important;
    margin: 20px 0 32px !important;
    font-size: clamp(46px, 4.5vw, 66px) !important;
    line-height: 1.5 !important;
    word-break: keep-all !important;
  }
  body.single-salon .ng-salon-intro__copy {
    max-width: 650px !important;
    font-size: 15px !important;
    line-height: 2.05 !important;
  }

  /* Flow */
  body.single-salon .ng-visit-flow {
    padding: 116px 0 !important;
  }
  body.single-salon .ng-visit-flow__heading {
    margin-bottom: 48px !important;
  }
  body.single-salon .ng-visit-flow__heading h2 {
    font-size: clamp(38px, 3.7vw, 54px) !important;
    line-height: 1.5 !important;
  }
  body.single-salon .ng-visit-flow__grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }

  /* Recommended */
  body.single-salon .ng-salon-recommended {
    padding: 112px 0 !important;
    display: grid !important;
    grid-template-columns: .8fr 1.2fr !important;
    gap: 78px !important;
    align-items: start !important;
  }
  body.single-salon .ng-salon-recommended .ng-section-heading h2 {
    font-size: clamp(38px, 3.6vw, 54px) !important;
    line-height: 1.55 !important;
  }
  body.single-salon .ng-salon-recommended ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  /* Menu */
  body.single-salon .ng-salon-menu-section {
    padding: 120px 0 !important;
    display: grid !important;
    grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr) !important;
    gap: 84px !important;
    align-items: start !important;
  }
  body.single-salon .ng-salon-menu-section__heading {
    position: sticky !important;
    top: 120px !important;
  }
  body.single-salon .ng-salon-menu-section__heading h2 {
    font-size: clamp(38px, 3.5vw, 54px) !important;
    line-height: 1.55 !important;
  }
  body.single-salon .ng-menu-panel,
  body.single-salon .ng-menu-list {
    width: 100% !important;
    max-width: none !important;
  }

  /* Gallery */
  body.single-salon .ng-salon-designs {
    padding: 120px 0 !important;
  }
  body.single-salon .ng-salon-designs > header {
    margin-bottom: 48px !important;
  }
  body.single-salon .ng-salon-designs h2 {
    font-size: clamp(40px, 3.8vw, 56px) !important;
    line-height: 1.5 !important;
  }
  body.single-salon .ng-gallery {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  body.single-salon .ng-gallery__item {
    grid-column: span 4 !important;
    min-height: 320px !important;
  }
  body.single-salon .ng-gallery__item:nth-child(1),
  body.single-salon .ng-gallery__item:nth-child(4) {
    grid-column: span 6 !important;
  }

  /* Staff */
  body.single-salon .ng-salon-staff {
    padding: 112px 0 !important;
  }
  body.single-salon .ng-salon-staff header h2 {
    font-size: clamp(38px, 3.5vw, 54px) !important;
    line-height: 1.5 !important;
  }
  body.single-salon .ng-staff-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }

  /* Access */
  body.single-salon .ng-access {
    padding: 120px 0 !important;
  }
  body.single-salon .ng-access__heading h2 {
    font-size: clamp(38px, 3.6vw, 54px) !important;
    line-height: 1.55 !important;
  }
  body.single-salon .ng-access__grid {
    display: grid !important;
    grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr) !important;
    gap: 56px !important;
    align-items: stretch !important;
  }
  body.single-salon .ng-access__map {
    min-height: 520px !important;
  }

  /* FAQ */
  body.single-salon .ng-salon-faq {
    padding: 112px 0 !important;
  }
  body.single-salon .ng-salon-faq__inner {
    max-width: 980px !important;
  }
  body.single-salon .ng-salon-faq__header h2 {
    font-size: clamp(38px, 3.5vw, 52px) !important;
    line-height: 1.55 !important;
  }
  body.single-salon .ng-salon-faq__list {
    width: 100% !important;
    max-width: none !important;
  }

  /* CTA and related */
  body.single-salon .ng-salon-final {
    padding: 100px 0 !important;
  }
  body.single-salon .ng-salon-final__inner {
    padding: 48px !important;
  }
  body.single-salon .ng-related-salons {
    padding: 100px 0 !important;
  }
  body.single-salon .ng-related-salons__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
}

/* SP polish only: keep the approved composition, reduce title dominance. */
@media (max-width: 700px) {
  body.single-salon .ng-salon-hero h1 {
    max-width: 92% !important;
    margin-bottom: 22px !important;
    font-size: clamp(40px, 12vw, 52px) !important;
    line-height: 1.16 !important;
    letter-spacing: .08em !important;
  }
  body.single-salon .ng-salon-hero__content {
    padding-bottom: 34px !important;
  }
  body.single-salon .ng-salon-hero__catch {
    font-size: 13px !important;
    line-height: 1.75 !important;
  }
  body.single-salon .ng-salon-hero .ng-button {
    min-height: 50px !important;
  }
}


/* =========================================================
   v1.1.1 — Single salon HERO only
   PC mirrors the approved SP first view: full-photo background,
   left-aligned copy, restrained typography. No later sections touched.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-hero {
    position: relative !important;
    width: 100vw !important;
    max-width: none !important;
    height: clamp(720px, 100svh, 940px) !important;
    min-height: 720px !important;
    margin: 0 calc(50% - 50vw) !important;
    padding: 0 !important;
    display: block !important;
    overflow: hidden !important;
    background: #292622 !important;
  }

  body.single-salon .ng-salon-hero__visual {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 0 !important;
  }

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

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

  body.single-salon .ng-salon-hero__shade {
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    display: block !important;
    background:
      linear-gradient(90deg, rgba(24,22,20,.70) 0%, rgba(24,22,20,.46) 34%, rgba(24,22,20,.15) 67%, rgba(24,22,20,.04) 100%),
      linear-gradient(0deg, rgba(20,18,17,.46) 0%, rgba(20,18,17,.03) 58%, rgba(20,18,17,.13) 100%) !important;
    pointer-events: none !important;
  }

  body.single-salon .ng-salon-hero__content {
    position: relative !important;
    z-index: 2 !important;
    width: min(calc(100% - 128px), 1320px) !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: clamp(128px, 15vh, 176px) 0 clamp(56px, 7vh, 82px) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: flex-start !important;
    color: #fff !important;
    text-align: left !important;
    background: transparent !important;
  }

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

  body.single-salon .ng-salon-hero__meta {
    width: auto !important;
    margin: 0 0 22px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  body.single-salon .ng-salon-hero .ng-eyebrow {
    margin: 0 !important;
    color: rgba(255,255,255,.72) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: .25em !important;
  }

  body.single-salon .ng-salon-hero__title {
    width: auto !important;
    max-width: 700px !important;
    margin: 0 0 26px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body.single-salon .ng-salon-hero__title-main {
    display: block !important;
    font-size: clamp(62px, 6.2vw, 94px) !important;
    line-height: .96 !important;
    letter-spacing: .015em !important;
  }

  body.single-salon .ng-salon-hero__title-sub {
    display: block !important;
    margin-top: 13px !important;
    font-size: clamp(25px, 2.35vw, 36px) !important;
    line-height: 1.2 !important;
    letter-spacing: .08em !important;
  }

  body.single-salon .ng-salon-hero__lower {
    width: min(100%, 760px) !important;
    padding: 0 !important;
    display: block !important;
    border: 0 !important;
  }

  body.single-salon .ng-salon-hero__location {
    margin: 0 0 10px !important;
    color: rgba(255,255,255,.72) !important;
    font-size: 11px !important;
    line-height: 1.7 !important;
    letter-spacing: .08em !important;
    text-transform: none !important;
  }

  body.single-salon .ng-salon-hero__catch {
    max-width: 590px !important;
    margin: 0 0 28px !important;
    color: rgba(255,255,255,.88) !important;
    font-family: inherit !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
    -webkit-line-clamp: 3 !important;
  }

  body.single-salon .ng-salon-hero .ng-salon-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
  }

  body.single-salon .ng-salon-hero .ng-button {
    width: auto !important;
    min-width: 178px !important;
    min-height: 54px !important;
    padding: 0 24px !important;
    justify-content: space-between !important;
    border-radius: 999px !important;
    font-size: 12px !important;
  }

  body.single-salon .ng-salon-hero__scroll {
    right: 0 !important;
    bottom: 54px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  body.single-salon .ng-salon-hero__content {
    width: calc(100% - 80px) !important;
  }

  body.single-salon .ng-salon-hero__title-main {
    font-size: clamp(58px, 6.6vw, 78px) !important;
  }
}

/* Keep the approved SP composition; only make the split title explicit. */
@media (max-width: 700px) {
  body.single-salon .ng-salon-hero__title {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  body.single-salon .ng-salon-hero__title-main,
  body.single-salon .ng-salon-hero__title-sub {
    display: block;
  }
  body.single-salon .ng-salon-hero__title-sub {
    margin-top: 8px;
    font-size: .55em;
    letter-spacing: .08em;
  }
}

/* v1.1.2 — Improve Instagram CTA contrast on the salon hero only. */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-hero .ng-button--outline {
    border-color: rgba(255,255,255,.72) !important;
    background: rgba(20,18,17,.24) !important;
    color: #fff !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.05) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  body.single-salon .ng-salon-hero .ng-button--outline span {
    color: #fff !important;
  }

  body.single-salon .ng-salon-hero .ng-button--outline:hover,
  body.single-salon .ng-salon-hero .ng-button--outline:focus-visible {
    border-color: #ff8a34 !important;
    background: #ff8a34 !important;
    color: #fff !important;
  }
}

/* v1.1.3 — FOR YOU section: centered editorial heading and four equal cards on desktop. */
@media (min-width: 1025px) {
  body.single-salon .ng-concerns {
    padding-top: 118px !important;
    padding-bottom: 126px !important;
  }

  body.single-salon .ng-concerns__inner {
    width: min(calc(100% - 96px), 1240px) !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    display: block !important;
  }

  body.single-salon .ng-concerns__heading {
    width: min(100%, 820px) !important;
    max-width: 820px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-concerns__heading .ng-eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-concerns__heading h2 {
    max-width: none !important;
    margin: 16px 0 20px !important;
    font-size: clamp(38px, 3.2vw, 52px) !important;
    line-height: 1.48 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-concerns__heading > p:last-child {
    max-width: 620px !important;
    margin: 0 auto !important;
    font-size: 14px !important;
    line-height: 2 !important;
    text-align: center !important;
  }

  body.single-salon .ng-concerns__list {
    width: 100% !important;
    margin: 52px 0 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }

  body.single-salon .ng-concerns__list li {
    min-height: 168px !important;
    padding: 28px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    border-radius: 20px !important;
    font-size: 14px !important;
    line-height: 1.8 !important;
    text-align: center !important;
  }

  body.single-salon .ng-concerns__list li span {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
    margin: 0 !important;
    font-size: 12px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1180px) {
  body.single-salon .ng-concerns__inner {
    width: calc(100% - 64px) !important;
  }

  body.single-salon .ng-concerns__list {
    gap: 14px !important;
  }

  body.single-salon .ng-concerns__list li {
    padding-left: 17px !important;
    padding-right: 17px !important;
    font-size: 13px !important;
  }
}

/* v1.1.4 — WHY CHOOSE US: centered heading, four equal feature cards, unified fit panel. */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-reasons {
    width: 100% !important;
    padding: 122px 48px 132px !important;
    display: block !important;
    background: var(--ng-lp-milk) !important;
  }

  body.single-salon .ng-salon-reasons__heading {
    position: static !important;
    top: auto !important;
    width: min(100%, 820px) !important;
    max-width: 820px !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-reasons__heading .ng-eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-reasons__heading h2 {
    max-width: none !important;
    margin: 16px 0 20px !important;
    font-size: clamp(38px, 3.2vw, 52px) !important;
    line-height: 1.48 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-salon-reasons__heading > p:last-child {
    max-width: 620px !important;
    margin: 0 auto !important;
    color: var(--ng-muted) !important;
    font-size: 14px !important;
    line-height: 2 !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-grid {
    width: min(100%, 1240px) !important;
    margin: 52px auto 0 !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item {
    min-height: 210px !important;
    padding: 30px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.88) !important;
    box-shadow: 0 18px 44px rgba(48,38,30,.08) !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item span {
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 34px !important;
    border-radius: 50% !important;
    background: rgba(198,135,142,.12) !important;
    color: var(--ng-rose) !important;
    font-family: inherit !important;
    font-size: 11px !important;
    font-style: normal !important;
    letter-spacing: .04em !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item > div {
    width: 100% !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item h3 {
    margin: 0 0 10px !important;
    font-size: 18px !important;
    line-height: 1.65 !important;
    font-weight: 500 !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item p {
    max-width: 240px !important;
    margin: 0 auto !important;
    color: #67605a !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
    text-align: center !important;
  }

  body.single-salon .ng-reasons-fit {
    grid-column: auto !important;
    width: min(100%, 1240px) !important;
    margin: 22px auto 0 !important;
    padding: 26px 30px !important;
    display: grid !important;
    grid-template-columns: 150px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 24px !important;
    border: 0 !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.78) !important;
    box-shadow: 0 14px 38px rgba(48,38,30,.06) !important;
  }

  body.single-salon .ng-reasons-fit > p {
    margin: 0 !important;
    text-align: center !important;
  }

  body.single-salon .ng-reasons-fit ul {
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px 20px !important;
  }

  body.single-salon .ng-reasons-fit li {
    font-size: 12px !important;
    line-height: 1.7 !important;
  }
}

@media (min-width: 1025px) and (max-width: 1180px) {
  body.single-salon .ng-salon-reasons {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-grid {
    gap: 14px !important;
  }

  body.single-salon .ng-salon-reasons .ng-feature-item {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/* v1.1.5 — dark salon story: centered editorial composition on desktop only. */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-intro {
    min-height: 0 !important;
    padding: 128px 48px 136px !important;
    display: block !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-intro::after {
    left: 0 !important;
    width: 8px !important;
    opacity: .72 !important;
  }

  body.single-salon .ng-salon-intro__inner {
    width: min(100%, 1180px) !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-intro__eyebrow {
    margin: 0 auto 18px !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-intro h2 {
    max-width: 960px !important;
    margin: 0 auto !important;
    font-size: clamp(42px, 3.9vw, 62px) !important;
    line-height: 1.5 !important;
    letter-spacing: .025em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-salon-intro__copy {
    max-width: 760px !important;
    margin: 32px auto 0 !important;
    font-size: 15px !important;
    line-height: 2.05 !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-intro__meta {
    width: min(100%, 820px) !important;
    margin: 52px auto 0 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    align-items: center !important;
    color: rgba(255,255,255,.72) !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-intro__meta span {
    min-height: 58px !important;
    padding: 0 28px !important;
    display: flex !important;
    justify-content: center !important;
    gap: 10px !important;
    border-right: 1px solid rgba(255,255,255,.14) !important;
  }

  body.single-salon .ng-salon-intro__meta span:last-child {
    border-right: 0 !important;
  }

  body.single-salon .ng-salon-intro__cta {
    min-width: 250px !important;
    width: auto !important;
    margin: 44px auto 0 !important;
    padding: 17px 24px !important;
    display: inline-flex !important;
  }

  body.single-salon .ng-salon-intro__rail {
    right: 22px !important;
    opacity: .76 !important;
  }
}

@media (min-width: 1025px) and (max-width: 1180px) {
  body.single-salon .ng-salon-intro {
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  body.single-salon .ng-salon-intro__meta span {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* =========================================================
   Salon detail — FIRST VISIT centered desktop refinement
   Scope: desktop only; mobile/tablet rules remain untouched.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-visit-flow {
    padding-top: 120px !important;
    padding-bottom: 120px !important;
  }

  body.single-salon .ng-visit-flow__heading {
    width: min(100%, 920px) !important;
    max-width: 920px !important;
    margin: 0 auto 58px !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__heading .ng-eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__heading h2 {
    max-width: 880px !important;
    margin: 18px auto 24px !important;
    font-size: clamp(42px, 3.6vw, 56px) !important;
    line-height: 1.48 !important;
    letter-spacing: .015em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-visit-flow__heading > p:last-child {
    max-width: 680px !important;
    margin: 0 auto !important;
    font-size: 14px !important;
    line-height: 2 !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__grid {
    width: min(100%, 1180px) !important;
    margin: 0 auto !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }

  body.single-salon .ng-visit-flow__grid article {
    min-height: 248px !important;
    padding: 30px 26px 28px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__grid article > span {
    margin: 0 0 42px !important;
    display: block !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__grid h3 {
    width: 100% !important;
    margin: 0 0 14px !important;
    font-size: 20px !important;
    line-height: 1.55 !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__grid p {
    max-width: 220px !important;
    margin: 0 auto !important;
    font-size: 12px !important;
    line-height: 1.9 !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__cta {
    margin-top: 42px !important;
    text-align: center !important;
  }

  body.single-salon .ng-visit-flow__cta .ng-button {
    min-width: 340px !important;
    justify-content: center !important;
  }
}

/* =========================================================
   Salon detail — RECOMMENDED FOR centered desktop refinement
   Scope: desktop only; HERO / previous sections / mobile untouched.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-recommended {
    padding-top: 120px !important;
    padding-bottom: 120px !important;
    display: block !important;
  }

  body.single-salon .ng-salon-recommended .ng-section-heading {
    width: min(100%, 940px) !important;
    max-width: 940px !important;
    margin: 0 auto 58px !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-recommended .ng-section-heading .ng-eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-recommended .ng-section-heading h2 {
    max-width: 900px !important;
    margin: 18px auto 0 !important;
    font-size: clamp(42px, 3.6vw, 56px) !important;
    line-height: 1.5 !important;
    letter-spacing: .015em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-salon-recommended ul {
    width: min(100%, 1040px) !important;
    max-width: 1040px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 34px !important;
    border-top: 1px solid var(--ng-border) !important;
    list-style: none !important;
  }

  body.single-salon .ng-salon-recommended li {
    min-height: 78px !important;
    padding: 22px 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 14px !important;
    border-bottom: 1px solid var(--ng-border) !important;
    font-size: 14px !important;
    line-height: 1.8 !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-recommended li span {
    flex: 0 0 auto !important;
    color: #ff7f32 !important;
    font-size: 11px !important;
  }
}

/* =========================================================
   Salon detail — TREATMENTS / MENU centered desktop refinement
   Scope: desktop only; previous sections / mobile untouched.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-menu-section {
    padding-top: 120px !important;
    padding-bottom: 132px !important;
    display: block !important;
  }

  body.single-salon .ng-salon-menu-section__heading {
    position: static !important;
    top: auto !important;
    width: min(100%, 860px) !important;
    max-width: 860px !important;
    margin: 0 auto 60px !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-menu-section__heading .ng-eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-menu-section__heading h2 {
    max-width: 820px !important;
    margin: 18px auto 20px !important;
    font-size: clamp(42px, 3.6vw, 56px) !important;
    line-height: 1.48 !important;
    letter-spacing: .015em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-salon-menu-section__heading > p:last-child {
    max-width: 620px !important;
    margin: 0 auto !important;
    font-size: 13px !important;
    line-height: 2 !important;
    text-align: center !important;
  }

  body.single-salon .ng-menu-panel {
    width: min(100%, 1040px) !important;
    max-width: 1040px !important;
    margin: 0 auto !important;
    border-radius: 24px !important;
  }

  body.single-salon .ng-menu-list {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.single-salon .ng-menu-item {
    min-height: 138px !important;
    padding: 28px 36px !important;
    grid-template-columns: 38px minmax(0, 1fr) minmax(130px, auto) !important;
    align-items: center !important;
    column-gap: 24px !important;
    row-gap: 8px !important;
  }

  body.single-salon .ng-menu-item__number {
    padding-top: 0 !important;
    align-self: center !important;
    text-align: center !important;
  }

  body.single-salon .ng-menu-item__copy {
    min-width: 0 !important;
    text-align: left !important;
  }

  body.single-salon .ng-menu-item h3 {
    margin: 0 0 9px !important;
    font-size: clamp(19px, 1.7vw, 24px) !important;
    line-height: 1.55 !important;
  }

  body.single-salon .ng-menu-item p:not(.ng-menu-item__price) {
    max-width: 600px !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.85 !important;
  }

  body.single-salon .ng-menu-item__meta {
    min-width: 130px !important;
    align-self: center !important;
    text-align: right !important;
  }

  body.single-salon .ng-menu-item__price {
    margin: 0 !important;
    font-size: 19px !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
  }

  body.single-salon .ng-menu-item small {
    margin-top: 7px !important;
    display: block !important;
    text-align: right !important;
  }

  body.single-salon .ng-menu-item__popular {
    margin: 0 0 9px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.single-salon .ng-menu-more {
    width: 100% !important;
    margin-top: 38px !important;
    text-align: center !important;
  }

  body.single-salon .ng-menu-more > a {
    margin-inline: auto !important;
    justify-content: center !important;
  }

  body.single-salon .ng-menu-more > p {
    text-align: center !important;
  }
}


/* PC popular badge matches SP */
@media (min-width:1025px){
body.single-salon .ng-menu-item__popular{
display:inline-flex!important;
align-items:center;
width:auto!important;
height:auto!important;
padding:6px 12px!important;
border-radius:999px!important;
background:#ff8a3d!important;
color:#fff!important;
font-size:12px!important;
font-weight:700!important;
letter-spacing:.02em!important;
margin:0 0 14px!important;
}
}

/* =========================================================
   v1.1.9 — NAILISTS / staff section only
   Keep SP unchanged; center the PC presentation and staff card.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-salon-staff {
    padding: 128px max(28px, calc((100vw - 1240px) / 2)) !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-staff > header {
    width: min(100%, 900px) !important;
    margin: 0 auto 64px !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-staff > header .ng-eyebrow {
    margin-bottom: 20px !important;
    text-align: center !important;
  }

  body.single-salon .ng-salon-staff header h2 {
    margin: 0 !important;
    font-size: clamp(42px, 3.6vw, 58px) !important;
    line-height: 1.5 !important;
    letter-spacing: .015em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-salon-staff .ng-staff-grid {
    width: min(100%, 1120px) !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    gap: 28px !important;
    justify-items: center !important;
    align-items: stretch !important;
  }

  body.single-salon .ng-salon-staff .ng-staff-grid article,
  body.single-salon .ng-salon-staff .ng-staff-grid article:nth-child(even) {
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 !important;
    text-align: center !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.58) !important;
    box-shadow: 0 20px 56px rgba(55,45,39,.08) !important;
  }

  body.single-salon .ng-staff-card__copy {
    padding: 38px 44px 40px !important;
    text-align: center !important;
  }

  body.single-salon .ng-staff-card__role,
  body.single-salon .ng-staff-card__specialty,
  body.single-salon .ng-staff-grid p {
    text-align: center !important;
  }

  body.single-salon .ng-staff-grid h3 {
    margin: 10px 0 18px !important;
    font-size: clamp(28px, 2.4vw, 36px) !important;
    line-height: 1.5 !important;
    text-align: center !important;
  }

  body.single-salon .ng-staff-grid p {
    max-width: 620px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 13px !important;
    line-height: 2 !important;
  }

  body.single-salon .ng-staff-grid a {
    margin: 14px auto 0 !important;
    justify-content: center !important;
  }
}

/* =========================================================
   v1.2.1 — ACCESS desktop polish
   Keep the approved SP composition untouched.
   ========================================================= */
@media (min-width: 1025px) {
  body.single-salon .ng-access {
    padding: 132px 0 140px !important;
  }

  body.single-salon .ng-access__heading {
    width: min(880px, 100%) !important;
    margin: 0 auto 64px !important;
    text-align: center !important;
  }

  body.single-salon .ng-access__heading .ng-eyebrow {
    margin: 0 0 18px !important;
    text-align: center !important;
  }

  body.single-salon .ng-access__heading h2 {
    max-width: 760px !important;
    margin: 0 auto !important;
    font-size: clamp(42px, 3.7vw, 58px) !important;
    line-height: 1.55 !important;
    letter-spacing: .025em !important;
    text-align: center !important;
    word-break: keep-all !important;
  }

  body.single-salon .ng-access__grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr) !important;
    gap: 40px !important;
    align-items: stretch !important;
  }

  body.single-salon .ng-access__copy,
  body.single-salon .ng-access__map {
    min-height: 500px !important;
    height: 100% !important;
    border-radius: 24px !important;
    box-sizing: border-box !important;
  }

  body.single-salon .ng-access__copy {
    padding: 54px 48px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    background: rgba(255, 255, 255, .9) !important;
    border: 1px solid rgba(77, 67, 59, .08) !important;
    box-shadow: 0 20px 54px rgba(45, 38, 32, .07) !important;
  }

  body.single-salon .ng-access__address {
    margin: 0 0 14px !important;
    color: var(--ng-charcoal) !important;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
    font-size: clamp(22px, 1.65vw, 28px) !important;
    line-height: 1.75 !important;
    letter-spacing: .06em !important;
  }

  body.single-salon .ng-access__station {
    margin: 0 0 30px !important;
    color: #9a6c55 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: .04em !important;
  }

  body.single-salon .ng-access__route {
    margin: 0 0 28px !important;
    color: var(--ng-muted) !important;
    font-size: 14px !important;
    line-height: 1.9 !important;
  }

  body.single-salon .ng-access__copy dl {
    margin: 0 !important;
  }

  body.single-salon .ng-access__copy dl > div {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 18px !important;
    padding: 11px 0 !important;
    border-top: 1px solid rgba(65, 57, 50, .08) !important;
  }

  body.single-salon .ng-access__copy dt,
  body.single-salon .ng-access__copy dd {
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.75 !important;
  }

  body.single-salon .ng-access__copy dt {
    color: #9b9188 !important;
  }

  body.single-salon .ng-access__copy dd {
    color: var(--ng-charcoal) !important;
  }

  body.single-salon .ng-access__map {
    overflow: hidden !important;
    aspect-ratio: auto !important;
    background: #eee8e1 !important;
    box-shadow: 0 20px 54px rgba(45, 38, 32, .07) !important;
  }

  body.single-salon .ng-access__map iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 500px !important;
    border: 0 !important;
  }

  body.single-salon .ng-access__map-link {
    align-self: flex-start !important;
    margin-top: 24px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1280px) {
  body.single-salon .ng-access__grid {
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
    gap: 32px !important;
  }

  body.single-salon .ng-access__copy {
    padding: 44px 38px !important;
  }
}
