/* One shared type scale for the four insurance service pages.
   data-title-role declares meaning independently of page-specific markup.
   Header, footer, related navigation and illustrative UI retain their own roles. */
:root {
  --service-display: "Kaisei Tokumin", Georgia, serif;
  --service-sans: "Inter", Arial, sans-serif;
  --service-hero-size: clamp(50px, 4.7vw, 80px);
  --service-section-size: clamp(32px, 2.938vw, 48px);
  --service-card-size: 38px;
  --service-panel-size: clamp(28px, 2.222222vw, 32px);
  --service-small-size: 23px;
  --service-question-size: 19px;
}
/* The explicit page/role selectors win over the legacy per-page rules. */
body:is(.g-page,.cd-page,.cy-page) main [data-title-role] {
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  text-wrap: balance;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="hero"] {
  font-family: var(--service-display) !important;
  font-size: var(--service-hero-size) !important;
  font-weight: 400 !important;
  line-height: 1.13 !important;
  letter-spacing: -.035em !important;
  max-width: 850px !important;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="section"] {
  font-family: var(--service-display) !important;
  font-size: var(--service-section-size) !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: -.032em !important;
  max-width: 850px !important;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="card"] {
  font-family: var(--service-sans) !important;
  font-size: var(--service-card-size) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
  max-width: 620px !important;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="panel"] {
  font-family: var(--service-sans) !important;
  font-size: var(--service-panel-size) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: -.025em !important;
  max-width: 620px !important;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="small"] {
  font-family: var(--service-sans) !important;
  font-size: var(--service-small-size) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  letter-spacing: -.025em !important;
  max-width: 620px !important;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="question"] {
  font-family: var(--service-sans) !important;
  font-size: var(--service-question-size) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  letter-spacing: -.02em !important;
  max-width: none !important;
  text-wrap: pretty;
}
body:is(.g-page,.cd-page,.cy-page) main [data-title-role="note"] {
  font-family: var(--service-sans) !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  max-width: 850px !important;
}
@media (min-width:768px) and (max-width:1100px) {
  :root { --service-hero-size:54px; --service-section-size:36px; --service-small-size:21px; }
}
@media (max-width:767px) {
  :root {
    --service-hero-size:clamp(35px,10.7vw,48px);
    --service-section-size:32px;
    --service-card-size:32px;
    --service-panel-size:26px;
    --service-small-size:21px;
    --service-question-size:17px;
  }
  body:is(.g-page,.cd-page,.cy-page) main [data-title-role="hero"] { line-height:1.1 !important; max-width:500px !important; }
  body:is(.g-page,.cd-page,.cy-page) main [data-title-role="section"] { letter-spacing:-.025em !important; }
  body:is(.g-page,.cd-page,.cy-page) main :is([data-title-role="card"],[data-title-role="panel"]) { max-width:440px !important; }
}
@media (max-width:374px) {
  :root { --service-section-size:28px; --service-card-size:30px; --service-panel-size:24px; --service-small-size:19px; }
}
