/* Noto Sans JP: locally hosted variable subset. License: fonts/OFL.txt. */
@font-face {
  font-family: "Noto Sans JP";
  src: url("fonts/noto-sans-jp-lp.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --heading-description-width: 738px;
  font-family: var(--font);
  font-synthesis: none;
  line-height: 1.8;
  letter-spacing: normal;
}

body { font-weight: 500; }
strong, b { font-weight: 700; }
h1, h2, h3 { font-family: var(--font); line-height: 1.45; letter-spacing: normal; }
h1 { font-weight: 900; line-height: 1.12; letter-spacing: -.04em; }
h1 .hero-context { font-weight: 900; letter-spacing: -.015em; }
h2 { font-weight: 800; }
h3 { font-weight: 700; }
.hero-lead, .section-heading > p { font-weight: 500; line-height: 1.8; }
.section-heading > .section-note { font-weight: 400; }
.section-note, .small-note, .cta-note, .hero-figure figcaption, .case-visual figcaption,
.price-value + p, .price-panel .small-note, .responsibility p + p,
.preview-notice {
  font-weight: 400; line-height: 1.75;
}
.hero-audience, .section-label, .section-kicker, .case-label, .visual-caption,
.price-label, .price-factors-title, label, #review-values dt {
  font-weight: 700; line-height: 1.6;
}
.section-label { letter-spacing: .04em; }
.button { font-weight: 700; line-height: 1.5; }
.text-link { font-weight: 700; line-height: 1.65; }
.brand strong { font-weight: 900; line-height: 1.3; }
.brand small { font-weight: 500; line-height: 1.5; }
.site-nav { font-weight: 700; line-height: 1.5; }
.menu-toggle { font-weight: 500; }
.problem-list p { line-height: 1.8; }
.problem-list li::before { font-family: var(--font-accent); font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; }
.team-role p, .point-copy p, .case-copy > p,
.responsibility p, .flow-list p, .faq-answer { line-height: 1.8; }
.role-heading span, .point-number, .flow-number {
  font-family: var(--font-accent); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1;
}
.custom-points h3 { font-weight: 800; line-height: 1.5; }
.point-visual > p { line-height: 1.75; }
.workflow-line span, .workflow-roles, .rule-sheet p, .rule-stamp, .role-tags li {
  line-height: 1.6;
}
.workflow-line span, .workflow-roles, .rule-stamp { font-weight: 700; }
.tool-stack span { font-weight: 700; line-height: 1.6; }
.case-tabs button { font-family: var(--font); font-weight: 700; line-height: 1.5; }
.case-copy h3 { font-weight: 800; line-height: 1.5; }
.case-copy .human-point { line-height: 1.8; }
.case-visual::before { letter-spacing: 2px; }
.responsibility h3, .flow-list h3 { font-weight: 700; }
.price-value { font-weight: 900; line-height: 1.5; }
.price-panel ul { line-height: 1.9; }
.faq-list summary { font-weight: 700; line-height: 1.7; }
.faq-list summary > span { font-weight: 700; line-height: 1.4; }
.form-title { font-weight: 700; line-height: 1.5; }
.required { font-weight: 500; }
input, textarea { font-weight: 400; line-height: 1.7; }
#review-note { line-height: 1.75; }

/* AIジシャカの役割別サイズ。FVは太さ・行間・字間も統一し、ブランド色は維持。 */
@font-face {
  font-family: "Poppins";
  src: url("fonts/poppins-bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  --font-accent: "Poppins", "Noto Sans JP", sans-serif;
  --type-hero: clamp(48px, 4.2vw, 64px);
  --type-section: clamp(34px, 4vw, 56px);
  --type-subheading: clamp(30px, 3vw, 38px);
  --type-feature: clamp(27px, 2.6vw, 36px);
  --type-card: 20px;
  --type-body: 16px;
  --type-lead: 18px;
  --type-label: 15px;
  --type-note: 13px;
  --type-cta: 18px;
}
body, .text-link, #review-values { font-size: var(--type-body); }
h1 { font-size: var(--type-hero); }
h1 .hero-context { font-size: .72em; }
h2 { font-size: var(--type-section); }
h3, .form-title { font-size: var(--type-card); }
.related-service h2 { font-size: clamp(22px, 2.3vw, 30px); line-height: 1.5; }
.related-service-label, .related-service-caption { font-size: var(--type-note); }
.related-service-label, .related-service-link { font-weight: 700; }
.related-service-link { font-size: var(--type-body); line-height: 1.6; }
.hero-lead, .section-heading > p { font-size: var(--type-lead); }
.section-note, .small-note, .hero-figure figcaption, .price-value + p,
.price-panel .small-note, .responsibility p + p,
.section-heading > .section-note { font-size: var(--type-note); }
.cta-note { font-size: 15px; }
.case-visual figcaption { font-size: 15px; }
.section-label, .section-kicker, .visual-caption,
.price-label, .price-factors-title { font-size: var(--type-label); }
.hero-audience { font-size: 26px; }
.hero-audience { font-weight: 900; line-height: 1.4; letter-spacing: 0; }
.hero h1 .highlight { font-size: .78em; }
.hero .hero-lead { line-height: 1.9; letter-spacing: .005em; }
.hero .hero-button { font-weight: 800; line-height: 1.4; }
.hero-figure figcaption { font-size: 18px; font-weight: 500; line-height: 1.8; }
.team-design-note { font-size: 20px; font-weight: 500; line-height: 1.8; }
.button { font-size: var(--type-cta); }
.button-small { font-size: 14px; }
.brand strong { font-size: 26px; }
.brand small { font-size: 14px; }
.site-nav { font-size: 16px; }
.menu-toggle { font-size: 13px; }
.problem-list p, .point-copy p, .case-copy > p { font-size: 17px; }
.role-heading h3 { font-size: 18px; }
.team-role p, .responsibility p, .flow-list p, .faq-answer { font-size: 16px; }
.role-heading span { font-size: 14px; }
.point-number { font-size: 60px; }
.flow-number { font-size: 22px; }
.custom-points h3 { font-size: var(--type-feature); }
.point-visual > p, .tool-stack span { font-size: var(--type-label); }
.workflow-line span, .workflow-roles, .rule-sheet p, .rule-stamp { font-size: 13px; }
.role-tags li { font-size: 17px; }
.case-tabs button { font-size: 16px; }
.case-copy h3 { font-size: clamp(24px, 2.2vw, 28px); }
.case-label { font-size: 18px; }
.case-copy .human-point { font-size: 15px; }
.case-visual::before { font-size: 8px; }
.responsibility h3, .flow-list h3 { font-size: var(--type-card); }
.price-value { font-size: var(--type-subheading); }
.price-panel ul { font-size: 16px; }
.faq-list summary { font-size: clamp(16px, 1.5vw, 18px); }
.faq-list summary > span { font-family: var(--font-accent); font-size: 24px; }
#consultation-title { font-size: clamp(36px, 2.7vw, 42px); }
label, #review-values dt { font-size: 17px; }
.required { font-size: 13px; }
input, textarea { font-size: 16px; }
input::placeholder, textarea::placeholder, .preview-notice, #review-note { font-size: 14px; }
#review-submit { font-size: 17px; }
.dialog-content h2 { font-size: var(--type-subheading); }
@media (max-width: 1279px) {
  .site-nav { font-size: 15px; }
}
@media (max-width: 1180px) {
  .brand strong { font-size: 24px; }
  .point-number { font-size: 54px; }
}
@media (max-width: 1100px) {
  :root { --type-hero: clamp(48px, 4.4vw, 52px); }
}
@media (max-width: 1024px) {
  .site-nav { font-size: 16px; }
  .point-number { font-size: 48px; }
}
@media (max-width: 960px) {
  :root { --type-hero: clamp(42px, 4.8vw, 46px); }
}
@media (max-width: 768px) {
  .case-copy h3 { font-size: clamp(21px, 6vw, 23px); }
  .case-label { font-size: 14px; }
  .case-copy > p, .role-tags li { font-size: 16px; }
  #consultation-title { font-size: clamp(30px, 8.8vw, 36px); }
}
@media (max-width: 767px) {
  :root {
    --type-hero: clamp(35px, 9.45vw, 38px);
    --type-section: clamp(26px, 7.25vw, 28px);
    --type-subheading: clamp(27px, 7.8vw, 31px);
    --type-feature: clamp(18px, 5.5vw, 23px);
    --type-card: 18px;
    --type-body: 15px;
    --type-lead: 16px;
    --type-cta: 16px;
  }
  h1 .hero-context { font-size: .8em; }
  .hero h1 { line-height: 1.18; letter-spacing: -.025em; }
  .hero h1 .highlight { font-size: clamp(27px, 7.6vw, 30px); }
  .hero-figure figcaption { font-size: 16px; }
  .team-design-note { font-size: 18px; }
  .hero-audience { font-size: clamp(16px, 5vw, 21px); }
  .brand strong { font-size: 23px; }
  .brand small { font-size: 10px; }
  .problem-list p, .point-copy p { font-size: 16px; }
  .problem-list li::before { font-size: 17px; }
  .problem-list h3, .custom-points h3, .case-copy h3 {
    font-size: clamp(12.5px, 3.7vw, 14px);
    letter-spacing: -.035em;
  }
  .role-heading h3 { font-size: 16px; }
  .team-role p { font-size: 15px; }
  .role-heading span { font-size: 13px; }
  .point-number { font-size: 52px; }
  .flow-number { font-size: 20px; }
  .faq-list summary { font-size: 16px; }
  .faq-answer { font-size: 15px; }
  .faq-list summary > span { font-size: 20px; }
}
@media (max-width: 640px) {
  label, #review-values dt, #review-submit { font-size: 16px; }
}
@media (max-width: 361px) {
  :root { --type-cta: 15px; }
}
@media (max-width: 360px) {
  .brand strong { font-size: 21px; }
  .point-number { font-size: 38px; }
}
