/* mellue. — 共通トークンと静的ページのレイアウト */
:root {
  --ink:#203e35;
  --mint:#c8e7d5;
  --pink:#f4bfd0;
  --cream:#fff7d6;
  --paper:#fffdf5;
  --line:1.5px solid var(--ink);
  --radius:26px;
  --wrap:1200px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:16px;
  line-height:1.95;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-decoration:none;
}

button,input,select {
  font:inherit;
  color:inherit;
}

button,a,summary,input,select {
  -webkit-tap-highlight-color:transparent;
}

button {
  cursor:pointer;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  line-height:1.5;
  letter-spacing:.025em;
}

h2 {
  font-size:clamp(27px,3.1vw,42px);
}

h3 {
  font-size:22px;
}

p+p {
  margin-top:22px;
}

p {
  overflow-wrap:anywhere;
}

ul,ol {
  padding:0;
  list-style:none;
}

fieldset {
  padding:0;
  border:0;
  margin:24px 0;
}

legend {
  font-weight:700;
  margin-bottom:8px;
}

button {
  border:var(--line);
  background:transparent;
}

a,button,summary,select,input {
  touch-action:manipulation;
}

:focus-visible {
  outline:3px solid #65518f;
  outline-offset:5px;
}

::selection {
  background:var(--pink);
}

[hidden] {
  display:none!important;
}

.js-only {
  display:none;
}

.js .js-only {
  display:block;
}

.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:100;
  background:var(--cream);
  padding:12px 20px;
  border:var(--line);
}

.skip-link:focus {
  top:10px;
}

.wrap {
  width:min(var(--wrap),calc(100% - 112px));
  margin-inline:auto;
}

.narrow {
  max-width:820px;
}

.section {
  padding:105px 0;
}

.mint {
  background:var(--mint);
}

.pink {
  background:var(--pink);
}

.cream {
  background:var(--cream);
}

.eyebrow {
  font-size:14px;
  letter-spacing:.11em;
  line-height:1.5;
  font-weight:700;
  margin-bottom:24px;
}

.display {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-style:italic;
  letter-spacing:-.045em;
  line-height:1.12;
  font-size:clamp(46px,6.1vw,82px);
}

.note {
  font-size:14px;
  line-height:1.8;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:60px;
  padding:13px 27px;
  border:2px dashed #18251f;
  border-radius:24px 21px 25px 18px;
  background:#fffefa;
  color:#18251f;
  box-shadow:5px 6px 0 #18251f;
  font-weight:800;
  line-height:1.7;
  transition:background .2s,transform .2s,box-shadow .2s;
}

.button span {
  font-size:24px;
  line-height:1;
}

.button:hover {
  background:var(--cream);
  color:#18251f;
  transform:translate(2px,2px);
  box-shadow:3px 4px 0 #18251f;
}

.text-link {
  display:inline-flex;
  gap:24px;
  justify-content:space-between;
  align-items:center;
  border:0;
  border-bottom:2px dashed var(--ink);
  padding:9px 2px;
  font-weight:700;
  background:transparent;
  line-height:1.8;
}

.text-link span {
  font-size:24px;
}

.text-link:hover {
  color:#755174;
}

.flower {
  width:88px;
  height:88px;
  object-fit:contain;
}

.round-arrow {
  width:48px;
  height:48px;
  border:var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:24px;
  flex-shrink:0;
}

.site-header {
  height:106px;
  display:flex;
  align-items:center;
  gap:36px;
  padding:0 4.4%;
  border-bottom:var(--line);
  background:var(--paper);
  position:relative;
  z-index:30;
}

.brand {
  display:flex;
  flex-direction:column;
  line-height:1.1;
  width:max-content;
  flex-shrink:0;
}

.brand>span {
  font-family:Georgia,serif;
  font-size:54px;
  font-weight:700;
  letter-spacing:-.075em;
  line-height:.9;
}

.brand small {
  font-size:14px;
  font-weight:700;
  letter-spacing:.085em;
  margin-top:12px;
}

.desktop-nav {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:27px;
  flex:1;
  font-size:15px;
  font-weight:700;
}

.desktop-nav a {
  border-bottom:2px solid transparent;
  padding:8px 0;
}

.desktop-nav a:hover,.desktop-nav a[aria-current=page] {
  border-color:var(--ink);
}

.header-reserve {
  display:flex;
  align-items:center;
  gap:22px;
  border:2px dashed #18251f;
  padding:10px 20px;
  border-radius:20px 16px 22px 16px;
  box-shadow:4px 4px 0 #18251f;
  background:#fffefa;
  font-size:14px;
  font-weight:800;
  transition:background .2s,transform .2s,box-shadow .2s;
}

.header-reserve>span:last-child {
  font-size:24px;
}

.header-reserve:hover {
  background:var(--pink);
  transform:translate(2px,2px);
  box-shadow:2px 2px 0 #18251f;
}

.mobile-nav {
  display:none;
}

.hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--mint);
  position:relative;
  overflow:hidden;
}

.hero-copy {
  padding:60px max(55px,calc((100vw - 1200px)/2));
  padding-right:35px;
  position:relative;
}

.hero-copy .eyebrow {
  margin-bottom:29px;
  font-size:14px;
}

.hero h1 {
  font-size:clamp(54px,5.5vw,79px);
  font-weight:800;
  line-height:1.26;
  letter-spacing:.015em;
  position:relative;
  z-index:2;
}

.hero h1 span {
  display:block;
  margin-top:5px;
}

.hero-description {
  margin-top:25px;
  margin-bottom:29px;
  font-weight:600;
  line-height:1.9;
}

.hero-copy .button {
  font-size:15px;
  min-width:236px;
}

.hero-photo {
  position:relative;
  border-left:var(--line);
  background:var(--pink);
  padding:22px 25px 21px 22px;
}

.hero-photo>img:first-child {
  width:100%;
  height:100%;
  max-height:670px;
  object-fit:cover;
  border:var(--line);
  border-radius:170px 170px 16px 16px;
  object-position:50% 40%;
}

.hero-photo .flower {
  position:absolute;
  bottom:49px;
  left:-45px;
  width:94px;
  height:94px;
  transform:rotate(-12deg);
}

.hero-handwriting {
  font-family:Georgia,serif;
  font-style:italic;
  position:absolute;
  right:25px;
  top:95px;
  transform:rotate(10deg);
  font-size:36px;
  line-height:1.05;
  letter-spacing:-.06em;
}

.photo-caption {
  position:absolute;
  left:48px;
  bottom:38px;
  background:var(--cream);
  border:var(--line);
  padding:4px 12px;
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
}

.hero-sticker {
  position:absolute;
  right:27px;
  top:37px;
  transform:rotate(10deg);
  border:var(--line);
  border-radius:50%;
  background:var(--cream);
  padding:23px 15px;
  text-align:center;
  line-height:1.6;
  font-size:14px;
}

.hero-sticker em {
  font-family:Georgia,serif;
  font-size:24px;
  line-height:1;
}

.hero-bottom {
  grid-column:1/-1;
  padding:12px 4.4%;
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:var(--line);
  font-size:14px;
  letter-spacing:.1em;
  font-weight:700;
}

.hero-bottom a span {
  margin-left:12px;
  font-size:20px;
}

.hero-bottom a {
  display:flex;
  align-items:center;
  line-height:1.4;
}

.demo-label {
  letter-spacing:.08em;
}

.word-ribbon {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:45px;
  background:var(--pink);
  border-top:var(--line);
  border-bottom:var(--line);
  overflow:hidden;
  white-space:nowrap;
  padding:18px 0;
  font:italic 38px/1 Georgia,serif;
  letter-spacing:-.035em;
}

.word-ribbon img {
  width:38px;
  height:38px;
  flex-shrink:0;
}

.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:9%;
}

.section-copy h2 {
  margin-bottom:28px;
}

.section-copy .text-link {
  margin-top:25px;
}

.arch-photo {
  border:var(--line);
  border-radius:180px 180px 16px 16px;
  overflow:hidden;
}

.arch-photo img {
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
}

.photo-stack {
  position:relative;
  padding:0 16px 20px 0;
}

.photo-stack .arch-photo {
  height:500px;
}

.photo-stamp {
  position:absolute;
  right:-20px;
  bottom:-10px;
  background:var(--cream);
  border:var(--line);
  border-radius:50%;
  width:160px;
  height:160px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  transform:rotate(-12deg);
  font:italic 30px/1.2 Georgia,serif;
}

.photo-stamp em {
  font-size:39px;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
  margin-bottom:48px;
}

.section-heading h2+p {
  margin-top:18px;
}

.section-heading .eyebrow {
  margin-bottom:18px;
}

.section-heading .button {
  flex-shrink:0;
}

.styles-home {
  background:var(--mint);
  border-top:var(--line);
  border-bottom:var(--line);
}

.styles-grid {
  display:grid;
  gap:30px;
}

.home-grid {
  grid-template-columns:repeat(3,1fr);
}

.style-card img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border:var(--line);
  border-radius:140px 140px 8px 8px;
  transition:border-radius .25s;
}

.style-card:hover img {
  border-radius:110px 110px 8px 8px;
}

.home-grid .style-card:nth-child(2) {
  padding-top:50px;
}

.home-grid .style-card:nth-child(3) {
  padding-top:15px;
}

.style-meta {
  display:flex;
  justify-content:space-between;
  font-size:14px;
  letter-spacing:.08em;
  font-weight:700;
  margin-top:17px;
  line-height:1.5;
}

.card-link {
  font:italic 35px/1.3 Georgia,serif;
  display:flex;
  justify-content:space-between;
  margin-top:12px;
  letter-spacing:-.045em;
}

.card-link span {
  font-family:Arial;
  font-style:normal;
  font-size:26px;
}

.style-subtitle {
  font-size:16px;
  margin-top:9px!important;
}

.styles-home .note {
  margin-top:38px;
}

.menu-home .flower {
  transform:rotate(12deg);
}

.menu-preview {
  border-top:var(--line);
}

.menu-preview>a {
  display:flex;
  align-items:center;
  gap:32px;
  padding:27px 5px;
  border-bottom:var(--line);
  transition:padding .2s;
}

.menu-preview>a:hover {
  padding-inline:16px;
}

.menu-no {
  align-self:flex-start;
  font:italic 19px/2 Georgia,serif;
}

.menu-preview h3 {
  font:italic 47px/1.2 Georgia,serif;
  letter-spacing:-.045em;
}

.menu-preview p {
  font-size:16px;
  margin-top:7px;
}

.price {
  margin-left:auto;
  font:34px/1.4 Georgia,serif;
}

.price>span {
  font:14px/1.5 sans-serif;
  margin-left:4px;
}

.section-tail {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  margin-top:25px;
}

.salon-home {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:var(--line);
  border-bottom:var(--line);
}

.salon-home-photo img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.salon-home-copy {
  padding:75px 10%;
  border-left:var(--line);
}

.salon-home-copy .display {
  font-size:clamp(45px,5.2vw,68px);
}

.salon-home-copy h3 {
  margin-top:32px;
  margin-bottom:18px;
}

.salon-home-copy .button {
  margin-top:32px;
}

.first-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:9%;
}

.link-pair {
  display:flex;
  flex-wrap:wrap;
  gap:20px 35px;
  margin-top:25px;
}

.site-footer {
  padding:65px 4.4% 28px;
  background:var(--cream);
}

.footer-top {
  display:flex;
  align-items:center;
  gap:60px;
  padding-bottom:43px;
}

.footer-top .brand>span {
  font-size:75px;
}

.footer-top p {
  font-weight:700;
}

.back-top {
  margin-left:auto;
  border:var(--line);
  border-radius:50%;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  font-size:24px;
}

.back-top:hover {
  background:var(--pink);
}

.footer-nav {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:28px 20px;
  padding:30px 0 42px;
  border-top:var(--line);
}

.footer-nav a {
  font-size:16px;
  font-weight:700;
}

.footer-nav span {
  display:block;
  font-size:14px;
  font-weight:400;
}

.footer-nav a:hover {
  text-decoration:underline;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-top:var(--line);
  padding-top:22px;
  font-size:14px;
  line-height:1.8;
  gap:20px;
}

.footer-bottom span {
  white-space:nowrap;
}

.page-intro {
  border-bottom:var(--line);
  padding:64px 0 60px;
  position:relative;
}

.page-intro .wrap {
  position:relative;
}

.page-intro .eyebrow {
  font-size:14px;
  margin-bottom:14px;
}

.page-intro .display {
  display:block;
  font-size:clamp(66px,8.6vw,115px);
}

.jp-title {
  display:block;
  font-size:23px;
  margin-top:12px;
  letter-spacing:.06em;
}

.intro-copy {
  margin-top:18px;
  font-size:16px;
}

.page-intro .flower {
  position:absolute;
  right:20px;
  top:45px;
  width:112px;
  height:112px;
  transform:rotate(15deg);
}

.rounded-photo img {
  border:var(--line);
  border-radius:var(--radius);
  width:100%;
  object-fit:cover;
}

.rounded-photo figcaption {
  font-size:14px;
  margin-top:15px;
}

.narrow h2+p,.narrow .display+p {
  margin-top:30px;
}

.next-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
}

.next-links>a {
  border-top:var(--line);
  border-bottom:var(--line);
  padding:30px 50px 30px 0;
  position:relative;
}

.next-links h2 {
  font-size:24px;
}

.next-links .eyebrow {
  margin-bottom:8px;
  font-size:14px;
}

.next-links>a>span:last-child {
  position:absolute;
  right:0;
  top:38px;
  font-size:35px;
}

.next-links>a:hover h2 {
  text-decoration:underline;
}

.menu-layout,.faq-layout {
  display:grid;
  grid-template-columns:32% 1fr;
  gap:9%;
}

.menu-aside {
  align-self:start;
  position:sticky;
  top:30px;
}

.menu-aside h2 {
  font-size:30px;
  margin-bottom:22px;
}

.anchor-nav {
  display:flex;
  flex-direction:column;
  margin-top:35px;
}

.anchor-nav a {
  display:flex;
  justify-content:space-between;
  border-bottom:var(--line);
  padding:14px 0;
  font-weight:600;
}

.anchor-nav a:first-child {
  border-top:var(--line);
}

.price-sections>section {
  padding-bottom:60px;
  margin-bottom:50px;
  border-bottom:var(--line);
}

.price-sections>section:last-child {
  margin-bottom:0;
}

.price-sections .eyebrow {
  margin-bottom:10px;
}

.price-sections h2 {
  font:italic 60px/1.2 Georgia,serif;
  letter-spacing:-.04em;
}

.price-sections h2 span {
  font:700 16px/1.5 sans-serif;
  margin-left:22px;
  letter-spacing:0;
}

.price-list {
  margin:25px 0;
}

.price-list>div {
  display:flex;
  justify-content:space-between;
  gap:25px;
  padding:22px 0;
  border-bottom:1px solid #203e3540;
}

.price-list dt {
  font-weight:700;
}

.price-list small {
  display:block;
  font-size:14px;
  font-weight:400;
  margin-top:5px;
}

.price-list dd {
  font:26px/1.5 Georgia,serif;
  white-space:nowrap;
  margin:0;
}

.price-sections p {
  font-size:16px;
}

.price-sections .text-link {
  margin-top:20px;
}

.estimator-layout {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:9%;
  align-items:start;
}

.estimator-layout h2+p {
  margin-top:22px;
}

.estimator {
  background:var(--paper);
  border:var(--line);
  border-radius:var(--radius);
  padding:32px;
  box-shadow:6px 6px 0 var(--ink);
}

label:not(.check-row) {
  display:block;
  font-weight:700;
  margin-bottom:9px;
}

select {
  display:block;
  width:100%;
  height:55px;
  border:var(--line);
  background:var(--paper);
  border-radius:8px;
  padding:0 35px 0 13px;
  font-size:16px;
  cursor:pointer;
}

select:disabled {
  opacity:.6;
  cursor:default;
}

.check-row {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:15px;
  cursor:pointer;
  min-height:48px;
  line-height:1.5;
}

.check-row>span {
  margin-left:auto;
  font-size:14px;
  white-space:nowrap;
}

input[type=checkbox] {
  appearance:auto;
  accent-color:var(--ink);
  width:21px;
  height:21px;
  flex-shrink:0;
  cursor:pointer;
}

.estimate-result {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  border-top:var(--line);
  padding-top:20px;
  gap:4px 20px;
}

.estimate-result>strong {
  font:46px/1.3 Georgia,serif;
}

.estimate-result>span:last-child {
  width:100%;
  text-align:right;
  font-size:14px;
}

.estimator .note {
  margin:15px 0;
}

.estimator .button {
  display:flex;
}

.full-gallery {
  grid-template-columns:1fr 1fr;
  gap:80px 55px;
}

.full-gallery .style-card {
  scroll-margin-top:35px;
}

.full-gallery img {
  max-height:650px;
}

.full-gallery h2 {
  font:italic 43px/1.3 Georgia,serif;
  margin-top:12px;
}

.full-gallery .style-subtitle {
  font-weight:700;
  margin-bottom:18px;
}

.style-card details {
  border-top:1px solid #203e3560;
  border-bottom:1px solid #203e3560;
  margin-top:20px;
  font-size:15px;
}

.style-card summary {
  cursor:pointer;
  padding:12px 0;
  font-weight:600;
}

.style-card details p {
  padding:0 0 16px;
}

.style-card .text-link {
  margin-top:12px;
}

.js .style-filters {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:22px;
}

.style-filters button {
  border-radius:40px;
  padding:10px 22px;
  min-height:48px;
  font-weight:700;
}

.style-filters span {
  font-size:14px;
  font-weight:400;
  margin-left:6px;
}

.style-filters button[aria-pressed=true] {
  background:var(--ink);
  color:var(--paper);
}

.style-filters button:hover {
  background:var(--pink);
  color:var(--ink);
}

.filter-count {
  font-size:14px;
  margin-bottom:35px;
}

.paper-note {
  background:var(--paper);
  border:var(--line);
  border-radius:5px;
  padding:38px;
  box-shadow:6px 6px 0 var(--ink);
}

.simple-list {
  margin:10px 0 20px;
}

.simple-list li {
  padding:15px 0;
  border-bottom:1px solid #203e3535;
}

.simple-list li:before {
  content:'✳';
  margin-right:13px;
}

.style-dialog {
  padding:22px;
  background:var(--cream);
  color:var(--ink);
  border:var(--line);
  border-radius:16px;
  width:min(560px,calc(100% - 32px));
  max-height:90dvh;
  overflow:auto;
}

.style-dialog::backdrop {
  background:#17362dd9;
  backdrop-filter:blur(5px);
}

.dialog-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:15px;
}

.dialog-header h2 {
  font:italic 28px/1.2 Georgia,serif;
}

.dialog-close {
  border-radius:50%;
  width:45px;
  height:45px;
  flex-shrink:0;
}

.dialog-image img {
  width:100%;
  max-height:65dvh;
  object-fit:contain;
}

.style-dialog>.note {
  text-align:center;
  margin-top:15px;
}

.care-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin:50px 0 25px;
}

.care-options article {
  position:relative;
  padding-top:0;
}

.circle-number {
  width:59px;
  height:59px;
  flex-shrink:0;
  border:var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  font:italic 27px/1 Georgia,serif;
  background:var(--pink);
}

.care-options h3 {
  font:italic 39px/1.2 Georgia,serif;
  margin:25px 0;
}

.care-options h3 span {
  display:block;
  font:700 19px/1.6 sans-serif;
  margin-top:12px;
}

.care-price {
  display:flex;
  align-items:baseline;
  gap:20px;
  margin-top:25px;
}

.care-price strong {
  font:35px/1.5 Georgia,serif;
}

.care-price span {
  font-size:14px;
}

.care-steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:45px;
  margin:0;
}

.care-steps li {
  border-top:var(--line);
  padding-top:24px;
}

.care-steps li>span {
  font-size:14px;
  font-weight:700;
  letter-spacing:.08em;
}

.care-steps h3 {
  font-size:21px;
  margin:24px 0 17px;
}

.wide-photo {
  position:relative;
  height:530px;
  border-block:var(--line);
}

.wide-photo>img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.wide-photo>div {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  left:8%;
  padding:35px;
  background:var(--cream);
  border:var(--line);
  border-radius:var(--radius);
}

.wide-photo h2 {
  font-size:30px;
}

.salon-panorama {
  background:var(--pink);
  padding:25px 0 70px;
  border-bottom:var(--line);
}

.salon-panorama .wrap {
  position:relative;
}

.salon-panorama img {
  width:100%;
  height:560px;
  object-fit:cover;
  border:var(--line);
  border-radius:15px 15px 160px 15px;
}

.panorama-label {
  position:absolute;
  right:-15px;
  bottom:-30px;
  border:var(--line);
  background:var(--cream);
  border-radius:50%;
  width:200px;
  height:200px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  font:italic 33px/1.25 Georgia,serif;
  transform:rotate(9deg);
}

.info-list {
  margin:25px 0 0;
}

.info-list>div {
  display:grid;
  grid-template-columns:110px 1fr;
  gap:12px;
  border-bottom:1px solid #203e3540;
  padding:18px 0;
  font-size:15px;
}

.info-list dt {
  font-weight:700;
}

.info-list dd {
  margin:0;
}

.info-list small {
  font-size:14px;
  margin-left:5px;
}

.visit-checklist {
  margin:0;
}

.visit-checklist legend {
  margin-bottom:20px;
}

.visit-checklist .check-row {
  border-bottom:1px solid #203e3535;
  min-height:62px;
}

.checklist-status {
  font-size:14px;
  margin-top:20px;
}

.faq-item {
  border-bottom:var(--line);
}

.faq-item:first-of-type {
  border-top:var(--line);
  margin-top:30px;
}

.faq-item summary {
  display:flex;
  justify-content:space-between;
  align-items:center;
  list-style:none;
  gap:25px;
  font-size:16px;
  font-weight:700;
  cursor:pointer;
  padding:22px 0;
}

.faq-item summary::-webkit-details-marker {
  display:none;
}

.faq-item summary>span {
  font-size:28px;
  flex-shrink:0;
  line-height:1;
  font-weight:400;
  transition:transform .2s;
}

.faq-item[open] summary>span {
  transform:rotate(45deg);
}

.faq-item>p {
  padding:0 35px 23px 0;
}

.faq-item>.text-link {
  margin-bottom:25px;
}

.narrow>.text-link {
  margin-top:25px;
}

.faq-layout>aside {
  align-self:start;
}

.faq-layout>aside>h2 {
  font-size:30px;
}

.faq-layout>aside>.flower {
  margin:50px auto;
}

.faq-group {
  margin-bottom:55px;
}

.faq-group:last-child {
  margin-bottom:0;
}

.faq-group>h2 {
  font-size:23px;
}

.faq-group>h2>span {
  display:block;
  font-size:14px;
  letter-spacing:.1em;
  margin-top:8px;
}

.booking-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:8%;
  align-items:start;
}

.booking-layout>aside>h2 {
  font-size:32px;
  margin-bottom:25px;
}

.demo-notice {
  padding:20px;
  background:var(--cream);
  border:var(--line);
  border-radius:10px;
  margin-top:25px;
  font-size:14px;
}

.demo-notice p {
  font-size:14px;
  margin-top:8px;
}

.booking-mini-photo {
  margin:30px 0 22px;
  max-width:350px;
}

.booking-mini-photo img {
  border:var(--line);
  border-radius:80px 80px 8px 8px;
}

.booking-panel {
  border:var(--line);
  background:white;
  border-radius:var(--radius);
  padding:36px;
}

.booking-progress {
  display:flex;
  justify-content:space-between;
  border-bottom:var(--line);
  padding-bottom:26px;
  margin:0 0 28px;
  gap:10px;
  font-size:14px;
}

.booking-progress li {
  display:flex;
  align-items:center;
  gap:10px;
}

.booking-progress li span {
  border:var(--line);
  border-radius:50%;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  line-height:1;
}

.booking-progress [aria-current=step] span {
  background:var(--ink);
  color:white;
}

.booking-progress [aria-current=step] {
  font-weight:700;
}

#booking-form h2 {
  font-size:23px;
  margin-bottom:28px;
}

#booking-form label:not(.check-row) {
  font-size:15px;
}

.required,.optional {
  font-size:14px;
  border:1px solid var(--ink);
  padding:2px 6px;
  margin-left:6px;
  font-weight:400;
}

.required {
  background:var(--pink);
}

.optional {
  background:var(--mint);
}

.booking-total {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  border-top:var(--line);
  border-bottom:var(--line);
  padding:17px 0;
  margin-bottom:25px;
  gap:15px;
}

.booking-total strong {
  font:37px/1.2 Georgia,serif;
}

.booking-total span {
  font-size:14px;
}

.form-columns {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
}

#booking-form .note {
  margin:15px 0 25px;
}

.full-width {
  width:100%;
  display:flex;
  margin-top:25px;
}

.form-error {
  color:#8e2639;
  font-size:14px;
  background:#fff0f2;
  padding:12px;
  border:1px solid #8e2639;
  margin-top:20px;
}

.review-list {
  margin:0 0 28px;
}

.review-list>div {
  padding:17px 0;
  border-bottom:1px solid #203e3540;
}

.review-list dt {
  font-size:14px;
  font-weight:700;
  margin-bottom:6px;
}

.review-list dd {
  margin:0;
  font-size:17px;
  white-space:pre-line;
}

.review-list dd strong {
  font-size:25px;
}

#booking-back {
  margin-top:20px;
}

.done-flower {
  display:flex;
  justify-content:center;
  margin:32px 0;
}

#booking-done {
  text-align:center;
}

#booking-done .text-link {
  margin-top:25px;
}

#booking-done .demo-notice strong {
  display:block;
}

.nojs-note {
  padding:30px;
  background:var(--cream);
  border:var(--line);
}

/* CTAの矢印は独自SVG。元のサイトのボタン画像は使用しない。 */
.cta-arrow {
  display:inline-flex;
  flex:0 0 36px;
  width:36px;
  align-items:center;
  justify-content:center;
}

.cta-arrow svg {
  display:block;
  width:100%;
  height:24px;
}

.round-arrow .cta-arrow {
  width:24px;
  flex-basis:24px;
}

.header-reserve .cta-arrow {
  width:28px;
  flex-basis:28px;
}

.text-link .cta-arrow {
  width:28px;
  flex-basis:28px;
}

.button:active {
  transform:translate(4px,5px);
  box-shadow:1px 1px 0 #18251f;
}

.story-photo {
  position:relative;
  min-width:0;
}

.story-photo>img {
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  border:2px solid var(--ink);
  border-radius:34px 20px 42px 20px;
  box-shadow:5px 6px 0 var(--ink);
}

.photo-number {
  position:absolute;
  left:-20px;
  top:-20px;
  width:66px;
  height:66px;
  display:grid;
  place-items:center;
  border:2px solid var(--ink);
  border-radius:50%;
  background:var(--cream);
  font:italic 32px/1 Georgia,serif;
}

.promise-list {
  margin-top:64px;
}

.promise-list article {
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:9%;
  align-items:center;
  padding:0 0 52px;
  margin-bottom:52px;
  border-bottom:2px dashed var(--ink);
}

.promise-list article:last-child {
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:0;
}

.promise-list article:nth-child(2) .story-photo {
  order:2;
}

.promise-list h3 {
  font-size:28px;
  margin-bottom:22px;
}

.promise-list .eyebrow {
  font-size:14px;
  margin-bottom:14px;
}

.promise-copy p {
  font-size:16px;
}

.name-story .wrap {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9%;
  align-items:center;
}

.name-graphic {
  border:2px dashed var(--ink);
  border-radius:48% 42% 48% 42%;
  background:var(--pink);
  aspect-ratio:1.1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  box-shadow:7px 8px 0 var(--ink);
  transform:rotate(-5deg);
}

.name-graphic>span {
  font:700 clamp(75px,8.5vw,120px)/1 Georgia,serif;
  letter-spacing:-.08em;
}

.name-graphic .flower {
  position:absolute;
  right:8px;
  top:-15px;
  width:90px;
  height:90px;
}

.name-graphic>i {
  font:italic 28px/1.4 Georgia,serif;
  text-align:center;
  margin-top:26px;
}

.name-copy .display {
  font-size:62px;
}

.name-copy h2+p {
  margin-top:26px;
}

.menu-detail-photo {
  margin:26px 0 34px;
}

.menu-detail-photo img {
  width:100%;
  aspect-ratio:1.85;
  object-fit:cover;
  border:2px solid var(--ink);
  border-radius:26px 20px 60px 20px;
  box-shadow:4px 5px 0 var(--ink);
}

.consultation-banner {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:8%;
  align-items:center;
}

.consultation-banner h2 {
  font-size:32px;
  margin-bottom:24px;
}

.consultation-banner .text-link {
  margin-top:25px;
}

.note-photo {
  margin:-16px -16px 28px;
}

.note-photo img {
  width:100%;
  aspect-ratio:1.65;
  object-fit:cover;
  border:var(--line);
  border-radius:4px;
}

.care-home-banner {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:9%;
  align-items:center;
}

.care-home-banner h2 {
  margin-bottom:24px;
}

.care-home-banner .text-link {
  margin-top:20px;
}

.care-option-photo {
  margin-bottom:28px;
}

.care-option-photo img {
  width:100%;
  aspect-ratio:1.5;
  object-fit:cover;
  border:2px solid var(--ink);
  border-radius:30px 30px 12px 12px;
  box-shadow:5px 6px 0 var(--ink);
}

.care-options .circle-number {
  position:absolute;
  top:18px;
  left:18px;
  background:var(--cream);
}

.care-illustration {
  width:100%;
  height:auto;
  margin:0 auto 20px;
}

.salon-details-layout {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:7%;
  align-items:center;
  margin-top:48px;
}

.salon-detail-photo {
  position:relative;
}

.salon-detail-photo img {
  width:100%;
  aspect-ratio:.9;
  object-fit:cover;
  border:2px solid var(--ink);
  border-radius:160px 160px 30px 30px;
  box-shadow:6px 7px 0 var(--ink);
}

.salon-detail-photo figcaption {
  position:absolute;
  bottom:26px;
  left:22px;
  right:22px;
  padding:12px 10px;
  border:2px solid var(--ink);
  border-radius:35%;
  background:var(--pink);
  text-align:center;
  font:italic 28px/1.4 Georgia,serif;
  transform:rotate(-4deg);
}

.space-details {
  display:flex;
  flex-direction:column;
  gap:26px;
}

.space-details article {
  position:relative;
  border-bottom:2px dashed var(--ink);
  padding:0 0 25px 59px;
}

.space-details article:last-child {
  border:0;
  padding-bottom:0;
}

.space-details article>span {
  position:absolute;
  left:0;
  top:1px;
  font:italic 36px/1.2 Georgia,serif;
}

.space-details h3 {
  margin-bottom:14px;
  font-size:23px;
}

.space-details p {
  font-size:16px;
}

.visit-timeline {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:62px 6%;
  margin:48px 0 0;
}

.visit-timeline li {
  min-width:0;
}

.visit-step-photo {
  position:relative;
  margin-bottom:29px;
}

.visit-step-photo>img {
  width:100%;
  aspect-ratio:1.5;
  object-fit:cover;
  border:2px solid var(--ink);
  border-radius:27px 27px 70px 20px;
  box-shadow:5px 6px 0 var(--ink);
}

.visit-step-photo .circle-number {
  position:absolute;
  bottom:-14px;
  left:22px;
  width:62px;
  height:62px;
  border:2px solid var(--ink);
}

.visit-step-copy {
  padding:6px 6px 0;
}

.visit-timeline h3 {
  font-size:25px;
  margin-bottom:18px;
}

.visit-timeline .eyebrow {
  font-size:14px;
  margin-bottom:12px;
}

.visit-timeline .text-link {
  margin-top:16px;
}

.faq-side-photo {
  margin-top:38px;
}

.faq-side-photo img {
  width:100%;
  border:2px solid var(--ink);
  border-radius:26px 20px 52px 20px;
  box-shadow:4px 5px 0 var(--ink);
}

.faq-side-photo figcaption {
  font-size:14px;
  margin-top:20px;
}

.booking-strip {
  padding:65px 0;
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  background:var(--mint);
}

.booking-inner {
  display:grid;
  grid-template-columns:300px 1fr;
  gap:9%;
  align-items:center;
  max-width:1050px;
}

.booking-art {
  position:relative;
}

.booking-art>img:first-child {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  object-position:50% 35%;
  border:2px solid var(--ink);
  border-radius:46% 46% 43% 48%;
  box-shadow:7px 7px 0 var(--ink);
  transform:rotate(-6deg);
}

.booking-art>.flower {
  position:absolute;
  top:-13px;
  right:-20px;
  width:78px;
  height:78px;
}

.booking-art>span {
  position:absolute;
  bottom:-17px;
  left:-17px;
  background:var(--cream);
  border:2px solid var(--ink);
  border-radius:45%;
  padding:13px 22px;
  font:italic 24px/1.2 Georgia,serif;
  transform:rotate(7deg);
}

.booking-copy h2 {
  font-size:40px;
  line-height:1.5;
  margin-bottom:18px;
}

.booking-copy h2 span {
  display:inline-block;
}

.booking-copy .eyebrow {
  margin-bottom:17px;
}

.booking-action {
  margin-top:25px;
}

.booking-action .button {
  min-width:285px;
  font-size:18px;
}

.booking-action .note {
  font-size:14px;
  margin-top:17px;
}

@media(min-width:1500px) {
  .hero-copy {
    padding-left:max(65px,calc((100vw - 1200px)/2));
  }
  .hero-photo>img:first-child {
    max-height:740px;
  }
  .hero-handwriting {
    right:45px;
    top:150px;
  }
}

@media(max-width:1150px) {
  .desktop-nav {
    gap:17px;
  }
  .site-header {
    gap:25px;
  }
  .desktop-nav a {
    font-size:14px;
  }
  .header-reserve {
    gap:16px;
    padding-inline:18px;
  }
  .hero-handwriting {
    font-size:30px;
    right:22px;
    top:84px;
  }
  .hero-copy {
    padding-left:45px;
  }
  .hero h1 {
    font-size:64px;
  }
  .wrap {
    width:calc(100% - 80px);
  }
  .brand>span {
    font-size:48px;
  }
  .salon-home-copy {
    padding:60px 9%;
  }
  .hero-copy .eyebrow {
    font-size:14px;
  }
}

@media(max-width:950px) {
  .promise-list article {
    gap:7%;
  }
  .promise-list h3 {
    font-size:25px;
  }
  .name-copy .display {
    font-size:46px;
  }
  .name-graphic>i {
    font-size:23px;
  }
  .booking-inner {
    grid-template-columns:240px 1fr;
    gap:7%;
  }
  .booking-copy h2 {
    font-size:32px;
  }
  .booking-action .button {
    min-width:250px;
    font-size:16px;
  }
  .salon-details-layout {
    grid-template-columns:1.05fr 1fr;
    gap:6%;
  }
  .space-details article {
    padding-left:43px;
  }
  .space-details h3 {
    font-size:20px;
  }
  .space-details article>span {
    font-size:29px;
  }
  .salon-detail-photo figcaption {
    font-size:22px;
  }
  .visit-timeline h3 {
    font-size:23px;
  }
  .desktop-nav {
    display:none;
  }
  .site-header {
    height:92px;
    gap:22px;
  }
  .header-reserve {
    margin-left:auto;
  }
  .mobile-nav {
    display:block;
  }
  .mobile-nav>summary {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:44px;
    height:56px;
    list-style:none;
    cursor:pointer;
    gap:5px;
    line-height:1;
  }
  .mobile-nav>summary::-webkit-details-marker {
    display:none;
  }
  .mobile-nav>summary>span {
    width:26px;
    height:1.5px;
    background:var(--ink);
  }
  .mobile-nav>summary>b {
    font-size:14px;
    letter-spacing:.1em;
    margin-top:5px;
  }
  .mobile-nav>nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--cream);
    border-bottom:var(--line);
    padding:20px 6% 28px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px 24px;
    box-shadow:0 12px 20px #203e3514;
  }
  .mobile-nav nav>a {
    display:block;
    border-bottom:1px solid #203e3540;
    padding:12px 0;
    font-weight:700;
    font-size:16px;
  }
  .mobile-nav nav>a>span {
    display:block;
    font-size:14px;
    font-weight:400;
  }
  .hero-copy {
    padding:47px 30px;
  }
  .hero h1 {
    font-size:53px;
  }
  .hero-handwriting {
    font-size:27px;
    top:86px;
    right:16px;
  }
  .hero-description {
    font-size:16px;
  }
  .hero-photo {
    padding:20px;
  }
  .hero-sticker {
    right:16px;
    top:30px;
    font-size:14px;
    padding:17px 12px;
  }
  .hero-sticker em {
    font-size:20px;
  }
  .hero-bottom {
    font-size:14px;
  }
  .hero-photo .flower {
    width:70px;
    height:70px;
    left:-35px;
    bottom:58px;
  }
  .photo-caption {
    font-size:14px;
    left:32px;
    bottom:31px;
  }
  .section {
    padding:78px 0;
  }
  .wrap {
    width:calc(100% - 64px);
  }
  .split {
    gap:7%;
  }
  .photo-stack .arch-photo {
    height:410px;
  }
  .arch-photo img {
    min-height:360px;
  }
  .photo-stamp {
    width:125px;
    height:125px;
    font-size:24px;
  }
  .photo-stamp em {
    font-size:32px;
  }
  .section-copy p {
    font-size:16px;
  }
  .section-copy h2 {
    font-size:30px;
  }
  .section-heading {
    gap:25px;
  }
  .section-heading .button {
    font-size:14px;
    padding-inline:20px;
  }
  .home-grid {
    gap:20px;
  }
  .card-link {
    font-size:30px;
  }
  .style-subtitle {
    font-size:14px;
  }
  .style-meta {
    font-size:14px;
  }
  .salon-home-copy {
    padding:50px 8%;
  }
  .salon-home-copy p {
    font-size:16px;
  }
  .salon-home-copy h3 {
    font-size:20px;
  }
  .salon-home-copy .display {
    font-size:44px;
  }
  .footer-top {
    gap:35px;
  }
  .footer-top p {
    font-size:14px;
  }
  .footer-nav {
    grid-template-columns:repeat(3,1fr);
  }
  .page-intro {
    padding:48px 0;
  }
  .page-intro .flower {
    width:80px;
    height:80px;
    right:0;
    top:35px;
  }
  .page-intro .display {
    font-size:80px;
  }
  .menu-layout,.faq-layout {
    grid-template-columns:30% 1fr;
    gap:7%;
  }
  .menu-aside h2,.faq-layout>aside>h2 {
    font-size:24px;
  }
  .menu-aside p {
    font-size:16px;
  }
  .anchor-nav a {
    font-size:14px;
  }
  .price-list dd {
    font-size:23px;
  }
  .estimator-layout {
    gap:6%;
    grid-template-columns:1fr 1.1fr;
  }
  .estimator {
    padding:25px;
  }
  .estimator .check-row {
    flex-wrap:wrap;
  }
  .full-gallery {
    gap:55px 35px;
  }
  .care-options {
    gap:35px;
  }
  .care-steps {
    gap:25px;
  }
  .care-steps h3 {
    font-size:19px;
  }
  .care-steps p {
    font-size:16px;
  }
  .care-options h3 {
    font-size:32px;
  }
  .salon-panorama img {
    height:430px;
  }
  .booking-layout {
    grid-template-columns:.7fr 1.3fr;
    gap:5%;
  }
  .booking-layout>aside>h2 {
    font-size:27px;
  }
  .booking-panel {
    padding:25px;
  }
  .form-columns {
    grid-template-columns:1fr;
  }
  .booking-progress {
    font-size:14px;
  }
  .booking-progress li {
    gap:7px;
  }
  .booking-layout>aside>p {
    font-size:16px;
  }
  .paper-note {
    padding:28px;
  }
  .info-list>div {
    grid-template-columns:85px 1fr;
  }
}

@media(max-width:680px) {
  .button {
    min-height:58px;
    padding:13px 22px;
    gap:22px;
  }
  .cta-arrow {
    flex-basis:31px;
    width:31px;
  }
  .header-reserve {
    gap:12px;
    border-radius:16px 13px 18px 13px;
  }
  .header-reserve .cta-arrow {
    flex-basis:23px;
    width:23px;
  }
  .text-link {
    gap:18px;
  }
  .promise-list {
    margin-top:44px;
  }
  .promise-list article {
    grid-template-columns:1fr;
    gap:30px;
    margin-bottom:37px;
    padding-bottom:36px;
  }
  .promise-list article:nth-child(2) .story-photo {
    order:0;
  }
  .promise-list h3 {
    font-size:24px;
    margin-bottom:18px;
  }
  .photo-number {
    width:51px;
    height:51px;
    left:-8px;
    top:-17px;
    font-size:26px;
  }
  .story-photo>img {
    border-radius:28px 18px 40px 18px;
    box-shadow:4px 5px 0 var(--ink);
  }
  .name-story .wrap {
    grid-template-columns:1fr;
    gap:43px;
  }
  .name-graphic {
    width:90%;
    margin:5px auto 0;
  }
  .name-graphic>span {
    font-size:86px;
  }
  .name-graphic .flower {
    width:65px;
    height:65px;
  }
  .name-graphic>i {
    font-size:24px;
    margin-top:20px;
  }
  .name-copy .display {
    font-size:48px;
  }
  .menu-detail-photo {
    margin:25px 0 30px;
  }
  .menu-detail-photo img {
    aspect-ratio:1.5;
  }
  .consultation-banner,.care-home-banner {
    grid-template-columns:1fr;
    gap:35px;
  }
  .consultation-banner h2 {
    font-size:27px;
  }
  .care-home-banner h2 {
    font-size:29px;
  }
  .note-photo {
    margin:-14px -14px 25px;
  }
  .care-illustration {
    max-width:310px;
    margin-bottom:15px;
  }
  .salon-details-layout {
    grid-template-columns:1fr;
    gap:40px;
    margin-top:32px;
  }
  .salon-detail-photo img {
    aspect-ratio:1.05;
    border-radius:140px 140px 26px 26px;
  }
  .salon-detail-photo figcaption {
    font-size:24px;
  }
  .space-details {
    gap:25px;
  }
  .space-details article {
    padding-left:52px;
  }
  .space-details article>span {
    font-size:34px;
  }
  .space-details h3 {
    font-size:23px;
  }
  .visit-timeline {
    grid-template-columns:1fr;
    margin-top:32px;
    gap:40px;
  }
  .visit-timeline h3 {
    font-size:23px;
  }
  .visit-step-photo {
    margin-bottom:27px;
  }
  .visit-step-photo .circle-number {
    width:54px;
    height:54px;
    font-size:27px;
  }
  .visit-step-copy {
    padding-inline:0;
  }
  .faq-side-photo img {
    aspect-ratio:1.8;
    object-fit:cover;
  }
  .booking-strip {
    padding:48px 0;
  }
  .booking-inner {
    grid-template-columns:1fr;
    gap:39px;
    text-align:center;
  }
  .booking-art {
    width:205px;
    margin:0 auto;
  }
  .booking-art>.flower {
    width:64px;
    height:64px;
    right:-17px;
  }
  .booking-art>span {
    font-size:20px;
    padding:10px 18px;
    left:-23px;
  }
  .booking-copy h2 {
    font-size:32px;
    margin-bottom:16px;
  }
  .booking-copy .eyebrow {
    font-size:14px;
    letter-spacing:.055em;
    margin-bottom:17px;
  }
  .booking-copy>p:not(.eyebrow) {
    font-size:16px;
  }
  .booking-action {
    margin-top:26px;
  }
  .booking-action .button {
    min-width:0;
    width:calc(100% - 12px);
    max-width:310px;
    font-size:16px;
  }
  .booking-action .note {
    font-size:14px;
    margin-top:20px;
  }
  html {
    scroll-padding-top:25px;
  }
  .wrap {
    width:calc(100% - 40px);
  }
  .section {
    padding:65px 0;
  }
  .site-header {
    height:82px;
    padding:0 20px;
    gap:13px;
  }
  .brand>span {
    font-size:43px;
  }
  .brand small {
    display:none;
  }
  .header-reserve {
    font-size:14px;
    gap:15px;
    padding:6px 15px;
    min-height:41px;
  }
  .header-reserve>span:last-child {
    font-size:20px;
  }
  .mobile-nav>summary {
    width:33px;
  }
  .mobile-nav>nav {
    grid-template-columns:1fr 1fr;
    padding:14px 22px 24px;
    max-height:calc(100dvh - 82px);
    overflow:auto;
  }
  .mobile-nav nav>a {
    font-size:16px;
    padding:10px 0;
  }
  .mobile-nav nav>a>span {
    font-size:14px;
  }
  .hero {
    grid-template-columns:1fr;
  }
  .hero-copy {
    padding:38px 25px 38px;
  }
  .hero-copy .eyebrow {
    font-size:14px;
    margin-bottom:25px;
  }
  .hero h1 {
    font-size:57px;
    line-height:1.18;
    letter-spacing:.025em;
  }
  .hero h1 span {
    margin-top:0;
  }
  .hero-description {
    font-size:16px;
    margin-top:24px;
    margin-bottom:25px;
  }
  .hero-copy .button {
    font-size:14px;
    min-height:53px;
    min-width:224px;
  }
  .hero-handwriting {
    right:30px;
    top:135px;
    font-size:32px;
  }
  .hero-photo {
    border-left:0;
    border-top:var(--line);
    padding:20px 20px 25px;
    height:485px;
  }
  .hero-photo>img:first-child {
    border-radius:155px 155px 12px 12px;
    object-position:50% 43%;
  }
  .hero-photo .flower {
    left:auto;
    right:9px;
    bottom:9px;
    width:77px;
    height:77px;
  }
  .hero-sticker {
    top:35px;
    right:22px;
    font-size:14px;
    padding:20px 15px;
  }
  .hero-sticker em {
    font-size:23px;
  }
  .photo-caption {
    left:35px;
    bottom:39px;
    font-size:14px;
  }
  .hero-bottom {
    padding:13px 20px;
    gap:9px;
    justify-content:space-between;
    flex-wrap:wrap;
    font-size:14px;
    line-height:1.6;
  }
  .hero-bottom>span:first-child {
    display:none;
  }
  .hero-bottom a {
    font-size:14px;
  }
  .hero-bottom a span {
    font-size:16px;
    margin-left:6px;
  }
  .word-ribbon {
    font-size:29px;
    padding:19px 0;
    gap:24px;
  }
  .word-ribbon img {
    width:29px;
    height:29px;
  }
  .split,.first-inner,.estimator-layout,.booking-layout,.menu-layout,.faq-layout {
    grid-template-columns:1fr;
    gap:40px;
  }
  .section-copy h2,h2 {
    font-size:30px;
    line-height:1.6;
  }
  .section-copy p {
    font-size:16px;
  }
  .eyebrow {
    font-size:14px;
    margin-bottom:20px;
  }
  .photo-stack {
    padding:0 12px 15px 0;
    margin-right:15px;
  }
  .photo-stack .arch-photo {
    height:410px;
  }
  .photo-stamp {
    width:132px;
    height:132px;
    right:-14px;
    bottom:-7px;
  }
  .arch-photo {
    border-radius:145px 145px 12px 12px;
  }
  .arch-photo img {
    min-height:320px;
  }
  .concept-home .split {
    gap:48px;
  }
  .display {
    font-size:49px;
    line-height:1.12;
  }
  .section-heading {
    display:block;
    margin-bottom:35px;
  }
  .section-heading .button {
    margin-top:26px;
  }
  .section-heading .flower {
    display:none;
  }
  .section-heading>p {
    margin-top:20px;
    font-size:15px;
  }
  .section-heading h2+p {
    margin-top:18px;
  }
  .home-grid {
    grid-template-columns:1fr;
    gap:38px;
  }
  .home-grid .style-card {
    padding:0!important;
  }
  .home-grid .style-card:nth-child(2) {
    margin-left:40px;
  }
  .home-grid .style-card:nth-child(3) {
    margin-right:35px;
  }
  .style-card img {
    max-height:470px;
    border-radius:145px 145px 8px 8px;
  }
  .style-meta {
    font-size:14px;
  }
  .card-link {
    font-size:36px;
  }
  .style-subtitle {
    font-size:16px;
  }
  .styles-home .note {
    margin-top:28px;
  }
  .menu-preview>a {
    gap:15px;
    padding:25px 0;
    flex-wrap:wrap;
  }
  .menu-no {
    font-size:15px;
    line-height:2.1;
  }
  .menu-preview h3 {
    font-size:38px;
  }
  .menu-preview p {
    font-size:16px;
    margin-top:6px;
  }
  .price {
    font-size:27px;
  }
  .price>span {
    display:block;
    font-size:14px;
    margin:3px 0 0;
    text-align:right;
  }
  .menu-preview .round-arrow {
    width:34px;
    height:34px;
    font-size:20px;
  }
  .section-tail {
    display:block;
    margin-top:23px;
  }
  .section-tail .text-link {
    margin-top:17px;
    font-size:15px;
  }
  .salon-home {
    grid-template-columns:1fr;
  }
  .salon-home-photo {
    height:330px;
  }
  .salon-home-copy {
    padding:48px 25px;
    border-left:0;
    border-top:var(--line);
  }
  .salon-home-copy .display {
    font-size:50px;
  }
  .salon-home-copy h3 {
    font-size:23px;
    margin-top:28px;
  }
  .salon-home-copy p {
    font-size:16px;
  }
  .first-inner {
    gap:26px;
  }
  .link-pair {
    gap:18px;
    margin-top:20px;
  }
  .link-pair .text-link {
    font-size:15px;
    gap:20px;
  }
  .site-footer {
    padding:45px 23px 24px;
  }
  .footer-top {
    flex-wrap:wrap;
    gap:24px;
    position:relative;
    padding-bottom:30px;
  }
  .footer-top .brand>span {
    font-size:65px;
  }
  .footer-top .brand small {
    font-size:14px;
  }
  .footer-top p {
    width:100%;
    font-size:14px;
  }
  .back-top {
    position:absolute;
    right:0;
    top:4px;
    width:47px;
    height:47px;
  }
  .footer-nav {
    grid-template-columns:1fr 1fr;
    padding:24px 0 30px;
    gap:20px 25px;
  }
  .footer-nav a {
    font-size:16px;
  }
  .footer-nav span {
    font-size:14px;
  }
  .footer-bottom {
    display:block;
    font-size:14px;
  }
  .footer-bottom span {
    display:block;
    margin-top:22px;
    font-size:14px;
  }
  .page-intro {
    padding:42px 0;
  }
  .page-intro .eyebrow {
    font-size:14px;
    margin-bottom:12px;
  }
  .page-intro .display {
    font-size:61px;
    line-height:1.1;
    padding-right:0;
  }
  .page-intro .jp-title {
    font-size:20px;
    margin-top:17px;
  }
  .page-intro .intro-copy {
    font-size:14px;
    max-width:92%;
    margin-top:12px;
  }
  .page-intro .flower {
    width:47px;
    height:47px;
    right:3px;
    top:-17px;
  }
  .page-reservation .page-intro .display {
    font-size:52px;
  }
  .rounded-photo img {
    border-radius:20px;
  }
  .reverse .arch-photo {
    order:2;
  }
  .narrow h2+p,.narrow .display+p {
    margin-top:22px;
  }
  .next-links {
    grid-template-columns:1fr;
    gap:28px;
  }
  .next-links h2 {
    font-size:21px;
  }
  .next-links>a {
    padding-block:26px;
  }
  .next-links .eyebrow {
    font-size:14px;
  }
  .next-links>a>span:last-child {
    top:30px;
    font-size:30px;
  }
  .menu-aside {
    position:static;
  }
  .menu-aside h2,.faq-layout>aside>h2 {
    font-size:29px;
  }
  .menu-aside p {
    font-size:16px;
  }
  .anchor-nav {
    margin-top:25px;
  }
  .anchor-nav a {
    font-size:16px;
  }
  .price-sections>section {
    padding-bottom:38px;
    margin-bottom:40px;
  }
  .price-sections h2 {
    font-size:53px;
  }
  .price-list dt {
    font-size:15px;
  }
  .price-list small {
    font-size:14px;
  }
  .price-list dd {
    font-size:25px;
  }
  .price-list>div {
    gap:15px;
  }
  .price-sections p {
    font-size:16px;
  }
  .price-sections .eyebrow {
    font-size:14px;
  }
  .estimator {
    padding:23px;
    box-shadow:4px 4px 0 var(--ink);
    border-radius:20px;
  }
  .estimator-layout {
    gap:32px;
  }
  .check-row {
    font-size:14px;
  }
  .check-row>span {
    font-size:14px;
  }
  .estimate-result>strong {
    font-size:40px;
  }
  .estimator .button {
    font-size:14px;
    padding-inline:20px;
    gap:15px;
  }
  .style-filters {
    gap:8px!important;
  }
  .style-filters button {
    padding:8px 15px;
    font-size:14px;
    min-height:45px;
  }
  .style-filters span {
    font-size:14px;
    margin-left:5px;
  }
  .filter-count {
    font-size:14px;
    margin-bottom:27px;
  }
  .full-gallery {
    grid-template-columns:1fr;
    gap:45px;
  }
  .full-gallery h2 {
    font-size:38px;
  }
  .full-gallery .style-subtitle {
    margin-bottom:15px;
  }
  .full-gallery img {
    max-height:none;
  }
  .paper-note {
    padding:26px;
    box-shadow:4px 4px 0 var(--ink);
  }
  .simple-list {
    font-size:15px;
  }
  .care-options {
    grid-template-columns:1fr;
    gap:40px;
    margin-top:33px;
  }
  .care-options h3 {
    font-size:35px;
  }
  .care-options h3 span {
    font-size:18px;
  }
  .circle-number {
    width:53px;
    height:53px;
    font-size:26px;
  }
  .care-options h3 {
    margin:22px 0;
  }
  .care-steps {
    grid-template-columns:1fr;
    gap:30px;
  }
  .care-steps h3 {
    font-size:22px;
    margin:17px 0 14px;
  }
  .care-steps p {
    font-size:16px;
  }
  .wide-photo {
    height:500px;
  }
  .wide-photo>img {
    object-position:70%;
  }
  .wide-photo>div {
    left:20px;
    right:20px;
    top:auto;
    bottom:25px;
    transform:none;
    padding:25px;
  }
  .wide-photo h2 {
    font-size:25px;
  }
  .wide-photo .eyebrow {
    font-size:14px;
    margin-bottom:16px;
  }
  .salon-panorama {
    padding:8px 0 50px;
  }
  .salon-panorama img {
    height:400px;
    border-radius:12px 12px 90px 12px;
    object-position:46%;
  }
  .panorama-label {
    width:132px;
    height:132px;
    right:-5px;
    bottom:-22px;
    font-size:23px;
  }
  .info-list>div {
    grid-template-columns:93px 1fr;
    font-size:15px;
  }
  .visit-checklist legend {
    font-size:16px;
  }
  .visit-checklist .check-row {
    font-size:14px;
  }
  .faq-item summary {
    font-size:16px;
    gap:18px;
    padding:20px 0;
  }
  .faq-item>p {
    font-size:16px;
    padding:0 15px 23px 0;
  }
  .faq-layout>aside>.flower {
    display:none;
  }
  .faq-group>h2 {
    font-size:22px;
  }
  .faq-group>h2>span {
    font-size:14px;
  }
  .faq-group {
    margin-bottom:43px;
  }
  .booking-layout>aside>h2 {
    font-size:30px;
  }
  .booking-layout>aside>p {
    font-size:16px;
  }
  .booking-mini-photo {
    display:none;
  }
  .booking-layout>aside>.text-link {
    margin-top:23px;
  }
  .booking-panel {
    padding:25px 20px;
    border-radius:20px;
  }
  .booking-progress {
    font-size:14px;
    padding-bottom:22px;
    margin-bottom:25px;
  }
  .booking-progress li span {
    width:30px;
    height:30px;
  }
  .booking-progress li {
    gap:7px;
  }
  #booking-form h2 {
    font-size:22px;
    margin-bottom:24px;
  }
  .booking-total strong {
    font-size:34px;
  }
  .booking-total span {
    font-size:14px;
  }
  .form-columns {
    gap:22px;
  }
  .full-width {
    font-size:14px;
    padding-inline:19px;
    gap:12px;
  }
  .demo-notice {
    font-size:14px;
  }
  .booking-layout {
    gap:32px;
  }
  .review-list dd {
    font-size:16px;
  }
  .note {
    font-size:14px;
  }
  .style-dialog {
    padding:17px;
  }
  .dialog-header h2 {
    font-size:25px;
  }
  .dialog-close {
    width:42px;
    height:42px;
  }
  .done-flower {
    margin-top:20px;
  }
}

@media(max-width:360px) {
  .hero h1 {
    font-size:50px;
  }
  .hero-handwriting {
    font-size:27px;
    right:17px;
    top:134px;
  }
  .site-header {
    gap:10px;
    padding-inline:15px;
  }
  .brand>span {
    font-size:39px;
  }
  .brand small {
    font-size:14px;
  }
  .header-reserve {
    padding-inline:12px;
    gap:8px;
  }
  .hero-photo {
    height:420px;
  }
  .hero-copy {
    padding-inline:20px;
  }
  .wrap {
    width:calc(100% - 34px);
  }
  .display {
    font-size:43px;
  }
  .menu-preview .round-arrow {
    display:none;
  }
  .menu-preview p {
    font-size:16px;
  }
  .price {
    font-size:25px;
  }
  .page-intro .display {
    font-size:53px;
  }
  .page-reservation .page-intro .display {
    font-size:45px;
  }
  .hero-bottom {
    font-size:14px;
    padding-inline:16px;
  }
  .hero-bottom a {
    font-size:14px;
  }
  .check-row {
    gap:7px;
  }
  .check-row>span {
    font-size:14px;
  }
  .booking-panel {
    padding:22px 16px;
  }
  .booking-progress {
    font-size:14px;
  }
  .booking-progress li {
    gap:5px;
  }
  .photo-stack .arch-photo {
    height:350px;
  }
  .card-link {
    font-size:32px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
}

