@charset "UTF-8";



:root {
  
  --tt-w-site:    1240px;   
  --tt-w-article:  780px;   
  --tt-w-narrow:   940px;   
  --tt-pad-x:        4vw;   

  
  --tt-sec-pad:     40px;   
  --tt-sec-pad-lg:  56px;   
  --tt-sech-gap:    28px;   
  --tt-gap:         16px;   
  --tt-gap-row:     16px;   

  
  --tt-r-img:    3px;
  --tt-r-card:   5px;
  --tt-r-mid:    8px;
  --tt-r-lg:    10px;
  --tt-r-xl:    13px;
  --tt-r-pill: 50em;

  
  --tt-sh-card: 0 1px 2px 0 rgba(12, 39, 64, .10), 0 2px 8px 0 rgba(12, 39, 64, .16);
  --tt-sh-soft: 0 0 10px 0 rgba(28, 31, 35, .06);
  --tt-sh-fix:  0 -3px 6px -3px rgba(28, 31, 35, .18);

  
  --tt-font-num: Arial, Helvetica, "Helvetica Neue", sans-serif;

  
  --tt-dur: .25s;
}

@media (min-width: 960px) {
  :root {
    --tt-pad-x:      32px;
    --tt-sec-pad:    56px;
    --tt-sec-pad-lg: 80px;
    --tt-sech-gap:   35px;
    --tt-gap:        24px;
    --tt-gap-row:    20px;
  }
}
@media (min-width: 1200px) {
  :root { --tt-pad-x: 48px; }
}




.tt-shell {
  width: 100%;
  max-width: calc(var(--tt-w-site) + var(--tt-pad-x) * 2);
  margin-inline: auto;
  padding-inline: var(--tt-pad-x);
}
.tt-shell--narrow  { max-width: calc(var(--tt-w-narrow)  + var(--tt-pad-x) * 2); }
.tt-shell--article { max-width: calc(var(--tt-w-article) + var(--tt-pad-x) * 2); }
.tt-shell--flush   { padding-inline: 0; }


.tt-sec {
  padding-block: var(--tt-sec-pad);
}
.tt-sec--lg   { padding-block: var(--tt-sec-pad-lg); }
.tt-sec--tight{ padding-block: calc(var(--tt-sec-pad) * .6); }
.tt-sec--paper{ background: var(--tt-bg-white); }   
.tt-sec--soft { background: var(--tt-bg-soft); }    
.tt-sec--ink  { background: var(--tt-brand); color: #fff; }
.tt-sec--ink a { color: #fff; }


.tt-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tt-gap-row) var(--tt-gap);
}
@media (min-width: 600px) {
  .tt-grid    { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  .tt-grid    { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tt-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tt-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}


@media (min-width: 960px) {
  .tt-grid--5 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .tt-grid--5 > * { grid-column: span 2; }
  .tt-grid--5 > :nth-child(4),
  .tt-grid--5 > :nth-child(5) { grid-column: span 3; }
}


.tt-grid--stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}


.tt-sech {
  border-top: 3px solid var(--tt-brand);
  border-bottom: 1px solid var(--tt-line);
  padding: .55em 0 .4em;
  margin: 0 0 var(--tt-sech-gap);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .4em 1em;
}
.tt-sech__ttl {
  font-size: 20px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font-feature-settings: "palt" 1;
  letter-spacing: .01em;
}

.tt-sech__sub {
  font-size: 13px;
  line-height: 1.6;
  color: var(--tt-sub);
  margin: 0;
  font-weight: 400;
}

.tt-sech__no {
  flex: 0 0 auto;
  font-family: var(--tt-font-num);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  color: var(--tt-brand);
  letter-spacing: .08em;
}

.tt-sech__more {
  margin-inline-start: auto;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
@media (min-width: 960px) {
  .tt-sech__ttl  { font-size: 26px; }
  .tt-sech__sub  { font-size: 14px; }
  .tt-sech__more { font-size: 14px; }
}


.tt-groupt {
  display: flex;
  align-items: baseline;
  gap: .6em;
  margin: 0 0 14px;
  padding: 0 0 .3em;
  border-bottom: 1px solid var(--tt-line);
  font-size: 16px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-ink);
}
.tt-groupt::before {
  content: "";
  flex: 0 0 auto;
  width: 4px;
  height: 1em;
  background: var(--tt-accent);
  border-radius: 1px;
}
.tt-groupt__note {
  font-size: 12px;
  font-weight: 400;
  color: var(--tt-sub);
}
.tt-group + .tt-group { margin-top: 32px; }
@media (min-width: 960px) {
  .tt-groupt { font-size: 18px; }
  .tt-group + .tt-group { margin-top: 40px; }
}


.tt-lead {
  font-size: 15px;
  line-height: 1.9;
  color: var(--tt-ink);
  margin: calc(var(--tt-sech-gap) * -1 + 10px) 0 var(--tt-sech-gap);
  max-width: 62em;
}
@media (min-width: 960px) { .tt-lead { font-size: 16px; } }




.tt-card {
  display: flex;
  flex-direction: column;
  background: var(--tt-bg-white);
  border: 1px solid var(--tt-line);
  border-radius: var(--tt-r-card);
  overflow: hidden;
  min-width: 0;
}
.tt-card__thumb {
  position: relative;
  display: block;
  margin: 0;
  aspect-ratio: 240 / 146;   
  background: var(--tt-bg-soft);
  overflow: hidden;
}
.tt-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform var(--tt-dur) ease;
}

.tt-card__cat {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 1;
  background: var(--tt-accent);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.9;
  padding: 0 8px;
  border-radius: var(--tt-r-img);
  text-decoration: none;
  letter-spacing: .02em;
}
.tt-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  flex: 1 1 auto;
}
.tt-card__ttl {
  font-size: 15px;
  line-height: 1.55;
  font-weight: 700;
  margin: 0;
  color: var(--tt-ink);
  
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
.tt-card__ttl a { color: inherit; text-decoration: none; }
.tt-card__ttl a:hover { text-decoration: underline; }
.tt-card__ex {
  font-size: 13px;
  line-height: 1.7;
  color: var(--tt-sub);
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
.tt-card__meta {
  margin-top: auto;
  padding-top: 6px;
  display: flex;
  align-items: baseline;
  gap: .8em;
  font-size: 12px;
  color: var(--tt-sub);
  font-variant-numeric: tabular-nums;
}
.tt-card:hover .tt-card__thumb img { transform: scale(1.06); }
@media (min-width: 960px) {
  .tt-card__body { padding: 16px; }
  .tt-card__ttl  { font-size: 16px; }
}


.tt-card--text .tt-card__body { padding-block: 16px; }
.tt-card--text .tt-card__ttl { -webkit-line-clamp: 4; line-clamp: 4; }


.tt-tcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--tt-bg-white);
  border: none;
  border-radius: var(--tt-r-lg);
  box-shadow: var(--tt-sh-card);
  padding: 18px 18px 20px;
  text-decoration: none;
  color: var(--tt-ink);
  min-width: 0;
  transition: box-shadow var(--tt-dur) ease, transform var(--tt-dur) ease;
}

.tt-tcard__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.tt-tcard__eyebrow {
  font-family: var(--tt-font-num);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .1em;
  color: var(--tt-brand);
}
.tt-tcard__ttl {
  font-size: 17px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  margin: 0;
  font-feature-settings: "palt" 1;
}
.tt-tcard__ttl a { color: inherit; text-decoration: none; }
.tt-tcard__desc {
  font-size: 13px;
  line-height: 1.7;
  color: var(--tt-sub);
  margin: 0;
}

.tt-tcard__cue {
  margin-top: auto;
  padding-top: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--tt-link);
  display: inline-flex;
  align-items: center;
  gap: .4em;
}
.tt-tcard__cue::after {
  content: "";
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--tt-dur) ease;
}

.tt-tcard:hover {
  box-shadow: 0 2px 4px 0 rgba(12, 39, 64, .12), 0 6px 16px -2px rgba(12, 39, 64, .20);
  transform: translateY(-2px);
}
.tt-tcard:hover .tt-tcard__cue::after { transform: rotate(45deg) translate(2px, -2px); }
@media (min-width: 960px) {
  .tt-tcard { padding: 22px 22px 24px; }
  .tt-tcard__ttl { font-size: 18px; }
}


.tt-hub {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--tt-bg-white);
  border: 1px solid var(--tt-line);
  border-left: 3px solid var(--tt-brand);
  border-radius: var(--tt-r-card);
  padding: 14px 16px;
  min-width: 0;
  transition: border-color var(--tt-dur) ease, background var(--tt-dur) ease;
}
.tt-hub__ttl {
  font-size: 15px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  margin: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .6em;
}
.tt-hub__ttl a { color: inherit; text-decoration: none; }

.tt-hub__ttl a::after { content: ""; position: absolute; inset: 0; }
.tt-hub__n {
  flex: 0 0 auto;
  font-family: var(--tt-font-num);
  font-size: 12px;
  font-weight: 700;
  color: var(--tt-sub);
  font-variant-numeric: tabular-nums;
}
.tt-hub__n::after {
  content: "本";
  font-family: inherit;
  font-size: 10px;
  font-weight: 400;
  margin-left: 2px;
}
.tt-hub__desc {
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--tt-sub);
  margin: 0;
}
.tt-hub:hover {
  border-color: var(--tt-accent);
  border-left-color: var(--tt-accent);
  background: var(--tt-bg-soft);
}
@media (min-width: 960px) {
  .tt-hub { padding: 16px 18px; }
  .tt-hub__ttl { font-size: 16px; }
}


.tt-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--tt-bg-white);
  border: 1px solid var(--tt-line);
  border-radius: var(--tt-r-mid);
  padding: 14px 0;
}
.tt-stat {
  padding: 4px 10px;
  min-width: 0;
  text-align: left;
}
.tt-stat + .tt-stat { border-left: 1px dashed var(--tt-line); }

.tt-stat__label {
  display: block;
  font-size: 11.5px;
  line-height: 1.5;
  font-weight: 700;
  color: var(--tt-sub);
  margin: 0 0 8px;
}

.tt-stat__v {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0 2px;
  margin: 0;
}

.tt-stat__num {
  font-family: var(--tt-font-num);
  font-size: 26px;
  font-weight: 700;
  line-height: .7;          
  color: var(--tt-brand);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}
.tt-stat__unit {
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  color: var(--tt-ink);
  padding-bottom: 1px;
}

.tt-stat__sub {
  display: block;
  font-size: 12px;
  line-height: 1.6;
  color: var(--tt-ink);
  margin: 8px 0 0;
}
.tt-stat__src {
  display: block;
  font-size: 10px;
  line-height: 1.5;
  color: var(--tt-sub);
  margin: 8px 0 0;
}
.tt-stat__src a { color: inherit; }

@media (min-width: 600px) {
  .tt-stats { padding: 18px 0; }
  .tt-stat  { padding: 4px 18px; }
  .tt-stat__num { font-size: 34px; }
  .tt-stat__unit{ font-size: 15px; }
  .tt-stat__label { font-size: 12.5px; }
}
@media (min-width: 960px) {
  .tt-stat__num { font-size: 40px; }
  .tt-stat__unit{ font-size: 16px; }
  .tt-stat__sub { font-size: 13px; }
  .tt-stat__src { font-size: 11px; }
}

@media (max-width: 359px) {
  .tt-stats { grid-template-columns: 1fr; }
  .tt-stat + .tt-stat { border-left: none; border-top: 1px dashed var(--tt-line); padding-top: 12px; margin-top: 12px; }
}


.tt-front {}


.tt-hero {
  background: var(--tt-bg);
  border-bottom: 1px solid var(--tt-line);
  padding-block: 28px 32px;
}
.tt-hero__q {
  font-size: 21px;
  line-height: 1.55;
  font-weight: 700;
  color: var(--tt-brand);
  margin: 0 0 10px;
  font-feature-settings: "palt" 1;
  letter-spacing: .01em;
}
.tt-hero__lede {
  font-size: 14px;
  line-height: 1.9;
  color: var(--tt-ink);
  margin: 0 0 20px;
  max-width: 46em;
}
.tt-hero__stats { margin: 0 0 20px; }
.tt-hero__acts {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media (min-width: 600px) {
  .tt-hero__acts { flex-direction: row; flex-wrap: wrap; gap: 14px; }
}
@media (min-width: 960px) {
  .tt-hero { padding-block: 44px 48px; }
  .tt-hero__q { font-size: 30px; }
  .tt-hero__lede { font-size: 15px; margin-bottom: 26px; }
  .tt-hero__stats { margin-bottom: 26px; }
}


.tt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  box-sizing: border-box;
  width: 100%;
  min-height: 52px;
  padding: .85em 1.6em;
  border: 1px solid transparent;
  border-radius: var(--tt-r-card);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--tt-dur) ease, color var(--tt-dur) ease,
              border-color var(--tt-dur) ease, transform .1s ease;
}
.tt-btn::after {
  content: "";
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.tt-btn--noarrow::after { content: none; }


.tt-btn--primary {
  background: var(--tt-accent);
  border-color: var(--tt-accent);
  color: #fff;
}
.tt-btn--primary:hover {
  background: var(--tt-accent-hov);
  border-color: var(--tt-accent-hov);
  color: #fff;
  text-decoration: none;
}

.tt-btn--sub {
  background: var(--tt-bg-white);
  border-color: var(--tt-brand);
  color: var(--tt-brand);
}
.tt-btn--sub:hover {
  background: var(--tt-brand);
  border-color: var(--tt-brand);
  color: #fff;
  text-decoration: none;
}
.tt-btn:active { transform: translateY(2px); }
.tt-btn:focus-visible {
  outline: 3px solid var(--tt-link);
  outline-offset: 2px;
}

.tt-btn--sm {
  width: auto;
  min-height: 40px;
  padding: .5em 1.1em;
  font-size: 13px;
}

@media (min-width: 600px) {
  .tt-btn { width: auto; min-width: 320px; font-size: 17px; }
  .tt-btn--sm { min-width: 0; }
}

.tt-btn-note {
  display: block;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--tt-brand);
  margin: 0 0 8px;
}


.tt-more {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  font-weight: 700;
  text-decoration: none;
  color: var(--tt-link);
}
.tt-more::after {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.tt-more:hover { text-decoration: underline; }


.tt-sec__foot {
  margin-top: 24px;
  text-align: center;
}


.tt-fixcta {
  position: fixed;
  inset-inline: 0;
  bottom: 0;
  z-index: 90;
  display: flex;
  gap: 8px;
  background: rgba(251, 250, 247, .97);
  border-top: 1px solid var(--tt-line);
  box-shadow: var(--tt-sh-fix);
  padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
}
.tt-fixcta__btn {
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .5em .6em;
  border: 1px solid transparent;
  border-radius: var(--tt-r-card);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: transform .1s ease;
}
.tt-fixcta__btn--primary { background: var(--tt-accent); color: #fff; border-color: var(--tt-accent); }
.tt-fixcta__btn--sub     { background: var(--tt-bg-white); color: var(--tt-brand); border-color: var(--tt-brand); }
.tt-fixcta__btn:active   { transform: translateY(2px); }
.tt-fixcta__btn:focus-visible { outline: 3px solid var(--tt-link); outline-offset: -3px; }


#body_wrap.tt-fixcta-on { padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px)); }


@media (min-width: 960px) {
  .tt-fixcta { display: none; }
  #body_wrap.tt-fixcta-on { padding-bottom: 0; }
}

@media print { .tt-fixcta { display: none; } }


.tt-acc {
  border-top: 1px solid var(--tt-line);
}
.tt-acc__item {
  border-bottom: 1px solid var(--tt-line);
  background: var(--tt-bg-white);
}
.tt-acc__q {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .6em;
  list-style: none;          
  cursor: pointer;
  padding: 16px 40px 16px 14px;
  font-size: 15px;
  line-height: 1.65;
  font-weight: 700;
  color: var(--tt-ink);
}
.tt-acc__q::-webkit-details-marker { display: none; }
.tt-acc__q::before {
  content: "Q";
  flex: 0 0 auto;
  width: 1.7em;
  height: 1.7em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--tt-r-img);
  background: var(--tt-brand);
  color: #fff;
  font-family: var(--tt-font-num);
  font-size: .82em;
  font-weight: 700;
  line-height: 1;
}

.tt-acc__q::after {
  content: "";
  position: absolute;
  top: 24px;
  right: 16px;
  width: 8px;
  height: 8px;
  border-bottom: 2px solid var(--tt-brand);
  border-right: 2px solid var(--tt-brand);
  transform: rotate(45deg);
  transform-origin: 60% 60%;
  transition: transform var(--tt-dur) ease;
}
.tt-acc__item[open] > .tt-acc__q::after { transform: rotate(-135deg); }
.tt-acc__q:hover { background: var(--tt-bg-soft); }
.tt-acc__q:focus-visible { outline: 3px solid var(--tt-link); outline-offset: -3px; }

.tt-acc__a {
  padding: 0 14px 18px;
  display: flex;
  align-items: flex-start;
  gap: .6em;
  font-size: 14px;
  line-height: 1.9;
  color: var(--tt-ink);
}
.tt-acc__a::before {
  content: "A";
  flex: 0 0 auto;
  width: 1.7em;
  height: 1.7em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--tt-r-img);
  
  background: var(--tt-bg-soft);
  color: var(--tt-brand);
  font-family: var(--tt-font-num);
  font-size: .85em;
  font-weight: 700;
  line-height: 1;
}
.tt-acc__a > :first-child { margin-top: 0; }
.tt-acc__a > :last-child  { margin-bottom: 0; }
.tt-acc__a p { margin: 0 0 .8em; }
.tt-acc__a p:last-child { margin-bottom: 0; }

@media (min-width: 960px) {
  .tt-acc__q { font-size: 16px; padding: 18px 44px 18px 16px; }
  .tt-acc__a { font-size: 15px; padding: 0 16px 20px; }
}




.tt-eyebrow {
  display: block;
  font-family: var(--tt-font-num);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1;
  color: var(--tt-brand);
  margin: 0 0 8px;
}

.tt-note,
.tt-acc__a .tt-note {
  font-size: 11.5px;
  line-height: 1.7;
  color: var(--tt-sub);
  margin: 10px 0 0;
}
.tt-note--top { margin: 0 0 10px; }

.tt-plain { list-style: none; margin: 0; padding: 0; }

.tt-rows { list-style: none; margin: 0; padding: 0; }
.tt-rows > li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1em;
  padding: 12px 2px;
  border-bottom: 1px dotted var(--tt-line);
  font-size: 14px;
  line-height: 1.65;
}
.tt-rows > li:first-child { border-top: 1px dotted var(--tt-line); }
.tt-rows time {
  flex: 0 0 auto;
  font-size: 12px;
  color: var(--tt-sub);
  font-variant-numeric: tabular-nums;
}

.tt-empty {
  border: 1px dashed var(--tt-line);
  border-radius: var(--tt-r-card);
  background: var(--tt-bg-soft);
  padding: 20px;
  font-size: 14px;
  line-height: 1.9;
  color: var(--tt-sub);
  text-align: center;
}

.tt-sr {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}



.tt-fig {
  font-family: var(--tt-font-num, Arial, Helvetica, sans-serif);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "palt" 0;
  letter-spacing: 0;
  white-space: nowrap;   
}

.tt-fig__as {
  margin-left: .1em;
  color: var(--tt-sub);
  font-size: .82em;
  white-space: nowrap;
}


.tt-fig--missing {
  background: var(--tt-bg-accent);
  color: var(--tt-danger);
  border: 2px dashed var(--tt-danger);
  padding: 0 .4em;
  font-weight: 700;
}


@media (prefers-reduced-motion: reduce) {
  .tt-card__thumb img,
  .tt-tcard,
  .tt-tcard__cue::after,
  .tt-hub,
  .tt-btn,
  .tt-fixcta__btn,
  .tt-acc__q::after {
    transition: none !important;
  }
  .tt-card:hover .tt-card__thumb img { transform: none; }
  .tt-tcard:hover { transform: none; }
  .tt-tcard:hover .tt-tcard__cue::after { transform: rotate(45deg); }
  .tt-btn:active,
  .tt-fixcta__btn:active { transform: none; }
}




:root {
  
  --tt-fz-h1: clamp(24px, 5.6vw, 34px);   
  --tt-fz-h2: clamp(21px, 4.6vw, 26px);   
  --tt-fz-h3: clamp(18px, 3.9vw, 20px);
  --tt-fz-h4: clamp(16px, 3.6vw, 17.5px);

  
  --tt-lh-h1: 1.38;
  --tt-lh-h2: 1.40;
  --tt-lh-h3: 1.50;
  --tt-lh-h4: 1.55;

  
  --tt-h2-rule:  3px;   
  --tt-h2-notch: 48px;  

  
  --tt-measure: 760px;

  
  --tt-anchor-offset: 64px;              
}
@media (min-width: 960px) {
  :root { --tt-anchor-offset: 88px; }    
}


@media (max-width: 599px) { :root { --swl-fz--content: 16px; } }
@media (min-width: 960px) { :root { --swl-fz--content: 17px; } }


.post_content h2::before,
.post_content h2::after,
.post_content h3::before,
.post_content h3::after,
.post_content h4::before,
.post_content h4::after {
  content: none;
  display: none;
  border: 0;
  background: none;
}



.tt-faq__item h3::before {
  content: "Q. ";
  display: inline;
  position: static;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  width: auto;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  transform: none;
  color: var(--tt-brand);
  font-weight: 700;
}


.post_content blockquote::before,
.post_content blockquote::after {
  content: none;
  display: none;
}


#main_content .post_content,
#lp-content   .post_content {
  line-height: var(--tt-lh-body);       
  letter-spacing: .02em;
  font-feature-settings: "palt" 0;      
  line-break: strict;                   
  word-break: normal;
  overflow-wrap: break-word;            
  text-spacing-trim: trim-start;        
}


@media (min-width: 960px) {
  .single #main_content .post_content { max-width: var(--tt-measure); }
}




.c-postTitle__ttl,
.c-pageTitle {
  font-size: var(--tt-fz-h1);
  line-height: var(--tt-lh-h1);
  font-feature-settings: "palt" 1;
  letter-spacing: .03em;   
  text-wrap: balance;      
}


.c-postTitle__ttl::after,
.c-pageTitle::after {
  content: "";
  display: block;
  width: 88px;
  height: 4px;
  margin-top: 16px;
  background: var(--tt-accent);
}



.post_content h2:not([class*="tt-"]) {
  font-size: var(--tt-fz-h2);
  line-height: var(--tt-lh-h2);
  font-weight: 700;
  color: var(--tt-brand);
  background: none;
  background-color: transparent;
  border: none;
  border-top: var(--tt-h2-rule) solid var(--tt-brand);
  border-bottom: 1px solid var(--tt-line);
  padding: .55em 0 .4em;
  
  margin: 3.2em 0 .5em;
  position: relative;
  font-feature-settings: "palt" 1;
  letter-spacing: .03em;
  text-wrap: balance;
}



.post_content h2:not([class*="tt-"])::after {
  content: "";
  display: block;
  position: absolute;
  top: calc(var(--tt-h2-rule) * -1);
  left: 0;
  width: var(--tt-h2-notch);
  height: var(--tt-h2-rule);
  background: var(--tt-accent);
  pointer-events: none;
}
@media (max-width: 599px) {
  :root { --tt-h2-rule: 2px; --tt-h2-notch: 36px; }
}


.post_content h2:not([class*="tt-"]) {
  background-color: var(--tt-bg-soft);
  border-bottom: 0;
  
  padding: .5em .7em .45em;
}



@media print {
  .post_content h2:not([class*="tt-"]) { background-color: transparent; padding-left: 0; padding-right: 0; }
}



.post_content h3:not([class*="tt-"]) {
  font-size: var(--tt-fz-h3);
  line-height: var(--tt-lh-h3);
  font-weight: 700;
  color: var(--tt-ink);
  background: none;
  border: none;
  border-left: 4px solid var(--tt-accent);
  padding: .05em 0 .05em .7em;
  margin: 2.4em 0 .6em;     
  font-feature-settings: "palt" 1;
  letter-spacing: .03em;
  text-wrap: balance;
}


.post_content h4:not([class*="tt-"]) {
  font-size: var(--tt-fz-h4);
  line-height: var(--tt-lh-h4);
  font-weight: 700;
  color: var(--tt-ink);
  background: none;
  border: none;
  border-bottom: 1px dotted var(--tt-line);
  padding: 0 0 .3em;
  margin: 2.2em 0 .5em;     
  font-feature-settings: "palt" 1;
  letter-spacing: .03em;
}


.post_content h5:not([class*="tt-"]),
.post_content h6:not([class*="tt-"]) {
  font-size: 1em;
  line-height: 1.6;
  font-weight: 700;
  color: var(--tt-sub);
  border: none;
  background: none;
  padding: 0;
  margin: 2em 0 .5em;
}


.post_content h2 + h3:not([class*="tt-"]),
.post_content h2 + h4:not([class*="tt-"]) { margin-top: 1.2em; }
.post_content h3 + h4:not([class*="tt-"]) { margin-top: 1.0em; }


@keyframes tt-target-flash {
  from { background-color: var(--tt-bg-warn); }
  to   { background-color: transparent; }
}
.post_content :is(h2, h3, h4):target {
  animation: tt-target-flash 2.4s ease-out 1;
}
@media (prefers-reduced-motion: reduce) {
  .post_content :is(h2, h3, h4):target { animation: none; }
}


.post_content [class*="tt-"]:is(h1, h2, h3, h4, h5, h6) {
  margin: 0 0 .6em;
  padding: 0;
  border: 0;
  background: none;
  line-height: 1.5;
  font-weight: 700;
  color: var(--tt-brand);
  letter-spacing: .01em;
}
.post_content h2[class*="tt-"] { font-size: 1.15em; }
.post_content h3[class*="tt-"] { font-size: 1.05em; }
.post_content h4[class*="tt-"] { font-size: 1em; }


.post_content h2.tt-answer__title    { font-size: 1.15em; margin: 0 0 .5em; }
.post_content h2.tt-author__h        { font-size: 1.05em; margin: 0 0 .9em; }
.post_content h2.tt-about-article__h { font-size: 1.05em; margin: 0 0 .8em; }
.post_content h3.tt-pick__h {
  font-size: 1.15em;
  color: var(--tt-ink);
  margin: 0 0 .8em;
  padding: 0 0 .5em;
  border-bottom: 2px solid var(--tt-brand);
}


.post_content .tt-sources h2 {
  font-size: 1.05em;
  line-height: 1.5;
  color: var(--tt-brand);
  margin: 0 0 .6em;
  padding: 0;
  border: 0;
  background: none;
}
.post_content .tt-faq__item h3 {
  font-size: 1.05em;
  line-height: 1.6;
  color: var(--tt-ink);
  margin: 0 0 .5em;
  padding: 0;
  border: 0;
  background: none;
}


.post_content :is(h2, h3, h4).p-postList__title,
.post_content :is(h2, h3, h4).faq_q,
.post_content :is(h2, h3, h4)[class^="swell-block-"] {
  border: 0;
  background: none;
  padding: 0;
  margin: 0 0 .5em;
  font-size: 1em;
  color: inherit;
}


.post_content > p {
  margin-top: 0;
  margin-bottom: 1.6em;
  text-wrap: pretty;       
}
.post_content > ul,
.post_content > ol,
.post_content > dl { margin-top: 0; margin-bottom: 1.6em; }


.post_content :is(ul, ol):not([class*="tt-"]) > li {
  line-height: 1.9;
  margin: .35em 0;
}
.post_content :is(ul, ol):not([class*="tt-"]) > li > :is(ul, ol) {
  margin: .35em 0 .1em;
}

.post_content ul:not([class*="tt-"]) > li::marker { color: var(--tt-accent); }
.post_content ol:not([class*="tt-"]) > li::marker { color: var(--tt-brand); font-weight: 700; }


.post_content > dl > dt { font-weight: 700; color: var(--tt-brand); margin-top: .8em; }
.post_content > dl > dd { margin: .2em 0 0 1.2em; }


.post_content blockquote:not([class*="tt-"]) {
  border-left: 4px solid var(--tt-brand);
  background: var(--tt-bg-soft);
  border-radius: 0 4px 4px 0;
  padding: 1em 1.2em;
  margin: 1.8em 0;
  font-size: .96em;
}
.post_content blockquote:not([class*="tt-"]) > p { margin: 0 0 .6em; line-height: 1.8; }
.post_content blockquote:not([class*="tt-"]) > p:last-child { margin-bottom: 0; }
.post_content blockquote:not([class*="tt-"]) cite {
  display: block;
  margin-top: .8em;
  font-size: .85em;
  font-style: normal;
  color: var(--tt-sub);
  opacity: 1;              
}


.post_content blockquote.tt-quote {
  background: var(--tt-bg-soft);
  border-left: 4px solid var(--tt-brand);
  border-radius: 0 4px 4px 0;
  padding: 1em 1.2em;
  margin: 1.6em 0;
}
.post_content blockquote.tt-quote > p { margin: 0 0 .5em; line-height: 1.8; }
.post_content blockquote.tt-quote > p:last-child { margin-bottom: 0; }
.post_content blockquote.tt-quote cite {
  display: block;
  margin-top: .8em;
  font-size: .85em;
  font-style: normal;
  color: var(--tt-sub);
  opacity: 1;
}


.post_content figcaption {
  font-size: .84em;
  line-height: 1.7;
  color: var(--tt-sub);
  margin-top: .5em;
}


.post_content > hr {
  border: 0;
  border-top: 1px solid var(--tt-line);
  margin: 3em 0;
}


.post_content a:where(:not(.tt-go, .tt-btn, .tt-hanchor, [class*="btn"])) {
  color: var(--tt-link);
  text-decoration: underline;
  text-decoration-thickness: 1px;   
  text-underline-offset: .18em;
  text-decoration-skip-ink: auto;   
}
.post_content a:where(:not(.tt-go, .tt-btn, .tt-hanchor, [class*="btn"])):hover {
  text-decoration-thickness: 2px;
}


.post_content nav.tt-toc a,
.post_content a.tt-toolindex__a { text-decoration: none; }
.post_content nav.tt-toc a:hover { text-decoration: underline; }
.post_content a:focus-visible {
  outline: 3px solid var(--tt-link);
  outline-offset: 2px;
}


.post_content strong,
.post_content b { font-weight: 700; color: var(--tt-brand); }


.post_content .tt-em {
  font-weight: 700;
  -webkit-text-emphasis: filled dot var(--tt-brand);
          text-emphasis: filled dot var(--tt-brand);
  -webkit-text-emphasis-position: over right;
          text-emphasis-position: over right;
}

.post_content p:has(.tt-em) { line-height: 2.0; }


.post_content small { font-size: .85em; color: var(--tt-sub); }


.post_content :is(h1, h2, h3, h4, h5, h6),
.post_content [id],
.tt-hubpage__sec,
.tt-faq__item,
[id^="h2-"],
[id^="h3-"],
#toc {
  scroll-margin-top: var(--tt-anchor-offset);
}


@media (min-width: 960px) {
  #sidebar .tt-toc { position: sticky; top: var(--tt-anchor-offset); }
}


.tt-hanchor {
  margin-left: .4em;
  color: var(--tt-sub);
  font-weight: 400;
  text-decoration: none;
  opacity: 0;
  transition: opacity var(--tt-dur) ease;
}
.post_content :is(h2, h3, h4):hover > .tt-hanchor,
.tt-hanchor:focus-visible { opacity: 1; }
@media (hover: none) { .tt-hanchor { display: none; } }


@media print {
  .post_content h2:not([class*="tt-"]) {
    color: #000;
    border-top-color: #000;
    border-bottom-color: #666;
    break-after: avoid;
  }
  .post_content h2:not([class*="tt-"])::after { display: none; }
  .post_content h3:not([class*="tt-"]) { color: #000; border-left-color: #000; break-after: avoid; }
  .post_content h4:not([class*="tt-"]) { color: #000; break-after: avoid; }
  .post_content a:not(.tt-go) { color: #000; }
  .post_content blockquote:not([class*="tt-"]) { border-left-color: #000; background: none; }
}


.tt-table thead th,
.tt-table tbody th { white-space: normal; }

.tt-table th,
.tt-table td { overflow-wrap: anywhere; }



:is(
  .tt-sech__sub, .tt-sech__no, .tt-sech__more,
  .tt-note, .tt-groupt__note, .tt-eyebrow,
  .tt-stat__label, .tt-stat__sub,
  .tt-rows > li, .tt-rows time,
  .tt-btn-note, .tt-btn--sm,
  .tt-card__cat
) { font-size: 14px; }
.tt-stat__src { font-size: 12px; }

.tt-card__cat { line-height: 1.5; padding: 2px 8px; }





.tt-fig {
  font-weight: 700;
  
  background-image: linear-gradient(to bottom, var(--tt-brand), var(--tt-brand));
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 2px;
  padding-bottom: .12em;
}

.tt-fig__as {
  background-image: none;
  padding-bottom: 0;
}


.post_content p.tt-src {
  margin: -.6em 0 1.6em;
  padding: 0;
  border-left: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--tt-ink);
}

.post_content p.tt-src a { overflow-wrap: anywhere; }


.tt-checked {
  margin: 0 0 32px;
  padding: 12px 0 14px;
  border-top: 2px solid var(--tt-brand);
  border-bottom: 1px solid var(--tt-line);
}
.post_content .tt-checked__h {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .06em;
  color: var(--tt-brand);
}

.post_content .tt-checked__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.post_content .tt-checked__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 12px;
  padding: 6px 0 0;
  line-height: 1.6;
}
.tt-checked__label {
  flex: 0 0 auto;
  min-width: 6.5em;
  font-size: 14px;
  font-weight: 700;
  color: var(--tt-sub);
}

.tt-checked__val {
  flex: 0 0 auto;
  font-family: var(--tt-font-num);
  font-size: 16px;
  font-weight: 700;
  color: var(--tt-brand);
  font-variant-numeric: tabular-nums;
}

.tt-checked__note {
  flex: 1 1 16em;
  min-width: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--tt-sub);
}
.post_content .tt-checked__more {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.6;
}
@media (max-width: 599px) {
  .tt-checked__item { gap: 0 10px; }
  .tt-checked__note { flex-basis: 100%; }
}


.post_content details.tt-sources {
  margin: 40px 0 0;
  padding: 0;
  border: 0;
  border-top: 1px solid var(--tt-line);
  font-size: 14px;
  background: none;
}
.tt-sources__sum {
  position: relative;
  display: block;                
  list-style: none;              
  cursor: pointer;
  padding: 14px 34px 14px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--tt-brand);
}
.tt-sources__sum::-webkit-details-marker { display: none; }

.tt-sources__sum::after {
  content: "";
  position: absolute;
  top: 1.25em;
  right: 6px;
  width: 8px;
  height: 8px;
  border-bottom: 2px solid var(--tt-brand);
  border-right: 2px solid var(--tt-brand);
  transform: rotate(45deg);
  transform-origin: 60% 60%;
  transition: transform var(--tt-dur) ease;
}
.tt-sources[open] > .tt-sources__sum::after { transform: rotate(-135deg); }
.tt-sources__sum:hover { color: var(--tt-brand-dark); }
.tt-sources__sum:focus-visible { outline: 3px solid var(--tt-link); outline-offset: 2px; }

.tt-sources__body { padding: 0 0 20px; }
.post_content .tt-sources__h {
  margin: 18px 0 4px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .04em;
  color: var(--tt-sub);
}
.post_content .tt-sources__figs,
.post_content .tt-sources__srcs {
  list-style: none;
  margin: 0;
  padding: 0;
}

.post_content .tt-sources__fig,
.post_content .tt-sources__src {
  margin: 0;
  padding: 8px 0;
  line-height: 1.7;
  color: var(--tt-ink);
}
.tt-sources__label { font-weight: 700; color: var(--tt-ink); }
.tt-sources__val {
  margin-left: .6em;
  font-family: var(--tt-font-num);
  font-weight: 700;
  color: var(--tt-brand);
  font-variant-numeric: tabular-nums;
}

.tt-sources__as,
.tt-sources__ver {
  margin-left: .8em;
  color: var(--tt-sub);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.post_content .tt-sources__link {
  display: block;
  margin-top: 2px;
  overflow-wrap: anywhere;
}
.post_content .tt-sources__src a { overflow-wrap: anywhere; }
.post_content .tt-sources__note {
  margin: 18px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--tt-line);
  font-size: 14px;
  line-height: 1.7;
  color: var(--tt-sub);
}



.tt-postmeta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2px 24px;
  min-width: 0;
}
.tt-postmeta__item {
  display: flex;
  align-items: baseline;
  gap: .5em;
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}
.tt-postmeta__label {
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--tt-sub);
  white-space: nowrap;
}
.tt-postmeta__val {
  color: var(--tt-ink);
  font-variant-numeric: tabular-nums;
}


.tt-stage { margin: 14px 0 0; }
.tt-stage__h {
  margin: 0 0 6px;
  font-size: 14px;   
  line-height: 1.7;
  color: var(--tt-ink);
}
.tt-stage__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 0;
}
.tt-stage__item {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.tt-stage__item + .tt-stage__item {
  margin-left: 10px;
  padding-left: 10px;
  border-left: 1px solid var(--tt-line);
}

.tt-stage__item--now .tt-stage__now {
  font-weight: 700;
  color: var(--tt-brand);
}
.tt-stage__link { color: var(--tt-link); }


@media print {
  .tt-fig {
    background-image: none;
    padding-bottom: 0;
    text-decoration: underline;
    text-decoration-thickness: 2px;
  }
  .tt-fig__as { text-decoration: none; }
  .post_content p.tt-src { color: #000; }
  
  .tt-checked {
    break-inside: avoid;
    border-top-color: #000;
    border-bottom-color: #666;
  }
  .tt-checked__val,
  .tt-checked__label,
  .tt-checked__note { color: #000; }
  
  .tt-sources__sum::after { display: none; }
}


@media (forced-colors: active) {
  .tt-fig {
    background-image: none;
    padding-bottom: 0;
    text-decoration: underline;
    text-decoration-thickness: 2px;
  }
  .tt-fig__as { text-decoration: none; }
  .tt-tcard { border: 1px solid CanvasText; }
}


@media (prefers-reduced-motion: reduce) {
  .tt-go,
  .tt-hanchor,
  .tt-sources__sum::after { transition: none; }
  .tt-tcard:hover { transform: none; }
}


:root { color-scheme: light; }




:root {
  
  --tt-fs-14: 14px;   
  --tt-fs-16: 16px;   
  --tt-fs-17: 17px;   
  --tt-fs-18: 18px;   
  --tt-fs-20: 20px;   
  --tt-fs-22: 22px;   
  --tt-fs-24: 24px;   
  --tt-fs-28: 28px;   
  --tt-fs-32: 32px;   
  --tt-fs-40: 40px;   

  
  --tt-sp-0:   0;
  --tt-sp-4:   4px;
  --tt-sp-8:   8px;
  --tt-sp-12: 12px;
  --tt-sp-16: 16px;
  --tt-sp-24: 24px;
  --tt-sp-32: 32px;
  --tt-sp-40: 40px;
  --tt-sp-48: 48px;
  --tt-sp-64: 64px;
  --tt-sp-80: 80px;
  --tt-sp-96: 96px;

  
  --tt-lh-flat: 1;      
  --tt-lh-head: 1.3;    
  --tt-lh-ui:   1.5;    
  --tt-lh-lede: 1.7;    
  --tt-lh-read: 1.8;    

  
  --tt-r-flat: 0;       
  --tt-r-ui:   8px;     

  
  --tt-font-sans: "Noto Sans JP", "Yu Gothic", YuGothic,
                  "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}


#body_wrap.tt-design-v2 {
  font-family: var(--tt-font-sans);
  
  --tt-r-img:  var(--tt-r-flat);
  --tt-r-card: var(--tt-r-flat);
  --tt-r-mid:  var(--tt-r-flat);
  --tt-r-lg:   var(--tt-r-flat);
  --tt-r-xl:   var(--tt-r-flat);
  
  --tt-h2-rule:  0px;
  --tt-h2-notch: 0px;
}


#body_wrap.tt-design-v2 .post_content h2:not([class*="tt-"]) {
  font-size: var(--tt-fs-28);
  line-height: var(--tt-lh-ui);
  font-weight: 700;
  color: var(--tt-brand);
  border: 0;
  padding: 0;
  margin: var(--tt-sp-64) 0 var(--tt-sp-24);
}
#body_wrap.tt-design-v2 .post_content h2:not([class*="tt-"])::after {
  content: none;
  display: none;
}
#body_wrap.tt-design-v2 .post_content h3:not([class*="tt-"]) {
  font-size: var(--tt-fs-22);
  line-height: var(--tt-lh-ui);
  font-weight: 700;
  color: var(--tt-ink);
  border: 0;
  padding: 0;
  margin: var(--tt-sp-40) 0 var(--tt-sp-12);
}
#body_wrap.tt-design-v2 .post_content h4:not([class*="tt-"]) {
  font-size: var(--tt-fs-18);
  line-height: var(--tt-lh-ui);
  font-weight: 700;
  color: var(--tt-ink);
  border: 0;
  padding: 0;
  margin: var(--tt-sp-32) 0 var(--tt-sp-8);
}

#body_wrap.tt-design-v2 .post_content h2 + h3:not([class*="tt-"]),
#body_wrap.tt-design-v2 .post_content h2 + h4:not([class*="tt-"]) { margin-top: var(--tt-sp-16); }
#body_wrap.tt-design-v2 .post_content h3 + h4:not([class*="tt-"]) { margin-top: var(--tt-sp-12); }


#body_wrap.tt-design-v2 .c-postTitle__ttl,
#body_wrap.tt-design-v2 .c-pageTitle {
  font-size: var(--tt-fs-32);
  line-height: var(--tt-lh-head);
}
@media (min-width: 960px) {
  #body_wrap.tt-design-v2 .c-postTitle__ttl,
  #body_wrap.tt-design-v2 .c-pageTitle { font-size: var(--tt-fs-40); }
}

@media (max-width: 599px) {
  #body_wrap.tt-design-v2 .c-postTitle__ttl,
  #body_wrap.tt-design-v2 .c-pageTitle { font-size: var(--tt-fs-28); }
  #body_wrap.tt-design-v2 .post_content h2:not([class*="tt-"]) {
    font-size: var(--tt-fs-24);
    margin: var(--tt-sp-48) 0 var(--tt-sp-16);
  }
  #body_wrap.tt-design-v2 .post_content h3:not([class*="tt-"]) {
    font-size: var(--tt-fs-20);
    margin: var(--tt-sp-32) 0 var(--tt-sp-12);
  }
  #body_wrap.tt-design-v2 .post_content h4:not([class*="tt-"]) {
    font-size: var(--tt-fs-17);
    margin: var(--tt-sp-24) 0 var(--tt-sp-8);
  }
}


#body_wrap.tt-design-v2 .tt-sech {
  border: 0;
  padding: 0;
  margin-bottom: var(--tt-sp-24);
}
#body_wrap.tt-design-v2 .tt-sech__ttl { font-size: var(--tt-fs-24); line-height: var(--tt-lh-ui); }
@media (min-width: 960px) {
  #body_wrap.tt-design-v2 .tt-sech__ttl { font-size: var(--tt-fs-28); }
  #body_wrap.tt-design-v2 .tt-sech { margin-bottom: var(--tt-sp-32); }
}

#body_wrap.tt-design-v2 .tt-groupt {
  border: 0;
  padding: 0;
  margin-bottom: var(--tt-sp-16);
  font-size: var(--tt-fs-18);
  line-height: var(--tt-lh-ui);
}


#body_wrap.tt-design-v2 :is(
  .tt-sech__sub, .tt-sech__no, .tt-sech__more,
  .tt-note, .tt-groupt__note, .tt-eyebrow,
  .tt-stat__label, .tt-stat__sub, .tt-stat__src,
  .tt-rows > li, .tt-rows time,
  .tt-btn-note, .tt-btn--sm,
  .tt-card__cat
) { font-size: var(--tt-fs-14); }

#body_wrap.tt-design-v2 .tt-card__cat { line-height: var(--tt-lh-ui); padding: 2px 8px; }


#body_wrap.tt-design-v2 :is(.tt-btn, .tt-go, .tt-fixcta__btn, .tt-cite__btn) {
  border-radius: var(--tt-r-ui);
}


#body_wrap.tt-design-v2 :is(.tt-card, .tt-hub, .tt-acc__item) { box-shadow: none; }






.tt-prbar.tt-prbar--inline {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 1.4em 0 .5em;
  padding: 0;
  background: none;          
  border-bottom: 0;
}


.tt-prbar--inline .tt-prbar__tag {
  flex: 0 0 auto;
  padding: 1px 8px;
  border: 1px solid var(--tt-accent);
  border-radius: var(--tt-r-img, 3px);
  background: var(--tt-accent);
  color: #fff;                       
  font-family: inherit;              
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .04em;
}


.tt-prbar--inline .tt-prbar__txt {
  margin: 0;
  color: var(--tt-ink);
  font-size: 14px;                   
  line-height: 1.7;
}
.tt-prbar--inline .tt-prbar__txt a {
  color: var(--tt-link);
  text-decoration: underline;
  text-underline-offset: .2em;
  margin-inline-start: .5em;
}


@media (max-width: 599px) {
  .tt-prbar.tt-prbar--inline { align-items: flex-start; gap: 6px; }
}


@media (forced-colors: active) {
  .tt-prbar--inline .tt-prbar__tag {
    background: ButtonFace;
    color: ButtonText;
    border: 1px solid ButtonText;
    forced-color-adjust: none;
  }
}


@media print {
  .tt-prbar.tt-prbar--inline { display: flex; }
  .tt-prbar--inline .tt-prbar__tag {
    background: #fff;
    color: #000;
    border: 1px solid #000;
  }
  .tt-prbar--inline .tt-prbar__txt,
  .tt-prbar--inline .tt-prbar__txt a { color: #000; }
}





:root {
  
  --tt-route-before:    #6B4F7A;   
  --tt-route-before-bg: #F4F0F6;
  --tt-route-tell:      #006B5E;   
  --tt-route-tell-bg:   #EDF7F5;
  --tt-route-money:     #4F6400;   
  --tt-route-money-bg:  #F5F7EC;
}


.tt-ident {
  background: var(--tt-bg-soft);
  border-bottom: 1px solid #C3D0DC;
  padding-block: 10px;
  font-size: 13px;
  line-height: 1.7;
}
.tt-ident__txt {
  margin: 0;
  color: var(--tt-ink);
}
.tt-ident__txt strong { font-weight: 700; }
.tt-ident__links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  margin: 4px 0 0;
}
.tt-ident__links a {
  color: var(--tt-brand);
  text-decoration: underline;
  text-underline-offset: .18em;
  
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}
@media (min-width: 960px) {
  .tt-ident { padding-block: 12px; font-size: 14px; }
  .tt-ident .tt-shell {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px 32px;
  }
  .tt-ident__links { margin: 0; flex: 0 0 auto; }
}


.tt-critical {
  background: var(--tt-bg-warn);
  border-block: 1px solid #E6D8A6;
  padding-block: 20px;
}
.tt-critical__h {
  margin: 0 0 10px;
  font-size: 16px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-warn);
  padding-left: 12px;
  border-left: 4px solid var(--tt-warn);
}
.tt-critical .tt-notice { border-left-color: var(--tt-warn); }


.tt-routes {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tt-gap-row) var(--tt-gap);
}
@media (min-width: 960px) {
  .tt-routes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.tt-route {
  --tt-route-c:  var(--tt-brand);
  --tt-route-bg: var(--tt-bg-white);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--tt-route-bg);
  border: 1px solid var(--tt-line);
  border-top: 6px solid var(--tt-route-c);
  border-radius: var(--tt-r-card);
  padding: 18px 18px 20px;
  min-width: 0;
  
  scroll-margin-top: var(--tt-anchor-offset, 64px);
}
.tt-route[data-route="before"] { --tt-route-c: var(--tt-route-before); --tt-route-bg: var(--tt-route-before-bg); }
.tt-route[data-route="tell"]   { --tt-route-c: var(--tt-route-tell);   --tt-route-bg: var(--tt-route-tell-bg); }
.tt-route[data-route="money"]  { --tt-route-c: var(--tt-route-money);  --tt-route-bg: var(--tt-route-money-bg); }


.tt-route__mark {
  display: grid;
  place-items: center;
  inline-size: 36px;
  block-size: 36px;
  margin: 0;
  background: var(--tt-route-c);
  color: #fff;
  font-family: var(--tt-font-num);
  font-size: 18px;
  font-weight: 700;
  line-height: var(--tt-lh-flat);
}
.tt-route[data-route="before"] .tt-route__mark { border-radius: 50%; }
.tt-route[data-route="tell"]   .tt-route__mark { border-radius: 4px; }
.tt-route[data-route="money"]  .tt-route__mark {
  clip-path: polygon(25% 6%, 75% 6%, 100% 50%, 75% 94%, 25% 94%, 0 50%);
}
.tt-route__ttl {
  margin: 0;
  font-size: 18px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  
  border: 0;
  padding: 0;
}
.tt-route__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--tt-ink);
}
.tt-route__links {
  list-style: none;
  margin: auto 0 0;
  padding: 12px 0 0;
  border-top: 1px solid rgba(18, 57, 92, .18);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tt-route__links a {
  display: flex;
  align-items: center;
  min-height: 28px;
  font-size: 14px;
  font-weight: 700;
  color: var(--tt-brand);
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: .08em;
}
.tt-route__links a::before {
  content: "";
  flex: 0 0 auto;
  width: 6px; height: 6px;
  margin-right: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.tt-route__links a:hover { color: var(--tt-route-c); }
@media (min-width: 960px) {
  .tt-route { padding: 20px 22px 22px; }
  .tt-route__ttl { font-size: 19px; }
}


.tt-actions { list-style: none; margin: 0; padding: 0; }
.tt-actions > li {
  padding: 14px 2px;
  border-bottom: 1px solid var(--tt-line);
}
.tt-actions > li:first-child { border-top: 1px solid var(--tt-line); }
.tt-actions__a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  font-size: 16px;
  font-weight: 700;
  color: var(--tt-brand);
  text-decoration: underline;
  text-underline-offset: .18em;
  text-decoration-thickness: .08em;
}
.tt-actions__a:hover { color: var(--tt-brand-dark); }
.tt-actions__d {
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--tt-sub);
}
@media (min-width: 960px) {
  .tt-actions__a { font-size: 17px; }
}


.tt-h3plain {
  margin: 28px 0 10px;
  font-size: 16px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  border: 0;
  padding: 0;
}


.tt-srclist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tt-srclist > li { font-size: 14px; line-height: 1.7; }
.tt-srclist a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  color: var(--tt-link);
  text-decoration: underline;
  text-underline-offset: .18em;
}


.tt-next {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--tt-bg-white);
  border: 1px solid var(--tt-line);
  border-top: 3px solid var(--tt-brand);
  border-radius: var(--tt-r-card);
  padding: 16px 16px 18px;
  min-width: 0;
}
.tt-next__ttl {
  margin: 0;
  font-size: 16px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  border: 0;
  padding: 0;
}
.tt-next__desc {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.8;
  color: var(--tt-ink);
}
.tt-next__links {
  list-style: none;
  margin: auto 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tt-next__links a {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  font-size: 14px;
  font-weight: 700;
  color: var(--tt-brand);
  text-decoration: underline;
  text-underline-offset: .18em;
}
.tt-next .tt-srclist { margin-top: 4px; }
.tt-next .tt-srclist > li { font-size: 12.5px; }


.tt-notices { display: flex; flex-direction: column; gap: 4px; }
.tt-notice {
  background: var(--tt-bg-white);
  border: 1px solid var(--tt-line);
  border-left: 4px solid var(--tt-brand);
  border-radius: var(--tt-r-card);
  padding: 14px 16px 16px;
}
.tt-notice__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 14px;
  margin: 0 0 4px;
  font-size: 12.5px;
  color: var(--tt-sub);
  font-variant-numeric: tabular-nums;
}
.tt-notice__ttl {
  margin: 0 0 6px;
  font-size: 16px;
  line-height: var(--tt-lh-tight);
  font-weight: 700;
  color: var(--tt-brand);
  border: 0;
  padding: 0;
}
.tt-notice__ttl a { color: inherit; text-decoration: underline; text-underline-offset: .18em; }
.tt-notice__sum {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--tt-ink);
}
.tt-notice .tt-note { margin-top: 6px; }


.tt-note--links { line-height: 2.2; }
.tt-note--links a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}


@media (forced-colors: active) {
  
  .tt-route[data-route] {
    background: Canvas;
    color: CanvasText;
    border: 1px solid CanvasText;
    border-top: 4px solid CanvasText;
  }
  .tt-route[data-route] .tt-route__mark {
    background: CanvasText;
    color: Canvas;
    clip-path: none;
    border-radius: 0;
    border: 1px solid CanvasText;
  }
  .tt-next,
  .tt-notice,
  .tt-critical { border: 1px solid CanvasText; }
}


@media (prefers-reduced-motion: reduce) {
  .tt-route__links a,
  .tt-actions__a { transition: none; }
}


@media print {
  
  .tt-route[data-route] {
    background: #fff;
    border: 1px solid #000;
    border-top: 3px solid #000;
  }
  .tt-route[data-route] .tt-route__mark { background: #fff; color: #000; border: 1px solid #000; clip-path: none; }
  .tt-ident { background: #fff; border-bottom: 1px solid #000; }
  .tt-critical { background: #fff; border-block: 1px solid #000; }
}


.tt-topics__solo { display: block; }


.tt-rows--pair > li {
  justify-content: flex-start;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 2px 16px;
}
.tt-rows--pair > li > span:first-child {
  flex: 0 0 auto;
  inline-size: 14em;
  max-inline-size: 100%;
}
.tt-rows--pair > li > span:last-child { flex: 1 1 18em; }
@media (max-width: 599px) {
  .tt-rows--pair > li > span:first-child { inline-size: 100%; }
}


.tt-front .tt-sech__more {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}


@media (max-width: 599px) {
  .tt-hero .tt-stats { grid-template-columns: 1fr; }
  .tt-hero .tt-stat + .tt-stat {
    border-left: 0;
    border-top: 1px dashed var(--tt-line);
    padding-top: 12px;
    margin-top: 12px;
  }
}


.tt-front section[id],
.tt-front .tt-group[id] {
  scroll-margin-top: var(--tt-anchor-offset, 64px);
}
