html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body { font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; }
.font-num { font-feature-settings: "tnum"; }

/* Reveal on scroll */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* Section label */
.eyebrow { display: inline-flex; align-items: center; gap: .6rem; font-family: Inter, "Noto Sans JP", sans-serif;
  font-size: .75rem; font-weight: 700; letter-spacing: .12em; color: #3A557F; }
.eyebrow::before { content: ""; width: 1.5rem; height: 2px; background: #E8735A; }
.text-center > .eyebrow::after { content: ""; width: 1.5rem; height: 2px; background: #E8735A; }
.eyebrow-light { color: #B7C6DE; }

/* Text link */
.link-underline { text-decoration: underline; text-decoration-color: #B7C6DE; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.link-underline:hover { color: #D35E45; text-decoration-color: currentColor; }

/* Header */
#site-header.is-scrolled { box-shadow: 0 1px 0 #DCE4F0; }

/* Range slider */
.sim-range { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 999px;
  background: linear-gradient(to right, #E8735A 0%, #E8735A var(--p, 30%), #DCE4F0 var(--p, 30%), #DCE4F0 100%); outline: none; }
.sim-range::-webkit-slider-thumb { -webkit-appearance: none; width: 28px; height: 28px; border-radius: 50%;
  background: #fff; border: 4px solid #E8735A; cursor: pointer; }
.sim-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff;
  border: 4px solid #E8735A; box-shadow: 0 2px 8px rgba(0,0,0,.2); cursor: pointer; }
.sim-range:focus-visible::-webkit-slider-thumb { outline: 3px solid #F6C27E; outline-offset: 2px; }
.sim-bar { transition: width .35s cubic-bezier(.2,.8,.2,1); }

/* FAQ accordion */
.faq-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.faq-panel > div { overflow: hidden; }
.faq-item.is-open .faq-panel { grid-template-rows: 1fr; }
.faq-item.is-open .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .3s ease; }

/* Contact theme cards */
.theme-card.is-selected { border-color: #E8735A; background: #FFFAF7; }
.theme-card.is-selected .theme-badge { display: inline-flex; }

/* Form */
.field-error { display: none; }
.has-error .field-error { display: block; }
.has-error input, .has-error select, .has-error textarea { border-color: #D35E45; }

/* Japanese line breaking: keep phrases together in headings */
h1, h2, h3, h4 { word-break: auto-phrase; text-wrap: balance; }

/* Privacy policy */
.policy h2 { font-size: 1.0625rem; font-weight: 700; color: #22324F; padding-bottom: .5rem; margin-bottom: .75rem; border-bottom: 1px solid #DCE4F0; }
.policy ol { margin-top: .5rem; padding-left: 1.5rem; list-style: decimal; }
.policy ol > li + li { margin-top: .25rem; }

/* Check list */
.check-list > li { position: relative; padding-left: 1.25rem; }
.check-list > li::before { content: ""; position: absolute; left: 0; top: .6em; width: .5rem; height: .5rem; border-radius: 1px; background: #E8735A; }
