:root {
  --ink: #222222;
  --muted: #555555;
  --paper: #ffffff;
  --cream: #fff4ec;
  --cream-deep: #ffe7d3;
  --orange: #ff9b58;
  --orange-dark: #d96521;
  --yellow: #ffc28f;
  --green: #708066;
  --line: #f0c4a7;
  --white: #fff;
  --shadow: 0 12px 32px rgba(0, 0, 0, .08);
  --radius: 18px;
  --content: 1080px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 92px; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.9;
  overflow-wrap: anywhere;
}
img { display: block; width: 100%; height: auto; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(calc(100% - 40px), var(--content)); margin-inline: auto; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .7rem 1rem; background: var(--ink); color: #fff; }
.skip-link:focus { top: 1rem; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,253,249,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(10px); }
.header-inner { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { text-decoration: none; line-height: 1.35; }
.brand small { display: block; color: var(--orange-dark); font-size: .72rem; letter-spacing: .18em; }
.brand strong { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 1.08rem; font-weight: 600; letter-spacing: .05em; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav a { text-decoration: none; font-size: .88rem; font-weight: 700; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--orange-dark); }
.nav-toggle { display: none; min-width: 68px; height: 46px; padding: 0 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); font: inherit; font-size: .82rem; font-weight: 700; white-space: nowrap; }

main { min-height: 60vh; }
.hero { padding: 48px 0 64px; background: linear-gradient(180deg, #fff7eb, var(--paper)); }
.hero-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(28px, 5vw, 70px); }
.eyebrow { margin: 0 0 10px; color: var(--orange-dark); font-family: Georgia, serif; font-size: .78rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; line-height: 1.5; }
h1 { margin-bottom: 20px; font-size: clamp(1.5rem, 2.2vw, 1.75rem); letter-spacing: .05em; }
h2 { margin-bottom: 18px; font-size: clamp(1.25rem, 1.8vw, 1.4rem); }
h3 { margin-bottom: 10px; font-size: clamp(1rem, 1.4vw, 1.12rem); }
p { margin-top: 0; }
.lead { font-size: 1.05rem; line-height: 2; }
.hero-copy { max-width: 540px; }
.hero-photo { position: relative; }
.hero-photo::before {
  content: none;
}
.hero-photo img {
  aspect-ratio: 16/10;
  object-fit: cover;
  border-radius: 44% 44% 0 0;
  box-shadow: var(--shadow);
}
.hero-photo::after { content: ""; position: absolute; right: -14px; bottom: -14px; width: 34%; height: 34%; border: 2px solid var(--yellow); border-radius: 50%; z-index: -1; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 22px; border: 1px solid var(--orange-dark); border-radius: 999px; background: var(--orange-dark); color: #fff; text-decoration: none; font-weight: 700; line-height: 1.4; }
.button:hover { background: var(--ink); border-color: var(--ink); }
.button-outline { background: transparent; color: var(--orange-dark); }
.button-outline:hover { color: #fff; }
.button.pending { background: #8d817a; border-color: #8d817a; cursor: not-allowed; }
.button-note { margin: 8px 0 0; color: var(--muted); font-size: .84rem; }

.section { padding: clamp(58px, 8vw, 92px) 0; }
.section-soft { background: var(--cream); }
.section-heading { max-width: 710px; margin-bottom: 34px; }
.section-heading p:last-child { margin-bottom: 0; }
.center { margin-inline: auto; text-align: center; }
.two-column { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(30px, 6vw, 72px); }
.two-column.top { align-items: start; }
.photo-frame img { aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.photo-frame.portrait img { aspect-ratio: 4/5; }
.photo-frame.kimono-photo img { aspect-ratio: auto; object-fit: contain; }
.quote { margin: 22px 0 0; padding: 22px 24px; border-left: 4px solid var(--yellow); background: #fff; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; line-height: 2; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cards.four { grid-template-columns: repeat(4, 1fr); }
.card { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.86); }
.card p:last-child { margin-bottom: 0; }
.card-number { display: inline-grid; place-items: center; width: 38px; height: 38px; margin-bottom: 15px; border-radius: 50%; background: var(--cream-deep); color: var(--orange-dark); font-weight: 800; }
.text-link { color: var(--orange-dark); font-weight: 700; text-underline-offset: 4px; }
.note-panel { padding: 24px 28px; border-left: 4px solid var(--yellow); background: #fff8e9; border-radius: 0 14px 14px 0; }
.tag-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; padding: 0; list-style: none; }
.tag-list li { padding: 5px 13px; border-radius: 999px; background: var(--cream-deep); font-size: .9rem; }
.profile-list, .info-list { margin: 0; }
.profile-list div, .info-list div { display: grid; grid-template-columns: 9em 1fr; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.profile-list dt, .info-list dt { font-weight: 700; }
.profile-list dd, .info-list dd { margin: 0; }
.menu-list { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.menu-item { padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.menu-item p:last-child { margin-bottom: 0; }
.menu-price-slot { min-height: 1.5em; margin-top: 16px; border-top: 1px dashed var(--line); }
.voice { position: relative; padding-top: 34px; }
.voice::before { content: "“"; position: absolute; top: -10px; left: 20px; color: var(--cream-deep); font-family: Georgia, serif; font-size: 5rem; line-height: 1; }
.voice .meta { color: var(--orange-dark); font-weight: 800; }
.gallery { display: grid; grid-template-columns: 1.35fr .65fr; gap: 16px; }
.gallery img { height: 100%; min-height: 270px; object-fit: cover; border-radius: var(--radius); }
.narrow { max-width: 780px; }
.cards.two { grid-template-columns: repeat(2, 1fr); }
.section-link { margin-top: 28px; }
.philosophy-intro { max-width: 900px; }
.philosophy-text {
  max-width: 860px;
  margin: 0 auto 24px;
  padding: 24px clamp(22px, 4vw, 42px);
  border: 1px solid rgba(181, 125, 68, .38);
  border-left: 5px solid var(--orange-dark);
  border-radius: 14px;
  background: #fffaf2;
  box-shadow: 0 8px 24px rgba(79,58,45,.08);
  color: var(--ink);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.08rem, 2vw, 1.35rem);
  font-weight: 600;
  line-height: 2.05;
  text-align: center;
}
.philosophy-figure { max-width: 920px; margin: 0 auto 34px; padding: clamp(10px, 2vw, 20px); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.philosophy-figure img { width: 100%; height: auto; object-fit: contain; }
.work-photo img, .owner-photo img { object-position: center; }
.owner-photo { max-width: 320px; margin-inline: auto; }
.small-note, .voice-note { color: var(--muted); font-size: .88rem; }
.process-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 36px; }
.process-photos figure { margin: 0; }
.process-photos img { aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); }
.process-photos figcaption { padding-top: 10px; color: var(--orange-dark); font-weight: 700; text-align: center; }
.visit-flow { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: visit-step; }
.visit-flow li { padding: 20px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; counter-increment: visit-step; }
.visit-flow li::before { content: counter(visit-step); display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: 12px; border-radius: 50%; background: var(--cream-deep); color: var(--orange-dark); font-weight: 800; }
.visit-flow strong, .visit-flow span { display: block; }
.visit-flow span { margin-top: 8px; font-size: .9rem; }
.product-figure { margin: 0; }
.product-figure figcaption { padding-top: 10px; color: var(--muted); font-size: .88rem; text-align: center; }
.herb-caution { margin-top: 28px; }

.herb-feature { background: #fffaf2; }
.herb-feature-photo { max-width: 430px; justify-self: end; }
.owner-heading-row { display: flex; align-items: center; gap: 16px; margin-bottom: 12px; }
.owner-heading-row h2 { margin-bottom: 0; }
.owner-thumb { width: 64px; height: 64px; flex: 0 0 64px; object-fit: cover; object-position: center; border-radius: 50%; box-shadow: 0 6px 18px rgba(79,58,45,.13); }

.page-hero { padding: 54px 0; background: linear-gradient(120deg, #fff1d9, #fffaf2); text-align: center; }
.page-hero p:last-child { margin-bottom: 0; }
.breadcrumb { margin-bottom: 14px; color: var(--muted); font-size: .86rem; }
.breadcrumb a { text-underline-offset: 3px; }
.calendar-slot { min-height: 180px; display: grid; place-items: center; padding: 26px; border: 1px dashed #bba99b; border-radius: var(--radius); background: #fff; color: var(--muted); text-align: center; }
.map-slot { min-height: 280px; display: grid; place-items: center; padding: 28px; border-radius: var(--radius); background: #ede6dd; color: var(--muted); text-align: center; }
.cta { padding: 55px 0; background: #d96521; color: #fff; text-align: center; }
.cta h2 { margin-bottom: 12px; }
.cta .button { background: #ff9b58; border-color: #ff9b58; color: #222222; }
.cta .button-outline { background: transparent; border-color: #fff; color: #fff; }

.site-footer { padding: 42px 0 24px; background: #d96521; color: #ffffff; }
.footer-grid { display: grid; grid-template-columns: 1fr 2fr; gap: 40px; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 14px 24px; }
.footer-nav a { color: #fff; font-size: .9rem; }
.copyright { margin: 30px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.38); color: #ffffff; font-size: .8rem; text-align: center; }
.mobile-actions { display: none; }

@media (max-width: 860px) {
  .nav-toggle { display: block; }
  .site-nav { position: absolute; top: 74px; left: 0; right: 0; display: none; padding: 12px 20px 22px; background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: var(--shadow); }
  .site-nav.open { display: grid; }
  .site-nav a { min-height: 44px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
  .hero-grid, .two-column { grid-template-columns: 1fr; }
  .hero-copy { max-width: none; }
  .cards.four { grid-template-columns: repeat(2, 1fr); }
  .visit-flow { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-nav { justify-content: flex-start; }
}

@media (max-width: 620px) {
  body { padding-bottom: 68px; font-size: 16px; }
  .container { width: min(calc(100% - 28px), var(--content)); }
  .header-inner { min-height: 66px; }
  .site-nav { top: 66px; }
  .hero { padding: 30px 0 50px; }
  .hero-grid { gap: 28px; }
  .hero-photo { order: -1; }
  .hero-photo::before { content: none; }
  .hero-photo img { aspect-ratio: 4/3; border-radius: 44% 44% 0 0; }
  .herb-feature-photo { max-width: none; justify-self: stretch; }
  .owner-thumb { width: 56px; height: 56px; flex-basis: 56px; }
  .lead { font-size: 1rem; }
  .button-row { display: grid; }
  .button { width: 100%; }
  .cards, .cards.four, .cards.two, .menu-list, .gallery, .process-photos, .visit-flow { grid-template-columns: 1fr; }
  .philosophy-text br { display: none; }
  .card { padding: 22px; }
  .gallery img { min-height: 220px; aspect-ratio: 4/3; }
  .gallery img:first-child { min-height: 0; }
  .photo-frame.kimono-photo img { aspect-ratio: auto; object-fit: contain; }
  .profile-list div, .info-list div { grid-template-columns: 1fr; gap: 2px; }
  .mobile-actions { position: fixed; z-index: 45; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 1fr 1.25fr; padding: 8px; gap: 8px; background: rgba(255,253,249,.97); border-top: 1px solid var(--line); }
  .mobile-actions a { min-height: 50px; display: flex; align-items: center; justify-content: center; border-radius: 12px; text-decoration: none; font-weight: 800; line-height: 1.2; }
  .mobile-actions .phone { border: 1px solid var(--orange-dark); color: var(--orange-dark); }
  .mobile-actions .reserve { background: #a40b5d; color: #fff; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

.access-map {
  background: #fffaf4;
  padding: 10px;
}
.access-map img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Business calendar */
.business-calendar {
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  box-shadow: var(--shadow);
}
.calendar-toolbar {
  display: grid;
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.calendar-month {
  margin: 0;
  text-align: center;
  font-size: clamp(1.15rem, 2vw, 1.35rem);
}
.calendar-nav {
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fffaf2;
  color: var(--orange-dark);
  font: inherit;
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.calendar-nav:hover,
.calendar-nav:focus-visible { background: var(--cream-deep); }
.calendar-weekdays,
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.calendar-weekdays {
  margin-bottom: 6px;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  text-align: center;
}
.calendar-weekdays span { padding: 6px 0; }
.calendar-day {
  position: relative;
  min-height: 58px;
  padding: 7px 5px 5px;
  border-top: 1px solid #efe7df;
  border-left: 1px solid #efe7df;
  background: #fff;
  text-align: center;
}
.calendar-day:nth-child(7n) { border-right: 1px solid #efe7df; }
.calendar-day:nth-last-child(-n+7) { border-bottom: 1px solid #efe7df; }
.calendar-day.is-empty { background: #fbf8f4; }
.calendar-day.is-closed { background: #f5ece8; }
.calendar-day.is-special-open { background: #fff5cf; }
.calendar-date { display: block; font-weight: 700; }
.calendar-label {
  display: block;
  margin-top: 3px;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.25;
}
.calendar-day.is-closed .calendar-label { color: #8f5b52; }
.calendar-day.is-special-open .calendar-label { color: #8a651b; }
.calendar-status {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: .82rem;
  text-align: center;
}
.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 18px;
  color: var(--muted);
  font-size: .88rem;
}
.calendar-legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.legend-dot.is-closed { background: #d8b8ae; }
.legend-dot.is-open { background: #e9cb67; }

@media (max-width: 620px) {
  .business-calendar { padding: 14px 10px; }
  .calendar-day { min-height: 52px; padding-inline: 2px; }
  .calendar-date { font-size: .9rem; }
  .calendar-label { font-size: .62rem; }
}


/* Pure Friend quality pillars */
.quality-feature { background: linear-gradient(180deg, #fffdf9 0%, #fff8ef 100%); }
.quality-feature .section-heading { max-width: 820px; margin-inline: auto; }
.quality-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(22px,4vw,42px); margin-top: clamp(28px,5vw,48px); }
.quality-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.quality-photo { margin: 0; background: #f7f1e9; aspect-ratio: 16/9; overflow: hidden; }
.quality-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.quality-photo-refa img { object-position: center 54%; }
.quality-copy { padding: clamp(22px,3vw,32px); }
.quality-copy h3 { margin-top: .3rem; }
.refa-product-photo img { max-height: 620px; object-fit: contain; background: #f8f3ed; }
.process-photos figcaption { display: grid; gap: 7px; padding-top: 12px; }
.process-photos figcaption strong { color: var(--orange-dark); font-size: 1.02rem; }
.process-photos figcaption span { color: var(--muted); font-size: .9rem; line-height: 1.7; }
.payment-panel { padding: clamp(24px,4vw,40px); border: 1px solid var(--line); border-radius: var(--radius); background: #fffaf4; text-align: center; box-shadow: var(--shadow); }
.payment-panel h2 { margin-bottom: 12px; }
@media (max-width: 760px) {
  .quality-grid { grid-template-columns: 1fr; }
  .quality-photo { aspect-ratio: 4/3; }
  .quality-photo-refa { aspect-ratio: 4/3; }
}


/* 2026-09-12 refinement: exact visit layout */
.process-photos { gap: 18px; }
.process-photos figure { min-width: 0; }
.process-photos img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 16px;
}
.process-photos figure:nth-child(1) img { object-position: center center; }
.process-photos figure:nth-child(2) img { object-position: center 42%; }
.process-photos figure:nth-child(3) img { object-position: center 38%; }
.process-photos figcaption { display: block; padding-top: 12px; text-align: center; }
.process-photos figcaption strong { color: var(--orange-dark); font-size: 1.02rem; }

/* Payment: visual first */
.payment-visual { margin: 24px auto 10px; max-width: 760px; }
.payment-visual img { display:block; width:100%; height:auto; border-radius:16px; box-shadow: var(--shadow); }

/* Instagram QR */
.instagram-qr-card { display:grid; grid-template-columns: 138px 1fr; align-items:center; gap:18px; margin:20px 0 14px; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fffaf4; }
.instagram-qr-card img { width:138px; height:138px; object-fit:contain; background:#fff; padding:6px; border-radius:10px; }
.instagram-qr-card p { margin:0; }

/* ReFa: show both the salon installation and the branded unit */
.refa-product-photo { margin:0; }
.refa-photo-pair { display:grid; grid-template-columns: 1.15fr .85fr; gap:12px; }
.refa-photo-pair img { width:100%; height:100%; min-height:280px; max-height:520px; object-fit:cover; border-radius:14px; background:#f8f3ed; }
.refa-photo-pair img:nth-child(2) { object-fit:contain; padding:10px; }
.refa-product-photo figcaption { margin-top:10px; color:var(--muted); font-size:.88rem; text-align:center; }

/* Calendar: larger, clearer and more colorful */
.calendar-layout { max-width: 980px; }
.calendar-intro { max-width: 760px; margin:0 auto 24px; text-align:center; }
.calendar-intro .calendar-legend { justify-content:center; }
.calendar-wide { max-width: 920px; margin:0 auto; }
.business-calendar { padding: clamp(20px, 4vw, 34px); background: linear-gradient(180deg,#fffdf9,#fff9ef); }
.calendar-month { font-size: clamp(1.35rem, 2.8vw, 1.8rem); color:#4f3a2d; }
.calendar-weekdays { margin-bottom:0; border:1px solid #eadfd5; border-bottom:0; border-radius:12px 12px 0 0; overflow:hidden; background:#f7f1e9; }
.calendar-weekdays span { padding:10px 0; font-size:.9rem; }
.calendar-weekdays span:first-child { color:#c94b3c; background:#fff0ec; }
.calendar-weekdays span:last-child { color:#3f70bb; background:#edf4ff; }
.calendar-day { min-height:78px; padding:10px 6px 7px; background:#fff; }
.calendar-grid .calendar-day:nth-child(7n+1):not(.is-empty) .calendar-date { color:#c94b3c; }
.calendar-grid .calendar-day:nth-child(7n):not(.is-empty) .calendar-date { color:#3f70bb; }
.calendar-day.is-closed { background:#fff1ed; }
.calendar-day.is-special-open { background:#eef8e8; }
.calendar-day.is-closed .calendar-label { display:inline-block; padding:3px 7px; border-radius:999px; background:#e85c4a; color:#fff; }
.calendar-day.is-special-open .calendar-label { display:inline-block; padding:3px 7px; border-radius:999px; background:#6a9c4d; color:#fff; }
.legend-dot.is-closed { background:#e85c4a; }
.legend-dot.is-open { background:#6a9c4d; }
.calendar-status { margin-top:14px; font-size:.88rem; }

@media (max-width:620px){
  .process-photos img { aspect-ratio: 16/9; }
  .instagram-qr-card { grid-template-columns: 105px 1fr; gap:12px; }
  .instagram-qr-card img { width:105px; height:105px; }
  .refa-photo-pair { grid-template-columns:1fr; }
  .refa-photo-pair img { min-height:0; max-height:none; }
  .calendar-wide { width:100%; }
  .business-calendar { padding:12px 7px 16px; }
  .calendar-day { min-height:58px; padding:7px 2px 5px; }
  .calendar-weekdays span { padding:7px 0; font-size:.78rem; }
  .calendar-label { font-size:.58rem; }
}

/* 2026-09-12 correction pass */
.owner-intro-large{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:clamp(28px,5vw,64px);align-items:center;}
.owner-intro-photo{margin:0;}
.owner-intro-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;border-radius:18px;box-shadow:var(--shadow);}
.owner-intro-copy h2{margin-top:0;}
.owner-note{margin-top:24px;}
.process-photos-exact{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.process-photos-exact img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;}
.process-photos-exact figure:nth-child(1) img,.process-photos-exact figure:nth-child(2) img,.process-photos-exact figure:nth-child(3) img{object-position:center;}
.process-photos-exact figcaption{padding-top:12px;text-align:center;}
.process-photos-exact figcaption strong{color:var(--orange-dark);font-size:1.03rem;}
.payment-photo-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:22px;align-items:center;margin:28px auto 14px;max-width:940px;}
.payment-photo-grid figure{margin:0;padding:12px;background:#fff;border:1px solid var(--line);border-radius:16px;}
.payment-photo-grid img{display:block;width:100%;height:300px;object-fit:contain;border-radius:10px;background:#fff;}
.calendar-layout{max-width:1080px;}
.calendar-wide{max-width:980px;}
.business-calendar.calendar-wide{border:1px solid #e3d6c8;box-shadow:0 12px 30px rgba(79,58,45,.08);}
.calendar-weekdays span:first-child{font-weight:800;color:#c84333;background:#fff0ec;}
.calendar-weekdays span:last-child{font-weight:800;color:#356bb8;background:#edf4ff;}
.calendar-day.is-closed{background:#fff0ec;}
.calendar-day.is-special-open{background:#edf8e8;}
.calendar-day.is-closed .calendar-label{background:#e45443;color:#fff;}
.calendar-day.is-special-open .calendar-label{background:#65a04b;color:#fff;}
@media(max-width:760px){.owner-intro-large{grid-template-columns:1fr;}.owner-intro-photo{max-width:520px;margin:0 auto;}.process-photos-exact{grid-template-columns:1fr;}.payment-photo-grid{grid-template-columns:1fr;}.payment-photo-grid img{height:auto;max-height:360px;}}


/* 2026-09-13: photo crop + calendar/payment placement */
.process-photos-exact figure:first-child img{
  object-fit:cover;
  object-position:center center;
}
.calendar-payment-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:28px;
  align-items:start;
}
.calendar-card,.payment-card{
  background:#fffaf4;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:clamp(20px,3vw,30px);
}
.calendar-card .section-heading,.payment-card .section-heading{margin-bottom:16px;}
.calendar-card .section-heading h2,.payment-card .section-heading h2{margin-bottom:8px;}
.calendar-compact{
  max-width:620px;
  margin:14px auto 0;
  padding:14px 12px 16px;
  box-shadow:none;
}
.calendar-compact .calendar-toolbar{margin-bottom:8px;}
.calendar-compact .calendar-month{font-size:1.22rem;}
.calendar-compact .calendar-nav{width:34px;height:34px;}
.calendar-compact .calendar-weekdays span{font-size:.82rem;padding:5px 0;}
.calendar-compact .calendar-day{min-height:52px;padding:5px 4px;}
.calendar-compact .calendar-date{font-size:.92rem;}
.calendar-compact .calendar-label{font-size:.68rem;padding:2px 5px;}
.calendar-compact .calendar-status{font-size:.78rem;margin-top:8px;}
.payment-visuals{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:14px;
  align-items:center;
  margin-top:18px;
}
.payment-visuals figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;overflow:hidden;}
.payment-visuals img{display:block;width:100%;height:240px;object-fit:contain;background:#fff;border-radius:8px;}
@media(max-width:820px){
  .calendar-payment-grid{grid-template-columns:1fr;}
  .calendar-card{order:1;}
  .payment-card{order:2;}
  .payment-visuals img{height:auto;max-height:300px;}
}


/* 2026-09-13 final refinement pass */
.quality-photo-refa-combo{position:relative;aspect-ratio:16/10;padding:0;background:#f7f1e9;}
.quality-photo-refa-combo > img:first-child{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.quality-photo-refa-combo .refa-combo-sub{position:absolute;right:18px;bottom:18px;width:26%;max-width:138px;aspect-ratio:4/5;object-fit:contain;background:rgba(255,255,255,.94);padding:8px;border-radius:14px;box-shadow:0 10px 24px rgba(79,58,45,.14);}

.owner-intro-home{grid-template-columns:minmax(220px,300px) 1fr;align-items:center;}
.owner-intro-home .owner-intro-photo{max-width:280px;justify-self:center;}
.owner-intro-home .owner-intro-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center top;}

.hair-menu-layout{grid-template-columns:minmax(0,1.08fr) minmax(280px,.82fr);align-items:start;}
.hair-menu-photo{max-width:500px;justify-self:end;}
.hair-menu-photo img{aspect-ratio:4/4.2;object-fit:cover;object-position:center;}

.process-photos-exact{gap:22px;}
.process-photos-exact figure{margin:0;}
.process-photos-exact img{aspect-ratio:16/10;object-fit:cover;border-radius:18px;box-shadow:var(--shadow);}
.process-photos-exact figure:nth-child(1) img{object-position:center center;}
.process-photos-exact figure:nth-child(2) img{object-position:center 38%;}
.process-photos-exact figure:nth-child(3) img{object-position:center 35%;}
.process-photos-exact figcaption{display:grid;gap:7px;padding-top:14px;text-align:center;}
.process-photos-exact figcaption strong{color:var(--orange-dark);font-size:1.04rem;}
.process-photos-exact figcaption span{color:var(--muted);font-size:.93rem;line-height:1.7;}

.calendar-payment-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:start;}
.calendar-card,.payment-card{height:100%;}
.calendar-card .section-heading p:last-child,.payment-card .section-heading p:last-child{font-size:.98rem;line-height:1.85;}
.calendar-card .calendar-legend{margin-top:12px;font-size:.84rem;gap:10px 14px;}
.calendar-card .business-calendar{margin-top:12px;}
.calendar-compact{max-width:540px;padding:12px 10px 14px;}
.calendar-compact .calendar-day{min-height:48px;padding:4px 3px;}
.calendar-compact .calendar-weekdays span{padding:4px 0;font-size:.8rem;}
.calendar-compact .calendar-label{font-size:.62rem;}
.payment-guide-figure{margin:18px 0 0;padding:0;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:none;}
.payment-guide-figure img{display:block;width:100%;height:auto;background:#fff;}

.directions-layout{grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);align-items:start;gap:30px;}
.directions-layout .access-map{padding:8px;background:#fff;justify-self:stretch;}
.directions-layout .access-map img{border-radius:14px;box-shadow:var(--shadow);}

@media (max-width:860px){
  .owner-intro-home,.hair-menu-layout,.calendar-payment-grid,.directions-layout{grid-template-columns:1fr;}
  .hair-menu-photo,.owner-intro-home .owner-intro-photo{justify-self:center;max-width:min(100%,520px);}
  .directions-layout .directions-map{order:-1;}
}
@media (max-width:620px){
  .quality-photo-refa-combo{aspect-ratio:4/3;}
  .quality-photo-refa-combo .refa-combo-sub{width:32%;right:12px;bottom:12px;}
  .calendar-card,.payment-card{padding:18px 16px;}
  .calendar-compact{max-width:none;padding:10px 6px 12px;}
  .calendar-compact .calendar-day{min-height:54px;}
  .payment-guide-figure{margin-top:14px;}
  .directions-layout .directions-map{order:-1;}
}


/* =========================================================
   2026-09-20 First view redesign - owner approved direction
   PC reference width: 1366px
   Mobile menu/layout is provisional and will be reviewed later.
   ========================================================= */
:root{
  --pf-base-orange:#ff9b58;
  --pf-brand-red:#e10000;
  --pf-deep-red:#990000;
  --pf-label-bg:#ffe7b9;
  --pf-title-ink:#222222;
}

.pf-firstview{
  width:min(100%,1366px);
  margin:0 auto;
  background:#fff;
  border-top:0;
}
.pf-masthead{
  background:#fff;
  color:var(--pf-title-ink);
}
.pf-masthead__inner{
  min-height:126px;
  display:grid;
  grid-template-columns:45% 23% 32%;
  align-items:center;
  column-gap:0;
  padding:14px 26px 10px;
}
.pf-brand-block{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-right:26px;
}
.pf-tagline{
  margin:0 0 3px;
  color:#222222;
  font-size:20px;
  line-height:1.25;
  font-weight:800;
  letter-spacing:.02em;
}
.pf-brand-name{
  display:block;
  width:max-content;
  max-width:100%;
  color:var(--pf-brand-red);
  font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif CJK JP",serif;
  font-size:37px;
  font-weight:800;
  line-height:1.16;
  letter-spacing:.025em;
  text-decoration:none;
  white-space:nowrap;
}
.pf-brand-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  width:min(100%,560px);
  margin-top:4px;
}
.pf-brand-en{
  color:var(--pf-brand-red);
  font-family:Arial,Helvetica,sans-serif;
  font-size:18px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.42em;
  white-space:nowrap;
}
.pf-badge,
.pf-info-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  padding:4px 9px 3px;
  border-radius:8px;
  background:var(--pf-label-bg);
  color:var(--pf-deep-red);
  font-size:16px;
  line-height:1.15;
  font-weight:800;
  white-space:nowrap;
}
.pf-badge{font-size:17px;}
.pf-hours-block{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:15px;
  padding:0 16px 0 12px;
}
.pf-info-row{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.pf-info-value{
  color:#444;
  font-size:17px;
  font-weight:700;
  line-height:1.45;
  white-space:nowrap;
}
.pf-phone-block{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  padding-left:14px;
}
.pf-phone-label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:0;
}
.pf-phone-note{
  flex:1;
  color:var(--pf-deep-red);
  font-size:16px;
  font-weight:800;
  line-height:1.25;
  text-align:center;
  white-space:nowrap;
}
.pf-phone-number{
  display:block;
  margin-top:-1px;
  color:var(--pf-deep-red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:43px;
  font-weight:700;
  line-height:1.05;
  letter-spacing:.015em;
  text-decoration:none;
  text-align:right;
  white-space:nowrap;
}
.pf-first-nav{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:7px;
  padding:0 5px 7px;
  background:#fff;
}
.pf-first-nav a{
  min-height:57px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:7px 10px;
  background:var(--pf-base-orange);
  color:#222222;
  text-decoration:none;
  font-size:20px;
  font-weight:800;
  line-height:1.2;
  text-align:center;
  border:0;
}
.pf-first-nav a:hover,
.pf-first-nav a:focus-visible{
  filter:brightness(.96);
  outline:2px solid #222;
  outline-offset:-2px;
}
.pf-first-photo{
  width:100%;
  background:#fff;
  overflow:hidden;
}
.pf-first-photo img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1434/494;
  object-fit:cover;
}

/* Keep the continuation visually attached to the first view. */
.pf-firstview + main#main > .section:first-child{
  margin-top:0;
}

/* Desktop reference zone. */
@media (min-width:861px){
  body{background:#fff;}
  main#main{min-height:0;}
  .pf-firstview + main#main > .section:first-child{
    padding-top:70px;
  }
}

/* Provisional mobile treatment; final smartphone menu will be decided after review. */
@media (max-width:860px){
  .pf-firstview{border-top:0;}
  .pf-masthead__inner{
    min-height:0;
    grid-template-columns:1fr;
    gap:12px;
    padding:14px 14px 12px;
  }
  .pf-brand-block{padding-right:0;}
  .pf-tagline{font-size:16px;}
  .pf-brand-name{font-size:clamp(25px,7vw,34px);white-space:normal;}
  .pf-brand-bottom{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:10px 16px;}
  .pf-brand-en{font-size:14px;letter-spacing:.32em;}
  .pf-hours-block{padding:0;gap:8px;}
  .pf-phone-block{padding-left:0;}
  .pf-phone-label-row{justify-content:flex-start;flex-wrap:wrap;}
  .pf-phone-note{text-align:left;flex:0 1 auto;font-size:14px;}
  .pf-phone-number{text-align:left;font-size:36px;}
  .pf-first-nav{
    display:flex;
    overflow-x:auto;
    gap:4px;
    padding:0 4px 6px;
    scrollbar-width:thin;
  }
  .pf-first-nav a{
    flex:0 0 auto;
    width:auto;
    min-width:0;
    min-height:50px;
    padding:7px 18px;
    white-space:nowrap;
    font-size:16px;
  }
  .pf-first-photo img{aspect-ratio:auto;}
}


/* 2026-09-20 owner-approved color unification */
a[href*="beauty.hotpepper.jp"]{color:#a40b5d;}
a.button[href*="beauty.hotpepper.jp"],
.cta a.button[href*="beauty.hotpepper.jp"],
.mobile-actions a[href*="beauty.hotpepper.jp"]{
  background:#a40b5d;
  border-color:#a40b5d;
  color:#ffffff;
}
a.button[href*="beauty.hotpepper.jp"]:hover,
.cta a.button[href*="beauty.hotpepper.jp"]:hover,
.mobile-actions a[href*="beauty.hotpepper.jp"]:hover{
  background:#85094b;
  border-color:#85094b;
  color:#ffffff;
}
.site-footer a{color:#ffffff;}


/* 2026-09-20 owner final correction pass */
.pf-brand-block{width:max-content;max-width:100%;justify-self:start;}
.pf-brand-bottom{width:100%;}
.pf-closed-days{display:flex;flex-direction:column;align-items:flex-start;}
.pf-closed-days span{display:block;}
.pf-closed-days span:nth-child(2){padding-left:2em;}

/* ReFa owner-provided image used in both locations */
.quality-photo-refa-combo{aspect-ratio:auto;background:#fff;}
.quality-photo-refa-combo > img:first-child{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;background:#fff;}
.refa-product-photo > img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#fff;border-radius:14px;}

/* Footer: original two-tone orange treatment on pages other than Access */
.site-footer.footer-two-tone{position:relative;padding-top:0;background:#ff6600;color:#fff;}
.site-footer.footer-two-tone::before{content:"";display:block;width:100%;height:clamp(90px,10vw,150px);background:#ff9b58;}
.site-footer.footer-two-tone > .container{padding-top:34px;}
.site-footer.footer-two-tone a{color:#fff;}

@media(max-width:620px){
  .site-footer.footer-two-tone::before{height:170px;}
  .site-footer.footer-two-tone > .container{padding-top:30px;}
  .pf-closed-days span:nth-child(2){padding-left:2em;}
}


/* 2026-09-20 ReFa photo enlargement: remove side whitespace */
.quality-photo-refa-combo{
  aspect-ratio:16/10;
  overflow:hidden;
  background:#fff;
}
.quality-photo-refa-combo > img:first-child{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.refa-product-photo{
  aspect-ratio:4/5;
  overflow:hidden;
  background:#fff;
}
.refa-product-photo > img{
  display:block;
  width:100%;
  height:100%;
  max-height:none;
  object-fit:cover;
  object-position:center center;
  border-radius:14px;
  background:#fff;
}
@media(max-width:620px){
  .quality-photo-refa-combo{aspect-ratio:4/5;}
  .refa-product-photo{aspect-ratio:4/5;}
}


/* 2026-09-20 footer correction: exactly two orange bands */
/* Upper footer area */
.cta{
  background:#ff9b58;
  color:#222222;
}
.cta h2{color:#222222;}
.cta .button-outline{
  background:transparent;
  border-color:#222222;
  color:#222222;
}
.cta .button-outline:hover{
  background:#222222;
  border-color:#222222;
  color:#ffffff;
}

/* Lower footer area */
.site-footer.footer-two-tone{
  background:#ff6600;
  color:#ffffff;
  padding-top:42px;
}

/* When CTA exists immediately above footer, CTA itself IS the #FF9B58 upper band. */
.cta + .site-footer.footer-two-tone::before{
  content:none;
  display:none;
}

/* Pages without CTA keep one plain #FF9B58 band above the #FF6600 footer. */
.site-footer.footer-two-tone::before{
  content:"";
  display:block;
  width:100%;
  height:clamp(90px,10vw,150px);
  background:#ff9b58;
}
.site-footer.footer-two-tone > .container{
  padding-top:0;
}

@media(max-width:620px){
  .site-footer.footer-two-tone::before{height:120px;}
}


/* 2026-09-20 owner photo fix: preserve full head and original aspect ratio */
.owner-intro-home .owner-intro-photo{max-width:320px;justify-self:center;}
.owner-intro-home .owner-intro-photo img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center center;
}

/* 2026-09-20 final owner smile / welcome / mobile calendar refinements */
.owner-intro-home .owner-intro-photo{max-width:360px;justify-self:center;}
.owner-intro-home .owner-intro-photo img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center center;
  border-radius:18px;
  box-shadow:var(--shadow);
}

@media(max-width:620px){
  #calendar .calendar-card,
  #calendar .payment-card{padding:12px 10px;}
  #calendar .calendar-card .section-heading,
  #calendar .payment-card .section-heading{margin-bottom:8px;}
  #calendar .calendar-card .section-heading h2,
  #calendar .payment-card .section-heading h2{margin-bottom:4px;}
  #calendar .calendar-card .section-heading p,
  #calendar .payment-card .section-heading p{margin-bottom:4px;line-height:1.5;font-size:.9rem;}
  #calendar .calendar-legend{margin-top:6px;margin-bottom:6px;gap:6px 10px;font-size:.76rem;}
  #calendar .business-calendar.calendar-compact{margin-top:6px;padding:6px 4px 7px;}
  #calendar .calendar-compact .calendar-toolbar{margin-bottom:3px;grid-template-columns:30px 1fr 30px;}
  #calendar .calendar-compact .calendar-nav{width:30px;height:30px;font-size:1.25rem;}
  #calendar .calendar-compact .calendar-month{font-size:1.02rem;}
  #calendar .calendar-compact .calendar-weekdays span{padding:2px 0;font-size:.7rem;}
  #calendar .calendar-compact .calendar-day{min-height:38px;padding:2px 1px;}
  #calendar .calendar-compact .calendar-date{font-size:.8rem;line-height:1.1;}
  #calendar .calendar-compact .calendar-label{margin-top:1px;padding:1px 3px;font-size:.52rem;line-height:1.05;}
  #calendar .calendar-compact .calendar-status{margin-top:4px;font-size:.68rem;line-height:1.3;}
  #calendar .payment-guide-figure{margin-top:8px;}
}


/* 2026-09-20 PC-only persistent masthead + navigation */
.pf-fixed-shell{
  background:#fff;
  width:100%;
}
@media (min-width:861px){
  .pf-fixed-shell{
    position:sticky;
    top:0;
    z-index:120;
    box-shadow:0 2px 8px rgba(0,0,0,.08);
  }
  body:not(:has(.pf-firstview)) .pf-fixed-shell{
    max-width:1366px;
    margin:0 auto;
  }
}
@media (max-width:860px){
  .pf-fixed-shell{
    position:static;
    box-shadow:none;
  }
}

/* 2026-09-21 PC header layout matched to approved reference */
@media (min-width:861px){
  .pf-masthead__inner{
    min-height:128px;
    grid-template-columns:42% 20% 16% 22%;
    align-items:center;
    padding:12px 24px 10px;
  }
  .pf-brand-block{padding-right:18px;}
  .pf-brand-name{font-size:36px;}
  .pf-brand-bottom{width:min(100%,520px);}
  .pf-closed-block,
  .pf-open-block,
  .pf-phone-block{
    min-width:0;
  }
  .pf-closed-block{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:10px;
    padding:0 14px 0 8px;
  }
  .pf-open-block{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 10px;
  }
  .pf-open-block .pf-info-row{align-items:center;}
  .pf-calendar-link{
    display:inline-flex;
    align-self:flex-start;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:auto;
    min-height:32px;
    padding:4px 9px;
    border:1px solid #ff9b58;
    border-radius:8px;
    background:#fff7ef;
    color:#990000;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
  }
  .pf-calendar-link:hover,
  .pf-calendar-link:focus-visible{
    background:#ffe7b9;
  }
  .pf-calendar-icon{font-size:16px;line-height:1;color:#a66b42;}
  .pf-calendar-arrow{font-size:18px;line-height:1;color:#990000;}
  .pf-phone-block{padding-left:8px;}
  .pf-phone-label-row{gap:10px;}
  .pf-phone-note{font-size:15px;}
  .pf-phone-number{font-size:42px;}
  .pf-first-nav{gap:6px;padding:0 3px 7px;}
  .pf-first-nav a{min-height:58px;font-size:20px;}
}
@media (max-width:860px){
  .pf-closed-block{display:flex;flex-direction:column;gap:8px;}
  .pf-open-block{display:block;}
  .pf-calendar-link{display:none;}
}

/* 2026-09-21 mobile header: calendar link above closed-day information */
@media (max-width:860px){
  .pf-closed-block{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .pf-calendar-link{
    display:inline-flex;
    order:-1;
    align-self:flex-start;
    width:auto;
    min-height:40px;
    padding:8px 14px;
    border:1px solid #e08a4f;
    border-radius:10px;
    background:#ffe7b9;
    color:#990000;
    font-size:15px;
    font-weight:700;
    line-height:1.2;
    box-shadow:none;
  }
  .pf-calendar-link:hover,
  .pf-calendar-link:focus-visible{
    background:#ffe7b9;
  }
  .pf-calendar-icon{font-size:16px;color:#a66b42;}
  .pf-calendar-arrow{font-size:18px;color:#990000;}
  .pf-closed-block .pf-info-row{
    order:0;
  }
}
