/* Shared typography — Kyoto-inspired, quiet and refined */
body,
button,
input,
textarea,
select{
  font-family:'Noto Sans JP',sans-serif;
  font-weight:400;
}
h1,
h2,
h3,
.serif{
  font-family:'Zen Old Mincho',serif;
  font-weight:500;
  letter-spacing:.045em;
}
h1 .en,
h2 .en,
h3 .en{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;
  letter-spacing:.025em;
}
header .logo{
  font-family:'Cormorant Garamond',serif;
  font-size:21px;
  font-weight:500;
  letter-spacing:.1em;
}
header .logo small,
header .nav-links,
header .lang-toggle,
header .btn-line{
  font-family:'Noto Sans JP',sans-serif;
}
.eyebrow,
.section-label,
.service-num,
.service-card .num,
.photo-label{
  font-family:'Cormorant Garamond',serif;
  font-size:13px;
  font-weight:500;
  letter-spacing:.18em;
}
.stat .v,
td.price{
  font-family:'Cormorant Garamond','Zen Old Mincho',serif;
  font-weight:500;
}

/* Shared button motion */
.btn-primary,
.btn-secondary,
.btn-invert,
.cta-button,
.submit{
  transition:
    background-color .48s cubic-bezier(.22,1,.36,1),
    color .38s ease,
    border-color .38s ease,
    box-shadow .48s cubic-bezier(.22,1,.36,1),
    transform .48s cubic-bezier(.22,1,.36,1) !important;
}
.btn-primary:hover,
.btn-secondary:hover,
.btn-invert:hover,
.cta-button:hover,
.submit:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(18,19,16,.16);
}
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
.btn-invert:focus-visible,
.cta-button:focus-visible,
.submit:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
}
.btn-primary:active,
.btn-secondary:active,
.btn-invert:active,
.cta-button:active,
.submit:active{
  transform:translateY(0) scale(.98);
  box-shadow:0 5px 14px rgba(18,19,16,.12);
}

/* Shared centered section headings */
.section-head{
  display:block !important;
  width:100%;
  max-width:900px;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.section-head>.section-label{
  position:static !important;
  display:block;
  margin:0 0 24px !important;
  transform:none !important;
  text-align:center !important;
}
.section-head h2{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.section-head p{
  max-width:720px !important;
  margin:14px auto 0 !important;
  text-align:center !important;
}
@media(max-width:600px){
  header .logo{font-size:18px}
  .section-head>.section-label{margin-bottom:18px !important}
}

@media(prefers-reduced-motion:reduce){
  .btn-primary,
  .btn-secondary,
  .btn-invert,
  .cta-button,
  .submit{
    transition:none !important;
  }
}
