/*
Theme Name: 保利 外国人採用・就労ビザ
Theme URI: https://gyoseishoshi.work/LP/visa/
Author: 保利国際法務事務所
Description: 外国人採用・就労ビザLPとコラムの専用テーマ
Version: 1.0.0
Text Domain: hori-visa
*/

:root {
  --dads-blue: #0017c1;
  --dads-blue-dark: #000e7a;
  --dads-blue-light: #e8eaf8;
  --dads-link: #0017c1;
  --dads-visited: #5a1a8b;
  --dads-ink: #1a1a1a;
  --dads-muted: #626264;
  --dads-border: #949497;
  --dads-border-light: #d8d8db;
  --dads-bg: #ffffff;
  --dads-bg-subtle: #f5f5f7;
  --dads-focus: #ffd43d;
  --dads-white: #ffffff;
  --page: 1120px;
  --reading: 760px;
  --radius: 8px;
  --radius-sm: 4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-bottom: 112px; }
body {
  margin: 0;
  padding-bottom: 92px;
  color: var(--dads-ink);
  background: var(--dads-bg);
  font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .02em;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
}
img { display: block; max-width: 100%; height: auto; }
figure, h1, h2, h3, h4, p, dl, dd { margin: 0; }
ul, ol { margin: 0; }
button, input, textarea, select { font: inherit; }
a {
  color: var(--dads-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
a:visited { color: var(--dads-visited); }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 4px solid var(--dads-focus);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #000;
}
.hero-accessible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.wrap { width: min(var(--page), calc(100% - 48px)); margin-inline: auto; }
.narrow { width: min(var(--reading), 100%); margin-inline: auto; }
.center { text-align: center; }
.stack > * + * { margin-top: 16px; }
.pale, .column-section { background: var(--dads-bg-subtle); }
.note { color: var(--dads-muted); font-size: 14px; line-height: 1.6; }
.red { color: var(--dads-blue); }

/* First view */
.hero-v2 {
  border-top: 8px solid var(--dads-blue);
  border-bottom: 1px solid var(--dads-border-light);
  background: var(--dads-white);
}
.hero-composite { position: relative; }
.hero-composite-picture {
  width: min(100%, 1672px);
  margin-inline: auto;
  display: block;
  background: var(--dads-white);
}
.hero-composite-picture img {
  width: 100%;
  height: auto;
}
.hero-brandline {
  width: min(var(--page), calc(100% - 48px));
  min-height: 88px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border-bottom: 1px solid var(--dads-border-light);
}
.hero-office {
  color: var(--dads-ink);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}
.hero-service {
  color: var(--dads-muted);
  font-size: 16px;
  font-weight: 700;
  text-align: right;
}
.hero-layout {
  width: min(var(--page), calc(100% - 48px));
  margin-inline: auto;
  padding: 56px 0 64px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.hero-message { min-width: 0; }
.hero-kicker {
  margin-bottom: 16px;
  color: var(--dads-blue);
  font-size: 16px;
  font-weight: 700;
}
.hero-v2 h1 {
  max-width: 720px;
  font-size: clamp(34px, 4.5vw, 52px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .01em;
}
.hero-v2 h1 em {
  color: var(--dads-blue);
  font-style: normal;
}
.hero-lead {
  max-width: 680px;
  margin-top: 24px;
  font-size: 18px;
  line-height: 1.8;
}
.hero-proof {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
  border-bottom: 1px solid var(--dads-border);
}
.hero-proof div { padding: 18px 16px; }
.hero-proof div + div { border-left: 1px solid var(--dads-border-light); }
.hero-proof dt {
  color: var(--dads-blue);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}
.hero-proof dd {
  margin-top: 4px;
  color: var(--dads-muted);
  font-size: 14px;
  line-height: 1.5;
}
.hero-photo {
  overflow: hidden;
  border: 1px solid var(--dads-border-light);
  border-radius: var(--radius);
  background: var(--dads-bg-subtle);
  aspect-ratio: 4 / 5;
}
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* Homepage structure */
main > section:not(.hero-v2) { padding: 80px 0; }
.h2mini {
  display: block;
  margin-bottom: 10px;
  color: var(--dads-blue);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}
main > section h2 {
  font-size: clamp(28px, 3.3vw, 40px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .01em;
}
main > section h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}
.lead {
  color: var(--dads-muted);
  font-size: 17px;
  line-height: 1.8;
}
.checks {
  max-width: 920px;
  margin: 48px auto 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
}
.checks li {
  position: relative;
  min-height: 82px;
  padding: 20px 24px 20px 52px;
  border-bottom: 1px solid var(--dads-border-light);
}
.checks li:nth-child(odd) { border-right: 1px solid var(--dads-border-light); }
.checks li::before {
  content: "✓";
  position: absolute;
  left: 20px;
  top: 20px;
  color: var(--dads-blue);
  font-weight: 700;
}
.solve {
  max-width: 920px;
  margin: 40px auto 0;
  padding: 28px 32px;
  border-left: 8px solid var(--dads-blue);
  background: var(--dads-blue-light);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}
.solve em { color: var(--dads-blue); font-style: normal; }
.solve span {
  display: block;
  margin-top: 10px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
.targets {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.target {
  padding: 32px;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius);
  background: var(--dads-white);
}
.target.alt { border-top: 8px solid var(--dads-blue); }
.target h3 {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--dads-border-light);
}
.target ul { margin-top: 20px; padding-left: 1.4em; }
.target li + li { margin-top: 10px; }
.visual-band {
  margin-top: 32px;
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: center;
  gap: 40px;
  padding: 32px;
  border: 1px solid var(--dads-border-light);
  background: var(--dads-white);
}
.visual-band p { margin-top: 16px; color: var(--dads-muted); }
.visual-band figure { max-height: 260px; overflow: hidden; }
.visual-band img { width: 100%; height: 260px; object-fit: cover; }
.reasons {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
  border-left: 1px solid var(--dads-border);
}
.reason {
  min-height: 260px;
  padding: 28px;
  border-right: 1px solid var(--dads-border);
  border-bottom: 1px solid var(--dads-border);
}
.rno, .case-no {
  color: var(--dads-blue);
  font-size: 14px;
  font-weight: 700;
}
.reason h3 { margin-top: 18px; }
.reason h3 em { color: var(--dads-blue); font-style: normal; }
.reason p { margin-top: 14px; color: var(--dads-muted); }
.profile-body {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
}
.profile-body figure {
  overflow: hidden;
  border-radius: var(--radius-sm);
  aspect-ratio: 4/5;
}
.profile-body img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.profile-body p + p { margin-top: 12px; }
.specials {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.special {
  padding: 32px;
  border-top: 8px solid var(--dads-blue);
  background: var(--dads-white);
}
.special p { margin-top: 16px; color: var(--dads-muted); }
.cases { max-width: 920px; margin: 48px auto 0; }
.case {
  padding: 32px 0;
  border-top: 1px solid var(--dads-border);
}
.case:last-child { border-bottom: 1px solid var(--dads-border); }
.case-head { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.tag {
  padding: 4px 10px;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 700;
}
.case h3 { margin-top: 18px; }
.case > p { margin-top: 12px; }
.voice {
  margin-top: 18px;
  padding: 20px 24px;
  border-left: 4px solid var(--dads-border);
  background: var(--dads-bg-subtle);
}
.voice strong { display: block; margin-bottom: 6px; }
.price {
  max-width: 920px;
  margin: 48px auto 0;
  border: 1px solid var(--dads-border);
  background: var(--dads-white);
}
.price-head {
  padding: 16px 24px;
  border-bottom: 1px solid var(--dads-border);
  background: var(--dads-ink);
  color: var(--dads-white);
  font-weight: 700;
}
.price-body { padding: 32px; }
.yen { color: var(--dads-ink); font-size: 48px; font-weight: 700; line-height: 1.3; }
.yen small { margin-left: 6px; font-size: 16px; }
.price-body > p + p { margin-top: 16px; }
.tbl-scroll { overflow-x: auto; }
.tbl {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--dads-border);
}
.tbl th, .tbl td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--dads-border);
  border-right: 1px solid var(--dads-border);
  text-align: left;
  vertical-align: top;
}
.tbl th { width: 190px; background: var(--dads-white); font-weight: 700; }
.tbl td:last-child { border-right: 0; }
.flow {
  max-width: 920px;
  margin: 48px auto 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--dads-border);
}
.flow li {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--dads-border);
}
.fnum { color: var(--dads-blue); font-weight: 700; font-variant-numeric: tabular-nums; }
.flow p { margin-top: 6px; color: var(--dads-muted); }
.faq { max-width: 920px; margin: 48px auto 0; border-top: 1px solid var(--dads-border); }
.faq details { border-bottom: 1px solid var(--dads-border); }
.faq summary {
  position: relative;
  min-height: 72px;
  padding: 22px 56px 22px 0;
  cursor: pointer;
  font-size: 17px;
  font-weight: 700;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  right: 16px;
  top: 16px;
  color: var(--dads-blue);
  font-size: 28px;
  font-weight: 400;
}
.faq details[open] summary::after { content: "−"; }
.faq .a { padding: 0 56px 24px 0; color: var(--dads-muted); }

/* Column directory */
.column-directory { margin-top: 48px; border-top: 1px solid var(--dads-border); }
.column-group { border-bottom: 1px solid var(--dads-border); background: var(--dads-white); }
.column-group summary {
  position: relative;
  min-height: 96px;
  padding: 22px 64px 22px 24px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.column-group summary::-webkit-details-marker { display: none; }
.column-group summary::after {
  content: "+";
  position: absolute;
  right: 24px;
  top: 30px;
  color: var(--dads-blue);
  font-size: 24px;
}
.column-group[open] summary::after { content: "−"; }
.column-group summary span { display: grid; gap: 4px; }
.column-group summary strong { font-size: 18px; }
.column-group summary small { color: var(--dads-muted); font-size: 14px; }
.column-group summary b {
  margin-right: 28px;
  color: var(--dads-muted);
  font-size: 14px;
  white-space: nowrap;
}
.column-links { border-top: 1px solid var(--dads-border-light); }
.column-link {
  min-height: 64px;
  padding: 14px 24px;
  display: grid;
  grid-template-columns: 44px 1fr 24px;
  gap: 12px;
  align-items: center;
  color: var(--dads-link);
  text-decoration: underline;
}
.column-link + .column-link { border-top: 1px solid var(--dads-border-light); }
.column-link:visited { color: var(--dads-visited); }
.column-link:hover { background: var(--dads-blue-light); }
.column-no { color: var(--dads-muted); font-size: 14px; font-variant-numeric: tabular-nums; }
.column-arrow { color: currentColor; font-size: 20px; text-align: right; }

/* Article and index headers */
.article-header {
  min-height: 88px;
  padding: 0 max(24px, calc((100% - var(--page)) / 2));
  display: flex;
  justify-content: space-between;
  gap: 32px;
  align-items: center;
  border-top: 8px solid var(--dads-blue);
  border-bottom: 1px solid var(--dads-border);
  background: var(--dads-white);
}
.article-brand {
  display: grid;
  color: var(--dads-ink);
  text-decoration: none;
}
.article-brand:visited { color: var(--dads-ink); }
.article-brand strong { font-size: 18px; }
.article-brand span { color: var(--dads-muted); font-size: 14px; }
.article-index-link {
  min-height: 48px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--dads-blue);
  border-radius: var(--radius-sm);
  color: var(--dads-blue);
  font-weight: 700;
  text-decoration: none;
}
.article-index-link:visited { color: var(--dads-blue); }
.article-index-link:hover { background: var(--dads-blue-light); }
.breadcrumbs {
  width: min(var(--page), calc(100% - 48px));
  margin: 18px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--dads-muted);
  font-size: 14px;
}
.article-shell { width: min(var(--reading), calc(100% - 48px)); margin: 48px auto 96px; }
.article-category {
  display: inline-block;
  margin-bottom: 16px;
  padding: 6px 10px;
  border: 1px solid var(--dads-blue);
  border-radius: var(--radius-sm);
  color: var(--dads-blue);
  font-size: 14px;
  font-weight: 700;
}
.article-content { font-size: 17px; line-height: 1.8; }
.article-content h1 {
  margin: 0 0 28px !important;
  font-size: clamp(30px, 4vw, 42px) !important;
  line-height: 1.5 !important;
  letter-spacing: .01em;
}
.article-content h2 {
  margin: 56px 0 20px !important;
  padding: 12px 0 12px 20px !important;
  border: 0 !important;
  border-left: 8px solid var(--dads-blue) !important;
  font-size: 26px !important;
  line-height: 1.5 !important;
}
.article-content h3 {
  margin: 40px 0 14px !important;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--dads-border);
  font-size: 21px !important;
  line-height: 1.5 !important;
}
.article-content p { margin: 0 0 1.4em; }
.article-content ul, .article-content ol { margin: 20px 0 28px !important; padding-left: 1.5em !important; }
.article-content li + li { margin-top: 8px; }
.article-content a { color: var(--dads-link) !important; }
.article-content table {
  width: 100% !important;
  min-width: 600px;
  border-collapse: collapse !important;
  background: var(--dads-white);
  font-size: 16px !important;
}
.article-content th,
.article-content td {
  padding: 12px 14px !important;
  border: 1px solid var(--dads-border) !important;
  background: var(--dads-white) !important;
  color: var(--dads-ink) !important;
  text-align: left !important;
  vertical-align: top;
}
.article-content th { font-weight: 700; }
.article-content blockquote {
  margin: 28px 0;
  padding: 20px 24px;
  border-left: 8px solid var(--dads-blue);
  background: var(--dads-bg-subtle);
}
.article-content > div[style*="background"] {
  border: 1px solid var(--dads-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--dads-bg-subtle) !important;
}
.article-related {
  margin-top: 72px;
  padding-top: 40px;
  border-top: 2px solid var(--dads-ink);
}
.article-section-label { color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.article-related h2 { margin-top: 8px; font-size: 28px; }
.article-related-grid { margin-top: 24px; border-top: 1px solid var(--dads-border); }
.back-to-columns { margin-top: 24px; text-align: right; }
.article-pager {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.article-pager a {
  min-height: 120px;
  padding: 20px;
  display: grid;
  align-content: start;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius-sm);
}
.article-pager a span { margin-bottom: 6px; color: var(--dads-muted); font-size: 14px; }
.column-index-hero { padding: 64px 0 48px; border-bottom: 1px solid var(--dads-border); }
.column-index-hero p { color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.column-index-hero h1 { margin-top: 10px; font-size: clamp(34px, 4.5vw, 48px); line-height: 1.4; }
.column-index-hero span { display: block; max-width: 760px; margin-top: 18px; color: var(--dads-muted); }
.column-index-body { padding: 0 0 96px; }
.column-index-page .column-directory { margin-top: 48px; }

/* Footer and the single persistent CTA */
footer {
  padding: 48px 0;
  border-top: 1px solid var(--dads-border);
  background: var(--dads-bg-subtle);
}
footer .wrap { display: grid; gap: 8px; }
footer b { font-size: 18px; }
footer span, footer small { color: var(--dads-muted); font-size: 14px; }
.footer-info, .footer-home { width: fit-content; margin-top: 8px; }
.sticky-cta {
  position: fixed;
  z-index: 100;
  inset: auto 0 0;
  background: var(--dads-white);
  border-top: 1px solid var(--dads-border);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, .12);
}
.sticky-cta-inner {
  width: min(var(--page), calc(100% - 32px));
  min-height: 84px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto auto;
  gap: 12px;
  align-items: center;
}
.sticky-brand,
.sticky-hours { display: grid; align-content: center; }
.sticky-brand strong { color: var(--dads-ink); font-size: 16px; line-height: 1.4; }
.sticky-brand span { color: var(--dads-muted); font-size: 12px; line-height: 1.4; }
.sticky-hours {
  min-width: 176px;
  padding-left: 16px;
  border-left: 1px solid var(--dads-border-light);
}
.sticky-hours strong { color: var(--dads-blue); font-size: 14px; line-height: 1.4; }
.sticky-hours span { color: var(--dads-muted); font-size: 12px; line-height: 1.4; }
.sticky-mail, .sticky-phone {
  min-height: 52px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  font-weight: 700;
  text-decoration: none;
}
.sticky-mail {
  gap: 8px;
  border: 2px solid var(--dads-blue);
  color: var(--dads-blue);
  background: var(--dads-white);
}
.sticky-mail:visited { color: var(--dads-blue); }
.sticky-mail:hover { background: var(--dads-blue-light); }
.sticky-phone {
  min-width: 236px;
  display: grid;
  align-content: center;
  background: var(--dads-blue);
  color: var(--dads-white);
  text-align: center;
}
.sticky-phone:visited { color: var(--dads-white); }
.sticky-phone:hover { background: var(--dads-blue-dark); }
.sticky-phone span { font-size: 18px; line-height: 1.25; }
.sticky-phone small { font-size: 12px; font-weight: 400; line-height: 1.35; }

@media (max-width: 900px) {
  .hero-layout { grid-template-columns: 1fr; padding-top: 44px; }
  .hero-photo { width: min(520px, 100%); max-height: 560px; margin-inline: auto; }
  .reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .specials { grid-template-columns: 1fr; }
  .sticky-cta-inner { grid-template-columns: minmax(180px, 1fr) auto auto auto; gap: 8px; }
  .sticky-hours { min-width: 150px; padding-left: 10px; }
  .sticky-mail, .sticky-phone { padding-inline: 14px; }
}

@media (max-width: 680px) {
  body { padding-bottom: 124px; font-size: 16px; }
  .wrap, .narrow, .breadcrumbs, .article-shell { width: min(100% - 32px, var(--page)); }
  .hero-brandline, .hero-layout { width: min(100% - 32px, var(--page)); }
  .hero-composite-picture { width: 100%; }
  .hero-brandline {
    min-height: 76px;
    display: block;
    padding: 14px 0;
  }
  .hero-office { font-size: 18px; }
  .hero-service { margin-top: 2px; font-size: 14px; text-align: left; }
  .hero-layout { padding: 36px 0 48px; gap: 32px; }
  .hero-v2 h1 { font-size: 32px; line-height: 1.5; }
  .hero-v2 h1 br { display: none; }
  .hero-lead { margin-top: 18px; font-size: 17px; }
  .hero-proof { grid-template-columns: 1fr; margin-top: 28px; }
  .hero-proof div { padding: 14px 0; }
  .hero-proof div + div { border-left: 0; border-top: 1px solid var(--dads-border-light); }
  .hero-photo { max-height: 440px; }
  main > section:not(.hero-v2) { padding: 56px 0; }
  main > section h2 { font-size: 28px; }
  .checks { grid-template-columns: 1fr; margin-top: 32px; }
  .checks li:nth-child(odd) { border-right: 0; }
  .solve { margin-top: 28px; padding: 22px 20px; font-size: 21px; }
  .targets, .visual-band { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .target, .visual-band { padding: 24px 20px; }
  .visual-band figure, .visual-band img { height: 200px; }
  .reasons { grid-template-columns: 1fr; margin-top: 32px; }
  .reason { min-height: 0; padding: 24px 20px; }
  .profile-body { grid-template-columns: 96px 1fr; gap: 18px; }
  .specials, .cases, .price, .flow, .faq, .column-directory { margin-top: 32px; }
  .special { padding: 24px 20px; }
  .case { padding: 24px 0; }
  .price-body { padding: 24px 20px; }
  .yen { font-size: 38px; }
  .tbl { min-width: 640px; }
  .flow li { grid-template-columns: 48px 1fr; gap: 12px; }
  .faq summary { padding-right: 48px; }
  .faq .a { padding-right: 0; }
  .column-group summary { padding: 18px 48px 18px 16px; display: grid; }
  .column-group summary::after { right: 16px; top: 24px; }
  .column-group summary b { margin: 0; }
  .column-link { padding: 14px 16px; grid-template-columns: 32px 1fr 18px; }
  .article-header { min-height: 78px; padding: 10px 16px; gap: 14px; }
  .article-brand strong { font-size: 16px; }
  .article-brand span { font-size: 12px; }
  .article-index-link { min-height: 44px; padding: 0 12px; white-space: nowrap; }
  .article-shell { margin-top: 36px; margin-bottom: 64px; }
  .article-content { font-size: 16px; }
  .article-content h1 { font-size: 28px !important; }
  .article-content h2 { margin-top: 44px !important; padding-left: 14px !important; border-left-width: 6px !important; font-size: 23px !important; }
  .article-content table { font-size: 15px !important; }
  .article-pager { grid-template-columns: 1fr; }
  .column-index-hero { padding: 44px 0 36px; }
  .sticky-cta-inner {
    width: 100%;
    min-height: 116px;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "brand hours"
      "mail phone";
    gap: 5px 8px;
  }
  .sticky-brand { grid-area: brand; min-width: 0; }
  .sticky-hours {
    grid-area: hours;
    min-width: 0;
    padding-left: 10px;
    border-left: 1px solid var(--dads-border-light);
  }
  .sticky-brand strong { font-size: 13px; white-space: nowrap; }
  .sticky-brand span { font-size: 10px; }
  .sticky-hours strong { font-size: 12px; }
  .sticky-hours span { font-size: 10px; white-space: nowrap; }
  .sticky-mail, .sticky-phone { min-width: 0; min-height: 54px; padding: 7px 8px; }
  .sticky-mail { grid-area: mail; font-size: 14px; text-align: center; }
  .sticky-phone { grid-area: phone; }
  .sticky-phone span { font-size: 16px; }
  .sticky-phone small { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* WordPress article and archive additions */
:root {
  --dads-blue: #0017c1;
  --dads-blue-dark: #000b7a;
  --dads-text: #1a1a1a;
  --dads-subtle: #626264;
  --dads-border: #d9d9d9;
  --dads-surface: #f7f7f7;
  --dads-focus: #ffd43b;
}

html { scroll-behavior: smooth; }
body { color: var(--dads-text); background: #fff; }
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible {
  outline: 4px solid var(--dads-focus);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-skip-link:focus {
  position: fixed;
  z-index: 10000;
  top: 8px;
  left: 8px;
  width: auto;
  height: auto;
  clip: auto;
  padding: 10px 14px;
  background: #fff;
  color: var(--dads-blue);
  border: 2px solid var(--dads-blue);
}

.wp-site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--dads-border);
  backdrop-filter: blur(10px);
}

.wp-site-header-inner {
  max-width: 1120px;
  margin: 0 auto;
  min-height: 72px;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.wp-brand {
  color: var(--dads-text);
  text-decoration: none;
  line-height: 1.35;
}

.wp-brand strong,
.wp-brand span { display: block; }
.wp-brand strong { font-size: 18px; letter-spacing: .05em; }
.wp-brand span { margin-top: 2px; color: var(--dads-subtle); font-size: 12px; }

.wp-nav { display: flex; align-items: center; gap: 20px; }
.wp-nav a {
  color: var(--dads-text);
  font-weight: 700;
  font-size: 14px;
  text-underline-offset: 4px;
}

.archive-hero {
  padding: 72px 24px 52px;
  background: linear-gradient(180deg, #eef3ff 0%, #fff 100%);
  border-bottom: 1px solid var(--dads-border);
}

.archive-hero-inner,
.posts-area,
.single-shell,
.not-found { max-width: 1120px; margin: 0 auto; }

.archive-kicker {
  margin: 0 0 12px;
  color: var(--dads-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}

.archive-hero h1 {
  margin: 0;
  max-width: 800px;
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.3;
  letter-spacing: -.02em;
}

.archive-lead {
  max-width: 720px;
  margin: 20px 0 0;
  color: var(--dads-subtle);
  font-size: 17px;
  line-height: 1.9;
}

.posts-area { padding: 48px 24px 120px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.filter-chip {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #949497;
  border-radius: 999px;
  color: var(--dads-text);
  background: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
}
.filter-chip:hover,
.filter-chip[aria-current="page"] { border-color: var(--dads-blue); color: var(--dads-blue); background: #eef3ff; }

.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.post-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--dads-border);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.post-card-body { padding: 24px; display: flex; flex: 1; flex-direction: column; }
.post-card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--dads-subtle); font-size: 12px; }
.post-card-category { color: var(--dads-blue); font-weight: 700; }
.post-card h2 { margin: 14px 0 12px; font-size: 20px; line-height: 1.55; }
.post-card h2 a { color: var(--dads-text); text-decoration: none; }
.post-card h2 a:hover { color: var(--dads-blue); text-decoration: underline; text-underline-offset: 4px; }
.post-card p { margin: 0 0 20px; color: var(--dads-subtle); font-size: 14px; line-height: 1.8; }
.post-card-more { margin-top: auto; color: var(--dads-blue); font-weight: 700; text-underline-offset: 4px; }

.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #949497;
  color: var(--dads-text);
  text-decoration: none;
}
.pagination .current { border-color: var(--dads-blue); color: #fff; background: var(--dads-blue); }

.single-main { padding: 30px 24px 140px; }
.single-shell { max-width: 820px; }
.wp-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 36px;
  color: var(--dads-subtle);
  font-size: 13px;
}
.wp-breadcrumbs a { color: var(--dads-blue); text-underline-offset: 3px; }

.single-category { margin-bottom: 12px; color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.single-title { margin: 0; font-size: clamp(30px, 5vw, 48px); line-height: 1.4; letter-spacing: -.02em; }
.single-meta { margin: 20px 0 40px; padding-bottom: 24px; border-bottom: 1px solid var(--dads-border); color: var(--dads-subtle); font-size: 14px; }

.entry-content { font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.entry-content > * { max-width: 100%; }
.entry-content p { margin: 0 0 1.5em; }
.entry-content h2 {
  margin: 64px 0 22px;
  padding: 0 0 12px;
  border-bottom: 3px solid var(--dads-blue);
  font-size: 28px;
  line-height: 1.5;
}
.entry-content h3 { margin: 42px 0 16px; font-size: 22px; line-height: 1.55; }
.entry-content h4 { margin: 32px 0 12px; font-size: 18px; }
.entry-content a { color: var(--dads-blue); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.entry-content ul,
.entry-content ol { margin: 0 0 1.8em; padding-left: 1.5em; }
.entry-content li + li { margin-top: .55em; }
.entry-content blockquote,
.article-callout,
.article-summary {
  margin: 28px 0;
  padding: 20px 22px;
  border-left: 4px solid var(--dads-blue);
  background: #f5f7ff;
}
.article-summary { border: 1px solid #b9c6ff; border-left-width: 4px; border-radius: 4px; }
.article-callout .article-callout { margin: 12px 0; background: #fff; border-color: #949497; }
.article-table-scroll { max-width: 100%; margin: 24px 0; overflow-x: auto; }
.entry-content table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.entry-content th,
.entry-content td { padding: 12px 14px; border: 1px solid #949497; text-align: left; vertical-align: top; }
.entry-content th { background: var(--dads-surface); font-weight: 700; }

.post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 44px; }
.post-tags a { padding: 6px 10px; border: 1px solid var(--dads-border); border-radius: 999px; color: var(--dads-text); font-size: 13px; text-decoration: none; }
.author-card { margin-top: 48px; padding: 24px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-surface); }
.author-card strong { display: block; margin-bottom: 8px; font-size: 18px; }
.author-card p { margin: 0; color: var(--dads-subtle); line-height: 1.8; }

.related-posts { margin-top: 72px; padding-top: 36px; border-top: 1px solid var(--dads-border); }
.related-posts h2 { margin: 0 0 24px; font-size: 26px; }
.related-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.related-list a { display: block; padding: 18px; border: 1px solid var(--dads-border); border-radius: 8px; color: var(--dads-text); text-decoration: none; font-weight: 700; line-height: 1.65; }
.related-list a:hover { border-color: var(--dads-blue); color: var(--dads-blue); }

.front-column-preview { padding: 88px 24px 120px; background: #fff; }
.front-column-preview .wrap { max-width: 1120px; }
.front-column-preview .post-grid { margin-top: 36px; }
.front-column-actions { margin-top: 36px; text-align: center; }
.front-column-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 24px;
  border: 2px solid var(--dads-blue);
  border-radius: 4px;
  color: var(--dads-blue);
  background: #fff;
  font-weight: 700;
  text-decoration: none;
}
.front-column-button:hover { color: #fff; background: var(--dads-blue); }

.empty-state { padding: 48px 24px; border: 1px solid var(--dads-border); background: var(--dads-surface); text-align: center; }
.not-found { padding: 100px 24px 160px; }
.not-found h1 { font-size: clamp(32px, 5vw, 52px); }

@media (max-width: 900px) {
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .related-list { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .wp-site-header-inner { min-height: 64px; padding: 10px 16px; }
  .wp-brand strong { font-size: 15px; }
  .wp-brand span { font-size: 10px; }
  .wp-nav { gap: 12px; }
  .wp-nav a { font-size: 13px; }
  .archive-hero { padding: 48px 16px 36px; }
  .posts-area { padding: 32px 16px 112px; }
  .post-grid { grid-template-columns: 1fr; gap: 16px; }
  .post-card-body { padding: 20px; }
  .single-main { padding: 22px 16px 120px; }
  .single-title { font-size: 30px; }
  .entry-content { font-size: 15px; line-height: 1.9; }
  .entry-content h2 { margin-top: 48px; font-size: 23px; }
  .entry-content h3 { font-size: 20px; }
  .entry-content table { min-width: 560px; font-size: 13px; }
  .front-column-preview { padding: 64px 16px 104px; }
}


/* Figma / Mitekaku 2026-09-28: homepage-only overrides */
body.home{--dads-blue: #0017c1; --dads-blue-dark: #000e7a; --dads-blue-light: #e8eaf8; --dads-link: #0017c1; --dads-visited: #5a1a8b; --dads-ink: #1a1a1a; --dads-muted: #626264; --dads-border: #949497; --dads-border-light: #d8d8db; --dads-bg: #ffffff; --dads-bg-subtle: #f5f5f7; --dads-focus: #ffd43d; --dads-white: #ffffff; --page: 1120px; --reading: 760px; --radius: 8px; --radius-sm: 4px;}
body.home *,body.home ::before,body.home ::after{box-sizing: border-box;}
body.home{scroll-behavior: smooth; scroll-padding-bottom: 112px;}
body.home{margin: 0px; padding-bottom: 92px; color: var(--dads-ink); background: var(--dads-bg); font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; font-weight: 400; line-height: 1.7; letter-spacing: 0.02em; overflow-wrap: anywhere; text-size-adjust: 100%;}
body.home img{display: block; max-width: 100%; height: auto;}
body.home figure,body.home h1,body.home h2,body.home h3,body.home h4,body.home p,body.home dl,body.home dd{margin: 0px;}
body.home ul,body.home ol{margin: 0px;}
body.home button,body.home input,body.home textarea,body.home select{font: inherit;}
body.home a{color: var(--dads-link); text-decoration: underline 1px; text-underline-offset: 0.18em;}
body.home a:visited{color: var(--dads-visited);}
body.home a:hover{text-decoration-thickness: 2px;}
body.home a:focus-visible,body.home button:focus-visible,body.home summary:focus-visible{outline: 4px solid var(--dads-focus); outline-offset: 2px; box-shadow: rgb(0, 0, 0) 0px 0px 0px 2px;}
body.home .hero-accessible{position: absolute !important; width: 1px !important; height: 1px !important; padding: 0px !important; margin: -1px !important; overflow: hidden !important; clip: rect(0px, 0px, 0px, 0px) !important; white-space: nowrap !important; border: 0px !important;}
body.home .wrap{width: min(var(--page), calc(100% - 48px)); margin-inline: auto;}
body.home .narrow{width: min(var(--reading), 100%); margin-inline: auto;}
body.home .center{text-align: center;}
body.home .stack > * + *{margin-top: 16px;}
body.home .pale,body.home .column-section{background: var(--dads-bg-subtle);}
body.home .note{color: var(--dads-muted); font-size: 14px; line-height: 1.6;}
body.home .red{color: var(--dads-blue);}
body.home .hero-v2{border-top: 8px solid var(--dads-blue); border-bottom: 1px solid var(--dads-border-light); background: var(--dads-white);}
body.home .hero-composite{position: relative;}
body.home .hero-composite-picture{width: min(100%, 1672px); margin-inline: auto; display: block; background: var(--dads-white);}
body.home .hero-composite-picture img{width: 100%; height: auto;}
body.home .hero-brandline{width: min(var(--page), calc(100% - 48px)); min-height: 88px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--dads-border-light);}
body.home .hero-office{color: var(--dads-ink); font-size: 22px; font-weight: 700; line-height: 1.4;}
body.home .hero-service{color: var(--dads-muted); font-size: 16px; font-weight: 700; text-align: right;}
body.home .hero-layout{width: min(var(--page), calc(100% - 48px)); margin-inline: auto; padding: 56px 0px 64px; display: grid; grid-template-columns: minmax(0px, 1.15fr) minmax(300px, 0.85fr); gap: clamp(40px, 6vw, 80px); align-items: center;}
body.home .hero-message{min-width: 0px;}
body.home .hero-kicker{margin-bottom: 16px; color: var(--dads-blue); font-size: 16px; font-weight: 700;}
body.home .hero-v2 h1{max-width: 720px; font-size: clamp(34px, 4.5vw, 52px); font-weight: 700; line-height: 1.4; letter-spacing: 0.01em;}
body.home .hero-v2 h1 em{color: var(--dads-blue); font-style: normal;}
body.home .hero-lead{max-width: 680px; margin-top: 24px; font-size: 18px; line-height: 1.8;}
body.home .hero-proof{margin-top: 36px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border);}
body.home .hero-proof div{padding: 18px 16px;}
body.home .hero-proof div + div{border-left: 1px solid var(--dads-border-light);}
body.home .hero-proof dt{color: var(--dads-blue); font-size: 18px; font-weight: 700; line-height: 1.4;}
body.home .hero-proof dd{margin-top: 4px; color: var(--dads-muted); font-size: 14px; line-height: 1.5;}
body.home .hero-photo{overflow: hidden; border: 1px solid var(--dads-border-light); border-radius: var(--radius); background: var(--dads-bg-subtle); aspect-ratio: 4 / 5;}
body.home .hero-photo img{width: 100%; height: 100%; object-fit: cover; object-position: center center;}
body.home main > section:not(.hero-v2){padding: 80px 0px;}
body.home .h2mini{display: block; margin-bottom: 10px; color: var(--dads-blue); font-size: 16px; font-weight: 700; line-height: 1.5;}
body.home main > section h2{font-size: clamp(28px, 3.3vw, 40px); font-weight: 700; line-height: 1.5; letter-spacing: 0.01em;}
body.home main > section h3{font-size: 22px; font-weight: 700; line-height: 1.5;}
body.home .lead{color: var(--dads-muted); font-size: 17px; line-height: 1.8;}
body.home .checks{max-width: 920px; margin: 48px auto 0px; padding: 0px; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border);}
body.home .checks li{position: relative; min-height: 82px; padding: 20px 24px 20px 52px; border-bottom: 1px solid var(--dads-border-light);}
body.home .checks li:nth-child(2n+1){border-right: 1px solid var(--dads-border-light);}
body.home .checks li::before{content: "✓"; position: absolute; left: 20px; top: 20px; color: var(--dads-blue); font-weight: 700;}
body.home .solve{max-width: 920px; margin: 40px auto 0px; padding: 28px 32px; border-left: 8px solid var(--dads-blue); background: var(--dads-blue-light); font-size: 24px; font-weight: 700; line-height: 1.6;}
body.home .solve em{color: var(--dads-blue); font-style: normal;}
body.home .solve span{display: block; margin-top: 10px; font-size: 16px; font-weight: 400; line-height: 1.8;}
body.home .targets{margin-top: 48px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 24px;}
body.home .target{padding: 32px; border: 1px solid var(--dads-border); border-radius: var(--radius); background: var(--dads-white);}
body.home .target.alt{border-top: 8px solid var(--dads-blue);}
body.home .target h3{padding-bottom: 16px; border-bottom: 1px solid var(--dads-border-light);}
body.home .target ul{margin-top: 20px; padding-left: 1.4em;}
body.home .target li + li{margin-top: 10px;}
body.home .visual-band{margin-top: 32px; display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: center; gap: 40px; padding: 32px; border: 1px solid var(--dads-border-light); background: var(--dads-white);}
body.home .visual-band p{margin-top: 16px; color: var(--dads-muted);}
body.home .visual-band figure{max-height: 260px; overflow: hidden;}
body.home .visual-band img{width: 100%; height: 260px; object-fit: cover;}
body.home .reasons{margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border); border-left: 1px solid var(--dads-border);}
body.home .reason{min-height: 260px; padding: 28px; border-right: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border);}
body.home .rno,body.home .case-no{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .reason h3{margin-top: 18px;}
body.home .reason h3 em{color: var(--dads-blue); font-style: normal;}
body.home .reason p{margin-top: 14px; color: var(--dads-muted);}
body.home .profile-body{margin-top: 24px; display: grid; grid-template-columns: 140px 1fr; gap: 24px;}
body.home .profile-body figure{overflow: hidden; border-radius: var(--radius-sm); aspect-ratio: 4 / 5;}
body.home .profile-body img{width: 100%; height: 100%; object-fit: cover; object-position: center top;}
body.home .profile-body p + p{margin-top: 12px;}
body.home .specials{margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 24px;}
body.home .special{padding: 32px; border-top: 8px solid var(--dads-blue); background: var(--dads-white);}
body.home .special p{margin-top: 16px; color: var(--dads-muted);}
body.home .cases{max-width: 920px; margin: 48px auto 0px;}
body.home .case{padding: 32px 0px; border-top: 1px solid var(--dads-border);}
body.home .case:last-child{border-bottom: 1px solid var(--dads-border);}
body.home .case-head{display: flex; flex-wrap: wrap; gap: 16px; align-items: center;}
body.home .tag{padding: 4px 10px; border: 1px solid var(--dads-border); border-radius: var(--radius-sm); font-size: 14px; font-weight: 700;}
body.home .case h3{margin-top: 18px;}
body.home .case > p{margin-top: 12px;}
body.home .voice{margin-top: 18px; padding: 20px 24px; border-left: 4px solid var(--dads-border); background: var(--dads-bg-subtle);}
body.home .voice strong{display: block; margin-bottom: 6px;}
body.home .price{max-width: 920px; margin: 48px auto 0px; border: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .price-head{padding: 16px 24px; border-bottom: 1px solid var(--dads-border); background: var(--dads-ink); color: var(--dads-white); font-weight: 700;}
body.home .price-body{padding: 32px;}
body.home .yen{color: var(--dads-ink); font-size: 48px; font-weight: 700; line-height: 1.3;}
body.home .yen small{margin-left: 6px; font-size: 16px;}
body.home .price-body > p + p{margin-top: 16px;}
body.home .tbl-scroll{overflow-x: auto;}
body.home .tbl{width: 100%; border-collapse: collapse; border-top: 1px solid var(--dads-border);}
body.home .tbl th,body.home .tbl td{padding: 16px 20px; border-bottom: 1px solid var(--dads-border); border-right: 1px solid var(--dads-border); text-align: left; vertical-align: top;}
body.home .tbl th{width: 190px; background: var(--dads-white); font-weight: 700;}
body.home .tbl td:last-child{border-right: 0px;}
body.home .flow{max-width: 920px; margin: 48px auto 0px; padding: 0px; list-style: none; border-top: 1px solid var(--dads-border);}
body.home .flow li{display: grid; grid-template-columns: 72px 1fr; gap: 24px; padding: 24px 0px; border-bottom: 1px solid var(--dads-border);}
body.home .fnum{color: var(--dads-blue); font-weight: 700; font-variant-numeric: tabular-nums;}
body.home .flow p{margin-top: 6px; color: var(--dads-muted);}
body.home .faq{max-width: 920px; margin: 48px auto 0px; border-top: 1px solid var(--dads-border);}
body.home .faq details{border-bottom: 1px solid var(--dads-border);}
body.home .faq summary{position: relative; min-height: 72px; padding: 22px 56px 22px 0px; cursor: pointer; font-size: 17px; font-weight: 700; list-style: none;}
body.home .faq summary::-webkit-details-marker{display: none;}
body.home .faq summary::after{content: "+"; position: absolute; right: 16px; top: 16px; color: var(--dads-blue); font-size: 28px; font-weight: 400;}
body.home .faq details[open] summary::after{content: "−";}
body.home .faq .a{padding: 0px 56px 24px 0px; color: var(--dads-muted);}
body.home .column-directory{margin-top: 48px; border-top: 1px solid var(--dads-border);}
body.home .column-group{border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .column-group summary{position: relative; min-height: 96px; padding: 22px 64px 22px 24px; display: flex; justify-content: space-between; gap: 24px; align-items: center; cursor: pointer; list-style: none;}
body.home .column-group summary::-webkit-details-marker{display: none;}
body.home .column-group summary::after{content: "+"; position: absolute; right: 24px; top: 30px; color: var(--dads-blue); font-size: 24px;}
body.home .column-group[open] summary::after{content: "−";}
body.home .column-group summary span{display: grid; gap: 4px;}
body.home .column-group summary strong{font-size: 18px;}
body.home .column-group summary small{color: var(--dads-muted); font-size: 14px;}
body.home .column-group summary b{margin-right: 28px; color: var(--dads-muted); font-size: 14px; white-space: nowrap;}
body.home .column-links{border-top: 1px solid var(--dads-border-light);}
body.home .column-link{min-height: 64px; padding: 14px 24px; display: grid; grid-template-columns: 44px 1fr 24px; gap: 12px; align-items: center; color: var(--dads-link); text-decoration: underline;}
body.home .column-link + .column-link{border-top: 1px solid var(--dads-border-light);}
body.home .column-link:visited{color: var(--dads-visited);}
body.home .column-link:hover{background: var(--dads-blue-light);}
body.home .column-no{color: var(--dads-muted); font-size: 14px; font-variant-numeric: tabular-nums;}
body.home .column-arrow{color: currentcolor; font-size: 20px; text-align: right;}
body.home .article-header{min-height: 88px; padding: 0 max(24px, calc((100% - var(--page)) / 2)); display: flex; justify-content: space-between; gap: 32px; align-items: center; border-top: 8px solid var(--dads-blue); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .article-brand{display: grid; color: var(--dads-ink); text-decoration: none;}
body.home .article-brand:visited{color: var(--dads-ink);}
body.home .article-brand strong{font-size: 18px;}
body.home .article-brand span{color: var(--dads-muted); font-size: 14px;}
body.home .article-index-link{min-height: 48px; padding: 0px 18px; display: inline-flex; align-items: center; border: 2px solid var(--dads-blue); border-radius: var(--radius-sm); color: var(--dads-blue); font-weight: 700; text-decoration: none;}
body.home .article-index-link:visited{color: var(--dads-blue);}
body.home .article-index-link:hover{background: var(--dads-blue-light);}
body.home .breadcrumbs{width: min(var(--page), calc(100% - 48px)); margin: 18px auto 0px; display: flex; flex-wrap: wrap; gap: 8px; color: var(--dads-muted); font-size: 14px;}
body.home .article-shell{width: min(var(--reading), calc(100% - 48px)); margin: 48px auto 96px;}
body.home .article-category{display: inline-block; margin-bottom: 16px; padding: 6px 10px; border: 1px solid var(--dads-blue); border-radius: var(--radius-sm); color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .article-content{font-size: 17px; line-height: 1.8;}
body.home .article-content h1{letter-spacing: 0.01em; margin: 0px 0px 28px !important; font-size: clamp(30px, 4vw, 42px) !important; line-height: 1.5 !important;}
body.home .article-content h2{margin: 56px 0px 20px !important; padding: 12px 0px 12px 20px !important; border-top: 0px !important; border-right: 0px !important; border-bottom: 0px !important; border-image: none !important; border-left: 8px solid var(--dads-blue) !important; font-size: 26px !important; line-height: 1.5 !important;}
body.home .article-content h3{padding-bottom: 8px; border-bottom: 1px solid var(--dads-border); margin: 40px 0px 14px !important; font-size: 21px !important; line-height: 1.5 !important;}
body.home .article-content p{margin: 0px 0px 1.4em;}
body.home .article-content ul,body.home .article-content ol{margin: 20px 0px 28px !important; padding-left: 1.5em !important;}
body.home .article-content li + li{margin-top: 8px;}
body.home .article-content a{color: var(--dads-link) !important;}
body.home .article-content table{min-width: 600px; background: var(--dads-white); width: 100% !important; border-collapse: collapse !important; font-size: 16px !important;}
body.home .article-table-scroll{max-width: 100%; margin: 24px 0px; overflow-x: auto;}
body.home .article-table-scroll:focus-visible{outline: 4px solid var(--dads-focus); outline-offset: 2px;}
body.home .article-table-scroll table{margin: 0px !important;}
body.home .article-content th,body.home .article-content td{vertical-align: top; padding: 12px 14px !important; border: 1px solid var(--dads-border) !important; background: var(--dads-white) !important; color: var(--dads-ink) !important; text-align: left !important;}
body.home .article-content th{font-weight: 700;}
body.home .article-content blockquote{margin: 28px 0px; padding: 20px 24px; border-left: 8px solid var(--dads-blue); background: var(--dads-bg-subtle);}
body.home .article-content > div[style*="background"]{border: 1px solid var(--dads-border) !important; border-radius: var(--radius-sm) !important; background: var(--dads-bg-subtle) !important;}
body.home .article-related{margin-top: 72px; padding-top: 40px; border-top: 2px solid var(--dads-ink);}
body.home .article-section-label{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .article-related h2{margin-top: 8px; font-size: 28px;}
body.home .article-related-grid{margin-top: 24px; border-top: 1px solid var(--dads-border);}
body.home .back-to-columns{margin-top: 24px; text-align: right;}
body.home .article-pager{margin-top: 48px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 16px;}
body.home .article-pager a{min-height: 120px; padding: 20px; display: grid; align-content: start; border: 1px solid var(--dads-border); border-radius: var(--radius-sm);}
body.home .article-pager a span{margin-bottom: 6px; color: var(--dads-muted); font-size: 14px;}
body.home .column-index-hero{padding: 64px 0px 48px; border-bottom: 1px solid var(--dads-border);}
body.home .column-index-hero p{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .column-index-hero h1{margin-top: 10px; font-size: clamp(34px, 4.5vw, 48px); line-height: 1.4;}
body.home .column-index-hero span{display: block; max-width: 760px; margin-top: 18px; color: var(--dads-muted);}
body.home .column-index-body{padding: 0px 0px 96px;}
body.home .column-index-page .column-directory{margin-top: 48px;}
body.home .column-total{margin-top: 8px;}
body.home .column-total a{font-weight: 700;}
body.home .topic-tiles{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 12px; margin-top: 36px;}
body.home .topic-tile{display: grid; gap: 7px; min-height: 164px; padding: 22px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-white); color: var(--dads-ink); text-decoration: none;}
body.home .topic-tile:visited{color: var(--dads-ink);}
body.home .topic-tile:hover{border-color: var(--dads-blue); background: var(--dads-blue-light);}
body.home .topic-tile > span{color: var(--dads-blue); font-size: 13px; font-weight: 700;}
body.home .topic-tile > strong{font-size: 18px; line-height: 1.45;}
body.home .topic-tile > small{color: var(--dads-muted); font-size: 13px; line-height: 1.7;}
body.home .home-topic-tiles{margin-top: 40px;}
body.home .home-column-directory{margin-top: 28px;}
body.home .home-featured-columns{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 0px 24px; margin-top: 40px; border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .home-featured-columns .content-card{border-top: 1px solid var(--dads-border-light);}
body.home .home-featured-columns .content-card:nth-child(-n+2){border-top: 0px;}
body.home .column-total-bottom{margin-top: 28px; text-align: center;}
body.home .column-search{margin-top: 40px; padding: 24px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-white);}
body.home .column-search label{display: block; margin-bottom: 10px; font-weight: 700;}
body.home .column-search > div{display: grid; grid-template-columns: 1fr auto; gap: 8px;}
body.home .column-search input{width: 100%; min-height: 48px; padding: 0px 14px; border: 1px solid var(--dads-border); border-radius: 4px; color: var(--dads-ink); font: inherit;}
body.home .column-search input:focus{outline: rgba(0, 23, 193, 0.22) solid 3px; border-color: var(--dads-blue);}
body.home .column-search button{min-height: 48px; padding: 0px 18px; border: 1px solid var(--dads-blue); border-radius: 4px; background: var(--dads-white); color: var(--dads-blue); font-style: inherit; font-variant: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-weight: 700; cursor: pointer;}
body.home .column-search p{margin-top: 10px; color: var(--dads-muted); font-size: 14px;}
body.home .content-card{position: relative; display: grid; grid-template-columns: minmax(115px, 0.28fr) minmax(0px, 1fr) 24px; align-items: center; gap: 16px; min-height: 74px; padding: 15px 20px; color: var(--dads-ink); text-decoration: none;}
body.home .content-card + .content-card{border-top: 1px solid var(--dads-border-light);}
body.home .content-card:visited{color: var(--dads-visited);}
body.home .content-card:hover{background: var(--dads-blue-light);}
body.home .content-card[hidden]{display: none;}
body.home .content-card-meta{display: grid; gap: 2px; color: var(--dads-muted); font-size: 12px; line-height: 1.45;}
body.home .content-card-meta b{color: var(--dads-blue); font-size: 13px;}
body.home .content-card > strong{font-size: 15px; line-height: 1.65;}
body.home .content-card-arrow{color: var(--dads-blue); font-size: 20px; text-align: right;}
body.home .article-taxonomy{display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px;}
body.home .article-taxonomy .article-category{margin: 0px; text-decoration: none;}
body.home .article-tag{display: inline-flex; align-items: center; min-height: 30px; padding: 3px 10px; border: 1px solid var(--dads-border); border-radius: 999px; color: var(--dads-muted); background: var(--dads-white); font-size: 12px; font-weight: 700;}
body.home .article-related-grid{border-bottom: 1px solid var(--dads-border);}
body.home .article-related-links{display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 20px;}
body.home .article-related-links a{font-weight: 700;}
body.home .topic-hero{padding-bottom: 44px;}
body.home .topic-page-heading{display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-top: 40px;}
body.home .topic-page-heading p{color: var(--dads-muted);}
body.home .topic-page-heading a{font-weight: 700;}
body.home .topic-article-grid{margin-top: 18px; border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home footer{padding: 48px 0px; border-top: 1px solid var(--dads-border); background: var(--dads-bg-subtle);}
body.home footer .wrap{display: grid; gap: 8px;}
body.home footer b{font-size: 18px;}
body.home footer span,body.home footer small{color: var(--dads-muted); font-size: 14px;}
body.home .footer-info,body.home .footer-home{width: fit-content; margin-top: 8px;}
body.home .sticky-cta{position: fixed; z-index: 100; inset: auto 0px 0px; background: var(--dads-white); border-top: 1px solid var(--dads-border); box-shadow: rgba(0, 0, 0, 0.12) 0px -4px 16px;}
body.home .sticky-cta-inner{width: min(var(--page), calc(100% - 32px)); min-height: 84px; margin-inline: auto; display: grid; grid-template-columns: minmax(220px, 1fr) auto auto auto; gap: 12px; align-items: center;}
body.home .sticky-brand,body.home .sticky-hours{display: grid; align-content: center;}
body.home .sticky-brand strong{color: var(--dads-ink); font-size: 16px; line-height: 1.4;}
body.home .sticky-brand span{color: var(--dads-muted); font-size: 12px; line-height: 1.4;}
body.home .sticky-hours{min-width: 176px; padding-left: 16px; border-left: 1px solid var(--dads-border-light);}
body.home .sticky-hours strong{color: var(--dads-blue); font-size: 14px; line-height: 1.4;}
body.home .sticky-hours span{color: var(--dads-muted); font-size: 12px; line-height: 1.4;}
body.home .sticky-mail,body.home .sticky-phone{min-height: 52px; padding: 0px 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); font-weight: 700; text-decoration: none;}
body.home .sticky-mail{gap: 8px; border: 2px solid var(--dads-blue); color: var(--dads-blue); background: var(--dads-white);}
body.home .sticky-mail:visited{color: var(--dads-blue);}
body.home .sticky-mail:hover{background: var(--dads-blue-light);}
body.home .sticky-phone{min-width: 236px; display: grid; align-content: center; background: var(--dads-blue); color: var(--dads-white); text-align: center;}
body.home .sticky-phone:visited{color: var(--dads-white);}
body.home .sticky-phone:hover{background: var(--dads-blue-dark);}
body.home .sticky-phone span{font-size: 18px; line-height: 1.25;}
body.home .sticky-phone small{font-size: 12px; font-weight: 400; line-height: 1.35;}
@media (max-width: 900px){body.home .hero-layout{grid-template-columns: 1fr; padding-top: 44px;}
body.home .hero-photo{width: min(520px, 100%); max-height: 560px; margin-inline: auto;}
body.home .reasons{grid-template-columns: repeat(2, minmax(0px, 1fr));}
body.home .specials{grid-template-columns: 1fr;}
body.home .sticky-cta-inner{grid-template-columns: minmax(180px, 1fr) auto auto auto; gap: 8px;}
body.home .sticky-hours{min-width: 150px; padding-left: 10px;}
body.home .sticky-mail,body.home .sticky-phone{padding-inline: 14px;}
body.home .topic-tiles{grid-template-columns: repeat(2, minmax(0px, 1fr));}}
@media (max-width: 680px){body.home{padding-bottom: 124px; font-size: 16px;}
body.home .wrap,body.home .narrow,body.home .breadcrumbs,body.home .article-shell{width: min(100% - 32px, var(--page));}
body.home .hero-brandline,body.home .hero-layout{width: min(100% - 32px, var(--page));}
body.home .hero-composite-picture{width: 100%;}
body.home .hero-brandline{min-height: 76px; display: block; padding: 14px 0px;}
body.home .hero-office{font-size: 18px;}
body.home .hero-service{margin-top: 2px; font-size: 14px; text-align: left;}
body.home .hero-layout{padding: 36px 0px 48px; gap: 32px;}
body.home .hero-v2 h1{font-size: 32px; line-height: 1.5;}
body.home .hero-v2 h1 br{display: none;}
body.home .hero-lead{margin-top: 18px; font-size: 17px;}
body.home .hero-proof{grid-template-columns: 1fr; margin-top: 28px;}
body.home .hero-proof div{padding: 14px 0px;}
body.home .hero-proof div + div{border-left: 0px; border-top: 1px solid var(--dads-border-light);}
body.home .hero-photo{max-height: 440px;}
body.home main > section:not(.hero-v2){padding: 56px 0px;}
body.home main > section h2{font-size: 28px;}
body.home .checks{grid-template-columns: 1fr; margin-top: 32px;}
body.home .checks li:nth-child(2n+1){border-right: 0px;}
body.home .solve{margin-top: 28px; padding: 22px 20px; font-size: 21px;}
body.home .targets,body.home .visual-band{grid-template-columns: 1fr; gap: 16px; margin-top: 32px;}
body.home .target,body.home .visual-band{padding: 24px 20px;}
body.home .visual-band figure,body.home .visual-band img{height: 200px;}
body.home .reasons{grid-template-columns: 1fr; margin-top: 32px;}
body.home .reason{min-height: 0px; padding: 24px 20px;}
body.home .profile-body{grid-template-columns: 96px 1fr; gap: 18px;}
body.home .specials,body.home .cases,body.home .price,body.home .flow,body.home .faq,body.home .column-directory{margin-top: 32px;}
body.home .special{padding: 24px 20px;}
body.home .case{padding: 24px 0px;}
body.home .price-body{padding: 24px 20px;}
body.home .yen{font-size: 38px;}
body.home .tbl{min-width: 640px;}
body.home .flow li{grid-template-columns: 48px 1fr; gap: 12px;}
body.home .faq summary{padding-right: 48px;}
body.home .faq .a{padding-right: 0px;}
body.home .column-group summary{padding: 18px 48px 18px 16px; display: grid;}
body.home .column-group summary::after{right: 16px; top: 24px;}
body.home .column-group summary b{margin: 0px;}
body.home .column-link{padding: 14px 16px; grid-template-columns: 32px 1fr 18px;}
body.home .topic-tiles{grid-template-columns: 1fr; gap: 8px; margin-top: 28px;}
body.home .topic-tile{min-height: auto; padding: 18px;}
body.home .column-search{margin-top: 28px; padding: 18px;}
body.home .column-search > div{grid-template-columns: 1fr;}
body.home .content-card{grid-template-columns: 1fr 18px; gap: 10px; padding: 14px 16px;}
body.home .content-card-meta{grid-column: 1 / -1; display: flex; gap: 8px;}
body.home .content-card > strong{grid-column: 1;}
body.home .content-card-arrow{grid-column: 2;}
body.home .home-featured-columns{grid-template-columns: 1fr; margin-top: 32px;}
body.home .home-featured-columns .content-card:nth-child(2){border-top: 1px solid var(--dads-border-light);}
body.home .article-related-links{display: grid; justify-content: start;}
body.home .article-header{min-height: 78px; padding: 10px 16px; gap: 14px;}
body.home .article-brand strong{font-size: 16px;}
body.home .article-brand span{font-size: 12px;}
body.home .article-index-link{min-height: 44px; padding: 0px 12px; white-space: nowrap;}
body.home .article-shell{margin-top: 36px; margin-bottom: 64px;}
body.home .article-content{font-size: 16px;}
body.home .article-content h1{font-size: 28px !important;}
body.home .article-content h2{margin-top: 44px !important; padding-left: 14px !important; border-left-width: 6px !important; font-size: 23px !important;}
body.home .article-content table{font-size: 15px !important;}
body.home .article-pager{grid-template-columns: 1fr;}
body.home .column-index-hero{padding: 44px 0px 36px;}
body.home .sticky-cta-inner{width: 100%; min-height: 116px; padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); grid-template-columns: 1fr 1fr; grid-template-areas: "brand hours" "mail phone"; gap: 5px 8px;}
body.home .sticky-brand{grid-area: brand; min-width: 0px;}
body.home .sticky-hours{grid-area: hours; min-width: 0px; padding-left: 10px; border-left: 1px solid var(--dads-border-light);}
body.home .sticky-brand strong{font-size: 13px; white-space: nowrap;}
body.home .sticky-brand span{font-size: 10px;}
body.home .sticky-hours strong{font-size: 12px;}
body.home .sticky-hours span{font-size: 10px; white-space: nowrap;}
body.home .sticky-mail,body.home .sticky-phone{min-width: 0px; min-height: 54px; padding: 7px 8px;}
body.home .sticky-mail{grid-area: mail; font-size: 14px; text-align: center;}
body.home .sticky-phone{grid-area: phone;}
body.home .sticky-phone span{font-size: 16px;}
body.home .sticky-phone small{font-size: 10px;}}
@media (prefers-reduced-motion: reduce){body.home{scroll-behavior: auto;}}
body.home #main-content > section .heading-line{display: inline-block;}
body.home #main-content > section h2,body.home #main-content > section h3{overflow-wrap: normal; word-break: normal; text-wrap: balance;}
body.home #main-content > section .target{border-top: 8px solid var(--dads-blue);}
body.home .targets-business{grid-template-columns: minmax(0px, 1fr);}
body.home .targets-business ul{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 12px 40px;}
body.home .targets-business li + li{margin-top: 0px;}
body.home .profile-body{grid-template-columns: 140px minmax(0px, 1fr); align-items: start;}
body.home .profile-body .note{grid-column: 1 / -1; margin-top: 0px;}
body.home .case-visual{width: min(920px, 100%); margin: 36px auto 0px;}
body.home .case-visual img{width: 100%; height: 280px; object-fit: cover; object-position: center 57%; border-radius: var(--radius-sm);}
body.home .case-visual figcaption{margin-top: 6px; text-align: right; color: var(--dads-muted); font-size: 13px;}
body.home .case-visual + .cases{margin-top: 24px;}
body.home #case .case h3 .heading-line{margin-right: 0.15em;}
body.home #main-content > #case{background: var(--dads-bg-subtle);}
body.home #case .voice{background: var(--dads-white);}
body.home #main-content > #price{background: var(--dads-white);}
body.home #main-content > #flow{background: var(--dads-bg-subtle);}
body.home #main-content > #faq{background: var(--dads-white);}
@media (max-width: 680px){body.home #main-content > section .narrow{width: 100%;}
body.home #main-content > section h2{font-size: clamp(1.2rem, 5.6vw, 1.6rem); line-height: 1.6; letter-spacing: 0px;}
body.home #main-content > section h2 > .heading-line{display: block;}
body.home #main-content > section h3{font-size: 1.2rem; line-height: 1.65;}
body.home #main-content > section .lead{font-size: 1rem;}
body.home #main-content > section .h2mini{font-size: 0.875rem;}
body.home .targets-business ul{grid-template-columns: minmax(0px, 1fr); gap: 12px;}
body.home .profile-body{grid-template-columns: 88px minmax(0px, 1fr); gap: 16px;}
body.home .profile-body .note{grid-column: 1 / -1;}
body.home .case-visual{margin-top: 28px;}
body.home .case-visual img{height: 220px;}
body.home #case .case h3 .heading-line{display: block; margin-right: 0px;}
body.home #case .case h3{font-size: 1.1rem; letter-spacing: 0px;}
body.home #main-content .reason h3 .heading-line{display: block;}
body.home #main-content .reason h3{font-size: 1.15rem; letter-spacing: 0px;}
body.home .solve{font-size: 1.2rem; text-wrap: pretty;}
body.home #price .tbl{min-width: 0px; table-layout: fixed;}
body.home #price .tbl th{width: 30%;}
body.home #price .tbl th,body.home #price .tbl td{padding: 14px 12px; font-size: 0.875rem;}
body.home #flow .flow li{grid-template-columns: 32px minmax(0px, 1fr); gap: 12px;}
body.home #main-content .faq summary{overflow-wrap: normal; word-break: normal;}}
body.home .hero-v2.hero-composite{border: 0px;}
body.home .hero-composite-picture{width: 100%;}

/* Staff profile cards */
body.home #member .member-intro{max-width:780px;margin:20px auto 0;color:var(--dads-muted);text-align:center;line-height:1.9;}
body.home #member .member-intro a{display:inline-block;margin-left:0.8em;color:var(--dads-blue);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
body.home #member .staff-grid{align-items:stretch;}
body.home #member .staff-card{display:flex;flex-direction:column;height:100%;}
body.home #member .staff-card h3{margin:0;color:var(--dads-ink);}
body.home #member .staff-card .profile-body{flex:1;}
body.home #member .profile-copy{min-width:0;}
body.home #member .profile-role{margin:0 0 8px;color:var(--dads-blue);font-size:14px;font-weight:700;line-height:1.6;}
body.home #member .profile-specialty{margin-top:16px;padding-top:14px;border-top:1px solid var(--dads-border-light);color:var(--dads-muted);font-size:14px;line-height:1.75;}
body.home #member .profile-specialty strong{display:block;margin-bottom:4px;color:var(--dads-ink);font-size:13px;}
body.home #member .staff-card figure{background:var(--dads-bg-subtle);}
@media (max-width:680px){body.home #member .member-intro{text-align:left;}body.home #member .member-intro a{display:block;margin:8px 0 0;}body.home #member .profile-specialty{font-size:13px;}}
/*
Theme Name: 保利 外国人採用・就労ビザ
Theme URI: https://gyoseishoshi.work/LP/visa/
Author: 保利国際法務事務所
Description: 外国人採用・就労ビザLPとコラムの専用テーマ
Version: 1.0.0
Text Domain: hori-visa
*/

:root {
  --dads-blue: #0017c1;
  --dads-blue-dark: #000e7a;
  --dads-blue-light: #e8eaf8;
  --dads-link: #0017c1;
  --dads-visited: #5a1a8b;
  --dads-ink: #1a1a1a;
  --dads-muted: #626264;
  --dads-border: #949497;
  --dads-border-light: #d8d8db;
  --dads-bg: #ffffff;
  --dads-bg-subtle: #f5f5f7;
  --dads-focus: #ffd43d;
  --dads-white: #ffffff;
  --page: 1120px;
  --reading: 760px;
  --radius: 8px;
  --radius-sm: 4px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-bottom: 112px; }
body {
  margin: 0;
  padding-bottom: 92px;
  color: var(--dads-ink);
  background: var(--dads-bg);
  font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: .02em;
  overflow-wrap: anywhere;
  -webkit-text-size-adjust: 100%;
}
img { display: block; max-width: 100%; height: auto; }
figure, h1, h2, h3, h4, p, dl, dd { margin: 0; }
ul, ol { margin: 0; }
button, input, textarea, select { font: inherit; }
a {
  color: var(--dads-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}
a:visited { color: var(--dads-visited); }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 4px solid var(--dads-focus);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #000;
}
.hero-accessible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.wrap { width: min(var(--page), calc(100% - 48px)); margin-inline: auto; }
.narrow { width: min(var(--reading), 100%); margin-inline: auto; }
.center { text-align: center; }
.stack > * + * { margin-top: 16px; }
.pale, .column-section { background: var(--dads-bg-subtle); }
.note { color: var(--dads-muted); font-size: 14px; line-height: 1.6; }
.red { color: var(--dads-blue); }

/* First view */
.hero-v2 {
  border-top: 8px solid var(--dads-blue);
  border-bottom: 1px solid var(--dads-border-light);
  background: var(--dads-white);
}
.hero-composite { position: relative; }
.hero-composite-picture {
  width: min(100%, 1672px);
  margin-inline: auto;
  display: block;
  background: var(--dads-white);
}
.hero-composite-picture img {
  width: 100%;
  height: auto;
}
.hero-brandline {
  width: min(var(--page), calc(100% - 48px));
  min-height: 88px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  border-bottom: 1px solid var(--dads-border-light);
}
.hero-office {
  color: var(--dads-ink);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}
.hero-service {
  color: var(--dads-muted);
  font-size: 16px;
  font-weight: 700;
  text-align: right;
}
.hero-layout {
  width: min(var(--page), calc(100% - 48px));
  margin-inline: auto;
  padding: 56px 0 64px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.hero-message { min-width: 0; }
.hero-kicker {
  margin-bottom: 16px;
  color: var(--dads-blue);
  font-size: 16px;
  font-weight: 700;
}
.hero-v2 h1 {
  max-width: 720px;
  font-size: clamp(34px, 4.5vw, 52px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .01em;
}
.hero-v2 h1 em {
  color: var(--dads-blue);
  font-style: normal;
}
.hero-lead {
  max-width: 680px;
  margin-top: 24px;
  font-size: 18px;
  line-height: 1.8;
}
.hero-proof {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
  border-bottom: 1px solid var(--dads-border);
}
.hero-proof div { padding: 18px 16px; }
.hero-proof div + div { border-left: 1px solid var(--dads-border-light); }
.hero-proof dt {
  color: var(--dads-blue);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}
.hero-proof dd {
  margin-top: 4px;
  color: var(--dads-muted);
  font-size: 14px;
  line-height: 1.5;
}
.hero-photo {
  overflow: hidden;
  border: 1px solid var(--dads-border-light);
  border-radius: var(--radius);
  background: var(--dads-bg-subtle);
  aspect-ratio: 4 / 5;
}
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }

/* Homepage structure */
main > section:not(.hero-v2) { padding: 80px 0; }
.h2mini {
  display: block;
  margin-bottom: 10px;
  color: var(--dads-blue);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}
main > section h2 {
  font-size: clamp(28px, 3.3vw, 40px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .01em;
}
main > section h3 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
}
.lead {
  color: var(--dads-muted);
  font-size: 17px;
  line-height: 1.8;
}
.checks {
  max-width: 920px;
  margin: 48px auto 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
}
.checks li {
  position: relative;
  min-height: 82px;
  padding: 20px 24px 20px 52px;
  border-bottom: 1px solid var(--dads-border-light);
}
.checks li:nth-child(odd) { border-right: 1px solid var(--dads-border-light); }
.checks li::before {
  content: "✓";
  position: absolute;
  left: 20px;
  top: 20px;
  color: var(--dads-blue);
  font-weight: 700;
}
.solve {
  max-width: 920px;
  margin: 40px auto 0;
  padding: 28px 32px;
  border-left: 8px solid var(--dads-blue);
  background: var(--dads-blue-light);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}
.solve em { color: var(--dads-blue); font-style: normal; }
.solve span {
  display: block;
  margin-top: 10px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
.targets {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.target {
  padding: 32px;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius);
  background: var(--dads-white);
}
.target.alt { border-top: 8px solid var(--dads-blue); }
.target h3 {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--dads-border-light);
}
.target ul { margin-top: 20px; padding-left: 1.4em; }
.target li + li { margin-top: 10px; }
.visual-band {
  margin-top: 32px;
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  align-items: center;
  gap: 40px;
  padding: 32px;
  border: 1px solid var(--dads-border-light);
  background: var(--dads-white);
}
.visual-band p { margin-top: 16px; color: var(--dads-muted); }
.visual-band figure { max-height: 260px; overflow: hidden; }
.visual-band img { width: 100%; height: 260px; object-fit: cover; }
.reasons {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--dads-border);
  border-left: 1px solid var(--dads-border);
}
.reason {
  min-height: 260px;
  padding: 28px;
  border-right: 1px solid var(--dads-border);
  border-bottom: 1px solid var(--dads-border);
}
.rno, .case-no {
  color: var(--dads-blue);
  font-size: 14px;
  font-weight: 700;
}
.reason h3 { margin-top: 18px; }
.reason h3 em { color: var(--dads-blue); font-style: normal; }
.reason p { margin-top: 14px; color: var(--dads-muted); }
.profile-body {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 24px;
}
.profile-body figure {
  overflow: hidden;
  border-radius: var(--radius-sm);
  aspect-ratio: 4/5;
}
.profile-body img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.profile-body p + p { margin-top: 12px; }
.specials {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.special {
  padding: 32px;
  border-top: 8px solid var(--dads-blue);
  background: var(--dads-white);
}
.special p { margin-top: 16px; color: var(--dads-muted); }
.cases { max-width: 920px; margin: 48px auto 0; }
.case {
  padding: 32px 0;
  border-top: 1px solid var(--dads-border);
}
.case:last-child { border-bottom: 1px solid var(--dads-border); }
.case-head { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
.tag {
  padding: 4px 10px;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius-sm);
  font-size: 14px;
  font-weight: 700;
}
.case h3 { margin-top: 18px; }
.case > p { margin-top: 12px; }
.voice {
  margin-top: 18px;
  padding: 20px 24px;
  border-left: 4px solid var(--dads-border);
  background: var(--dads-bg-subtle);
}
.voice strong { display: block; margin-bottom: 6px; }
.price {
  max-width: 920px;
  margin: 48px auto 0;
  border: 1px solid var(--dads-border);
  background: var(--dads-white);
}
.price-head {
  padding: 16px 24px;
  border-bottom: 1px solid var(--dads-border);
  background: var(--dads-ink);
  color: var(--dads-white);
  font-weight: 700;
}
.price-body { padding: 32px; }
.yen { color: var(--dads-ink); font-size: 48px; font-weight: 700; line-height: 1.3; }
.yen small { margin-left: 6px; font-size: 16px; }
.price-body > p + p { margin-top: 16px; }
.tbl-scroll { overflow-x: auto; }
.tbl {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--dads-border);
}
.tbl th, .tbl td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--dads-border);
  border-right: 1px solid var(--dads-border);
  text-align: left;
  vertical-align: top;
}
.tbl th { width: 190px; background: var(--dads-white); font-weight: 700; }
.tbl td:last-child { border-right: 0; }
.flow {
  max-width: 920px;
  margin: 48px auto 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--dads-border);
}
.flow li {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--dads-border);
}
.fnum { color: var(--dads-blue); font-weight: 700; font-variant-numeric: tabular-nums; }
.flow p { margin-top: 6px; color: var(--dads-muted); }
.faq { max-width: 920px; margin: 48px auto 0; border-top: 1px solid var(--dads-border); }
.faq details { border-bottom: 1px solid var(--dads-border); }
.faq summary {
  position: relative;
  min-height: 72px;
  padding: 22px 56px 22px 0;
  cursor: pointer;
  font-size: 17px;
  font-weight: 700;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  position: absolute;
  right: 16px;
  top: 16px;
  color: var(--dads-blue);
  font-size: 28px;
  font-weight: 400;
}
.faq details[open] summary::after { content: "−"; }
.faq .a { padding: 0 56px 24px 0; color: var(--dads-muted); }

/* Column directory */
.column-directory { margin-top: 48px; border-top: 1px solid var(--dads-border); }
.column-group { border-bottom: 1px solid var(--dads-border); background: var(--dads-white); }
.column-group summary {
  position: relative;
  min-height: 96px;
  padding: 22px 64px 22px 24px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  cursor: pointer;
  list-style: none;
}
.column-group summary::-webkit-details-marker { display: none; }
.column-group summary::after {
  content: "+";
  position: absolute;
  right: 24px;
  top: 30px;
  color: var(--dads-blue);
  font-size: 24px;
}
.column-group[open] summary::after { content: "−"; }
.column-group summary span { display: grid; gap: 4px; }
.column-group summary strong { font-size: 18px; }
.column-group summary small { color: var(--dads-muted); font-size: 14px; }
.column-group summary b {
  margin-right: 28px;
  color: var(--dads-muted);
  font-size: 14px;
  white-space: nowrap;
}
.column-links { border-top: 1px solid var(--dads-border-light); }
.column-link {
  min-height: 64px;
  padding: 14px 24px;
  display: grid;
  grid-template-columns: 44px 1fr 24px;
  gap: 12px;
  align-items: center;
  color: var(--dads-link);
  text-decoration: underline;
}
.column-link + .column-link { border-top: 1px solid var(--dads-border-light); }
.column-link:visited { color: var(--dads-visited); }
.column-link:hover { background: var(--dads-blue-light); }
.column-no { color: var(--dads-muted); font-size: 14px; font-variant-numeric: tabular-nums; }
.column-arrow { color: currentColor; font-size: 20px; text-align: right; }

/* Article and index headers */
.article-header {
  min-height: 88px;
  padding: 0 max(24px, calc((100% - var(--page)) / 2));
  display: flex;
  justify-content: space-between;
  gap: 32px;
  align-items: center;
  border-top: 8px solid var(--dads-blue);
  border-bottom: 1px solid var(--dads-border);
  background: var(--dads-white);
}
.article-brand {
  display: grid;
  color: var(--dads-ink);
  text-decoration: none;
}
.article-brand:visited { color: var(--dads-ink); }
.article-brand strong { font-size: 18px; }
.article-brand span { color: var(--dads-muted); font-size: 14px; }
.article-index-link {
  min-height: 48px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  border: 2px solid var(--dads-blue);
  border-radius: var(--radius-sm);
  color: var(--dads-blue);
  font-weight: 700;
  text-decoration: none;
}
.article-index-link:visited { color: var(--dads-blue); }
.article-index-link:hover { background: var(--dads-blue-light); }
.breadcrumbs {
  width: min(var(--page), calc(100% - 48px));
  margin: 18px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--dads-muted);
  font-size: 14px;
}
.article-shell { width: min(var(--reading), calc(100% - 48px)); margin: 48px auto 96px; }
.article-category {
  display: inline-block;
  margin-bottom: 16px;
  padding: 6px 10px;
  border: 1px solid var(--dads-blue);
  border-radius: var(--radius-sm);
  color: var(--dads-blue);
  font-size: 14px;
  font-weight: 700;
}
.article-content { font-size: 17px; line-height: 1.8; }
.article-content h1 {
  margin: 0 0 28px !important;
  font-size: clamp(30px, 4vw, 42px) !important;
  line-height: 1.5 !important;
  letter-spacing: .01em;
}
.article-content h2 {
  margin: 56px 0 20px !important;
  padding: 12px 0 12px 20px !important;
  border: 0 !important;
  border-left: 8px solid var(--dads-blue) !important;
  font-size: 26px !important;
  line-height: 1.5 !important;
}
.article-content h3 {
  margin: 40px 0 14px !important;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--dads-border);
  font-size: 21px !important;
  line-height: 1.5 !important;
}
.article-content p { margin: 0 0 1.4em; }
.article-content ul, .article-content ol { margin: 20px 0 28px !important; padding-left: 1.5em !important; }
.article-content li + li { margin-top: 8px; }
.article-content a { color: var(--dads-link) !important; }
.article-content table {
  width: 100% !important;
  min-width: 600px;
  border-collapse: collapse !important;
  background: var(--dads-white);
  font-size: 16px !important;
}
.article-content th,
.article-content td {
  padding: 12px 14px !important;
  border: 1px solid var(--dads-border) !important;
  background: var(--dads-white) !important;
  color: var(--dads-ink) !important;
  text-align: left !important;
  vertical-align: top;
}
.article-content th { font-weight: 700; }
.article-content blockquote {
  margin: 28px 0;
  padding: 20px 24px;
  border-left: 8px solid var(--dads-blue);
  background: var(--dads-bg-subtle);
}
.article-content > div[style*="background"] {
  border: 1px solid var(--dads-border) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--dads-bg-subtle) !important;
}
.article-related {
  margin-top: 72px;
  padding-top: 40px;
  border-top: 2px solid var(--dads-ink);
}
.article-section-label { color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.article-related h2 { margin-top: 8px; font-size: 28px; }
.article-related-grid { margin-top: 24px; border-top: 1px solid var(--dads-border); }
.back-to-columns { margin-top: 24px; text-align: right; }
.article-pager {
  margin-top: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.article-pager a {
  min-height: 120px;
  padding: 20px;
  display: grid;
  align-content: start;
  border: 1px solid var(--dads-border);
  border-radius: var(--radius-sm);
}
.article-pager a span { margin-bottom: 6px; color: var(--dads-muted); font-size: 14px; }
.column-index-hero { padding: 64px 0 48px; border-bottom: 1px solid var(--dads-border); }
.column-index-hero p { color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.column-index-hero h1 { margin-top: 10px; font-size: clamp(34px, 4.5vw, 48px); line-height: 1.4; }
.column-index-hero span { display: block; max-width: 760px; margin-top: 18px; color: var(--dads-muted); }
.column-index-body { padding: 0 0 96px; }
.column-index-page .column-directory { margin-top: 48px; }

/* Footer and the single persistent CTA */
footer {
  padding: 48px 0;
  border-top: 1px solid var(--dads-border);
  background: var(--dads-bg-subtle);
}
footer .wrap { display: grid; gap: 8px; }
footer b { font-size: 18px; }
footer span, footer small { color: var(--dads-muted); font-size: 14px; }
.footer-info, .footer-home { width: fit-content; margin-top: 8px; }
.sticky-cta {
  position: fixed;
  z-index: 100;
  inset: auto 0 0;
  background: var(--dads-white);
  border-top: 1px solid var(--dads-border);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, .12);
}
.sticky-cta-inner {
  width: min(var(--page), calc(100% - 32px));
  min-height: 84px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto auto;
  gap: 12px;
  align-items: center;
}
.sticky-brand,
.sticky-hours { display: grid; align-content: center; }
.sticky-brand strong { color: var(--dads-ink); font-size: 16px; line-height: 1.4; }
.sticky-brand span { color: var(--dads-muted); font-size: 12px; line-height: 1.4; }
.sticky-hours {
  min-width: 176px;
  padding-left: 16px;
  border-left: 1px solid var(--dads-border-light);
}
.sticky-hours strong { color: var(--dads-blue); font-size: 14px; line-height: 1.4; }
.sticky-hours span { color: var(--dads-muted); font-size: 12px; line-height: 1.4; }
.sticky-mail, .sticky-phone {
  min-height: 52px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  font-weight: 700;
  text-decoration: none;
}
.sticky-mail {
  gap: 8px;
  border: 2px solid var(--dads-blue);
  color: var(--dads-blue);
  background: var(--dads-white);
}
.sticky-mail:visited { color: var(--dads-blue); }
.sticky-mail:hover { background: var(--dads-blue-light); }
.sticky-phone {
  min-width: 236px;
  display: grid;
  align-content: center;
  background: var(--dads-blue);
  color: var(--dads-white);
  text-align: center;
}
.sticky-phone:visited { color: var(--dads-white); }
.sticky-phone:hover { background: var(--dads-blue-dark); }
.sticky-phone span { font-size: 18px; line-height: 1.25; }
.sticky-phone small { font-size: 12px; font-weight: 400; line-height: 1.35; }

@media (max-width: 900px) {
  .hero-layout { grid-template-columns: 1fr; padding-top: 44px; }
  .hero-photo { width: min(520px, 100%); max-height: 560px; margin-inline: auto; }
  .reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .specials { grid-template-columns: 1fr; }
  .sticky-cta-inner { grid-template-columns: minmax(180px, 1fr) auto auto auto; gap: 8px; }
  .sticky-hours { min-width: 150px; padding-left: 10px; }
  .sticky-mail, .sticky-phone { padding-inline: 14px; }
}

@media (max-width: 680px) {
  body { padding-bottom: 124px; font-size: 16px; }
  .wrap, .narrow, .breadcrumbs, .article-shell { width: min(100% - 32px, var(--page)); }
  .hero-brandline, .hero-layout { width: min(100% - 32px, var(--page)); }
  .hero-composite-picture { width: 100%; }
  .hero-brandline {
    min-height: 76px;
    display: block;
    padding: 14px 0;
  }
  .hero-office { font-size: 18px; }
  .hero-service { margin-top: 2px; font-size: 14px; text-align: left; }
  .hero-layout { padding: 36px 0 48px; gap: 32px; }
  .hero-v2 h1 { font-size: 32px; line-height: 1.5; }
  .hero-v2 h1 br { display: none; }
  .hero-lead { margin-top: 18px; font-size: 17px; }
  .hero-proof { grid-template-columns: 1fr; margin-top: 28px; }
  .hero-proof div { padding: 14px 0; }
  .hero-proof div + div { border-left: 0; border-top: 1px solid var(--dads-border-light); }
  .hero-photo { max-height: 440px; }
  main > section:not(.hero-v2) { padding: 56px 0; }
  main > section h2 { font-size: 28px; }
  .checks { grid-template-columns: 1fr; margin-top: 32px; }
  .checks li:nth-child(odd) { border-right: 0; }
  .solve { margin-top: 28px; padding: 22px 20px; font-size: 21px; }
  .targets, .visual-band { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .target, .visual-band { padding: 24px 20px; }
  .visual-band figure, .visual-band img { height: 200px; }
  .reasons { grid-template-columns: 1fr; margin-top: 32px; }
  .reason { min-height: 0; padding: 24px 20px; }
  .profile-body { grid-template-columns: 96px 1fr; gap: 18px; }
  .specials, .cases, .price, .flow, .faq, .column-directory { margin-top: 32px; }
  .special { padding: 24px 20px; }
  .case { padding: 24px 0; }
  .price-body { padding: 24px 20px; }
  .yen { font-size: 38px; }
  .tbl { min-width: 640px; }
  .flow li { grid-template-columns: 48px 1fr; gap: 12px; }
  .faq summary { padding-right: 48px; }
  .faq .a { padding-right: 0; }
  .column-group summary { padding: 18px 48px 18px 16px; display: grid; }
  .column-group summary::after { right: 16px; top: 24px; }
  .column-group summary b { margin: 0; }
  .column-link { padding: 14px 16px; grid-template-columns: 32px 1fr 18px; }
  .article-header { min-height: 78px; padding: 10px 16px; gap: 14px; }
  .article-brand strong { font-size: 16px; }
  .article-brand span { font-size: 12px; }
  .article-index-link { min-height: 44px; padding: 0 12px; white-space: nowrap; }
  .article-shell { margin-top: 36px; margin-bottom: 64px; }
  .article-content { font-size: 16px; }
  .article-content h1 { font-size: 28px !important; }
  .article-content h2 { margin-top: 44px !important; padding-left: 14px !important; border-left-width: 6px !important; font-size: 23px !important; }
  .article-content table { font-size: 15px !important; }
  .article-pager { grid-template-columns: 1fr; }
  .column-index-hero { padding: 44px 0 36px; }
  .sticky-cta-inner {
    width: 100%;
    min-height: 116px;
    padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "brand hours"
      "mail phone";
    gap: 5px 8px;
  }
  .sticky-brand { grid-area: brand; min-width: 0; }
  .sticky-hours {
    grid-area: hours;
    min-width: 0;
    padding-left: 10px;
    border-left: 1px solid var(--dads-border-light);
  }
  .sticky-brand strong { font-size: 13px; white-space: nowrap; }
  .sticky-brand span { font-size: 10px; }
  .sticky-hours strong { font-size: 12px; }
  .sticky-hours span { font-size: 10px; white-space: nowrap; }
  .sticky-mail, .sticky-phone { min-width: 0; min-height: 54px; padding: 7px 8px; }
  .sticky-mail { grid-area: mail; font-size: 14px; text-align: center; }
  .sticky-phone { grid-area: phone; }
  .sticky-phone span { font-size: 16px; }
  .sticky-phone small { font-size: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* WordPress article and archive additions */
:root {
  --dads-blue: #0017c1;
  --dads-blue-dark: #000b7a;
  --dads-text: #1a1a1a;
  --dads-subtle: #626264;
  --dads-border: #d9d9d9;
  --dads-surface: #f7f7f7;
  --dads-focus: #ffd43b;
}

html { scroll-behavior: smooth; }
body { color: var(--dads-text); background: #fff; }
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible {
  outline: 4px solid var(--dads-focus);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-skip-link:focus {
  position: fixed;
  z-index: 10000;
  top: 8px;
  left: 8px;
  width: auto;
  height: auto;
  clip: auto;
  padding: 10px 14px;
  background: #fff;
  color: var(--dads-blue);
  border: 2px solid var(--dads-blue);
}

.wp-site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--dads-border);
  backdrop-filter: blur(10px);
}

.wp-site-header-inner {
  max-width: 1120px;
  margin: 0 auto;
  min-height: 72px;
  padding: 12px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.wp-brand {
  color: var(--dads-text);
  text-decoration: none;
  line-height: 1.35;
}

.wp-brand strong,
.wp-brand span { display: block; }
.wp-brand strong { font-size: 18px; letter-spacing: .05em; }
.wp-brand span { margin-top: 2px; color: var(--dads-subtle); font-size: 12px; }

.wp-nav { display: flex; align-items: center; gap: 20px; }
.wp-nav a {
  color: var(--dads-text);
  font-weight: 700;
  font-size: 14px;
  text-underline-offset: 4px;
}

.archive-hero {
  padding: 72px 24px 52px;
  background: linear-gradient(180deg, #eef3ff 0%, #fff 100%);
  border-bottom: 1px solid var(--dads-border);
}

.archive-hero-inner,
.posts-area,
.single-shell,
.not-found { max-width: 1120px; margin: 0 auto; }

.archive-kicker {
  margin: 0 0 12px;
  color: var(--dads-blue);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}

.archive-hero h1 {
  margin: 0;
  max-width: 800px;
  font-size: clamp(32px, 5vw, 56px);
  line-height: 1.3;
  letter-spacing: -.02em;
}

.archive-lead {
  max-width: 720px;
  margin: 20px 0 0;
  color: var(--dads-subtle);
  font-size: 17px;
  line-height: 1.9;
}

.posts-area { padding: 48px 24px 120px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 32px; }
.filter-chip {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #949497;
  border-radius: 999px;
  color: var(--dads-text);
  background: #fff;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
}
.filter-chip:hover,
.filter-chip[aria-current="page"] { border-color: var(--dads-blue); color: var(--dads-blue); background: #eef3ff; }

.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.post-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--dads-border);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.post-card-body { padding: 24px; display: flex; flex: 1; flex-direction: column; }
.post-card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--dads-subtle); font-size: 12px; }
.post-card-category { color: var(--dads-blue); font-weight: 700; }
.post-card h2 { margin: 14px 0 12px; font-size: 20px; line-height: 1.55; }
.post-card h2 a { color: var(--dads-text); text-decoration: none; }
.post-card h2 a:hover { color: var(--dads-blue); text-decoration: underline; text-underline-offset: 4px; }
.post-card p { margin: 0 0 20px; color: var(--dads-subtle); font-size: 14px; line-height: 1.8; }
.post-card-more { margin-top: auto; color: var(--dads-blue); font-weight: 700; text-underline-offset: 4px; }

.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #949497;
  color: var(--dads-text);
  text-decoration: none;
}
.pagination .current { border-color: var(--dads-blue); color: #fff; background: var(--dads-blue); }

.single-main { padding: 30px 24px 140px; }
.single-shell { max-width: 820px; }
.wp-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 36px;
  color: var(--dads-subtle);
  font-size: 13px;
}
.wp-breadcrumbs a { color: var(--dads-blue); text-underline-offset: 3px; }

.single-category { margin-bottom: 12px; color: var(--dads-blue); font-size: 14px; font-weight: 700; }
.single-title { margin: 0; font-size: clamp(30px, 5vw, 48px); line-height: 1.4; letter-spacing: -.02em; }
.single-meta { margin: 20px 0 40px; padding-bottom: 24px; border-bottom: 1px solid var(--dads-border); color: var(--dads-subtle); font-size: 14px; }

.entry-content { font-size: 16px; line-height: 2; overflow-wrap: anywhere; }
.entry-content > * { max-width: 100%; }
.entry-content p { margin: 0 0 1.5em; }
.entry-content h2 {
  margin: 64px 0 22px;
  padding: 0 0 12px;
  border-bottom: 3px solid var(--dads-blue);
  font-size: 28px;
  line-height: 1.5;
}
.entry-content h3 { margin: 42px 0 16px; font-size: 22px; line-height: 1.55; }
.entry-content h4 { margin: 32px 0 12px; font-size: 18px; }
.entry-content a { color: var(--dads-blue); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.entry-content ul,
.entry-content ol { margin: 0 0 1.8em; padding-left: 1.5em; }
.entry-content li + li { margin-top: .55em; }
.entry-content blockquote,
.article-callout,
.article-summary {
  margin: 28px 0;
  padding: 20px 22px;
  border-left: 4px solid var(--dads-blue);
  background: #f5f7ff;
}
.article-summary { border: 1px solid #b9c6ff; border-left-width: 4px; border-radius: 4px; }
.article-callout .article-callout { margin: 12px 0; background: #fff; border-color: #949497; }
.article-table-scroll { max-width: 100%; margin: 24px 0; overflow-x: auto; }
.entry-content table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 14px; line-height: 1.65; }
.entry-content th,
.entry-content td { padding: 12px 14px; border: 1px solid #949497; text-align: left; vertical-align: top; }
.entry-content th { background: var(--dads-surface); font-weight: 700; }

.post-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 44px; }
.post-tags a { padding: 6px 10px; border: 1px solid var(--dads-border); border-radius: 999px; color: var(--dads-text); font-size: 13px; text-decoration: none; }
.author-card { margin-top: 48px; padding: 24px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-surface); }
.author-card strong { display: block; margin-bottom: 8px; font-size: 18px; }
.author-card p { margin: 0; color: var(--dads-subtle); line-height: 1.8; }

.related-posts { margin-top: 72px; padding-top: 36px; border-top: 1px solid var(--dads-border); }
.related-posts h2 { margin: 0 0 24px; font-size: 26px; }
.related-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.related-list a { display: block; padding: 18px; border: 1px solid var(--dads-border); border-radius: 8px; color: var(--dads-text); text-decoration: none; font-weight: 700; line-height: 1.65; }
.related-list a:hover { border-color: var(--dads-blue); color: var(--dads-blue); }

.front-column-preview { padding: 88px 24px 120px; background: #fff; }
.front-column-preview .wrap { max-width: 1120px; }
.front-column-preview .post-grid { margin-top: 36px; }
.front-column-actions { margin-top: 36px; text-align: center; }
.front-column-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 12px 24px;
  border: 2px solid var(--dads-blue);
  border-radius: 4px;
  color: var(--dads-blue);
  background: #fff;
  font-weight: 700;
  text-decoration: none;
}
.front-column-button:hover { color: #fff; background: var(--dads-blue); }

.empty-state { padding: 48px 24px; border: 1px solid var(--dads-border); background: var(--dads-surface); text-align: center; }
.not-found { padding: 100px 24px 160px; }
.not-found h1 { font-size: clamp(32px, 5vw, 52px); }

@media (max-width: 900px) {
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .related-list { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .wp-site-header-inner { min-height: 64px; padding: 10px 16px; }
  .wp-brand strong { font-size: 15px; }
  .wp-brand span { font-size: 10px; }
  .wp-nav { gap: 12px; }
  .wp-nav a { font-size: 13px; }
  .archive-hero { padding: 48px 16px 36px; }
  .posts-area { padding: 32px 16px 112px; }
  .post-grid { grid-template-columns: 1fr; gap: 16px; }
  .post-card-body { padding: 20px; }
  .single-main { padding: 22px 16px 120px; }
  .single-title { font-size: 30px; }
  .entry-content { font-size: 15px; line-height: 1.9; }
  .entry-content h2 { margin-top: 48px; font-size: 23px; }
  .entry-content h3 { font-size: 20px; }
  .entry-content table { min-width: 560px; font-size: 13px; }
  .front-column-preview { padding: 64px 16px 104px; }
}


/* Figma / Mitekaku 2026-09-28: homepage-only overrides */
body.home{--dads-blue: #0017c1; --dads-blue-dark: #000e7a; --dads-blue-light: #e8eaf8; --dads-link: #0017c1; --dads-visited: #5a1a8b; --dads-ink: #1a1a1a; --dads-muted: #626264; --dads-border: #949497; --dads-border-light: #d8d8db; --dads-bg: #ffffff; --dads-bg-subtle: #f5f5f7; --dads-focus: #ffd43d; --dads-white: #ffffff; --page: 1120px; --reading: 760px; --radius: 8px; --radius-sm: 4px;}
body.home *,body.home ::before,body.home ::after{box-sizing: border-box;}
body.home{scroll-behavior: smooth; scroll-padding-bottom: 112px;}
body.home{margin: 0px; padding-bottom: 92px; color: var(--dads-ink); background: var(--dads-bg); font-family: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; font-weight: 400; line-height: 1.7; letter-spacing: 0.02em; overflow-wrap: anywhere; text-size-adjust: 100%;}
body.home img{display: block; max-width: 100%; height: auto;}
body.home figure,body.home h1,body.home h2,body.home h3,body.home h4,body.home p,body.home dl,body.home dd{margin: 0px;}
body.home ul,body.home ol{margin: 0px;}
body.home button,body.home input,body.home textarea,body.home select{font: inherit;}
body.home a{color: var(--dads-link); text-decoration: underline 1px; text-underline-offset: 0.18em;}
body.home a:visited{color: var(--dads-visited);}
body.home a:hover{text-decoration-thickness: 2px;}
body.home a:focus-visible,body.home button:focus-visible,body.home summary:focus-visible{outline: 4px solid var(--dads-focus); outline-offset: 2px; box-shadow: rgb(0, 0, 0) 0px 0px 0px 2px;}
body.home .hero-accessible{position: absolute !important; width: 1px !important; height: 1px !important; padding: 0px !important; margin: -1px !important; overflow: hidden !important; clip: rect(0px, 0px, 0px, 0px) !important; white-space: nowrap !important; border: 0px !important;}
body.home .wrap{width: min(var(--page), calc(100% - 48px)); margin-inline: auto;}
body.home .narrow{width: min(var(--reading), 100%); margin-inline: auto;}
body.home .center{text-align: center;}
body.home .stack > * + *{margin-top: 16px;}
body.home .pale,body.home .column-section{background: var(--dads-bg-subtle);}
body.home .note{color: var(--dads-muted); font-size: 14px; line-height: 1.6;}
body.home .red{color: var(--dads-blue);}
body.home .hero-v2{border-top: 8px solid var(--dads-blue); border-bottom: 1px solid var(--dads-border-light); background: var(--dads-white);}
body.home .hero-composite{position: relative;}
body.home .hero-composite-picture{width: min(100%, 1672px); margin-inline: auto; display: block; background: var(--dads-white);}
body.home .hero-composite-picture img{width: 100%; height: auto;}
body.home .hero-brandline{width: min(var(--page), calc(100% - 48px)); min-height: 88px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; border-bottom: 1px solid var(--dads-border-light);}
body.home .hero-office{color: var(--dads-ink); font-size: 22px; font-weight: 700; line-height: 1.4;}
body.home .hero-service{color: var(--dads-muted); font-size: 16px; font-weight: 700; text-align: right;}
body.home .hero-layout{width: min(var(--page), calc(100% - 48px)); margin-inline: auto; padding: 56px 0px 64px; display: grid; grid-template-columns: minmax(0px, 1.15fr) minmax(300px, 0.85fr); gap: clamp(40px, 6vw, 80px); align-items: center;}
body.home .hero-message{min-width: 0px;}
body.home .hero-kicker{margin-bottom: 16px; color: var(--dads-blue); font-size: 16px; font-weight: 700;}
body.home .hero-v2 h1{max-width: 720px; font-size: clamp(34px, 4.5vw, 52px); font-weight: 700; line-height: 1.4; letter-spacing: 0.01em;}
body.home .hero-v2 h1 em{color: var(--dads-blue); font-style: normal;}
body.home .hero-lead{max-width: 680px; margin-top: 24px; font-size: 18px; line-height: 1.8;}
body.home .hero-proof{margin-top: 36px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border);}
body.home .hero-proof div{padding: 18px 16px;}
body.home .hero-proof div + div{border-left: 1px solid var(--dads-border-light);}
body.home .hero-proof dt{color: var(--dads-blue); font-size: 18px; font-weight: 700; line-height: 1.4;}
body.home .hero-proof dd{margin-top: 4px; color: var(--dads-muted); font-size: 14px; line-height: 1.5;}
body.home .hero-photo{overflow: hidden; border: 1px solid var(--dads-border-light); border-radius: var(--radius); background: var(--dads-bg-subtle); aspect-ratio: 4 / 5;}
body.home .hero-photo img{width: 100%; height: 100%; object-fit: cover; object-position: center center;}
body.home main > section:not(.hero-v2){padding: 80px 0px;}
body.home .h2mini{display: block; margin-bottom: 10px; color: var(--dads-blue); font-size: 16px; font-weight: 700; line-height: 1.5;}
body.home main > section h2{font-size: clamp(28px, 3.3vw, 40px); font-weight: 700; line-height: 1.5; letter-spacing: 0.01em;}
body.home main > section h3{font-size: 22px; font-weight: 700; line-height: 1.5;}
body.home .lead{color: var(--dads-muted); font-size: 17px; line-height: 1.8;}
body.home .checks{max-width: 920px; margin: 48px auto 0px; padding: 0px; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border);}
body.home .checks li{position: relative; min-height: 82px; padding: 20px 24px 20px 52px; border-bottom: 1px solid var(--dads-border-light);}
body.home .checks li:nth-child(2n+1){border-right: 1px solid var(--dads-border-light);}
body.home .checks li::before{content: "✓"; position: absolute; left: 20px; top: 20px; color: var(--dads-blue); font-weight: 700;}
body.home .solve{max-width: 920px; margin: 40px auto 0px; padding: 28px 32px; border-left: 8px solid var(--dads-blue); background: var(--dads-blue-light); font-size: 24px; font-weight: 700; line-height: 1.6;}
body.home .solve em{color: var(--dads-blue); font-style: normal;}
body.home .solve span{display: block; margin-top: 10px; font-size: 16px; font-weight: 400; line-height: 1.8;}
body.home .targets{margin-top: 48px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 24px;}
body.home .target{padding: 32px; border: 1px solid var(--dads-border); border-radius: var(--radius); background: var(--dads-white);}
body.home .target.alt{border-top: 8px solid var(--dads-blue);}
body.home .target h3{padding-bottom: 16px; border-bottom: 1px solid var(--dads-border-light);}
body.home .target ul{margin-top: 20px; padding-left: 1.4em;}
body.home .target li + li{margin-top: 10px;}
body.home .visual-band{margin-top: 32px; display: grid; grid-template-columns: 1.15fr 0.85fr; align-items: center; gap: 40px; padding: 32px; border: 1px solid var(--dads-border-light); background: var(--dads-white);}
body.home .visual-band p{margin-top: 16px; color: var(--dads-muted);}
body.home .visual-band figure{max-height: 260px; overflow: hidden;}
body.home .visual-band img{width: 100%; height: 260px; object-fit: cover;}
body.home .reasons{margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); border-top: 1px solid var(--dads-border); border-left: 1px solid var(--dads-border);}
body.home .reason{min-height: 260px; padding: 28px; border-right: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border);}
body.home .rno,body.home .case-no{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .reason h3{margin-top: 18px;}
body.home .reason h3 em{color: var(--dads-blue); font-style: normal;}
body.home .reason p{margin-top: 14px; color: var(--dads-muted);}
body.home .profile-body{margin-top: 24px; display: grid; grid-template-columns: 140px 1fr; gap: 24px;}
body.home .profile-body figure{overflow: hidden; border-radius: var(--radius-sm); aspect-ratio: 4 / 5;}
body.home .profile-body img{width: 100%; height: 100%; object-fit: cover; object-position: center top;}
body.home .profile-body p + p{margin-top: 12px;}
body.home .specials{margin-top: 48px; display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 24px;}
body.home .special{padding: 32px; border-top: 8px solid var(--dads-blue); background: var(--dads-white);}
body.home .special p{margin-top: 16px; color: var(--dads-muted);}
body.home .cases{max-width: 920px; margin: 48px auto 0px;}
body.home .case{padding: 32px 0px; border-top: 1px solid var(--dads-border);}
body.home .case:last-child{border-bottom: 1px solid var(--dads-border);}
body.home .case-head{display: flex; flex-wrap: wrap; gap: 16px; align-items: center;}
body.home .tag{padding: 4px 10px; border: 1px solid var(--dads-border); border-radius: var(--radius-sm); font-size: 14px; font-weight: 700;}
body.home .case h3{margin-top: 18px;}
body.home .case > p{margin-top: 12px;}
body.home .voice{margin-top: 18px; padding: 20px 24px; border-left: 4px solid var(--dads-border); background: var(--dads-bg-subtle);}
body.home .voice strong{display: block; margin-bottom: 6px;}
body.home .price{max-width: 920px; margin: 48px auto 0px; border: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .price-head{padding: 16px 24px; border-bottom: 1px solid var(--dads-border); background: var(--dads-ink); color: var(--dads-white); font-weight: 700;}
body.home .price-body{padding: 32px;}
body.home .yen{color: var(--dads-ink); font-size: 48px; font-weight: 700; line-height: 1.3;}
body.home .yen small{margin-left: 6px; font-size: 16px;}
body.home .price-body > p + p{margin-top: 16px;}
body.home .tbl-scroll{overflow-x: auto;}
body.home .tbl{width: 100%; border-collapse: collapse; border-top: 1px solid var(--dads-border);}
body.home .tbl th,body.home .tbl td{padding: 16px 20px; border-bottom: 1px solid var(--dads-border); border-right: 1px solid var(--dads-border); text-align: left; vertical-align: top;}
body.home .tbl th{width: 190px; background: var(--dads-white); font-weight: 700;}
body.home .tbl td:last-child{border-right: 0px;}
body.home .flow{max-width: 920px; margin: 48px auto 0px; padding: 0px; list-style: none; border-top: 1px solid var(--dads-border);}
body.home .flow li{display: grid; grid-template-columns: 72px 1fr; gap: 24px; padding: 24px 0px; border-bottom: 1px solid var(--dads-border);}
body.home .fnum{color: var(--dads-blue); font-weight: 700; font-variant-numeric: tabular-nums;}
body.home .flow p{margin-top: 6px; color: var(--dads-muted);}
body.home .faq{max-width: 920px; margin: 48px auto 0px; border-top: 1px solid var(--dads-border);}
body.home .faq details{border-bottom: 1px solid var(--dads-border);}
body.home .faq summary{position: relative; min-height: 72px; padding: 22px 56px 22px 0px; cursor: pointer; font-size: 17px; font-weight: 700; list-style: none;}
body.home .faq summary::-webkit-details-marker{display: none;}
body.home .faq summary::after{content: "+"; position: absolute; right: 16px; top: 16px; color: var(--dads-blue); font-size: 28px; font-weight: 400;}
body.home .faq details[open] summary::after{content: "−";}
body.home .faq .a{padding: 0px 56px 24px 0px; color: var(--dads-muted);}
body.home .column-directory{margin-top: 48px; border-top: 1px solid var(--dads-border);}
body.home .column-group{border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .column-group summary{position: relative; min-height: 96px; padding: 22px 64px 22px 24px; display: flex; justify-content: space-between; gap: 24px; align-items: center; cursor: pointer; list-style: none;}
body.home .column-group summary::-webkit-details-marker{display: none;}
body.home .column-group summary::after{content: "+"; position: absolute; right: 24px; top: 30px; color: var(--dads-blue); font-size: 24px;}
body.home .column-group[open] summary::after{content: "−";}
body.home .column-group summary span{display: grid; gap: 4px;}
body.home .column-group summary strong{font-size: 18px;}
body.home .column-group summary small{color: var(--dads-muted); font-size: 14px;}
body.home .column-group summary b{margin-right: 28px; color: var(--dads-muted); font-size: 14px; white-space: nowrap;}
body.home .column-links{border-top: 1px solid var(--dads-border-light);}
body.home .column-link{min-height: 64px; padding: 14px 24px; display: grid; grid-template-columns: 44px 1fr 24px; gap: 12px; align-items: center; color: var(--dads-link); text-decoration: underline;}
body.home .column-link + .column-link{border-top: 1px solid var(--dads-border-light);}
body.home .column-link:visited{color: var(--dads-visited);}
body.home .column-link:hover{background: var(--dads-blue-light);}
body.home .column-no{color: var(--dads-muted); font-size: 14px; font-variant-numeric: tabular-nums;}
body.home .column-arrow{color: currentcolor; font-size: 20px; text-align: right;}
body.home .article-header{min-height: 88px; padding: 0 max(24px, calc((100% - var(--page)) / 2)); display: flex; justify-content: space-between; gap: 32px; align-items: center; border-top: 8px solid var(--dads-blue); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .article-brand{display: grid; color: var(--dads-ink); text-decoration: none;}
body.home .article-brand:visited{color: var(--dads-ink);}
body.home .article-brand strong{font-size: 18px;}
body.home .article-brand span{color: var(--dads-muted); font-size: 14px;}
body.home .article-index-link{min-height: 48px; padding: 0px 18px; display: inline-flex; align-items: center; border: 2px solid var(--dads-blue); border-radius: var(--radius-sm); color: var(--dads-blue); font-weight: 700; text-decoration: none;}
body.home .article-index-link:visited{color: var(--dads-blue);}
body.home .article-index-link:hover{background: var(--dads-blue-light);}
body.home .breadcrumbs{width: min(var(--page), calc(100% - 48px)); margin: 18px auto 0px; display: flex; flex-wrap: wrap; gap: 8px; color: var(--dads-muted); font-size: 14px;}
body.home .article-shell{width: min(var(--reading), calc(100% - 48px)); margin: 48px auto 96px;}
body.home .article-category{display: inline-block; margin-bottom: 16px; padding: 6px 10px; border: 1px solid var(--dads-blue); border-radius: var(--radius-sm); color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .article-content{font-size: 17px; line-height: 1.8;}
body.home .article-content h1{letter-spacing: 0.01em; margin: 0px 0px 28px !important; font-size: clamp(30px, 4vw, 42px) !important; line-height: 1.5 !important;}
body.home .article-content h2{margin: 56px 0px 20px !important; padding: 12px 0px 12px 20px !important; border-top: 0px !important; border-right: 0px !important; border-bottom: 0px !important; border-image: none !important; border-left: 8px solid var(--dads-blue) !important; font-size: 26px !important; line-height: 1.5 !important;}
body.home .article-content h3{padding-bottom: 8px; border-bottom: 1px solid var(--dads-border); margin: 40px 0px 14px !important; font-size: 21px !important; line-height: 1.5 !important;}
body.home .article-content p{margin: 0px 0px 1.4em;}
body.home .article-content ul,body.home .article-content ol{margin: 20px 0px 28px !important; padding-left: 1.5em !important;}
body.home .article-content li + li{margin-top: 8px;}
body.home .article-content a{color: var(--dads-link) !important;}
body.home .article-content table{min-width: 600px; background: var(--dads-white); width: 100% !important; border-collapse: collapse !important; font-size: 16px !important;}
body.home .article-table-scroll{max-width: 100%; margin: 24px 0px; overflow-x: auto;}
body.home .article-table-scroll:focus-visible{outline: 4px solid var(--dads-focus); outline-offset: 2px;}
body.home .article-table-scroll table{margin: 0px !important;}
body.home .article-content th,body.home .article-content td{vertical-align: top; padding: 12px 14px !important; border: 1px solid var(--dads-border) !important; background: var(--dads-white) !important; color: var(--dads-ink) !important; text-align: left !important;}
body.home .article-content th{font-weight: 700;}
body.home .article-content blockquote{margin: 28px 0px; padding: 20px 24px; border-left: 8px solid var(--dads-blue); background: var(--dads-bg-subtle);}
body.home .article-content > div[style*="background"]{border: 1px solid var(--dads-border) !important; border-radius: var(--radius-sm) !important; background: var(--dads-bg-subtle) !important;}
body.home .article-related{margin-top: 72px; padding-top: 40px; border-top: 2px solid var(--dads-ink);}
body.home .article-section-label{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .article-related h2{margin-top: 8px; font-size: 28px;}
body.home .article-related-grid{margin-top: 24px; border-top: 1px solid var(--dads-border);}
body.home .back-to-columns{margin-top: 24px; text-align: right;}
body.home .article-pager{margin-top: 48px; display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 16px;}
body.home .article-pager a{min-height: 120px; padding: 20px; display: grid; align-content: start; border: 1px solid var(--dads-border); border-radius: var(--radius-sm);}
body.home .article-pager a span{margin-bottom: 6px; color: var(--dads-muted); font-size: 14px;}
body.home .column-index-hero{padding: 64px 0px 48px; border-bottom: 1px solid var(--dads-border);}
body.home .column-index-hero p{color: var(--dads-blue); font-size: 14px; font-weight: 700;}
body.home .column-index-hero h1{margin-top: 10px; font-size: clamp(34px, 4.5vw, 48px); line-height: 1.4;}
body.home .column-index-hero span{display: block; max-width: 760px; margin-top: 18px; color: var(--dads-muted);}
body.home .column-index-body{padding: 0px 0px 96px;}
body.home .column-index-page .column-directory{margin-top: 48px;}
body.home .column-total{margin-top: 8px;}
body.home .column-total a{font-weight: 700;}
body.home .topic-tiles{display: grid; grid-template-columns: repeat(3, minmax(0px, 1fr)); gap: 12px; margin-top: 36px;}
body.home .topic-tile{display: grid; gap: 7px; min-height: 164px; padding: 22px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-white); color: var(--dads-ink); text-decoration: none;}
body.home .topic-tile:visited{color: var(--dads-ink);}
body.home .topic-tile:hover{border-color: var(--dads-blue); background: var(--dads-blue-light);}
body.home .topic-tile > span{color: var(--dads-blue); font-size: 13px; font-weight: 700;}
body.home .topic-tile > strong{font-size: 18px; line-height: 1.45;}
body.home .topic-tile > small{color: var(--dads-muted); font-size: 13px; line-height: 1.7;}
body.home .home-topic-tiles{margin-top: 40px;}
body.home .home-column-directory{margin-top: 28px;}
body.home .home-featured-columns{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 0px 24px; margin-top: 40px; border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home .home-featured-columns .content-card{border-top: 1px solid var(--dads-border-light);}
body.home .home-featured-columns .content-card:nth-child(-n+2){border-top: 0px;}
body.home .column-total-bottom{margin-top: 28px; text-align: center;}
body.home .column-search{margin-top: 40px; padding: 24px; border: 1px solid var(--dads-border); border-radius: 8px; background: var(--dads-white);}
body.home .column-search label{display: block; margin-bottom: 10px; font-weight: 700;}
body.home .column-search > div{display: grid; grid-template-columns: 1fr auto; gap: 8px;}
body.home .column-search input{width: 100%; min-height: 48px; padding: 0px 14px; border: 1px solid var(--dads-border); border-radius: 4px; color: var(--dads-ink); font: inherit;}
body.home .column-search input:focus{outline: rgba(0, 23, 193, 0.22) solid 3px; border-color: var(--dads-blue);}
body.home .column-search button{min-height: 48px; padding: 0px 18px; border: 1px solid var(--dads-blue); border-radius: 4px; background: var(--dads-white); color: var(--dads-blue); font-style: inherit; font-variant: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-weight: 700; cursor: pointer;}
body.home .column-search p{margin-top: 10px; color: var(--dads-muted); font-size: 14px;}
body.home .content-card{position: relative; display: grid; grid-template-columns: minmax(115px, 0.28fr) minmax(0px, 1fr) 24px; align-items: center; gap: 16px; min-height: 74px; padding: 15px 20px; color: var(--dads-ink); text-decoration: none;}
body.home .content-card + .content-card{border-top: 1px solid var(--dads-border-light);}
body.home .content-card:visited{color: var(--dads-visited);}
body.home .content-card:hover{background: var(--dads-blue-light);}
body.home .content-card[hidden]{display: none;}
body.home .content-card-meta{display: grid; gap: 2px; color: var(--dads-muted); font-size: 12px; line-height: 1.45;}
body.home .content-card-meta b{color: var(--dads-blue); font-size: 13px;}
body.home .content-card > strong{font-size: 15px; line-height: 1.65;}
body.home .content-card-arrow{color: var(--dads-blue); font-size: 20px; text-align: right;}
body.home .article-taxonomy{display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px;}
body.home .article-taxonomy .article-category{margin: 0px; text-decoration: none;}
body.home .article-tag{display: inline-flex; align-items: center; min-height: 30px; padding: 3px 10px; border: 1px solid var(--dads-border); border-radius: 999px; color: var(--dads-muted); background: var(--dads-white); font-size: 12px; font-weight: 700;}
body.home .article-related-grid{border-bottom: 1px solid var(--dads-border);}
body.home .article-related-links{display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 20px;}
body.home .article-related-links a{font-weight: 700;}
body.home .topic-hero{padding-bottom: 44px;}
body.home .topic-page-heading{display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-top: 40px;}
body.home .topic-page-heading p{color: var(--dads-muted);}
body.home .topic-page-heading a{font-weight: 700;}
body.home .topic-article-grid{margin-top: 18px; border-top: 1px solid var(--dads-border); border-bottom: 1px solid var(--dads-border); background: var(--dads-white);}
body.home footer{padding: 48px 0px; border-top: 1px solid var(--dads-border); background: var(--dads-bg-subtle);}
body.home footer .wrap{display: grid; gap: 8px;}
body.home footer b{font-size: 18px;}
body.home footer span,body.home footer small{color: var(--dads-muted); font-size: 14px;}
body.home .footer-info,body.home .footer-home{width: fit-content; margin-top: 8px;}
body.home .sticky-cta{position: fixed; z-index: 100; inset: auto 0px 0px; background: var(--dads-white); border-top: 1px solid var(--dads-border); box-shadow: rgba(0, 0, 0, 0.12) 0px -4px 16px;}
body.home .sticky-cta-inner{width: min(var(--page), calc(100% - 32px)); min-height: 84px; margin-inline: auto; display: grid; grid-template-columns: minmax(220px, 1fr) auto auto auto; gap: 12px; align-items: center;}
body.home .sticky-brand,body.home .sticky-hours{display: grid; align-content: center;}
body.home .sticky-brand strong{color: var(--dads-ink); font-size: 16px; line-height: 1.4;}
body.home .sticky-brand span{color: var(--dads-muted); font-size: 12px; line-height: 1.4;}
body.home .sticky-hours{min-width: 176px; padding-left: 16px; border-left: 1px solid var(--dads-border-light);}
body.home .sticky-hours strong{color: var(--dads-blue); font-size: 14px; line-height: 1.4;}
body.home .sticky-hours span{color: var(--dads-muted); font-size: 12px; line-height: 1.4;}
body.home .sticky-mail,body.home .sticky-phone{min-height: 52px; padding: 0px 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); font-weight: 700; text-decoration: none;}
body.home .sticky-mail{gap: 8px; border: 2px solid var(--dads-blue); color: var(--dads-blue); background: var(--dads-white);}
body.home .sticky-mail:visited{color: var(--dads-blue);}
body.home .sticky-mail:hover{background: var(--dads-blue-light);}
body.home .sticky-phone{min-width: 236px; display: grid; align-content: center; background: var(--dads-blue); color: var(--dads-white); text-align: center;}
body.home .sticky-phone:visited{color: var(--dads-white);}
body.home .sticky-phone:hover{background: var(--dads-blue-dark);}
body.home .sticky-phone span{font-size: 18px; line-height: 1.25;}
body.home .sticky-phone small{font-size: 12px; font-weight: 400; line-height: 1.35;}
@media (max-width: 900px){body.home .hero-layout{grid-template-columns: 1fr; padding-top: 44px;}
body.home .hero-photo{width: min(520px, 100%); max-height: 560px; margin-inline: auto;}
body.home .reasons{grid-template-columns: repeat(2, minmax(0px, 1fr));}
body.home .specials{grid-template-columns: 1fr;}
body.home .sticky-cta-inner{grid-template-columns: minmax(180px, 1fr) auto auto auto; gap: 8px;}
body.home .sticky-hours{min-width: 150px; padding-left: 10px;}
body.home .sticky-mail,body.home .sticky-phone{padding-inline: 14px;}
body.home .topic-tiles{grid-template-columns: repeat(2, minmax(0px, 1fr));}}
@media (max-width: 680px){body.home{padding-bottom: 124px; font-size: 16px;}
body.home .wrap,body.home .narrow,body.home .breadcrumbs,body.home .article-shell{width: min(100% - 32px, var(--page));}
body.home .hero-brandline,body.home .hero-layout{width: min(100% - 32px, var(--page));}
body.home .hero-composite-picture{width: 100%;}
body.home .hero-brandline{min-height: 76px; display: block; padding: 14px 0px;}
body.home .hero-office{font-size: 18px;}
body.home .hero-service{margin-top: 2px; font-size: 14px; text-align: left;}
body.home .hero-layout{padding: 36px 0px 48px; gap: 32px;}
body.home .hero-v2 h1{font-size: 32px; line-height: 1.5;}
body.home .hero-v2 h1 br{display: none;}
body.home .hero-lead{margin-top: 18px; font-size: 17px;}
body.home .hero-proof{grid-template-columns: 1fr; margin-top: 28px;}
body.home .hero-proof div{padding: 14px 0px;}
body.home .hero-proof div + div{border-left: 0px; border-top: 1px solid var(--dads-border-light);}
body.home .hero-photo{max-height: 440px;}
body.home main > section:not(.hero-v2){padding: 56px 0px;}
body.home main > section h2{font-size: 28px;}
body.home .checks{grid-template-columns: 1fr; margin-top: 32px;}
body.home .checks li:nth-child(2n+1){border-right: 0px;}
body.home .solve{margin-top: 28px; padding: 22px 20px; font-size: 21px;}
body.home .targets,body.home .visual-band{grid-template-columns: 1fr; gap: 16px; margin-top: 32px;}
body.home .target,body.home .visual-band{padding: 24px 20px;}
body.home .visual-band figure,body.home .visual-band img{height: 200px;}
body.home .reasons{grid-template-columns: 1fr; margin-top: 32px;}
body.home .reason{min-height: 0px; padding: 24px 20px;}
body.home .profile-body{grid-template-columns: 96px 1fr; gap: 18px;}
body.home .specials,body.home .cases,body.home .price,body.home .flow,body.home .faq,body.home .column-directory{margin-top: 32px;}
body.home .special{padding: 24px 20px;}
body.home .case{padding: 24px 0px;}
body.home .price-body{padding: 24px 20px;}
body.home .yen{font-size: 38px;}
body.home .tbl{min-width: 640px;}
body.home .flow li{grid-template-columns: 48px 1fr; gap: 12px;}
body.home .faq summary{padding-right: 48px;}
body.home .faq .a{padding-right: 0px;}
body.home .column-group summary{padding: 18px 48px 18px 16px; display: grid;}
body.home .column-group summary::after{right: 16px; top: 24px;}
body.home .column-group summary b{margin: 0px;}
body.home .column-link{padding: 14px 16px; grid-template-columns: 32px 1fr 18px;}
body.home .topic-tiles{grid-template-columns: 1fr; gap: 8px; margin-top: 28px;}
body.home .topic-tile{min-height: auto; padding: 18px;}
body.home .column-search{margin-top: 28px; padding: 18px;}
body.home .column-search > div{grid-template-columns: 1fr;}
body.home .content-card{grid-template-columns: 1fr 18px; gap: 10px; padding: 14px 16px;}
body.home .content-card-meta{grid-column: 1 / -1; display: flex; gap: 8px;}
body.home .content-card > strong{grid-column: 1;}
body.home .content-card-arrow{grid-column: 2;}
body.home .home-featured-columns{grid-template-columns: 1fr; margin-top: 32px;}
body.home .home-featured-columns .content-card:nth-child(2){border-top: 1px solid var(--dads-border-light);}
body.home .article-related-links{display: grid; justify-content: start;}
body.home .article-header{min-height: 78px; padding: 10px 16px; gap: 14px;}
body.home .article-brand strong{font-size: 16px;}
body.home .article-brand span{font-size: 12px;}
body.home .article-index-link{min-height: 44px; padding: 0px 12px; white-space: nowrap;}
body.home .article-shell{margin-top: 36px; margin-bottom: 64px;}
body.home .article-content{font-size: 16px;}
body.home .article-content h1{font-size: 28px !important;}
body.home .article-content h2{margin-top: 44px !important; padding-left: 14px !important; border-left-width: 6px !important; font-size: 23px !important;}
body.home .article-content table{font-size: 15px !important;}
body.home .article-pager{grid-template-columns: 1fr;}
body.home .column-index-hero{padding: 44px 0px 36px;}
body.home .sticky-cta-inner{width: 100%; min-height: 116px; padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); grid-template-columns: 1fr 1fr; grid-template-areas: "brand hours" "mail phone"; gap: 5px 8px;}
body.home .sticky-brand{grid-area: brand; min-width: 0px;}
body.home .sticky-hours{grid-area: hours; min-width: 0px; padding-left: 10px; border-left: 1px solid var(--dads-border-light);}
body.home .sticky-brand strong{font-size: 13px; white-space: nowrap;}
body.home .sticky-brand span{font-size: 10px;}
body.home .sticky-hours strong{font-size: 12px;}
body.home .sticky-hours span{font-size: 10px; white-space: nowrap;}
body.home .sticky-mail,body.home .sticky-phone{min-width: 0px; min-height: 54px; padding: 7px 8px;}
body.home .sticky-mail{grid-area: mail; font-size: 14px; text-align: center;}
body.home .sticky-phone{grid-area: phone;}
body.home .sticky-phone span{font-size: 16px;}
body.home .sticky-phone small{font-size: 10px;}}
@media (prefers-reduced-motion: reduce){body.home{scroll-behavior: auto;}}
body.home #main-content > section .heading-line{display: inline-block;}
body.home #main-content > section h2,body.home #main-content > section h3{overflow-wrap: normal; word-break: normal; text-wrap: balance;}
body.home #main-content > section .target{border-top: 8px solid var(--dads-blue);}
body.home .targets-business{grid-template-columns: minmax(0px, 1fr);}
body.home .targets-business ul{display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 12px 40px;}
body.home .targets-business li + li{margin-top: 0px;}
body.home .profile-body{grid-template-columns: 140px minmax(0px, 1fr); align-items: start;}
body.home .profile-body .note{grid-column: 1 / -1; margin-top: 0px;}
body.home .case-visual{width: min(920px, 100%); margin: 36px auto 0px;}
body.home .case-visual img{width: 100%; height: 280px; object-fit: cover; object-position: center 57%; border-radius: var(--radius-sm);}
body.home .case-visual figcaption{margin-top: 6px; text-align: right; color: var(--dads-muted); font-size: 13px;}
body.home .case-visual + .cases{margin-top: 24px;}
body.home #case .case h3 .heading-line{margin-right: 0.15em;}
body.home #main-content > #case{background: var(--dads-bg-subtle);}
body.home #case .voice{background: var(--dads-white);}
body.home #main-content > #price{background: var(--dads-white);}
body.home #main-content > #flow{background: var(--dads-bg-subtle);}
body.home #main-content > #faq{background: var(--dads-white);}
@media (max-width: 680px){body.home #main-content > section .narrow{width: 100%;}
body.home #main-content > section h2{font-size: clamp(1.2rem, 5.6vw, 1.6rem); line-height: 1.6; letter-spacing: 0px;}
body.home #main-content > section h2 > .heading-line{display: block;}
body.home #main-content > section h3{font-size: 1.2rem; line-height: 1.65;}
body.home #main-content > section .lead{font-size: 1rem;}
body.home #main-content > section .h2mini{font-size: 0.875rem;}
body.home .targets-business ul{grid-template-columns: minmax(0px, 1fr); gap: 12px;}
body.home .profile-body{grid-template-columns: 88px minmax(0px, 1fr); gap: 16px;}
body.home .profile-body .note{grid-column: 1 / -1;}
body.home .case-visual{margin-top: 28px;}
body.home .case-visual img{height: 220px;}
body.home #case .case h3 .heading-line{display: block; margin-right: 0px;}
body.home #case .case h3{font-size: 1.1rem; letter-spacing: 0px;}
body.home #main-content .reason h3 .heading-line{display: block;}
body.home #main-content .reason h3{font-size: 1.15rem; letter-spacing: 0px;}
body.home .solve{font-size: 1.2rem; text-wrap: pretty;}
body.home #price .tbl{min-width: 0px; table-layout: fixed;}
body.home #price .tbl th{width: 30%;}
body.home #price .tbl th,body.home #price .tbl td{padding: 14px 12px; font-size: 0.875rem;}
body.home #flow .flow li{grid-template-columns: 32px minmax(0px, 1fr); gap: 12px;}
body.home #main-content .faq summary{overflow-wrap: normal; word-break: normal;}}
body.home .hero-v2.hero-composite{border: 0px;}
body.home .hero-composite-picture{width: 100%;}

/* トップページをヘッダー・FVと同じ1410px基準に統一 */
body.home #main-content{
  width:100%;
  max-width:1410px;
  margin-left:auto;
  margin-right:auto;
  overflow:hidden;
}
body.home #main-content > section{width:100%;}
@media (max-width:680px){
  body.home #main-content{max-width:none;}
}
