:root {
  color-scheme: light;
  --ink: #172d28;
  --green: #173b35;
  --muted: #52625b;
  --paper: #f6f4ed;
  --line: #c9cfc4;
  --accent: #ded6a5;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* { box-sizing: border-box; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.language-fallback { padding-block:.6rem; font-size:.85rem; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; line-height: 1.85; overflow-wrap: anywhere; }
a { color: inherit; text-underline-offset: .28em; }
a:focus-visible { outline: 3px solid #9b6317; outline-offset: 6px; border-radius: 2px; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-feature-settings: "palt"; }
.wrap { width: min(100% - 7rem, 1280px); margin-inline: auto; }
.skip-link { position: absolute; top: .7rem; left: .7rem; z-index: 10; padding: .6rem 1rem; background: white; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-block: 1.6rem; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 1rem; text-decoration: none; }
.brand-name { font-family: "Segoe UI", sans-serif; font-size: .84rem; line-height: 1.25; letter-spacing: .035em; }
.brand-name strong { font-size: 1.14rem; font-weight: 650; }
nav { display: flex; align-items: center; gap: 2.25rem; font-size: .87rem; font-weight: 700; }
nav a { padding-block: .35rem; text-decoration: none; }
nav a:hover, .site-footer a:hover { text-decoration: underline; }
.hero { display: grid; grid-template-columns: 1.3fr 1fr; gap: 5rem; align-items: center; padding-block: 5.5rem 6rem; }
.eyebrow { font-family: "Segoe UI", sans-serif; font-weight: 650; letter-spacing: .15em; font-size: .72rem; color: var(--muted); margin-bottom: 1.5rem; }
h1 { font-size: clamp(2.5rem, 4.7vw, 4.35rem); font-weight: 750; line-height: 1.35; letter-spacing: -.045em; }
h1 span { color: #48634f; }
.hero-intro { margin-top: 1.75rem; color: var(--muted); font-size: 1rem; }
.text-link { display: inline-flex; align-items: center; gap: 2.4rem; margin-top: 2.1rem; padding-bottom: .4rem; border-bottom: 1px solid var(--ink); text-decoration: none; font-size: .9rem; font-weight: 700; }
.text-link span { font-size: 1.3rem; }
.workshop-note { color: #f7f5eb; background: var(--green); padding: 2.5rem 2.7rem 1.5rem; position: relative; }
.workshop-note::before { content: ""; display: block; width: 2.5rem; height: .25rem; background: var(--accent); margin-bottom: 2.25rem; }
.note-kicker { display: flex; align-items: center; gap: .6rem; color: #e1dfc9; font-size: .8rem; margin-bottom: 1rem; }
.status-dot { flex: 0 0 .45rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--accent); }
.workshop-note h2 { font-size: clamp(1.55rem, 2.35vw, 2.2rem); line-height: 1.65; letter-spacing: .025em; margin-bottom: 1.1rem; }
.workshop-note > p:not(.note-kicker) { color: #d5ddd2; font-size: .87rem; margin-top: .75rem; }
.note-bottom { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #587269; margin-top: 2.3rem; padding-top: 1.1rem; color: #c9d3c7; font-family: "Segoe UI", sans-serif; font-size: .62rem; letter-spacing: .15em; }
.section-pad { padding-block: 5rem; }
.services { background: #e9ece2; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 3rem; margin-bottom: 3rem; }
h2 { font-size: clamp(1.7rem, 2.6vw, 2.5rem); line-height: 1.5; letter-spacing: -.025em; }
.section-intro { color: var(--muted); font-size: .9rem; padding-bottom: .25rem; }
.service-list { border-top: 1px solid #aebcad; }
.service-row { display: grid; grid-template-columns: 4.5rem 1fr 1.15fr; gap: 2.25rem; padding-block: 2.2rem; border-bottom: 1px solid #aebcad; align-items: start; }
.service-number { font-family: "Segoe UI", sans-serif; font-size: 1.7rem; font-weight: 350; line-height: 1.4; color: #49644d; }
.service-english { font-family: "Segoe UI", sans-serif; color: var(--muted); letter-spacing: .12em; font-size: .65rem; line-height: 1.5; margin-bottom: .5rem; }
.service-name h3 { font-size: 1.3rem; font-weight: 700; }
.service-description { font-size: .92rem; color: #3f5147; }
.service-footnote { margin-top: 1.3rem; color: var(--muted); font-size: .82rem; }
.area { display: grid; grid-template-columns: 1fr 1.12fr; gap: 5rem; }
.area-heading .eyebrow { margin-bottom: 1.3rem; }
.location-card { margin-top: 2rem; padding: 1.6rem; border: 1px solid var(--line); background: #fffdf7; }
.location-card > h3 { font-size: 1.05rem; }
.location-details { margin: 1rem 0 1.5rem; }
.location-details dt { margin-top: .8rem; color: var(--muted); font-size: .75rem; }
.location-details dd { margin: .15rem 0 0; font-size: 1rem; font-weight: 700; }
.location-phone { font-family: "Segoe UI", sans-serif; letter-spacing: .035em; }
.preparation-notice { border-top: 3px solid var(--green); padding-top: 1rem; }
.preparation-notice strong { display: block; font-size: 1rem; }
.preparation-notice p { font-size: .85rem; margin-top: .5rem; }
.sales-notice { margin-top: 1.5rem; border-left: 3px solid #7a4b28; padding: 1.2rem; background: #eee7d9; }
.sales-notice h3 { font-size: .95rem; line-height: 1.7; }
.sales-notice p { font-size: .82rem; margin-top: .65rem; color: #41483e; }
.detail-block + .detail-block { margin-top: 2rem; }
.detail-block h3 { font-size: 1rem; margin-bottom: .5rem; }
.detail-block p { color: var(--muted); font-size: .9rem; }
.area-notice { border-top: 1px solid var(--line); margin-top: 2rem; padding-top: 1.2rem; font-size: .83rem; font-weight: 700; }
.site-footer { border-top: 1px solid var(--line); }
.footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding-block: 2rem; }
.footer-brand { font-family: "Segoe UI", sans-serif; font-size: 1.2rem; font-weight: 600; }
.footer-brand span { display: block; color: var(--muted); font-family: "Yu Gothic", "Meiryo", sans-serif; font-size: .72rem; font-weight: 400; margin-top: .1rem; }
.site-footer a { font-size: .8rem; text-decoration: none; padding-block: .5rem; }
.site-footer a span { margin-left: 1rem; }
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 4rem); }
  .hero { gap: 2.5rem; padding-block: 4rem; }
  .workshop-note { padding-inline: 1.8rem; }
  .service-row { grid-template-columns: 2.5rem 1fr 1.1fr; gap: 1.5rem; }
  .area { gap: 3rem; }
}
@media (max-width: 700px) {
  .wrap { width: calc(100% - 2.5rem); }
  .site-header { padding-block: 1.1rem; gap: 1rem; }
  .brand { gap: .7rem; }
  .brand-name { font-size: .68rem; }
  .brand-name strong { font-size: .91rem; }
  nav { gap: 1.15rem; font-size: .73rem; }
  .hero { grid-template-columns: 1fr; gap: 2.8rem; padding-block: 3rem; }
  .eyebrow { font-size: .62rem; margin-bottom: 1.25rem; }
  h1 { font-size: clamp(2rem, 8.6vw, 3.4rem); line-height: 1.45; }
  .hero-intro { font-size: .9rem; margin-top: 1.4rem; }
  .wide-only { display: none; }
  .text-link { margin-top: 1.6rem; }
  .workshop-note { padding: 1.8rem 1.65rem 1.2rem; }
  .workshop-note::before { margin-bottom: 1.4rem; }
  .workshop-note h2 { font-size: 1.7rem; line-height: 1.6; }
  .note-bottom { margin-top: 1.7rem; }
  .section-pad { padding-block: 3.2rem; }
  .section-heading { display: block; margin-bottom: 2rem; }
  .section-intro { margin-top: 1.2rem; font-size: .88rem; }
  .service-row { grid-template-columns: 2rem 1fr; column-gap: .9rem; row-gap: .8rem; padding-block: 1.65rem; }
  .service-number { font-size: 1.35rem; }
  .service-name h3 { font-size: 1.18rem; }
  .service-english { font-size: .57rem; letter-spacing: .09em; }
  .service-description { grid-column: 2; font-size: .88rem; }
  .area { grid-template-columns: 1fr; gap: 2rem; }
  .footer-inner { align-items: flex-start; flex-direction: column; gap: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
/* Survey preview: native controls, keyboard focus, no remote assets. */
[hidden] { display: none !important; }
.notice-link { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-top: 1.4rem; padding: 1rem 1.1rem; background: var(--accent); color: var(--ink); font-size: .9rem; font-weight: 700; line-height: 1.6; text-decoration: none; border: 1px solid var(--accent); }
.notice-link:hover { background: #f0e8be; text-decoration: underline; }
.notice-link > span:last-child { font-size: 1.3rem; }
.approach { display: grid; grid-template-columns: 1fr 1.12fr; gap: 5rem; border-top: 1px solid var(--line); }
.approach-copy { font-size: .94rem; color: var(--muted); }
.approach-copy > p + p { margin-top: 1rem; }
.about { display:grid; grid-template-columns:1.15fr 1fr; gap:5rem; border-bottom:1px solid var(--line); }
.about-copy { min-width:0; padding-top:3.2rem; font-size:.95rem; line-height:2.15; color:var(--muted); }
.about-copy > p + p { margin-top:1.35rem; }
.about-copy .about-lead { font-size:1.1rem; font-weight:700; color:var(--green); }
.about-route { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; font-family:"Segoe UI",sans-serif; font-size:.73rem; letter-spacing:.16em; color:var(--muted); }
.about-route span { color:var(--green); }
.pricing-item { border-top:1px solid var(--line); padding-top:1.5rem; margin-top:1.7rem; }
.pricing-item h3 { color:var(--green); font-size:1.05rem; line-height:1.75; margin-bottom:.8rem; }
.pricing-item p + p { margin-top:1rem; font-size:.87rem; }
.pricing-note { margin-top:1.7rem; padding-left:1rem; border-left:3px solid var(--green); font-size:.92rem; font-weight:700; color:var(--green); }
.specialty-note { border-left: 3px solid #78936f; margin-top: 1.8rem; padding-left: 1.2rem; }
.specialty-note h3 { color: var(--ink); font-size: 1rem; margin-bottom: .6rem; }
.survey-section { background: #e9ece2; border-top: 1px solid var(--line); }
.survey-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; align-items: start; }
.survey-intro { border-top: 4px solid var(--green); padding-top: 1.5rem; }
#survey-title { font-size: clamp(1.35rem, 2.2vw, 2rem); font-weight: 800; line-height: 1.65; }
.survey-intro .eyebrow { color: var(--green); margin-bottom: .9rem; font-size: .82rem; }
.survey-intro > p:not(.eyebrow) { margin-top: 1.4rem; font-size: .9rem; color: var(--muted); }
.survey-panel { background: var(--paper); border: 1px solid #c2cbbb; padding: 2rem; min-width: 0; }
.preview-notice { background: #eee8d0; padding: 1rem 1.15rem; margin-bottom: 1.5rem; font-size: .8rem; color: #45422d; }
.preview-notice strong { display: block; margin-bottom: .25rem; }
.survey-progress { color: #43604a; font-size: .82rem; font-weight: 700; margin-bottom: 1rem; }
fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
legend { font-size: 1.4rem; line-height: 1.5; font-weight: 700; margin-bottom: .6rem; }
.question-label { display: block; font-size: .9rem; font-weight: 700; margin: 1.5rem 0 .6rem; }
.question-label span { font-size: .75rem; font-weight: 400; color: var(--muted); margin-left: .5rem; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.choice { display: flex; align-items: center; gap: .65rem; background: #fff; border: 1px solid #b7c1b2; padding: .75rem .8rem; min-height: 48px; cursor: pointer; font-size: .83rem; line-height: 1.5; }
.choice:has(input:checked) { background: #e1eadc; border-color: #325a3c; box-shadow: inset 0 0 0 1px #325a3c; }
input[type="radio"], input[type="checkbox"] { margin: 0; accent-color: #224a38; width: 18px; height: 18px; flex: 0 0 18px; }
select, input[type="email"] { width: 100%; min-height: 48px; font: inherit; font-size: 1rem; border: 1px solid #a8b5a4; border-radius: 0; padding: .7rem; background: #fff; color: var(--ink); }
input:focus-visible, select:focus-visible, button:focus-visible, summary:focus-visible, legend:focus-visible, [tabindex="-1"]:focus-visible { outline: 3px solid #9b6317; outline-offset: 4px; }
.field-note { color: var(--muted); font-size: .76rem; margin-top: .7rem; }
.contact-details, .privacy-details { border-top: 1px solid var(--line); margin-top: 1.5rem; padding-top: 1rem; font-size: .83rem; }
summary { cursor: pointer; padding-block: .35rem; font-weight: 700; }
summary span { color: var(--muted); font-weight: 400; }
details > p { margin-top: .7rem; }
.consent-choice { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.2rem; cursor: pointer; line-height: 1.65; }
.consent-choice input { margin-top: .2rem; }
.survey-controls { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.6rem; justify-content: flex-end; }
button { font: inherit; font-size: .86rem; min-height: 48px; padding: .75rem 1.15rem; cursor: pointer; border: 1px solid #294b37; font-weight: 700; border-radius: 0; }
.primary-button { color: #fff; background: var(--green); }
.secondary-button { color: var(--green); background: transparent; }
button:disabled { opacity: .5; cursor: not-allowed; }
.survey-error { color: #802c22; background: #faebe5; border-left: 3px solid #a34935; padding: .8rem; margin-top: 1.2rem; font-size: .85rem; }
.survey-summary { margin: 1.2rem 0; }
.survey-summary dt { font-size: .76rem; color: var(--muted); margin-top: 1rem; }
.survey-summary dd { margin: 0; padding-bottom: .6rem; border-bottom: 1px solid var(--line); font-size: .9rem; }
#survey-complete p:not(.eyebrow) { margin: 1rem 0 1.4rem; font-size: .9rem; }
@media (max-width: 1000px) {
  .survey-layout { grid-template-columns: 1fr; gap: 2rem; }
  .survey-intro { max-width: 42rem; }
}
@media (max-width: 700px) {
  .site-header { flex-wrap: wrap; }
  nav { flex-wrap: wrap; gap: 1rem; }
  .approach { grid-template-columns: 1fr; gap: 1.5rem; }
  .survey-panel { padding: 1.1rem; }
  .choice { font-size: .82rem; padding: .7rem .5rem; gap: .4rem; }
  .choice:has(input[value="flexible"]), .choice:has(input[value="unlimited"]),
  .choice:has(input[value="undecided"]), .choice:has(input[name="timing"][value="unknown"]),
  .choice:has(input[name="budget"][value="unknown"]) { grid-column: 1 / -1; }
  .survey-controls { justify-content: stretch; }
  .survey-controls button { flex: 1 1 auto; }
  legend { font-size: 1.22rem; }
}
@media print {
  .wrap { width: 100%; }
  .skip-link, nav, .text-link, .site-footer a { display: none; }
  .hero, .area { display: block; }
  .workshop-note { color: #172d28; background: white; border: 1px solid; margin-top: 2rem; }
  .workshop-note > p:not(.note-kicker), .note-kicker, .note-bottom { color: #172d28; }
  .service-row, .detail-block { break-inside: avoid; }
}

/* Design revision: workshop identity and editorial rhythm. */
:root { --ink:#172e28; --paper:#f3f1e7; --muted:#526158; --line:#bec8bc; --accent:#e2e9a2; --mono:"Consolas","Courier New",monospace; --display:"Impact","Arial Narrow",sans-serif; }
::selection { color:var(--green); background:var(--accent); }
.wrap { width:min(100% - 6rem,1344px); }
h1,h2,h3 { text-wrap:balance; }
.site-header { padding-block:1rem; border:0; }
.brand { gap:.85rem; }
.brand-mark { position:relative; border:1px solid var(--ink); font:1.65rem/1 var(--display); padding:.45rem .65rem .45rem .35rem; letter-spacing:-.04em; }
.brand-mark > span { position:absolute; top:.1rem; right:.1rem; font:.6rem/1 var(--mono); }
.brand-name strong { font-size:.94rem; font-weight:750; letter-spacing:-.02em; }
.brand-name > span { display:block; margin-top:.35rem; font:.6rem/1.2 var(--mono); letter-spacing:.12em; color:var(--muted); }
.header-tools { display:flex; align-items:center; justify-content:flex-end; gap:1.5rem; min-width:0; }
.header-tools nav { flex-wrap:wrap; min-width:0; }
.language-switch { display:inline-flex; flex:0 0 auto; gap:.2rem; padding:.2rem; border:1px solid #aebcaf; }
.language-switch button { min-width:58px; min-height:44px; padding:.45rem .7rem; font-size:.8rem; line-height:1.25; color:var(--ink); background:transparent; border:1px solid transparent; }
.language-switch button:hover { background:#e5eadb; }
.language-switch button[aria-pressed="true"] { color:var(--paper); background:var(--green); border-color:var(--green); }
.language-switch button:focus-visible { position:relative; z-index:1; }
nav { gap:2rem; font-size:.78rem; }
nav a { display:flex; align-items:center; min-height:44px; border-bottom:1px solid transparent; }
nav a:hover { border-color:currentColor; text-decoration:none; }
nav a:last-child::after { content:"↗"; margin-left:.5rem; }
.hero { display:block; padding:1.5rem 2.8rem 0; color:var(--paper); background:var(--green); }
.hero-masthead { border-bottom:1px solid #567168; padding-bottom:1.25rem; }
.masthead-word { font:clamp(3rem,11.6vw,10.4rem)/1.08 var(--display); letter-spacing:-.018em; white-space:nowrap; overflow-wrap:normal; }
.masthead-caption { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.6rem; color:#d5decb; font:.65rem/1.6 var(--mono); letter-spacing:.12em; }
.masthead-caption > span:last-child { display:flex; align-items:center; gap:.5rem; letter-spacing:.05em; }
.hero-main { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:4.5rem; align-items:center; padding-block:3.5rem 4rem; }
.hero-copy { min-width:0; }
.eyebrow { display:flex; align-items:center; gap:.9rem; font:.68rem/1.6 var(--mono); font-weight:600; letter-spacing:.09em; margin-bottom:1.7rem; }
.hero .eyebrow { color:#c3cebd; margin-bottom:1.25rem; }
h1 { font-size:clamp(2.1rem,3.55vw,3.3rem); font-weight:700; line-height:1.4; letter-spacing:-.05em; }
h1 span { color:var(--accent); }
.hero-specialty { color:var(--paper); font-size:1rem; font-weight:700; line-height:1.8; margin-top:1.5rem; text-wrap:pretty; }
.hero-intro { color:#d0d8cc; font-size:.95rem; line-height:1.85; margin-top:.65rem; max-width:28rem; text-wrap:pretty; }
.hero a:focus-visible,.site-footer a:focus-visible { outline-color:var(--accent); }
.text-link { justify-content:space-between; min-height:44px; gap:2.8rem; margin-top:1.25rem; padding:.45rem 0; border-color:#a9b9a6; font-size:.8rem; }
.text-link span { font:1.4rem/1 var(--mono); transition:transform .2s ease; }
.text-link:hover span { transform:translateY(3px); }
.workshop-note { display:flex; flex-direction:column; align-items:stretch; gap:1.5rem; min-width:0; padding:.5rem 0 .5rem 2.5rem; border:0; border-left:1px solid #718570; }
.workshop-note::before { display:none; }
.note-kicker { gap:.5rem; color:#d4dec8; font:.62rem/1.5 var(--mono); letter-spacing:.06em; margin-bottom:.6rem; }
.workshop-note h2 { font-size:clamp(1.5rem,2.1vw,2rem); line-height:1.6; letter-spacing:.02em; margin:0; }
.workshop-note > p:not(.note-kicker) { color:#d0d8cc; font-size:.9375rem; line-height:1.85; margin:0; }
.notice-link { padding:1.1rem 1.2rem; font-size:.9375rem; line-height:1.65; margin:0; transition:background-color .2s ease; }
.notice-link:hover { background:#f0f5c9; }
.notice-link > span:last-child { font:1.7rem/1 var(--mono); }
.section-pad { padding-block:6.8rem; }
.section-index { display:inline-grid; place-items:center; width:2rem; height:1.5rem; border:1px solid currentColor; font-size:.64rem; letter-spacing:0; }
h2 { font-size:clamp(1.6rem,2.55vw,2.45rem); line-height:1.65; letter-spacing:-.035em; }
.approach { grid-template-columns:1.15fr 1fr; gap:5rem; align-items:start; border:0; }
.underline-accent { text-decoration:underline; text-decoration-color:#a6b08d; text-decoration-thickness:2px; text-underline-offset:.23em; }
.commitment-signature { font:clamp(3.7rem,6.3vw,6rem)/.9 var(--display); letter-spacing:-.02em; margin-top:2.3rem; color:#83927c; }
.approach-copy { padding-top:3.2rem; font-size:.95rem; line-height:2.15; }
.specialty-note { border:0; border-top:1px solid var(--line); margin-top:2rem; padding:1.5rem 0 0; }
.specialty-note h3 { font-size:.99rem; margin-bottom:.7rem; }
.specialty-note p { font-size:.87rem; }
.services { background:#213d32; color:var(--paper); }
.services .eyebrow { color:#c2cfb8; }
.section-heading { margin-bottom:3.5rem; }
.section-intro { color:#c6d1c1; font-size:.88rem; }
.service-list { border-color:#6f826c; }
.service-row { grid-template-columns:.4fr 1fr 1fr; gap:2.7rem; padding-block:2.6rem; align-items:center; border-color:#6f826c; }
.service-number { font:clamp(3rem,5.6vw,5.5rem)/1 var(--display); letter-spacing:-.02em; color:var(--accent); }
.service-english { font:.62rem/1.5 var(--mono); letter-spacing:.075em; color:#bcccaf; margin-bottom:.65rem; }
.service-name h3 { font-size:clamp(1.2rem,2vw,1.8rem); line-height:1.6; }
.service-description { font-size:.9rem; color:#d4ddcc; line-height:2; }
.service-footnote { font-size:.8rem; color:#c5d0bf; margin-top:1.5rem; }
.area { grid-template-columns:1fr 1fr; align-items:start; }
.location-card { margin-top:2.6rem; border:0; border-top:3px solid var(--ink); padding:0; background:transparent; }
.location-card > h3 { display:inline-block; padding:.3rem .65rem; margin-bottom:.8rem; color:var(--paper); background:var(--ink); font-size:.77rem; }
.location-details { display:grid; grid-template-columns:5rem 1fr; align-items:baseline; gap:.7rem 1rem; margin:.8rem 0 1.7rem; }
.location-details dt { font-size:.78rem; margin:0; }
.location-details dd { margin:0; font-size:1.08rem; }
.location-phone { font-family:var(--mono); letter-spacing:.03em; }
.preparation-notice { border:0; border-left:3px solid #936437; background:#e8e5d7; padding:1.2rem 1.4rem; }
.preparation-notice strong { font-size:.93rem; }
.preparation-notice p { font-size:.83rem; color:#414e42; }
.area-details { padding-top:3.3rem; }
.detail-block + .detail-block { border-top:1px solid var(--line); padding-top:1.3rem; margin-top:1.3rem; }
.detail-block h3 { font-size:.99rem; margin-bottom:.55rem; }
.detail-block p { font-size:.88rem; }
.area-notice { margin-top:1.3rem; font-size:.82rem; }
.sales-notice { margin-top:1.6rem; border:1px solid #c6c7b8; padding:1.2rem 1.4rem; background:#edebdf; }
.location-card .sales-notice { margin:0 0 1.4rem; }
.sales-notice h3 { font-size:.85rem; line-height:1.8; }
.sales-notice p { margin-top:.7rem; font-size:.9rem; color:#4b5548; }
.sales-notice .recording-notice { border-top:1px solid #c4c8b9; margin-top:1rem; padding-top:.9rem; }
.recording-notice strong { display:block; color:var(--ink); margin-bottom:.25rem; }
.survey-section { background:#e2e7d4; border-color:#abb79c; }
.survey-layout { grid-template-columns:.9fr 1.1fr; gap:4.3rem; }
.survey-intro .eyebrow { margin-bottom:1.4rem; font-size:.75rem; }
#survey-title { font-size:clamp(1.35rem,2.2vw,2.15rem); line-height:1.75; }
.survey-intro > p:not(.eyebrow) { margin-top:1.5rem; color:#4d5b49; }
.survey-guide { display:flex; flex-wrap:wrap; gap:.6rem 1rem; border-top:1px solid #a5b398; margin-top:2rem; padding-top:1.2rem; font:.7rem/1.8 var(--mono); color:#46553d; }
.survey-panel { background:#fffef7; border-color:#abb99f; padding:2.1rem; box-shadow:.55rem .55rem 0 #c3ceb2; }
.preview-notice { color:#4b4933; border-left:3px solid #9a772d; background:#f0ecd6; padding:.8rem 1rem; margin-bottom:1.6rem; font-size:.77rem; line-height:1.8; }
.survey-progress { font-family:var(--mono); font-size:.8rem; color:#4d6444; padding-bottom:.8rem; border-bottom:1px solid #c7cfbf; }
legend { font-size:1.3rem; line-height:1.6; }
.choice { background:#fffef9; border-color:#a5b49b; min-height:50px; padding:.8rem; font-size:.85rem; line-height:1.6; transition:background-color .15s ease,border-color .15s ease; }
.choice:hover { background:#f0f3e4; }
.choice:has(input:checked) { background:#e0e9c9; border-color:#36573a; box-shadow:inset 0 0 0 1px #36573a; }
select,input[type="email"] { min-height:50px; background:#fffef9; border-color:#85977a; }
input::placeholder { color:#66705e; opacity:1; }
summary { min-height:44px; padding-block:.55rem; }
.consent-choice { min-height:44px; }
button { min-height:50px; padding:.8rem 1.4rem; transition:background-color .15s ease; }
.primary-button:hover { background:#285746; }
.secondary-button:hover { background:#eef2df; }
.site-footer { color:#eceddf; background:#132b24; padding-block:2.4rem .8rem; border:0; }
.footer-inner { padding:0 0 2rem; border-bottom:1px solid #52674e; }
.footer-brand { font:1.2rem/1.3 var(--display); letter-spacing:.01em; }
.footer-brand span { margin-top:.55rem; font-size:.73rem; line-height:1.8; color:#c6cfbd; }
.site-footer a { display:inline-flex; align-items:center; min-height:44px; gap:2rem; }
.site-footer a > span { font-size:1.8rem; margin:0; }
.footer-word { font:clamp(3rem,13.4vw,12rem)/1.2 var(--display); letter-spacing:-.025em; color:#72856c; white-space:nowrap; overflow-wrap:normal; padding-top:.9rem; }
@media (prefers-reduced-motion:no-preference) {
 .hero-copy { animation:arrive .7s ease-out both; }
 @keyframes arrive { from { opacity:.35; transform:translateY(12px); } to { opacity:1; transform:none; } }
}
@media (max-width:1100px) {
 .wrap { width:calc(100% - 4rem); } .hero { padding-inline:2rem; } .hero-main { gap:2.5rem; }
 .masthead-word { font-size:11.35vw; }
 .workshop-note { gap:1.4rem; padding-left:1.8rem; }
 .header-tools { gap:1rem; } .header-tools nav { gap:1.25rem; }
 .notice-link { font-size:.9rem; padding:1rem; } .about,.approach,.area { gap:3rem; }
 .survey-layout { gap:2.5rem; grid-template-columns:.85fr 1.15fr; } .survey-panel { padding:1.5rem; } .service-row { gap:2rem; }
}
@media (max-width:900px) {
 .site-header { flex-wrap:wrap; gap:.75rem; }
 .header-tools { flex:1 1 100%; justify-content:space-between; }
 .header-tools nav { flex:1 1 auto; }
 .hero { padding-inline:1.7rem; } .hero-main { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:1.75rem; padding-block:2.7rem 3rem; }
 .hero-intro .wide-only { display:none; }
 .workshop-note { gap:1.25rem; padding-left:1.5rem; } .notice-link br { display:none; }
 .workshop-note h2 { font-size:1.5rem; } .section-pad { padding-block:4.8rem; }
 .survey-layout { grid-template-columns:1fr; gap:2rem; } .survey-intro { max-width:44rem; } #survey-title { font-size:1.8rem; }
 .survey-panel { padding:2rem; } .about,.area,.approach { gap:2.2rem; }
 .service-row { grid-template-columns:.35fr 1fr; gap:1rem 2rem; } .service-description { grid-column:2; max-width:42rem; }
 .service-number { grid-row:1/3; align-self:start; } .location-details { display:block; } .location-details dt { margin-top:.8rem; }
}
@media (max-width:700px) {
 .hero-main { grid-template-columns:minmax(0,1fr); gap:2rem; padding-block:2.2rem; }
 .workshop-note { padding:1.75rem 0 0; border-left:0; border-top:1px solid #718570; }
}
@media (max-width:620px) {
 .wrap { width:calc(100% - 2rem); } .site-header { gap:.35rem; padding-block:.85rem .45rem; }
 .brand-mark { font-size:1.35rem; } .brand-name strong { font-size:.85rem; } .brand-name > span { font-size:.53rem; }
 .header-tools { flex-wrap:wrap; gap:.35rem .75rem; }
 .header-tools nav { flex:1 1 100%; width:100%; justify-content:space-between; gap:.65rem; font-size:.78rem; }
 .language-switch { margin-left:auto; }
 .hero { display:block; padding:1.1rem 1.3rem 0; } .hero-masthead { padding-bottom:.85rem; }
 .masthead-word { font-size:10.4vw; line-height:1.15; }
 .masthead-caption { flex-wrap:wrap; font-size:.55rem; gap:.45rem; margin-top:.6rem; letter-spacing:.035em; }
 .masthead-caption > span:first-child { width:100%; } .masthead-caption > span:last-child { font-size:.75rem; white-space:normal; }
 .hero-main { gap:1.7rem; padding-block:1.8rem; }
 h1 { font-size:clamp(1.8rem,8.2vw,3rem); line-height:1.5; } .hero .eyebrow { font-size:.54rem; margin-bottom:1rem; }
 .hero-specialty { font-size:.9375rem; margin-top:1.1rem; } .hero-intro { font-size:.9375rem; line-height:1.9; margin-top:.6rem; } .text-link { margin-top:.8rem; }
 .workshop-note { gap:1.2rem; padding:1.5rem 0 0; } .workshop-note h2 { font-size:1.4rem; }
 .workshop-note > p:not(.note-kicker) { font-size:.9375rem; } .notice-link { font-size:.9375rem; padding:1rem; } .notice-link br { display:initial; }
 .section-pad { padding-block:3.7rem; } .eyebrow { font-size:.62rem; gap:.7rem; margin-bottom:1.3rem; }
 h2 { font-size:clamp(1.4rem,6.1vw,2rem); line-height:1.75; } .about,.approach,.area { grid-template-columns:1fr; gap:1.7rem; }
 .about-copy { padding-top:0; font-size:.9375rem; line-height:2.1; } .about-copy .about-lead { font-size:1rem; } .about-route { margin-top:1.3rem; }
 .commitment-signature { font-size:3.2rem; margin-top:1.8rem; } .commitment-signature br { display:none; }
 .approach-copy { padding-top:0; font-size:.9375rem; line-height:2.1; } .specialty-note { margin-top:1.5rem; }
 .specialty-note h3 { font-size:.95rem; } .specialty-note p { font-size:.9375rem; }
 .section-heading { display:block; margin-bottom:2rem; } .section-intro { font-size:.9375rem; margin-top:1.3rem; }
 .service-row { grid-template-columns:2.7rem 1fr; gap:.8rem 1rem; padding-block:1.8rem; }
 .service-number { font-size:2.4rem; } .service-english { font-size:.52rem; letter-spacing:0; margin-bottom:.4rem; }
 .service-name h3 { font-size:1.16rem; } .service-description { font-size:.9375rem; line-height:1.95; } .service-footnote { font-size:.875rem; }
 .location-card { margin-top:1.8rem; } .location-details { display:grid; grid-template-columns:4rem 1fr; gap:.75rem; }
 .location-details dt { margin:0; font-size:.72rem; } .location-details dd { font-size:.95rem; }
 .preparation-notice { padding:1rem 1.1rem; } .preparation-notice p { font-size:.9375rem; } .area-details { padding-top:0; } .detail-block p { font-size:.9375rem; } .sales-notice { padding:1rem 1.1rem; }
 .sales-notice h3,.sales-notice p,.area-notice { font-size:.9375rem; }
 .survey-intro { padding-top:1.2rem; } #survey-title { font-size:clamp(1.3rem,5.6vw,1.7rem); }
 .survey-intro > p:not(.eyebrow) { font-size:.9375rem; margin-top:1.1rem; }
 .survey-guide { margin-top:1.4rem; font-size:.65rem; gap:.4rem .8rem; }
 .survey-panel { padding:1.15rem; box-shadow:.3rem .3rem 0 #c3ceb2; } .preview-notice { padding:.7rem .8rem; font-size:.875rem; }
 .choice { padding:.65rem .55rem; font-size:.9375rem; gap:.45rem; } legend { font-size:1.15rem; }
 .question-label { font-size:.95rem; } .question-label span { font-size:.75rem; }
 .field-note { font-size:.875rem; } .contact-details,.privacy-details { font-size:.9375rem; }
 .footer-inner { flex-direction:column; align-items:flex-start; gap:1rem; padding-bottom:1.5rem; }
 .footer-word { font-size:12.2vw; padding-top:1.2rem; }
}
/* Language changes stay in-page; the layout adapts to English word lengths. */
html:lang(en) body { line-height:1.7; overflow-wrap:break-word; }
html:lang(en) h1 { font-size:clamp(2.1rem,3.9vw,3.6rem); line-height:1.15; letter-spacing:-.035em; max-width:17ch; }
html:lang(en) h2 { line-height:1.35; letter-spacing:-.025em; }
html:lang(en) h3 { line-height:1.5; letter-spacing:0; }
html:lang(en) .hero-intro { max-width:32rem; }
html:lang(en) .workshop-note h2 { line-height:1.35; letter-spacing:0; }
html:lang(en) :is(.hero-intro,.hero-specialty,.workshop-note > p,.about-copy,.approach-copy,.specialty-note p,.service-description,.detail-block p,.sales-notice p,.preparation-notice p,.survey-intro > p,.field-note,.contact-details,.privacy-details,.preview-notice,.consent-choice) { line-height:1.75; letter-spacing:0; }
html:lang(en) :is(.service-name h3,.location-card p,.detail-block p,.choice span,.consent-choice span) { hyphens:auto; }
html:lang(en) #survey-title { line-height:1.45; }
html:lang(en) .header-tools nav { font-size:.8rem; }
html:lang(en) .location-details { grid-template-columns:5.5rem minmax(0,1fr); }
.choice > span,.consent-choice > span { min-width:0; }
@media (max-width:620px) {
 html:lang(en) h1 { font-size:clamp(1.9rem,8.4vw,3.1rem); line-height:1.2; }
 html:lang(en) .header-tools nav { font-size:.78rem; }
 html:lang(en) .location-details { grid-template-columns:4.6rem minmax(0,1fr); }
 html:lang(en) .choice { overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
@media (forced-colors:active) { .commitment-signature,.footer-word { display:none; } .choice:has(input:checked),.language-switch button[aria-pressed="true"] { outline:2px solid Highlight; } }
@media print {
 .wrap { width:100%; } .footer-word,.language-switch { display:none; }
 .hero,.hero-main,.about,.area,.approach,.workshop-note,.survey-layout { display:block; }
 .hero,.services,.site-footer { color:#172e28; background:white; }
 .hero p,.hero .eyebrow,.hero h1 span,.services p,.service-number { color:#172e28; }
 .service-row,.detail-block,.location-card { break-inside:avoid; } .survey-panel { box-shadow:none; }
}


/* Static information only: operator and hosting privacy notice. */
.site-information { border-top:1px solid var(--line); }
.information-heading { margin-bottom:2rem; }
.information-grid { display:grid; grid-template-columns: .8fr 1.2fr; gap:4rem; }
.information-grid .detail-block { min-width:0; }
.information-grid .detail-block p + p { margin-top:.85rem; }
.policy-links { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; }
.policy-links a { display:inline-flex; align-items:center; min-height:44px; }
@media (max-width:700px) { .information-grid { grid-template-columns:1fr; gap:1.5rem; } }
@media print { .information-grid { display:block; } }

/* Prominent Instagram card; still only a link, with no remote assets or tracking. */
.instagram-link { display:flex; align-items:center; gap:.75rem; min-height:44px; padding:1rem; border:2px solid var(--paper); background:var(--paper); color:var(--ink); font-size:1rem; line-height:1.6; text-decoration:none; }
.instagram-link:hover { background:var(--accent); border-color:var(--accent); }
.instagram-link:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.instagram-link svg { flex:0 0 24px; }
.instagram-copy { min-width:0; }
.instagram-label { display:block; margin-bottom:.2rem; font:.75rem/1.4 var(--mono); font-weight:700; letter-spacing:.04em; }
.instagram-ja,.instagram-en { font-weight:700; }
.instagram-link:hover :is(.instagram-ja,.instagram-en) { text-decoration:underline; text-underline-offset:.25em; }
.instagram-en { display:none; }
.instagram-handle { display:block; margin-top:.35rem; font:.8rem/1.6 var(--mono); letter-spacing:.02em; overflow-wrap:anywhere; }
.instagram-link > span:last-child { flex:0 0 auto; margin-left:auto; font:1.5rem/1 var(--mono); }
html:lang(en) .instagram-ja { display:none; }
html:lang(en) .instagram-en { display:inline; }
