/* =========================================================
   Uygar Tercüme — 案A「対訳」
   紙と墨と朱。明朝体の見出し、罫線と余白で組む。
   値はすべて :root の変数から。詳細は DESIGN.md
   ========================================================= */
:root {
  /* 色 */
  --paper: #F4F0E6;      /* 背景：生成りの紙 */
  --paper-2: #EAE4D6;    /* 帯：医療通訳セクションと写真枠 */
  --paper-3: #FBF9F4;    /* 入力欄の地 */
  --ink: #26231F;        /* 本文：墨  13.7:1 */
  --ink-2: #5B554C;      /* 補助文字  6.5:1 */
  --rule: #CFC6B4;       /* 細罫（装飾。文字には使わない） */
  --rule-ink: #26231F;   /* 太い区切り・表の上罫 */
  --field: #8F877A;      /* 入力欄の枠  3.1:1 */
  --accent: #B0391C;     /* 朱：リンクの下線、主ボタン、要所だけ  5.4:1 */
  --accent-deep: #8E2D15;/* 主ボタンのホバー */
  --on-accent: #F4F0E6;  /* 朱の上の文字  5.4:1 */

  /* 書体 */
  --f-mincho: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --f-gothic: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  --f-latin: "Newsreader", "Iowan Old Style", Georgia, serif;
  --f-zh-serif: "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --f-zh-sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", sans-serif;

  /* 文字サイズ（390px → 1280px） */
  --t-display: clamp(1.875rem, 1.2rem + 2vw, 2.875rem);     /* 30 → 46 */
  --t-h2: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);          /* 24 → 36 */
  --t-h2-s: clamp(1.375rem, 1.2rem + .6vw, 1.75rem);        /* 22 → 28 */
  --t-h3: 1.25rem;       /* 20 */
  --t-name: clamp(1.75rem, 1.45rem + 1.1vw, 2.5rem);        /* 28 → 40 */
  --t-lead: 1.125rem;    /* 18 */
  --t-body: 1.0625rem;   /* 17 */
  --t-small: .875rem;    /* 14 */

  /* 余白（8px 基準） */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10: 128px;

  --gutter: 20px;
  --gap: 24px;
  --maxw: 1200px;
  --radius: 2px;
  --hair: 1px;
  --bar-h: 56px;
  --tap: 44px;

  /* 言語で変わる値（下で上書き） */
  --f-body: var(--f-gothic);
  --f-display: var(--f-mincho);
  --lh: 1.85;
  --lh-h: 1.5;
}
html:lang(tr) { --f-body: var(--f-latin); --f-display: var(--f-latin); --lh: 1.6; --lh-h: 1.18; --t-body: 1.125rem; }
html:lang(zh) { --f-body: var(--f-zh-sans); --f-display: var(--f-zh-serif); --lh: 1.8; --lh-h: 1.5; }
@media (min-width: 1024px) { :root { --gutter: 40px; } }

/* ---------- 基本 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: var(--s-5); }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--f-body); font-size: var(--t-body); line-height: var(--lh);
  font-kerning: normal; -webkit-font-smoothing: antialiased;
  padding-bottom: calc(var(--bar-h) + env(safe-area-inset-bottom));
}
@media (min-width: 1024px) { body { padding-bottom: 0; } }
h1, h2, h3, p, ol, ul, dl, dd, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
img { max-width: 100%; display: block; }
h1, h2 { font-family: var(--f-display); font-weight: 500; line-height: var(--lh-h); text-wrap: balance; word-break: auto-phrase; }
p, li, dd { text-wrap: pretty; }
:lang(ja) { line-break: strict; }
@supports not (word-break: auto-phrase) {
  :lang(ja) :is(h1, h2) { word-break: keep-all; overflow-wrap: anywhere; }
}
/* 他言語の混植 */
[lang="tr"] { font-family: var(--f-latin); }
[lang="ja"] { font-family: var(--f-mincho); }
[lang="zh-Hans"] { font-family: var(--f-zh-serif); }
.num { font-family: var(--f-latin), var(--f-body); font-variant-numeric: lining-nums tabular-nums; }

a { color: inherit; text-decoration-line: underline; text-decoration-color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: .22em; }
a:hover { color: var(--accent); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

.skip { position: absolute; left: var(--s-4); top: -100px; z-index: 100; background: var(--ink); color: var(--paper); padding: var(--s-3) var(--s-4); }
.skip:focus { top: var(--s-4); }

.wrap { width: 100%; max-width: calc(var(--maxw) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- ボタン・リンク ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 0 var(--s-5); border-radius: var(--radius); border: 1px solid var(--accent);
  font: 700 1rem/1.3 var(--f-body); text-decoration: none; cursor: pointer;
}
html:lang(tr) .btn { font-weight: 500; font-size: 1.0625rem; }
.btn--primary { background: var(--accent); color: var(--on-accent); }
.btn--primary:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: var(--on-accent); }
.tlink { display: inline-flex; align-items: center; min-height: var(--tap); padding-inline: var(--s-1); font-weight: 700; }
html:lang(tr) .tlink { font-weight: 500; }

/* ---------- ヘッダー ---------- */
.hd { border-bottom: 1px solid var(--rule); }
.hd__in { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--s-2); min-height: 64px; }
.wordmark {
  margin-right: auto; display: inline-flex; align-items: center; min-height: var(--tap);
  font: 500 .875rem/1 var(--f-latin); letter-spacing: .12em; text-decoration: none; white-space: nowrap;
}
@media (min-width: 1024px) { .wordmark { font-size: .9375rem; letter-spacing: .16em; } }
.wordmark__img { height: 28px; width: auto; }
.langsw { display: flex; }
.langsw a { display: inline-flex; align-items: center; min-height: var(--tap); padding-inline: 6px; font-size: .9375rem; text-decoration: none; }
.langsw a[lang="tr"] { font-family: var(--f-latin); font-size: 1rem; }
.langsw a[lang="ja"] { font-family: var(--f-gothic); }
.langsw a[lang="zh-Hans"] { font-family: var(--f-zh-sans); }
.langsw a[aria-current] { display: none; }
.langsw a:hover { text-decoration: underline; text-decoration-color: var(--accent); }
.menubtn {
  min-height: var(--tap); min-width: var(--tap); padding: 0 var(--s-3); margin-left: var(--s-1);
  background: transparent; color: var(--ink); border: 1px solid var(--ink); border-radius: var(--radius);
  font: 700 .9375rem/1 var(--f-body); cursor: pointer;
}
html:lang(tr) .menubtn { font-weight: 500; }
.menu { flex-basis: 100%; }
.js .menu { display: none; }
.js .hd.is-open .menu { display: block; }
.menu ol { counter-reset: toc; border-top: 1px solid var(--rule-ink); margin-bottom: var(--s-4); }
.menu li { counter-increment: toc; border-bottom: 1px solid var(--rule); }
.menu a {
  display: flex; align-items: baseline; gap: var(--s-4); min-height: 52px; padding: var(--s-3) 0;
  font-family: var(--f-display); font-size: 1.1875rem; text-decoration: none;
}
.menu a::before { content: counter(toc); font: 400 .9375rem/1 var(--f-latin); color: var(--ink-2); min-width: 1.25em; font-variant-numeric: lining-nums tabular-nums; }

@media (min-width: 1024px) {
  .hd__in { min-height: 76px; flex-wrap: nowrap; column-gap: 0; }
  .wordmark { margin-right: 0; }
  .menubtn { display: none; }
  .js .menu, .menu { display: block; flex-basis: auto; margin-left: auto; }
  .menu ol { display: flex; gap: var(--s-5); border: 0; margin: 0; }
  .menu li { border: 0; }
  .menu a { min-height: var(--tap); padding: 0; font: 400 .9375rem/1 var(--f-body); align-items: center; }
  .menu a::before { content: none; }
  .langsw { order: 3; margin-left: var(--s-6); padding-left: var(--s-4); border-left: 1px solid var(--rule); }
  .langsw a[aria-current] { display: inline-flex; color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 2px; text-underline-offset: .45em; }
}

/* ---------- ファーストビュー ---------- */
.hero { padding: var(--s-5) 0 var(--s-8); }
.hero__grid { display: grid; grid-template-columns: 7rem minmax(0, 1fr); column-gap: var(--s-4); row-gap: var(--s-5); }
.portrait { grid-column: 1; grid-row: 1; aspect-ratio: 4 / 5; border: 1px solid var(--rule-ink); background: var(--paper-2); overflow: hidden; }
.portrait img { width: 100%; height: 100%; object-fit: cover; }
.portrait--empty { display: flex; align-items: flex-end; padding: var(--s-2); }
.portrait--empty span { font-size: .75rem; line-height: 1.4; color: var(--ink-2); }
.hero__id { grid-column: 2; grid-row: 1; align-self: end; }
.hero__name { font-family: var(--f-latin); font-weight: 500; font-size: var(--t-name); line-height: 1.05; letter-spacing: -.005em; }
.hero__name [lang="tr"] { font-style: normal; }
.hero__note { font-size: .8125rem; color: var(--ink-2); margin-top: var(--s-1); }
.hero__title { margin-top: var(--s-3); font-size: .9375rem; line-height: 1.6; color: var(--ink-2); }
.hero__place { display: block; }
@media (min-width: 720px) {
  .hero__place { display: inline; white-space: nowrap; }
  .hero__place::before { content: ""; display: inline-block; width: 1.25em; height: 1px; background: currentColor; vertical-align: .3em; margin: 0 .6em; }
}
.hero__main { grid-column: 1 / -1; }
.hero__catch { font-size: var(--t-display); letter-spacing: .02em; }
html:lang(tr) .hero__catch { font-size: clamp(1.75rem, 1.35rem + 1.7vw, 2.875rem); font-weight: 400; letter-spacing: -.01em; }
.hero__lead { margin-top: var(--s-4); max-width: 34em; color: var(--ink-2); }
html:lang(tr) .hero__lead { max-width: 36em; }
.langtab { margin-top: var(--s-6); width: 100%; max-width: 34rem; border-collapse: collapse; }
.langtab caption { text-align: left; font-size: var(--t-small); color: var(--ink-2); padding-bottom: var(--s-2); }
.langtab tr { border-bottom: 1px solid var(--rule); }
.langtab tbody tr:first-child { border-top: 1px solid var(--rule-ink); }
.langtab th, .langtab td { padding: var(--s-2) 0; text-align: left; vertical-align: baseline; line-height: 1.5; }
.langtab th { font-family: var(--f-display); font-weight: 500; font-size: var(--t-h3); width: 40%; }
.langtab td { color: var(--ink-2); font-size: 1rem; padding-left: var(--s-3); }
.langtab td [lang="tr"], .hw__gloss[lang="tr"], .route__term[lang="tr"] { font-style: italic; }
.hero__cta { display: none; }

@media (min-width: 720px) {
  .hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-5); margin-top: var(--s-6); }
}
@media (min-width: 1024px) {
  .hero { padding: var(--s-7) 0 var(--s-9); }
  .hero__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 0; }
  .portrait { grid-column: 1 / 5; grid-row: 1 / 3; align-self: start; }
  .portrait--empty { padding: var(--s-4); }
  .portrait--empty span { font-size: var(--t-small); }
  .hero__id { grid-column: 6 / 13; grid-row: 1; align-self: start; padding-bottom: var(--s-5); border-bottom: 1px solid var(--rule); margin-bottom: var(--s-6); }
  .hero__main { display: flex; flex-direction: column; }
  .hero__cta { order: 3; margin-top: var(--s-6); }
  .langtab { order: 4; }
  /* 対応言語を3列の対訳に */
  .langtab { display: block; max-width: none; margin-top: var(--s-6); }
  .langtab caption { display: block; }
  .langtab tbody { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule-ink); }
  .langtab tbody tr:first-child { border-top: 0; }
  .langtab tr { display: grid; border-bottom: 0; padding: var(--s-3) var(--s-4) 0; border-left: 1px solid var(--rule); }
  .langtab tr:first-child { border-left: 0; padding-left: 0; }
  .langtab th, .langtab td { display: block; padding: 0; width: auto; }
  .langtab td { font-size: .9375rem; }
  .hero__main { grid-column: 6 / 13; grid-row: 2; }
  .hero__title { margin-top: var(--s-2); }
}

/* ---------- セクション共通 ---------- */
.sec { padding: var(--s-7) 0; }
.medical { padding: var(--s-7) 0 var(--s-8); margin: var(--s-4) 0; }
.sec__grid { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: var(--s-6); border-top: 1px solid var(--rule-ink); padding-top: var(--s-4); }
.sec h2 { font-size: var(--t-h2); }
.hw { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: var(--s-3); row-gap: 0; font-size: var(--t-small); line-height: 1.6; margin-bottom: var(--s-4); }
.hw__main { font-weight: 700; }
html:lang(tr) .hw__main { font-weight: 500; }
.hw__gloss { color: var(--ink-2); }
.hw__gloss::before { content: ""; display: inline-block; width: 1px; height: .85em; background: var(--rule); margin-right: var(--s-3); vertical-align: -.05em; }
.minihead { font: 700 var(--t-small)/1.6 var(--f-body); margin: var(--s-6) 0 var(--s-2); }
html:lang(tr) .minihead { font-weight: 500; font-size: .9375rem; }
@media (min-width: 1024px) {
  .sec { padding: var(--s-8) 0; }
  .medical { padding: var(--s-8) 0 var(--s-9); margin: var(--s-7) 0; }
  .sec__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); row-gap: 0; padding-top: var(--s-5); }
  .sec__head { grid-column: 1 / 5; }
}

/* ---------- サービス（品書き） ---------- */
.mlist { border-top: 1px solid var(--rule-ink); }
.mrow {
  display: grid; grid-template-columns: minmax(0, max-content) minmax(1rem, 1fr) minmax(0, max-content);
  column-gap: var(--s-2); align-items: end; padding: var(--s-4) 0 var(--s-5); border-bottom: 1px solid var(--rule);
}
.mrow--noprice { grid-template-columns: minmax(0, 1fr); }
.mrow__name { grid-column: 1; font: 500 var(--t-h3)/1.45 var(--f-display); }
html:lang(tr) .mrow__name { font-size: 1.375rem; line-height: 1.25; }
.mrow__lead { grid-column: 2; align-self: end; margin-bottom: .55em; border-bottom: 1px dotted var(--field); }
.mrow__price { grid-column: 3; text-align: right; font-family: var(--f-latin), var(--f-body); font-size: 1.0625rem; font-variant-numeric: lining-nums tabular-nums; line-height: 1.45; }
.mrow__pair { grid-column: 1 / -1; margin-top: var(--s-1); font-size: var(--t-small); color: var(--ink-2); line-height: 1.6; }
.mrow__desc { grid-column: 1 / -1; margin-top: var(--s-1); max-width: 34em; }
@media (min-width: 1024px) {
  .services .mlist { grid-column: 5 / 13; border-top: 0; }
  .mrow, .mrow--noprice { grid-template-columns: 12.5rem minmax(0, 1fr) 9rem; column-gap: var(--s-5); align-items: baseline; padding: var(--s-5) 0; }
  .mrow:first-child { padding-top: 0; }
  .mrow__name { grid-row: 1 / 3; }
  .mrow__lead { display: none; }
  .mrow__pair { grid-column: 2; grid-row: 1; margin: 0; }
  .mrow__desc { grid-column: 2; grid-row: 2; margin: 0; }
  .mrow__price { grid-column: 3; grid-row: 1; }
  html:lang(tr) .mrow, html:lang(tr) .mrow--noprice { grid-template-columns: 13.5rem minmax(0, 1fr) 10rem; }
}

/* ---------- 医療通訳 ---------- */
.medical { background: var(--paper-2); }
.medical .sec__grid { border-top-color: var(--rule-ink); }
.medical h2 { font-size: calc(var(--t-h2) * 1.08); }
.medical__text { max-width: 34em; }
.route__cap { font-size: var(--t-small); color: var(--ink-2); margin-bottom: var(--s-4); }
.route { border-left: 1px solid var(--rule-ink); margin-left: 3px; }
.route li { position: relative; padding: 0 0 var(--s-5) var(--s-5); }
.route li:last-child { padding-bottom: 0; }
.route li::before { content: ""; position: absolute; left: -4px; top: .72em; width: 7px; height: 7px; background: var(--accent); }
.route__label { display: block; font: 500 1.1875rem/1.5 var(--f-display); }
html:lang(tr) .route__label { font-size: 1.3125rem; line-height: 1.3; }
.route__term { display: block; margin-top: 2px; font-size: .9375rem; line-height: 1.5; color: var(--ink-2); }
.hosp ul { border-top: 1px solid var(--rule); }
.hosp li { padding: var(--s-2) 0; border-bottom: 1px solid var(--rule); }
@media (min-width: 1024px) {
  .medical .sec__head { grid-column: 1 / 10; margin-bottom: var(--s-7); }
  .medical__text { grid-column: 1 / 6; }
  .medical__scenes { grid-column: 7 / 13; }
}

/* ---------- プロフィール ---------- */
.pphoto { aspect-ratio: 4 / 5; border: 1px solid var(--rule-ink); overflow: hidden; max-width: 18rem; margin-top: var(--s-2); }
.pphoto img { width: 100%; height: 100%; object-fit: cover; }
.profile__body h2 { margin-bottom: var(--s-5); }
.prose { max-width: 34em; }
.prose p + p { margin-top: 1em; }
html:lang(ja) .prose { font-family: var(--f-mincho); font-size: 1.125rem; line-height: 2; }
html:lang(zh) .prose { font-family: var(--f-zh-serif); font-size: 1.125rem; line-height: 1.95; }
.area { display: flex; flex-wrap: wrap; gap: 0 var(--s-4); margin-top: var(--s-6); padding-top: var(--s-3); border-top: 1px solid var(--rule); max-width: 34em; }
.area__k { font-size: var(--t-small); color: var(--ink-2); line-height: 2; flex: 0 0 7.5em; }
.area__v { flex: 1 1 14em; }
.facts { max-width: 34em; border-top: 1px solid var(--rule-ink); }
.facts__row { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: var(--s-4); padding: var(--s-2) 0; border-bottom: 1px solid var(--rule); }
.facts dt { color: var(--ink-2); }
@media (min-width: 1024px) {
  .profile .sec__head { grid-column: 1 / 4; }
  .profile__body { grid-column: 5 / 12; }
}

/* ---------- 流れ と 料金（見開き） ---------- */
.spread { padding: var(--s-4) 0 var(--s-7); }
.spread__in { display: grid; grid-template-columns: minmax(0, 1fr); }
.spread section { border-top: 1px solid var(--rule-ink); padding: var(--s-4) 0 var(--s-8); }
.spread section:last-child { padding-bottom: 0; }
.spread h2 { font-size: var(--t-h2-s); margin-bottom: var(--s-5); }
.steps li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--s-3); padding: var(--s-4) 0; border-top: 1px solid var(--rule); }
.steps li:last-child { border-bottom: 1px solid var(--rule); }
.steps__n { font: 400 2.125rem/1 var(--f-latin); font-variant-numeric: lining-nums; color: var(--ink-2); padding-top: .15em; }
.steps strong { font-weight: 700; margin-right: .6em; }
html:lang(ja) .steps strong, html:lang(zh) .steps strong { font-family: var(--f-display); font-weight: 500; font-size: 1.1875rem; }
html:lang(tr) .steps strong { display: block; font-weight: 500; font-size: 1.25rem; }
.feetab { width: 100%; border-collapse: collapse; }
.feetab thead th { font: 400 var(--t-small)/1.6 var(--f-body); color: var(--ink-2); text-align: left; padding: 0 0 var(--s-2); border-bottom: 1px solid var(--rule-ink); }
.feetab thead th:last-child, .feetab td { text-align: right; }
.feetab tbody th { text-align: left; font-weight: 400; padding: var(--s-3) var(--s-4) var(--s-3) 0; vertical-align: baseline; line-height: 1.6; }
.feetab small { display: block; font-size: var(--t-small); color: var(--ink-2); }
.feetab td { font-size: 1.25rem; white-space: nowrap; vertical-align: baseline; padding: var(--s-3) 0; }
.feetab tbody tr { border-bottom: 1px solid var(--rule); }
.fees__note { margin-top: var(--s-4); font-size: var(--t-small); color: var(--ink-2); }
@media (min-width: 1024px) {
  .spread { padding: var(--s-8) 0; }
  .spread__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); }
  .spread section { padding: var(--s-5) 0 0; }
  .spread .flow { grid-column: 1 / 7; padding-right: var(--s-6); }
  .spread .fees { grid-column: 7 / 13; padding-left: var(--s-6); border-left: 1px solid var(--rule); margin-left: calc(var(--gap) * -1); }
  .spread section:only-child { grid-column: 1 / 9; padding-inline: 0; border-left: 0; margin-left: 0; }
}

/* ---------- よくある質問 ---------- */
.qalist { border-top: 1px solid var(--rule-ink); }
.qa { border-bottom: 1px solid var(--rule); }
.qa summary {
  display: grid; grid-template-columns: 2rem minmax(0, 1fr) 1rem; gap: var(--s-3); align-items: baseline;
  padding: var(--s-4) 0; min-height: var(--tap); cursor: pointer; list-style: none;
}
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after {
  content: ""; width: 13px; height: 13px; align-self: center; justify-self: end;
  background: linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
              linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
}
.qa[open] summary::after { background: linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat; }
.qa__m { font: 500 1.125rem/1 var(--f-display); color: var(--accent); }
html:lang(tr) .qa__m { font-style: italic; }
.qa__a .qa__m { color: var(--ink-2); }
.qa__q { font-weight: 700; }
html:lang(tr) .qa__q { font-weight: 500; }
.qa__a { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 1rem; gap: var(--s-3); align-items: baseline; padding: 0 0 var(--s-5); }
.qa__a p { max-width: 34em; }
@media (min-width: 1024px) {
  .faq .sec__head { grid-column: 1 / 4; }
  .qalist { grid-column: 5 / 13; }
}

/* ---------- お問い合わせ ---------- */
.contact h2 { font-size: calc(var(--t-h2) * 1.15); }
.contact__text { margin-top: var(--s-4); color: var(--ink-2); max-width: 32em; }
.clist { border-top: 1px solid var(--rule-ink); }
.clist__row { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--s-3); padding: var(--s-3) 0; border-bottom: 1px solid var(--rule); align-items: baseline; }
html:lang(tr) .clist__row { grid-template-columns: 8.5rem minmax(0, 1fr); }
.clist dt { font-size: var(--t-small); color: var(--ink-2); }
.clist dd a { font-family: var(--f-latin); font-size: 1.25rem; font-variant-numeric: lining-nums tabular-nums; overflow-wrap: anywhere; display: inline-flex; align-items: center; min-height: var(--tap); }
.form { display: grid; gap: var(--s-4); }
.form .minihead { margin: 0; }
.field { display: grid; gap: var(--s-1); }
.field__l { font-size: .9375rem; line-height: 1.5; }
.req { font-size: .8125rem; color: var(--ink-2); margin-left: .25em; }
.field input, .field textarea {
  width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid var(--field); border-radius: var(--radius);
  background: var(--paper-3); color: var(--ink); font: 400 1.0625rem/1.6 var(--f-body);
}
.field textarea { min-height: 9rem; resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; border-color: var(--ink); }
.form .btn { justify-self: stretch; }
@media (min-width: 720px) { .form .btn { justify-self: start; min-width: 12rem; } }
@media (min-width: 1024px) {
  .contact .sec__head { grid-column: 1 / 9; margin-bottom: var(--s-7); }
  .clist { grid-column: 1 / 7; align-self: start; }
  .form { grid-column: 8 / 13; }
  .contact--noform .clist { grid-column: 1 / 8; }
}

/* ---------- フッター ---------- */
.ft { border-top: 1px solid var(--rule-ink); padding: var(--s-6) 0 var(--s-7); }
.ft__in { display: grid; gap: var(--s-4); }
.ft__mark { font: 500 .9375rem/1 var(--f-latin); letter-spacing: .16em; }
.ft__col { display: grid; gap: 2px; font-size: var(--t-small); color: var(--ink-2); line-height: 1.7; }
.ft__langs { display: flex; flex-wrap: wrap; margin-left: calc(var(--s-2) * -1); }
.ft__langs a { display: inline-flex; align-items: center; min-height: var(--tap); padding-inline: var(--s-2); text-decoration: none; }
.ft__langs a[aria-current] { text-decoration: underline; text-decoration-color: var(--accent); }
.ft__copy { color: var(--ink-2); }
@media (min-width: 1024px) {
  .ft__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap); align-items: start; }
  .ft__mark { grid-column: 1 / 4; padding-top: .3em; }
  .ft__col { grid-column: 5 / 9; }
  .ft__langs { grid-column: 9 / 13; margin-top: -12px; }
  .ft__copy { grid-column: 9 / 13; }
}

/* ---------- スマホの連絡バー ---------- */
.cbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  background: var(--paper); border-top: 1px solid var(--rule-ink);
  padding-bottom: env(safe-area-inset-bottom);
}
.cbar__i { display: flex; align-items: center; justify-content: center; min-height: var(--bar-h); font-weight: 700; font-size: 1rem; text-decoration: none; border-left: 1px solid var(--rule); }
html:lang(tr) .cbar__i { font-weight: 500; }
.cbar__i:first-child { border-left: 0; }
.cbar__i--primary { background: var(--accent); color: var(--on-accent); }
.cbar__i--primary:hover { color: var(--on-accent); background: var(--accent-deep); }
.cbar[data-n="1"] .cbar__i { justify-content: center; }
@media (min-width: 1024px) { .cbar { display: none; } }

@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
@media print { .cbar, .menubtn, .langsw, .form { display: none; } body { padding: 0; } }
