@charset "UTF-8";

/* ==========================================
  Reset
========================================== */
*, *::before, *::after {box-sizing:border-box;}
html, body, h1, h2, h3, h4, h5, h6, p, ol, ul, li, figure, blockquote, dl, dd, address {margin:0;padding:0;}
ol, ul {list-style:none;}
img, picture, svg, video {display:block;max-width:100%;}
img {height:auto;}
a {color:inherit;text-decoration:none;}
button, input, select, textarea {font:inherit;color:inherit;}
button {background:none;border:none;padding:0;cursor:pointer;}
address {font-style:normal;}
table {border-collapse:collapse;width:100%;}

/* ==========================================
  Root
========================================== */
:root {
  /* キーカラー（新デザインの赤を正とする） */
  --c-red: #e2001a;
  --c-red-dark: #ad0013;
  --c-red-deep: #8c0010;
  --c-red-pale: #fbeaec;

  /* 補助色：現サイトのターコイズをアクセントとして継承 */
  --c-teal: #0f9e9b;
  --c-teal-dark: #0a7a78;

  /* 月桂樹・和紙のトーン */
  --c-gold: #c89a35;
  --c-gold-dark: #9c7414;
  --c-cream: #f6efe0;

  /* 文字と面 */
  --c-ink: #211c1b;
  --c-ink-soft: #5c534f;
  --c-ink-faint: #8b817b;
  --c-line: #e7e0d8;
  --c-line-soft: #f0ebe3;
  --c-page: #f4f1ea;
  --c-paper: #ffffff;
  --c-paper-warm: #fdfbf7;

  /* SNS各社の指定色 */
  --c-line-green: #06c755;
  --c-wechat-green: #07c160;

  /* 文字サイズ */
  --fz-xs: 12px;
  --fz-s: 14px;
  --fz-m: 15px;
  --fz-l: 17px;
  --fz-xl: 20px;

  /* 余白 */
  --sp-xs: 6px;
  --sp-s: 12px;
  --sp-m: 20px;
  --sp-l: 32px;
  --sp-xl: 56px;
  --sp-pad: 20px;

  /* 角丸は用途ごとに落差をつける（一律の角丸を避ける） */
  --r-tag: 2px;
  --r-btn: 4px;
  --r-card: 10px;
  --r-panel: 14px;
  --r-photo: 18px;

  /* レイアウト */
  --w-max: 1160px;
  --h-header: 60px;

  /* 影はブランドカラーを混ぜ、浮いている要素にだけ使う */
  --shadow-card: 0 14px 32px -24px rgba(120, 35, 40, 0.55);
  --shadow-float: 0 -6px 20px -14px rgba(120, 35, 40, 0.45);

  /* 書体：見出しは明朝、本文はゴシックで系統を変える */
  --font-body: "Noto Sans JP", "Noto Sans SC", "Hiragino Sans", "Yu Gothic", sans-serif;
  --font-head: "Noto Serif JP", "Noto Serif SC", "Hiragino Mincho ProN", "Yu Mincho", serif;

  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}
html[lang="zh-Hans"] {
  --font-body: "Noto Sans SC", "Noto Sans JP", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-head: "Noto Serif SC", "Noto Serif JP", "Songti SC", serif;
}
html[lang="en"] {
  --font-body: "Noto Sans", "Noto Sans JP", "Helvetica Neue", Arial, sans-serif;
  --font-head: "Noto Serif", "Noto Serif JP", Georgia, serif;
}

/* ==========================================
  Base
========================================== */
html {scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body {font-family:var(--font-body);font-size:var(--fz-m);line-height:1.9;color:var(--c-ink);background:var(--c-page);padding-bottom:64px;-webkit-font-smoothing:antialiased;}
h1, h2, h3, h4 {font-family:var(--font-head);line-height:1.4;font-weight:700;letter-spacing:0.01em;}
p {line-height:1.95;}
:focus-visible {outline:2px solid var(--c-red);outline-offset:2px;}
@media (min-width:768px) {
  body {font-size:var(--fz-l);padding-bottom:0;}
  :root {--sp-pad:32px;--h-header:76px;}
}

/* ==========================================
  Utility
========================================== */
.u-visually-hidden {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.l-inner {width:100%;max-width:var(--w-max);margin-inline:auto;padding-inline:var(--sp-pad);}
.l-section {padding-block:clamp(44px, 8vw, 84px);}

.c-skip {position:absolute;left:-9999px;top:0;z-index:100;padding:10px 16px;background:var(--c-red);color:#fff;}
.c-skip:focus {left:0;}

/* ==========================================
  Button
========================================== */
.c-btn {display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;font-size:var(--fz-m);font-weight:700;line-height:1.2;white-space:nowrap;border-radius:var(--r-btn);transition:background-color 0.18s var(--ease), color 0.18s var(--ease), border-color 0.18s var(--ease);}
.c-btn--primary {background:var(--c-red);color:#fff;}
.c-btn--primary:hover {background:var(--c-red-dark);}
.c-btn--ghost {border:1px solid var(--c-line);background:var(--c-paper);color:var(--c-ink);}
.c-btn--ghost:hover {border-color:var(--c-red);color:var(--c-red);}
.c-btn--line {background:var(--c-line-green);color:#fff;}
.c-btn--line:hover {background:#05a948;}
.c-btn--sm {padding:9px 16px;font-size:var(--fz-s);}
.c-btn--block {display:flex;width:100%;}

/* ==========================================
  Header
========================================== */
.c-header {position:sticky;top:0;z-index:50;background:var(--c-paper);border-bottom:1px solid var(--c-line);}
.c-header__bar {width:100%;}
.c-header__inner {display:flex;align-items:center;gap:var(--sp-s);width:100%;max-width:var(--w-max);margin-inline:auto;padding-inline:var(--sp-pad);height:var(--h-header);}
.c-header__logo {display:flex;align-items:center;gap:9px;min-width:0;margin-right:auto;}
.c-header__mark {display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-card);background:var(--c-red);color:#fff;font-family:var(--font-body);font-size:11px;font-weight:900;letter-spacing:0.02em;}
.c-header__logo-text {display:flex;flex-direction:column;min-width:0;line-height:1.25;}
.c-header__logo-text strong {font-family:var(--font-head);font-size:12.5px;font-weight:700;letter-spacing:0.01em;overflow-wrap:anywhere;}
.c-header__logo-text small {font-size:10px;color:var(--c-ink-faint);letter-spacing:0.1em;}
.c-gnav {display:none;}
.c-header__right {display:flex;align-items:center;gap:8px;}
.c-header__cta {display:none;}
.c-header__logo-text small {display:none;}
@media (min-width:420px) {
  .c-header__logo-text strong {font-size:15px;}
  .c-header__logo-text small {display:block;}
}
@media (min-width:1024px) {
  .c-header__mark {width:42px;height:42px;font-size:13px;}
  .c-header__logo-text strong {font-size:18px;white-space:nowrap;}
  .c-header__logo-text small {font-size:11px;}
  .c-gnav {display:block;margin-right:var(--sp-m);}
  .c-gnav__list {display:flex;align-items:center;gap:var(--sp-s);}
  .c-gnav__link {position:relative;display:block;padding-block:6px;font-size:13px;font-weight:700;white-space:nowrap;transition:color 0.18s var(--ease);}
  .c-gnav__link::after {content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--c-red);transform:scaleX(0);transform-origin:left;transition:transform 0.2s var(--ease);}
  .c-gnav__link:hover {color:var(--c-red);}
  .c-gnav__link:hover::after, .c-gnav__link.is-current::after {transform:scaleX(1);}
  .c-gnav__link.is-current {color:var(--c-red);}
}
@media (min-width:1200px) {
  .c-gnav__list {gap:var(--sp-m);}
  .c-gnav__link {font-size:var(--fz-s);}
}
@media (min-width:1400px) {
  .c-header__cta {display:inline-flex;}
}

/* ==========================================
  Language Switcher
========================================== */
.c-lang {display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--c-line);border-radius:var(--r-btn);background:var(--c-paper-warm);}
.c-lang__item {padding:5px 6px;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap;border-radius:2px;color:var(--c-ink-soft);transition:background-color 0.18s var(--ease), color 0.18s var(--ease);}
.c-lang__item:hover {color:var(--c-red);}
.c-lang__item.is-current {background:var(--c-red);color:#fff;}
.c-lang--footer {background:transparent;border-color:rgba(255, 255, 255, 0.22);}
.c-lang--footer .c-lang__item {color:rgba(255, 255, 255, 0.78);}
.c-lang--footer .c-lang__item:hover {color:#fff;}
.c-lang--footer .c-lang__item.is-current {background:#fff;color:var(--c-red);}
@media (min-width:768px) {
  .c-lang__item {padding:6px 12px;font-size:var(--fz-s);}
}

/* ==========================================
  Burger & Drawer
========================================== */
.c-burger {display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--c-line);border-radius:var(--r-btn);}
.c-burger__bars {position:relative;display:block;width:18px;height:2px;background:var(--c-ink);transition:background-color 0.18s var(--ease);}
.c-burger__bars::before, .c-burger__bars::after {content:"";position:absolute;left:0;width:18px;height:2px;background:var(--c-ink);transition:transform 0.22s var(--ease), top 0.22s var(--ease);}
.c-burger__bars::before {top:-6px;}
.c-burger__bars::after {top:6px;}
.c-burger[aria-expanded="true"] .c-burger__bars {background:transparent;}
.c-burger[aria-expanded="true"] .c-burger__bars::before {top:0;transform:rotate(45deg);}
.c-burger[aria-expanded="true"] .c-burger__bars::after {top:0;transform:rotate(-45deg);}
.c-drawer {padding:var(--sp-m) var(--sp-pad) var(--sp-l);border-top:1px solid var(--c-line);background:var(--c-paper);max-height:calc(100vh - var(--h-header));overflow-y:auto;}
.c-drawer[hidden] {display:none;}
.c-drawer__list li + li {border-top:1px solid var(--c-line-soft);}
.c-drawer__list a {display:block;padding:13px 2px;font-size:var(--fz-l);font-weight:700;}
.c-drawer__countries {display:grid;grid-template-columns:repeat(2, 1fr);gap:8px;margin-top:var(--sp-m);padding-top:var(--sp-m);border-top:1px solid var(--c-line);}
.c-drawer__countries a {display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid var(--c-line);border-radius:var(--r-btn);font-size:var(--fz-s);}
.c-drawer .c-btn {margin-top:var(--sp-m);}
@media (min-width:1024px) {
  .c-burger {display:none;}
  .c-drawer {display:none;}
}

/* ==========================================
  Breadcrumb
========================================== */
.c-breadcrumb {border-bottom:1px solid var(--c-line-soft);background:var(--c-paper-warm);}
.c-breadcrumb__list {display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;max-width:var(--w-max);margin-inline:auto;padding:10px var(--sp-pad);font-size:var(--fz-xs);color:var(--c-ink-faint);}
.c-breadcrumb__item {display:flex;align-items:center;gap:6px;}
.c-breadcrumb__sep {font-size:14px;color:var(--c-line);}
.c-breadcrumb__item a {transition:color 0.18s var(--ease);}
.c-breadcrumb__item a:hover {color:var(--c-red);}
@media (min-width:768px) {
  .c-breadcrumb__list {font-size:var(--fz-s);padding-block:12px;}
}

/* ==========================================
  Contact Widget
========================================== */
.c-contact {background:var(--c-cream);border-top:3px solid var(--c-red);}
.c-contact__inner {width:100%;max-width:var(--w-max);margin-inline:auto;padding:clamp(36px, 7vw, 68px) var(--sp-pad);}
.c-contact__head {text-align:center;margin-bottom:var(--sp-l);}
.c-contact__title {font-size:clamp(22px, 4.6vw, 32px);color:var(--c-red-deep);}
.c-contact__lead {margin-top:12px;font-size:var(--fz-m);color:var(--c-ink-soft);}
.c-contact__hours {display:inline-flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;padding:5px 14px;border:1px solid var(--c-gold);border-radius:var(--r-tag);background:var(--c-paper);font-size:var(--fz-s);}
.c-contact__hours-label {font-weight:700;color:var(--c-gold-dark);}
.c-contact__list {display:grid;grid-template-columns:1fr;gap:var(--sp-s);}
.c-contact__card {display:flex;flex-direction:column;align-items:center;gap:10px;padding:var(--sp-m);border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-paper);text-align:center;}
.c-contact__label {align-self:stretch;padding-bottom:9px;border-bottom:2px solid var(--c-red);font-family:var(--font-head);font-size:var(--fz-l);font-weight:700;}
.c-contact__qr {width:150px;height:150px;border:1px solid var(--c-line-soft);border-radius:var(--r-tag);}
.c-contact__qr-link {transition:opacity 0.18s var(--ease);}
.c-contact__qr-link:hover {opacity:0.78;}
.c-contact__note {font-size:var(--fz-xs);color:var(--c-ink-soft);line-height:1.75;}
.c-contact__id {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:8px;}
.c-contact__id-label {font-size:var(--fz-xs);color:var(--c-ink-faint);}
.c-contact__id-value {font-family:var(--font-body);font-size:var(--fz-l);font-weight:700;letter-spacing:0.04em;}
.c-contact__big {font-family:var(--font-head);font-size:clamp(21px, 5.4vw, 27px);font-weight:700;color:var(--c-red);letter-spacing:0.01em;white-space:nowrap;transition:color 0.18s var(--ease);}
.c-contact__big:hover {color:var(--c-red-dark);}
.c-contact__big--mail {font-size:clamp(14px, 3.2vw, 17px);white-space:normal;overflow-wrap:anywhere;}
.c-contact__sublink {font-size:var(--fz-xs);color:var(--c-ink-faint);text-decoration:underline;text-underline-offset:3px;}
.c-contact__sublink:hover {color:var(--c-red);}
.c-contact__addr {margin-top:var(--sp-m);padding:14px 18px;border:1px dashed var(--c-gold);border-radius:var(--r-tag);background:var(--c-paper);font-size:var(--fz-s);text-align:center;}
.c-contact__addr-label {display:block;font-weight:700;color:var(--c-gold-dark);}
.c-contact__card--wechat .c-contact__label {border-bottom-color:var(--c-wechat-green);}
.c-contact__card--line .c-contact__label {border-bottom-color:var(--c-line-green);}
.c-contact__card--tel .c-contact__label {border-bottom-color:var(--c-teal);}
@media (min-width:600px) {
  .c-contact__list {grid-template-columns:repeat(2, 1fr);gap:var(--sp-m);}
}
@media (min-width:1024px) {
  .c-contact__list {grid-template-columns:repeat(4, 1fr);align-items:stretch;}
  .c-contact__card {justify-content:flex-start;}
  .c-contact__qr {width:180px;height:180px;}
  .c-contact--full .c-contact__card {padding:var(--sp-l) var(--sp-m);}
  .c-contact__addr {text-align:left;}
  .c-contact__addr-label {display:inline;margin-right:10px;}
}

/* ==========================================
  Floating Contact Bar (mobile)
========================================== */
.c-float {position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(4, 1fr);border-top:1px solid var(--c-line);background:var(--c-paper);box-shadow:var(--shadow-float);}
.c-float__item {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;font-size:10px;font-weight:700;color:var(--c-ink-soft);transition:color 0.18s var(--ease), background-color 0.18s var(--ease);}
.c-float__item + .c-float__item {border-left:1px solid var(--c-line-soft);}
.c-float__ico {display:block;font-size:21px;line-height:1;}
.c-float__item--line {color:var(--c-line-green);}
.c-float__item--wechat {color:var(--c-wechat-green);}
.c-float__item--tel {color:var(--c-teal-dark);}
.c-float__item--mail {color:var(--c-red);}
.c-float__item:hover {background:var(--c-paper-warm);}
@media (min-width:768px) {
  .c-float {display:none;}
}

/* ==========================================
  Footer
========================================== */
.c-footer {background:var(--c-ink);color:rgba(255, 255, 255, 0.78);}
.c-footer__inner {display:grid;grid-template-columns:1fr;gap:var(--sp-l);width:100%;max-width:var(--w-max);margin-inline:auto;padding:clamp(36px, 6vw, 60px) var(--sp-pad);}
.c-footer__logo {display:flex;align-items:center;gap:9px;}
.c-footer__mark {display:grid;place-items:center;width:38px;height:38px;border-radius:var(--r-card);background:var(--c-red);color:#fff;font-size:12px;font-weight:900;}
.c-footer__logo-text {display:flex;flex-direction:column;line-height:1.3;}
.c-footer__logo-text strong {font-family:var(--font-head);font-size:16px;color:#fff;}
.c-footer__logo-text small {font-size:11px;color:rgba(255, 255, 255, 0.55);letter-spacing:0.08em;}
.c-footer__about {margin-top:14px;font-size:var(--fz-xs);line-height:1.9;}
.c-footer__heading {font-family:var(--font-body);font-size:var(--fz-s);font-weight:700;color:#fff;letter-spacing:0.06em;}
.c-footer__links {margin-top:12px;}
.c-footer__links li + li {margin-top:8px;}
.c-footer__links a {font-size:var(--fz-xs);transition:color 0.18s var(--ease);}
.c-footer__links a:hover {color:#fff;}
.c-footer__office-name {margin-top:12px;font-size:var(--fz-s);font-weight:700;color:#fff;}
.c-footer__address {margin-top:8px;font-size:var(--fz-xs);line-height:2;}
.c-footer__address a {text-decoration:underline;text-underline-offset:3px;}
.c-footer__address a:hover {color:#fff;}
.c-footer__company-link {display:inline-block;margin-top:12px;padding-bottom:2px;border-bottom:1px solid rgba(255, 255, 255, 0.35);font-size:var(--fz-xs);font-weight:700;}
.c-footer__company-link:hover {color:#fff;border-bottom-color:#fff;}
.c-footer__bottom {border-top:1px solid rgba(255, 255, 255, 0.14);}
.c-footer__bottom-inner {display:flex;flex-direction:column;align-items:center;gap:var(--sp-s);width:100%;max-width:var(--w-max);margin-inline:auto;padding:var(--sp-m) var(--sp-pad);}
.c-footer__copy {font-size:var(--fz-xs);color:rgba(255, 255, 255, 0.55);text-align:center;}
@media (min-width:768px) {
  .c-footer__inner {grid-template-columns:1.6fr 1fr 1fr;gap:var(--sp-l) var(--sp-m);}
  .c-footer__office {grid-column:1 / -1;padding-top:var(--sp-m);border-top:1px solid rgba(255, 255, 255, 0.14);}
  .c-footer__bottom-inner {flex-direction:row;justify-content:space-between;}
}
@media (min-width:1024px) {
  .c-footer__inner {grid-template-columns:1.7fr 1fr 1fr 1.4fr;}
  .c-footer__office {grid-column:auto;padding-top:0;border-top:none;}
}

/* ==========================================
  Common Section Parts
========================================== */
.l-section--tint {background:var(--c-paper-warm);border-block:1px solid var(--c-line);}
.u-center {text-align:center;}
.u-mt-l {margin-top:var(--sp-l);}
.u-center .c-btn + .c-btn {margin-left:10px;}
.c-heading {position:relative;padding-left:14px;margin-bottom:var(--sp-m);font-size:clamp(20px, 4.2vw, 29px);color:var(--c-red-deep);}
.c-heading::before {content:"";position:absolute;left:0;top:0.28em;bottom:0.28em;width:4px;background:var(--c-red);}
.c-heading--sm {font-size:clamp(16px, 3vw, 20px);padding-left:11px;}
.c-heading + .c-heading {margin-top:var(--sp-xl);}
.c-sechead {margin-bottom:var(--sp-l);}
.c-sechead__lead {color:var(--c-ink-soft);font-size:var(--fz-m);}
.c-textlink {color:var(--c-red-dark);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color 0.18s var(--ease);}
.c-textlink:hover {color:var(--c-red);}
.c-figure {margin-top:var(--sp-l);border-radius:var(--r-photo);overflow:hidden;}
.c-figure img {width:100%;}

/* ==========================================
  Page Head
========================================== */
.p-pagehead {padding-block:clamp(28px, 6vw, 56px);background:var(--c-paper);border-bottom:1px solid var(--c-line);}
.p-pagehead__title {font-size:clamp(24px, 5.4vw, 40px);color:var(--c-red-deep);}
.p-pagehead__lead {margin-top:14px;max-width:46em;color:var(--c-ink-soft);font-size:var(--fz-m);}

/* ==========================================
  Hero
========================================== */
.p-hero {padding-block:clamp(32px, 7vw, 72px);background:var(--c-paper);border-bottom:1px solid var(--c-line);}
.p-hero__inner {display:grid;grid-template-columns:1fr;gap:var(--sp-l);}
.p-hero__title {font-size:clamp(27px, 5.4vw, 44px);line-height:1.38;letter-spacing:0.005em;color:var(--c-ink);max-width:15em;}
.p-hero__sub {margin-top:14px;font-family:var(--font-head);font-size:clamp(17px, 2.6vw, 24px);font-weight:700;line-height:1.6;color:var(--c-red-deep);max-width:24em;}
.p-hero__lead {margin-top:14px;max-width:36em;font-size:var(--fz-m);color:var(--c-ink-soft);}
.p-hero__actions {display:flex;flex-wrap:wrap;gap:10px;margin-top:var(--sp-m);}
.p-hero__photo {border-radius:var(--r-photo);overflow:hidden;}
@media (min-width:900px) {
  .p-hero__inner {grid-template-columns:1.05fr 0.95fr;align-items:center;gap:var(--sp-xl);}
}

/* ==========================================
  Stats Band
========================================== */
.p-stats {background:var(--c-cream);border-bottom:1px solid var(--c-line);}
.p-stats__list {display:grid;grid-template-columns:repeat(2, 1fr);gap:var(--sp-m) var(--sp-s);padding-block:var(--sp-m);}
.p-stats__item {display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;}
.p-stats__value {font-family:var(--font-head);font-size:clamp(26px, 6vw, 38px);font-weight:900;line-height:1.1;color:var(--c-red);}
.p-stats__value small {margin-left:2px;font-size:0.42em;font-weight:700;color:var(--c-gold-dark);}
.p-stats__label {font-size:var(--fz-xs);color:var(--c-ink-soft);}
@media (min-width:768px) {
  .p-stats__list {grid-template-columns:repeat(4, 1fr);padding-block:var(--sp-l);}
}

/* ==========================================
  Country Grid
========================================== */
.c-countrygrid {display:grid;grid-template-columns:1fr;gap:10px;}
.c-countrycard {display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-card);background:var(--c-paper);transition:border-left-color 0.2s var(--ease), background-color 0.2s var(--ease);}
.c-countrycard:hover {border-left-color:var(--c-red);background:var(--c-paper-warm);}
.c-countrycard__code {flex:none;display:grid;place-items:center;width:34px;height:26px;border:1px solid var(--c-line);border-radius:var(--r-tag);background:var(--c-cream);font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:0.06em;color:var(--c-gold-dark);}
.c-countrycard__body {display:flex;flex-direction:column;flex:1;min-width:0;}
.c-countrycard__name {font-family:var(--font-head);font-size:var(--fz-l);font-weight:700;}
.c-countrycard__sub {font-size:var(--fz-xs);color:var(--c-ink-faint);}
.c-countrycard__price {flex:none;font-size:var(--fz-m);font-weight:700;color:var(--c-red);letter-spacing:0.01em;}
@media (min-width:600px) {
  .c-countrygrid {grid-template-columns:repeat(2, 1fr);gap:var(--sp-s);}
}
@media (min-width:1024px) {
  .c-countrygrid {grid-template-columns:repeat(3, 1fr);}
}

/* ==========================================
  Price List
========================================== */
.c-pricelist {display:grid;grid-template-columns:1fr;border-top:1px solid var(--c-line);}
.c-pricelist__item {border-bottom:1px solid var(--c-line);}
.c-pricelist__item a {display:flex;align-items:center;justify-content:space-between;gap:var(--sp-s);padding:14px 6px;transition:color 0.18s var(--ease);}
.c-pricelist__item a:hover {color:var(--c-red);}
.c-pricelist__name {display:flex;align-items:center;gap:9px;font-weight:700;}
.c-code {flex:none;display:inline-grid;place-items:center;width:30px;height:22px;border:1px solid var(--c-line);border-radius:var(--r-tag);background:var(--c-cream);font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:0.06em;color:var(--c-gold-dark);}
.c-pricelist__price {font-family:var(--font-head);font-size:var(--fz-l);font-weight:700;color:var(--c-red);}
@media (min-width:768px) {
  .c-pricelist {grid-template-columns:repeat(2, 1fr);column-gap:var(--sp-l);}
}

/* ==========================================
  Steps
========================================== */
.c-steps {display:grid;grid-template-columns:1fr;gap:var(--sp-s);}
.c-steps__item {padding:var(--sp-m);border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-paper);}
.c-steps__num {display:inline-block;margin-bottom:8px;padding:3px 9px;border-radius:var(--r-tag);background:var(--c-red);color:#fff;font-size:11px;font-weight:700;letter-spacing:0.08em;}
.c-steps__title {font-size:var(--fz-l);}
.c-steps__text {margin-top:6px;font-size:var(--fz-s);color:var(--c-ink-soft);}
@media (min-width:768px) {
  .c-steps {grid-template-columns:repeat(2, 1fr);gap:var(--sp-m);}
}
@media (min-width:1024px) {
  .c-steps--compact {grid-template-columns:repeat(3, 1fr);}
}

/* ==========================================
  Reasons
========================================== */
.c-reasons {display:grid;grid-template-columns:1fr;gap:var(--sp-s);}
.c-reasons__item {display:flex;gap:14px;padding:var(--sp-m);border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-paper);}
.c-reasons__num {flex:none;font-family:var(--font-head);font-size:26px;font-weight:900;line-height:1;color:var(--c-gold);}
.c-reasons__title {font-size:var(--fz-l);color:var(--c-red-deep);}
.c-reasons__text {margin-top:6px;font-size:var(--fz-s);color:var(--c-ink-soft);}
@media (min-width:1024px) {
  .c-reasons {grid-template-columns:repeat(2, 1fr);gap:var(--sp-m);}
  .c-reasons__num {font-size:34px;}
}

/* ==========================================
  Document List
========================================== */
.c-doclist {counter-reset:doc;margin-bottom:var(--sp-xl);}
.c-doclist__item {position:relative;counter-increment:doc;padding:14px 0 14px 42px;border-bottom:1px solid var(--c-line-soft);}
.c-doclist__item::before {content:counter(doc);position:absolute;left:0;top:14px;display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-tag);background:var(--c-red-pale);color:var(--c-red-dark);font-size:var(--fz-s);font-weight:700;line-height:1;}
.c-doclist__title {display:block;font-weight:700;}
.c-doclist__note {display:block;margin-top:3px;font-size:var(--fz-xs);color:var(--c-ink-faint);}
.c-doclist__sub {margin-top:10px;padding-left:2px;}
.c-doclist__sub li {display:flex;gap:9px;padding:5px 0;font-size:var(--fz-s);color:var(--c-ink-soft);}
.c-doclist__mark {flex:none;width:20px;font-weight:700;color:var(--c-gold-dark);}

/* ==========================================
  Definition List
========================================== */
.c-deflist__row {display:grid;grid-template-columns:1fr;gap:2px;padding:12px 0;border-bottom:1px solid var(--c-line-soft);}
.c-deflist dt {font-size:var(--fz-s);font-weight:700;color:var(--c-ink-soft);}
.c-deflist dd {font-size:var(--fz-m);}
.c-deflist--bordered {border-top:2px solid var(--c-red);}
@media (min-width:768px) {
  .c-deflist__row {grid-template-columns:14em 1fr;gap:var(--sp-m);align-items:baseline;padding:16px 0;}
}

/* ==========================================
  Note List
========================================== */
.c-notelist__lead {margin-top:var(--sp-m);font-size:var(--fz-s);color:var(--c-ink-soft);}
.c-notelist li {position:relative;padding:7px 0 7px 22px;font-size:var(--fz-s);color:var(--c-ink-soft);}
.c-notelist li::before {content:"\203B";position:absolute;left:0;top:7px;color:var(--c-red);}

/* ==========================================
  Tag List
========================================== */
.c-taglist {display:flex;flex-wrap:wrap;gap:7px;}
.c-taglist__item {padding:5px 11px;border:1px solid var(--c-gold);border-radius:var(--r-tag);background:var(--c-paper);font-size:var(--fz-xs);color:var(--c-ink);}
.c-taglist--muted .c-taglist__item {border-color:var(--c-line);color:var(--c-ink-faint);}

/* ==========================================
  Table
========================================== */
.c-tablewrap {overflow-x:auto;margin-bottom:var(--sp-xl);border:1px solid var(--c-line);border-radius:var(--r-card);background:var(--c-paper);}
.c-table {min-width:640px;font-size:var(--fz-s);}
.c-table th, .c-table td {padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--c-line-soft);}
.c-table thead th {background:var(--c-cream);font-size:var(--fz-xs);letter-spacing:0.04em;white-space:nowrap;}
.c-table tbody th {width:15em;font-weight:700;}
.c-table tbody th small {display:block;margin-top:3px;font-weight:400;font-size:var(--fz-xs);color:var(--c-ink-faint);}
.c-table__price {white-space:nowrap;font-family:var(--font-head);font-size:var(--fz-l);font-weight:700;color:var(--c-red);}
.c-table__notes li {position:relative;padding-left:16px;color:var(--c-ink-soft);}
.c-table__notes li + li {margin-top:4px;}
.c-table__notes li::before {content:"\203B";position:absolute;left:0;color:var(--c-red);}

/* ==========================================
  Visa Detail
========================================== */
.p-visa-hero {padding-block:clamp(28px, 6vw, 56px);background:var(--c-paper);border-bottom:1px solid var(--c-line);}
.p-visa-hero__inner {display:grid;grid-template-columns:1fr;gap:var(--sp-m);}
.p-visa-hero__code {display:inline-grid;place-items:center;width:44px;height:32px;border:1px solid var(--c-gold);border-radius:var(--r-tag);background:var(--c-cream);font-family:var(--font-body);font-size:13px;font-weight:700;letter-spacing:0.06em;color:var(--c-gold-dark);}
.p-visa-hero__title {margin-top:10px;font-size:clamp(23px, 5.2vw, 38px);color:var(--c-red-deep);}
.p-visa-hero__lead {margin-top:14px;color:var(--c-ink-soft);font-size:var(--fz-m);}
.p-visa-price {padding:var(--sp-m);border:2px solid var(--c-red);border-radius:var(--r-panel);background:var(--c-red-pale);}
.p-visa-price__label {display:block;font-size:var(--fz-xs);font-weight:700;color:var(--c-red-dark);letter-spacing:0.06em;}
.p-visa-price__amount {display:block;margin-top:2px;font-family:var(--font-head);font-size:clamp(30px, 7vw, 42px);font-weight:900;line-height:1.2;color:var(--c-red-deep);}
.p-visa-price__note {margin-bottom:14px;font-size:var(--fz-xs);color:var(--c-ink-soft);}
@media (min-width:900px) {
  .p-visa-hero__inner {grid-template-columns:1fr 320px;gap:var(--sp-xl);align-items:start;}
}
.p-visa-targets, .p-visa-fee, .p-visa-docs, .p-visa-notes, .p-visa-schengen {padding-block:clamp(26px, 4vw, 44px);}
.p-visa-targets__list {display:flex;flex-wrap:wrap;gap:9px;}
.p-visa-targets__list li {padding:8px 15px;border-radius:var(--r-tag);background:var(--c-red-pale);font-size:var(--fz-s);font-weight:700;color:var(--c-red-dark);}
.p-visa-fee__grid {display:grid;grid-template-columns:1fr;gap:var(--sp-l);}
.p-visa-schengen__note {margin-bottom:var(--sp-m);font-size:var(--fz-s);color:var(--c-ink-soft);}
.p-visa-other__link {margin-top:var(--sp-m);text-align:center;}
@media (min-width:768px) {
  .p-visa-fee__grid {grid-template-columns:repeat(2, 1fr);gap:var(--sp-xl);}
}

/* ==========================================
  Office Block
========================================== */
.p-office {display:grid;grid-template-columns:1fr;gap:var(--sp-m);}
.p-office__photo {border-radius:var(--r-photo);overflow:hidden;}
.p-office__lead {margin-block:14px var(--sp-m);color:var(--c-ink-soft);font-size:var(--fz-m);}
@media (min-width:900px) {
  .p-office {grid-template-columns:0.9fr 1.1fr;gap:var(--sp-xl);align-items:center;}
}

/* ==========================================
  Icon (Tabler Icons)
  補助的な用途に限定する。見出し・本文の装飾には使わない。
========================================== */
.c-ico {flex:none;font-size:1.05em;line-height:1;}
.c-btn .c-ico {font-size:1em;}

.c-contact__label .c-ico {margin-right:7px;vertical-align:-0.1em;}
.c-contact__card--wechat .c-contact__label .c-ico {color:var(--c-wechat-green);}
.c-contact__card--line .c-contact__label .c-ico {color:var(--c-line-green);}
.c-contact__card--tel .c-contact__label .c-ico {color:var(--c-teal);}
.c-contact__card--mail .c-contact__label .c-ico {color:var(--c-red);}
.c-contact__hours .c-ico {color:var(--c-gold-dark);}
.c-contact__addr .c-ico {margin-right:7px;vertical-align:-0.1em;color:var(--c-gold-dark);}
.c-contact__sublink .c-ico {margin-left:5px;font-size:0.95em;vertical-align:-0.08em;}
.c-footer__company-link .c-ico {margin-left:5px;font-size:0.95em;vertical-align:-0.08em;}

.c-countrycard__arrow {flex:none;font-size:17px;color:var(--c-ink-faint);transition:color 0.2s var(--ease);}
.c-countrycard:hover .c-countrycard__arrow {color:var(--c-red);}
.c-pricelist__name {flex:1;}
.c-pricelist__arrow {flex:none;font-size:16px;color:var(--c-ink-faint);transition:color 0.18s var(--ease);}
.c-pricelist__item a:hover .c-pricelist__arrow {color:var(--c-red);}
