:root {
    --color-background: #f9fafa;
    --color-background-sub: #e6f5ec;
    --color-background-stats: #ebfad9;
    --color-surface: #f5f6f7;
    --color-white: #fcfcfc;
    --color-text: #353535;
    --color-text-header: #08351f;
    --color-border: #e5e7eb;
    --color-accent: #197a4b;
    --color-gray: #f5f5f5;
    --color-darkgray: #476152;
    --color-lightgreen: #e6f5ec;
    --color-this-week: #148570;
    --color-accent-contrast: #fff;
    --color-focus: #d97706;
    --font-sans: 'Gen Interface JP', sans-serif;
    --font-sans-dms: 'DM Sans', sans-serif;
    /* --font-sans-title: "Gen Interface JP Display", sans-serif; */
    --line-height: 150%;
    --line-height-dns: 120%;
    --letter-spacing: 2%;
    --radius: 1rem;
    --shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
    --space-section: 5.5rem;

    --size-mobile: 375px;
    --size-tablet: 768px;
    --size-pc: 1280px;

    --size-header-tablet: 4.75rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
}
html {
    scroll-behavior: smooth;
}
body {
    background: var(--color-background);
    color: var(--color-text);
    font-family: var(--font-sans);
    letter-spacing: var(--letter-spacing);
    margin: 0;
}
h1 {
    font-family: 'Gen Interface JP Display', sans-serif;
    font-weight: 700;
    font-size: 3rem;
    line-height: 140%;
    letter-spacing: 0%;
}
h2 {
    color: var(--color-text-header);
}
p {
    line-height: var(--line-height);
    font-size: 1.25rem;
}
img {
    height: auto;
    max-width: 100%;
}
a {
    color: var(--color-accent);
    text-underline-offset: 0.18em;
    text-decoration: none;
}
a:hover {
    text-decoration-thickness: 0.15em;
}
/* :focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
} */
button,
input,
select,
textarea {
    font: inherit;
}
button,
.button,
select,
input[type='month'] {
    min-height: 3rem;
}
input[type='radio'] {
    accent-color: var(--color-accent);
}
.m-0 {
    margin: 0 !important;
}
.mb-10 {
    margin-bottom: 0.625rem !important;
}
.pb-0 {
    padding-bottom: 0 !important;
}
.grid-1 {
    grid-template-columns: 1fr !important;
}
.pc-only,
.tb-none {
    display: block;
}
.pc-none,
.tb-only,
.sp-only {
    display: none;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    background: #fff;
    clip: auto !important;
    clip-path: none;
    color: var(--color-text);
    display: block;
    height: auto;
    left: 0.5rem;
    padding: 0.75rem 1rem;
    top: 0.5rem;
    width: auto;
    z-index: 100000;
}
.layout {
    margin-inline: auto;
    padding-inline: 5rem;
    display: flex;
    max-width: 90rem;
    flex-direction: column;
    gap: 2rem;
}
.layout__line {
    margin-inline: 0.75rem;
    padding-inline: 0;
    display: flex;
    width: calc(100% - 1.5rem);
    height: 1px;
    background: var(--color-border);
}
.layout-wide {
    margin-inline: auto;
    max-width: 90rem;
    padding-inline: 3rem;
}
.layout-column-2 {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr) minmax(25rem, 30rem);
}
.layout-column-2__main {
    min-width: 0;
}
.layout-column-2__sidebar {
    /* display: flex;
	flex-direction: column;
	gap: 1.5rem; */
}
.layout-gradation {
    width: 100%;
    height: 8rem;
    background: linear-gradient(0deg, #f9fafa 19.53%, #b7e4ff 100%);
}
.eyebrow-field {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    margin-bottom: 0.5rem !important;
}

.eyebrow-field p {
    margin: 0;
}
.eyebrow-line {
    border: 1px solid var(--color-accent);
    width: 1.5rem;
}
.page-heading {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.page-heading * {
    margin: 0;
}
.page-heading h2 {
    font-family: Gen Interface JP;
    font-weight: 700;
    font-size: 28px;
    line-height: 150%;
    letter-spacing: 1%;
}
.column-2-boxes {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.column-2-box {
    width: 100%;
    align-self: start;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 1rem;
}
.column-2-box > * {
    padding: 1.5rem;
}
.column-2-title {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    align-items: center;
    border-bottom: 1px solid var(--color-border);
}
.column-2-title > h2 {
    /* font-size: 1.25rem; */
    font-size: 1.125rem;
    /* line-height: var(--line-height); */
    line-height: 160%;
    letter-spacing: var(--letter-spacing);
}
.column-2-contents {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.column-2-content {
    display: flex;
    flex-direction: row;
    gap: 1rem;
}
.column-2-content > p {
    font-size: 1rem;
    line-height: 170%;
}
.sidebar-icon {
}
#main,
.main {
    padding-block-start: 5rem;
}
.main-front {
    padding-block-start: 11.5rem;
}
.section {
    padding-block: var(--space-section);
    background: var(--color-background);
}
.section-sub {
    background: var(--color-background-sub);
}
.section-404 {
    padding-top: 0 !important;
}

.site-header {
    background: #b7e4ff;
    width: 100%;
    position: fixed;
    z-index: 1000;
}
.site-header__inner {
    align-items: center;
    display: grid;
    grid-template-columns: 1fr auto auto;
    min-height: 5rem;
}
.site-title {
    color: var(--color-text);
    font-size: 1.25rem;
    font-weight: 700;
    text-decoration: none;
}
.custom-logo {
    display: block;
    max-height: 3.125rem;
    width: auto;
}
.primary-nav .menu,
.footer-nav .menu {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin: 0;
    padding: 0;
}
.primary-nav a {
    color: var(--color-text);
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    line-height: 130%;
    letter-spacing: 0%;
    padding-inline: 1.25rem;
}
.menu-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--color-text);
    cursor: pointer;
    display: none;
    justify-content: center;
    padding: 0.625rem;
}
.menu-toggle__icon,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
    background: currentColor;
    display: block;
    height: 2px;
    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
    width: 1.5rem;
}
.menu-toggle__icon {
    position: relative;
}
.menu-toggle__icon::before,
.menu-toggle__icon::after {
    content: '';
    left: 0;
    position: absolute;
}
.menu-toggle__icon::before {
    top: -0.45rem;
}
.menu-toggle__icon::after {
    top: 0.45rem;
}
.menu-toggle[aria-expanded='true'] .menu-toggle__icon {
    background: transparent;
}
.menu-toggle[aria-expanded='true'] .menu-toggle__icon::before {
    transform: translateY(0.45rem) rotate(45deg);
}
.menu-toggle[aria-expanded='true'] .menu-toggle__icon::after {
    transform: translateY(-0.45rem) rotate(-45deg);
}
.mobile-menu,
.primary-nav__footer {
    display: none;
}
.button {
    align-items: center;
    border: 1px solid var(--color-accent);
    border-radius: var(--radius);
    color: var(--color-text-header);
    display: inline-flex;
    font-weight: 700;
    justify-content: center;
    padding: 0.55rem 1rem;
    text-decoration: none;
}
.button--primary {
    background: var(--color-accent);
    color: var(--color-white);
}
.button--primary:hover {
    text-decoration: underline;
}
.button-404 {
    width: 15rem;
    padding: 1rem;
    border-radius: 0.5rem;
    margin-top: 2rem;
    line-height: 100%;
}

.breadcrumbs {
    font-size: 0.875rem;
    line-height: 1.5;
    width: 100%;
    width: -webkit-fill-available;
    width: stretch;
}
.breadcrumbs__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
}
.breadcrumbs__item {
    display: inline-flex;
    align-items: center;
}
.breadcrumbs__item:not(:last-child)::after {
    background: url('../../images/fv/breadcrumbs_icon.svg') center / 5px 8px no-repeat;
    content: '';
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
}
.breadcrumbs a,
.breadcrumbs span {
    font-family: var(--font-sans-dms);
    color: var(--color-darkgray);
    font-size: 1rem;
    line-height: 1;
}
.breadcrumbs span[aria-current='page'] {
    font-weight: 700;
}
/* .breadcrumbs a {
	text-decoration: underline;
} */
.page-hero {
    background: #a9cff2 url('../../images/fv/FV.png') center / cover no-repeat;
    background-position: right;
    min-height: 24rem;
    padding: 5.75rem 5rem;
}
.page-hero__inner {
    display: flex;
    flex-direction: column;
    padding: 4rem 0;
}
.page-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-top: 3rem;
    gap: 0.5rem;
    width: 100%;
    width: -webkit-fill-available;
    width: stretch;
}
.page-hero__target {
    display: flex;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: var(--color-lightgreen);
    color: var(--color-accent);
    border-radius: 0.25rem;
    width: fit-content;
    align-items: center;
}
.page-hero__target > p {
    font-size: 1rem;
    line-height: var(--line-height-dns);
}
.page-hero__title {
    color: var(--color-text-header);
    margin: 0;
    letter-spacing: 5%;
}
/* .page-hero__description {
	margin-top: 1rem;
} */
.page-hero__description p {
    font-size: 1.25rem;
}
.page-hero__stats {
    display: flex;
    gap: 1.5rem;
}
.page-hero__stats__field {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: 11rem;
    text-align: center;
    padding: 0.5rem 1rem;
    border-radius: 0.75rem;
    background: var(--color-background-stats);
}
.page-hero__stats__field strong {
    /* font-family: 'DM Sans', sans-serif; */
    color: var(--color-accent);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: var(--line-height);
    letter-spacing: 1%;
}
.page-hero__stats__field span {
    color: var(--color-text-header);
    font-size: 1rem;
    line-height: 1.7;
}
.page-section {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.layout > article.page {
    min-width: 0;
    width: 100%;
}
.page-section li {
    overflow-wrap: anywhere;
}

.hero h1,
.page-header h1 {
    font-family: 'Gen Interface JP Display', sans-serif;
    font-weight: 700;
    font-size: 3rem;
    line-height: 140%;
    letter-spacing: 5%;
    /* margin-block: 1rem; */
    display: flex;
    flex-direction: column;
}
.eyebrow {
    color: var(--color-accent);
    font-size: 1rem;
    line-height: var(--line-height-dns);
    font-weight: 700;
    letter-spacing: 0;
}
.eyebrow > p {
    font-size: 1.25rem;
    line-height: 160%;
}
.card-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.card-grid--single {
    grid-template-columns: 1fr;
}
.card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 1.25rem;
}
/* .card img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; } */
.card-grid--five {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.card-title {
    font-size: 1.125rem;
    line-height: 160%;
}
.content-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
}
.content-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.chip-list,
.term-list,
.social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    list-style: none;
    padding: 0;
}
.chip-list a,
.term-list li {
    border: 1px solid var(--color-border);
    border-radius: 999px;
    display: inline-flex;
    padding: 0.25rem 0.75rem;
    text-decoration: none;
}

.filter-panel {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-block: 2rem;
    padding: 1.5rem;
}
.nav-links {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    margin-block: 2rem;
}
.page-numbers {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 2rem;
    max-height: 2rem;
    min-width: 2rem;
    border-radius: 0.25rem;
    padding: 0.5rem;
    border: 1px solid var(--color-border);
    background: var(--color-white);
    font-size: 1rem;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
}
.page-numbers.current {
    background: var(--color-accent);
    color: var(--color-white);
}

/* .entry > section, .entry-content { margin-block: 2.5rem; } */
/* .details-list {
    border-top: 1px solid var(--color-border);
    display: grid;
    grid-template-columns: minmax(8rem, 14rem) 1fr;
}
.details-list dt,
.details-list dd {
    border-bottom: 1px solid var(--color-border);
    margin: 0;
    padding: 1rem;
}
.details-list dt {
    background: var(--color-surface);
    font-weight: 700;
} */
.psp-honeypot {
    left: -10000px;
    position: absolute;
    top: auto;
}

.event-list {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

.event-card {
    box-shadow: none;
}

.event-card--detailed {
    display: grid;
    /* gap: 1.5rem; */
    grid-template-columns: 6rem minmax(0, 1fr);
    padding: 0;
}

.event-card__this-week,
.event-card:hover {
    border: 1px solid var(--color-this-week);
}

.event-card--title {
    font-size: 1.125rem;
    line-height: 160%;
}

.event-card__date {
    align-items: center;
    border-right: 1px solid var(--color-border);
    color: var(--color-text-header);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    justify-content: center;
    text-align: center;
    border-top-left-radius: var(--radius);
    border-bottom-left-radius: var(--radius);
}

.event-card__date-this-week,
.event-card:hover > .event-card__date {
    background: var(--color-this-week);
    color: #ffffff;
}
.event-card__month,
.event-card__weekday {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
}

.event-card__day {
    font-size: 1.75rem;
    line-height: 1;
}

.event-card__link {
    display: flex;
    align-items: center;
    /* grid-template-columns: minmax(0,1fr) 6rem; */
}

.event-card__body {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.5rem;
}

.event-card__tags {
    display: flex;
    gap: 0.25rem;
}

.event-card__tag {
    padding: 0.125rem 0.5rem;
    border-radius: 0.25rem;
    color: var(--color-text);
    font-size: 0.875rem;
    line-height: var(--line-height-dns);
}
.event-card__tag--format {
    background: #e9ffcc;
}

.event-card__tag--free {
    background: #dcf0ff;
}

.event-card__tag--week {
    background: var(--color-this-week);
    color: #ffffff;
}

.event-card__details {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.625rem;
    color: var(--color-darkgray);
}

.event-card__details div {
    display: flex;
    gap: 0.25rem;
    align-items: center;
}

.event-card__details dt,
.event-card__group img {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 0.875rem;
    height: 0.875rem;
}
/* .event-card__details dt,
.event-card__group img ,
.event-link svg {
    border: 1px solid #92dea8;
} */

.event-card__details dd {
    margin: 0;
}
.event-card__group {
    display: flex;
    gap: 0.25rem;
    color: var(--color-darkgray);
}

.event-card__arrow {
    display: grid;
    place-items: center;
    min-width: 2rem;
    min-height: 2rem;
    margin-inline: 1rem;
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
}
.event-card:hover .event-card__arrow {
    background: var(--color-accent);
}
.event-card:hover .event-card__arrow > svg > path {
    fill: var(--color-white);
}

.event-card-details dd,
.event-card__group {
    font-size: 0.875rem;
    line-height: 120%;
    letter-spacing: 0;
}

.event-link {
    font-size: 1.125rem;
    line-height: 160%;
    font-weight: 700;
    margin-left: auto;
    display: flex;
    gap: 0.25rem;
    align-items: center;
}
.event-link:hover {
    translate: 0.5rem 0rem;
    opacity: 1;
}

.event-link svg {
    margin-block: auto;
}
.event-card__date,
.event-card__arrow,
.event-card__arrow > svg > path,
.event-link {
    transition:
        color 300ms ease-in-out,
        background-color 300ms ease-in-out,
        fill 300ms ease-in-out,
        translate 300ms ease-in-out;
}
.event-month-selector {
    background: var(--color-gray);
    border-bottom: 1px solid var(--color-border);
    scroll-margin-top: 5rem;
}

.event-month-selector__heading {
    font-size: 1.125rem;
}

.event-month-selector__nav {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: space-between;
    /* display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	overflow: hidden;
	border: 1px solid var(--color-border);
	border-radius: var(--radius); */
}

.event-month-selector__items {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    overflow: hidden;
}
.event-month-selector__item {
    display: flex;
    /* min-height: 5.5rem; */
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 1rem 1.5rem;

    /* gap: 0.125rem; */
    /* background: var(--color-white); */
    font-size: 0.875rem;
    line-height: 1;
    letter-spacing: 0;
    color: var(--color-darkgray);
    text-decoration: none;
    transition:
        background-color 200ms ease,
        color 200ms ease;
}

/* .event-month-selector__item + .event-month-selector__item {
	border-left: 1px solid var(--color-border);
} */

.event-month-selector__item:hover,
.event-month-selector__item:focus-visible {
    background: var(--color-lightgreen);
}

.event-month-selector__item.is-current {
    color: var(--color-accent);
    font-weight: 700;
    border-bottom: 2px solid var(--color-accent);
}

.event-month-selector__year {
    font-size: 0.75rem;
    font-weight: 400;
}

.event-month-selector__arrow {
    display: flex;
    flex: 0 0 auto;
    gap: 0.25rem;
}

.event-month-selector__arrow-link {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 0.5rem;
    color: var(--color-accent);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        border-color 200ms ease,
        background-color 200ms ease,
        color 200ms ease;
}

.event-month-selector__arrow-link:hover,
.event-month-selector__arrow-link:focus-visible {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: var(--color-white);
}

.event-month-selector__arrow-link.is-disabled {
    cursor: default;
    opacity: 0.35;
}

.article-list {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr);
}

.article-card {
    display: flex;
    flex-direction: row;
    gap: 1.5rem;
    min-width: 0;
    overflow: hidden;
    padding: 1.5rem;
    transition: border 300ms ease-in-out;
}

.article-card:hover {
    border: 1px solid var(--color-accent);
}

.article-card__thumbnail {
    display: block;
    overflow: hidden;
    max-width: 12.5rem;
    border-radius: 0.5rem;
}

.article-card__thumbnail img {
    aspect-ratio: 16 / 9;
    display: block;
    object-fit: cover;
    transition: transform 0.2s ease;
    width: 100%;
    height: 100%;
}

.article-card__thumbnail:hover img {
    transform: scale(1.03);
}

.article-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 1rem;
}

.article-card__labels {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.article-card__category,
.article-card__new {
    display: inline-flex;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.2;
}

.article-card__category {
    color: var(--color-accent);
}

.article-card__new {
    padding: 0.125rem 0.5rem;
    background: var(--color-lightgreen);
    color: var(--color-accent);
    border-radius: 0.875rem;
}
.article-card__text {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.article-card__title {
    font-size: 1.25rem;
    line-height: 1.5;
}

.article-card__title a {
    color: var(--color-text-header);
}

.article-card__description {
    color: var(--color-text);
}

.article-card__description p {
    display: -webkit-box;
    font-size: 1rem;
    line-height: 170%;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.article-card__bottom {
    display: flex;
    justify-content: space-between;
    line-height: 120%;
    font-size: 0.875rem;
    letter-spacing: 0;
    margin-top: auto;
}
.article-card__meta {
    color: var(--color-darkgray);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.article-card__meta time {
    margin-left: 0.5rem;
}
.article-card__author {
}

.article-card__more {
    align-items: center;
    align-self: flex-end;
    display: inline-flex;
    gap: 0.5rem;
}
.article-card__more > svg {
    width: 1rem;
    height: 1rem;
}

.article-list__empty {
    grid-column: 1 / -1;
}

/* @media (max-width: 600px) {
    .article-card__body {
        padding: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .article-card__thumbnail img,
    .learn-about-card__thumbnail img {
        transition: none;
    }
} */

.table-list {
    border-collapse: collapse;
    border-top: 1px solid var(--color-accent);
    width: 100%;
}
.table-list tr {
    border-inline: 1px solid var(--color-accent);
}
.table-list th,
.table-list td {
    border-bottom: 1px solid var(--color-accent);
    padding: 1rem;
    text-align: left;
    vertical-align: top;
    font-size: 0.875rem;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
}
.table-list th {
    border-right: 1px solid var(--color-accent);
    background: var(--color-lightgreen);
    font-weight: 700;
    width: 10.625rem;
}
.table-list__items {
    padding: 0;
    list-style: none;
}
.table-list__items li::before {
    content: '・';
}
.site-footer {
    /* background: #3E746E; */
    background: #3e746e;
    background-image:
        linear-gradient(to right, rgba(194, 229, 207, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(194, 229, 207, 0.05) 1px, transparent 1px);
    background-size: 40px 40px;
    /* 2.5rem */
    color: #fff;
    padding-block: 5.5rem;
}
/* .site-footer a { color: #fff; } */
.footer__layout {
    gap: 2rem;
}
.footer__layout > p {
    font-size: 0.875rem;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
    margin-left: auto;
}
.footer-columns {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 1.5rem;
}
.footer-column {
    border: 1px solid var(--color-border);
    padding: 1.5rem;
    background: #e1eae8;
    color: #353535;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: 0.5rem;
}
.footer-column h2 {
    font-size: 1.125rem;
    margin: 0 0 1rem;
    color: #08351f;
    display: flex;
    gap: 0.5rem;
    align-items: center;
}
.footer-column p {
    display: flex;
    flex-direction: column;
    color: var(--color-text);
    font-size: 1rem;
    line-height: 170%;
    margin-bottom: 1rem;
}
.footer-button {
    padding: 1rem;
    border-radius: 0.25rem;
    font-size: 1rem;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
    width: 100%;
    /* border-width: 1px; */
    border: 1px solid var(--color-text-header);
}
.footer-button:hover,
.footer-site-profile__link-a:hover {
    text-decoration: underline;
}
.footer-button--top {
    margin-top: auto;
}
.footer-button--primary {
    margin-bottom: 0.5rem;
    border-width: 0;
    /* color: var(--color-white); */
}
.footer-site-profile__fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    padding-block: 3.5rem;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.footer-site-profile__field {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    /* justify-content: space-between; */
    justify-content: end;
    padding-inline-start: 2.5rem;
}
.footer-site-profile__field h2 {
    color: var(--color-white);
    font-size: 1.75rem;
    line-height: var(--line-height);
    letter-spacing: 1%;
}
.footer-site-profile__field p {
    font-size: 0.875rem;
    line-height: var(--line-height-dns);
    letter-spacing: 0;
}
.footer-site-profile__field strong {
    font-size: 1.125rem;
    line-height: 160%;
    letter-spacing: var(--letter-spacing);
    font-weight: 400;
}
.footer-site-profile__content * {
    color: var(--color-white);
    font-size: 1.125rem;
    line-height: 160%;
}
.footer-site-profile__content h3 {
    font-size: 1.25rem;
    line-height: var(--line-height);
    letter-spacing: var(--letter-spacing);
}

.footer-site-profile__link {
    display: flex;
    gap: 2rem;
    align-items: center;
}
.footer-site-profile__link-a {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* タブレット幅(tb) */
@media (max-width: 1280px) {
    .pc-only {
        display: none;
    }
    .pc-none {
        display: block;
    }
    #main,
    .main {
        padding-block-start: var(--size-header-tablet);
    }
    .layout {
        max-width: var(--size-tablet);
        padding-block: 0;
        padding-inline: 2.5rem;
    }
    /* .section {
        padding-bottom: 3.25rem;
    } */
    .content-grid-2,
    .layout-column-2 {
        grid-template-columns: minmax(0, 1fr);
    }
    .site-header__inner {
        min-height: var(--size-header-tablet);
        padding-inline: 1.5rem;
    }
    .primary-nav a {
        /* 仮値 */
        padding-inline: 0.625rem;
        font-size: 0.875rem;
    }
    .page-heading {
        gap: 0.5rem;
    }
    .page-hero {
        padding: 4rem 2.5rem;
    }
    .page-hero__inner {
        padding: 0;
        max-width: calc(var(--size-tablet) - 5rem);
        gap: 0;
    }
    .page-hero__content {
        margin-top: 4.75rem;
    }
    .page-hero__content:has(.page-hero__stats) {
        margin-top: 3rem;
    }
    .page-hero__target + .page-hero__title,
    .page-hero__description {
        margin-top: 0.5rem;
    }

    .page-hero__description br {
        display: none;
    }
    .card-grid {
        grid-template-columns: minmax(0, 1fr);
    }
    .event-link {
        font-size: 0.875rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .event-card__body {
        padding: 1.25rem 1rem;
    }
    /* .event-card--detailed {
        grid-template-columns: 3.75rem minmax(0,1fr);
    }
    .event-card__tag {
        font-size: .75rem;
    }
    .event-card--title {
        font-size: .875rem;
        line-height: 140%;
    }
    .event-card__details {
        gap: .25rem;
    }
    .event-card__details dd,
    .event-card__group {
        font-size: .75rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .event-card__group {
        gap: .25rem;
    }
    .event-card__arrow {
        margin-top: auto;
        margin-inline: 0;
        border-width: 0;
    } */
    /* .article-card__thumbnail {
        max-width: fit-content;
        height: 11.25rem;
    } */
    /* .article-card__category ,
    .article-card__new {
        font-size: .75rem;
        letter-spacing: 0;
    }
    .article-card__title {
        font-size: 1rem;
        line-height: 170%;
    }
    .article-card__description p {
        font-size: .875rem;
        line-height: 140%;
    }
    .article-card__bottom {
        flex-direction: column;
        gap: 1rem;
        font-size: .75rem;
    } */
    .table-list th {
        width: 10.625rem;
    }
    .nav-links {
        gap: 0.25rem;
        margin-block: 1.5rem;
    }
    .footer-columns {
        grid-template-columns: minmax(0, 1fr);
    }
    .footer-site-profile__fields {
        grid-template-columns: minmax(0, 1fr);
        padding-block: 1.5rem;
        gap: 2rem;
    }
    .footer-site-profile__field {
        padding-inline-start: 0;
    }
    .footer-site-profile__field h2 {
        /* font-size: 1.125rem;
        line-height: 160%;
        letter-spacing: 2%; */
    }
    .footer-site-profile__field strong {
        /* font-size: .875rem;
        line-height: 180%;
        letter-spacing: 2%; */
    }
    .footer-site-profile__field strong > br {
        display: none;
    }
    .footer-site-profile__field p {
        line-height: var(--line-height-dns);
    }
    .footer-site-profile__content * {
        font-size: 1.125rem;
        line-height: 160%;
    }
    .footer-site-profile__content h3 {
        /* font-size: 1.125rem;
        line-height: 160%; */
    }
    .footer-site-profile__link {
        gap: 0.25rem;
    }
    .footer-site-profile__link-a + .footer-site-profile__link-a {
        margin-left: 1.5rem;
    }
    .footer__layout > p {
        margin: auto;
        /* margin-top: .5rem; */
    }
}
/* タブレット幅のみ */
@media (min-width: 768px) and (max-width: 1280px) {
    .tb-only {
        display: block;
    }
    .tb-none {
        display: none;
    }
    .page-heading p {
        font-size: 1.125rem;
        line-height: 160%;
    }
    .page-hero {
        background-image: url(../../images/fv/FV_mobile.jpg);
        background-position: bottom 80% right;
        min-height: 34.375rem;
        background-size: auto;
    }
    .footer-column {
        padding-inline: 2.5rem;
        display: grid;
        align-items: start;
        grid-template-columns: 15.5rem 1fr;
    }
    .footer-column h2 {
        margin-bottom: 0.5rem;
        grid-column: span 2;
        /*     width: 100%;
    width: -webkit-fill-available;
    width: stretch; */
    }
    .footer-column p {
        margin-bottom: 1rem;
        grid-column: span 2;
        /*     width: 100%;
    width: -webkit-fill-available;
    width: stretch; */
    }
    .footer-column p > span {
        white-space: nowrap;
    }
    .footer-button {
        width: 15rem;
    }
    .footer-button--primary {
        margin-bottom: 0;
    }
}
/* モバイル幅 */
@media (max-width: 767.9px) {
    h1 {
        font-size: 2rem;
        letter-spacing: 3%;
    }
    p {
        font-size: 1rem;
        line-height: 170%;
    }
    .sp-only {
        display: block;
    }
    #main,
    .main {
        padding-block-start: 3.5rem;
    }
    .section {
        padding-block: 4rem;
    }
    .section-404 {
        padding-top: 0;
    }
    .layout {
        gap: 1.5rem;
        align-items: center;
    }
    .layout__line {
        display: none;
    }
    .site-header__inner {
        grid-template-columns: 1fr auto;
        min-height: 3.5rem;
        padding-inline: 1.5rem;
    }
    .custom-logo {
        max-height: 2.25rem;
    }
    .menu-toggle {
        display: inline-flex;
    }
    .mobile-menu {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        padding: 1.5rem;
    }
    .mobile-menu > h2 {
        font-size: 1rem;
        line-height: 130%;
        letter-spacing: 0;
    }
    .card__mobile-menu {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        justify-content: center;
        padding-inline-start: 0;
        list-style-type: none;
    }
    .card__mobile-menu > li {
        flex: 0 0 calc((100% - 1rem) / 3);
    }
    .card__mobile-menu > li > .mobile-menu-card {
        padding: 1rem 1.25rem;
    }
    .mobile-menu-card {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }
    .mobile-menu-card__icon,
    .mobile-menu-card__icon > svg {
        width: 1rem;
        height: 1rem;
    }
    .mobile-menu-card__title {
        font-size: 0.75rem;
        line-height: var(--line-height-dns);
        color: var(--color-accent);
        white-space: nowrap;
    }
    .primary-nav {
        background: var(--color-background);
        border-top: 1px solid var(--color-border);
        box-shadow: var(--shadow);
        left: 0;
        max-height: calc(100vh - 3.5rem);
        overflow-y: auto;
        position: fixed;
        right: 0;
        top: 3.5rem;
    }
    .primary-nav[hidden] {
        display: none;
    }
    .primary-nav .menu {
        display: flex;
        flex-direction: column;
        padding-block: 1.5rem;
        background: var(--color-lightgreen);
    }
    .primary-nav a {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
        padding: 1rem 1.5rem;
        width: 100%;
        color: var(--color-accent);
        line-height: var(--line-height-dns);
        letter-spacing: 0;
        font-size: 0.875rem;
    }
    .primary-menu__slug {
        display: block;
        font-size: 0.625rem;
        font-weight: 400;
    }
    .primary-nav > .site-footer {
        padding-block: 2.5rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1.5rem;
    }
    .primary-nav__footer-site-profile__content {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
    }
    .primary-nav__footer-site-profile__content a {
        color: var(--color-white);
        flex-direction: row;
        gap: 0.25rem;
        padding: 0;
        font-size: 0.75rem;
        font-weight: 400;
        min-height: fit-content;
    }
    .primary-nav__footer-site-profile__content h3 {
        font-size: 0.875rem;
        line-height: 140%;
    }
    .primary-nav__footer-site-profile__content a > svg {
        margin-bottom: auto;
        width: 0.75rem;
        height: 0.75rem;
    }
    .primary-nav__footer p {
        font-size: 0.625rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .layout {
        max-width: var(--size-mobile);
        padding-inline: 1.5rem;
    }
    .hero h1 {
        font-size: 2rem;
        letter-spacing: 3%;
    }
    .page-header h1 {
        font-size: 1.5rem;
        line-height: var(--line-height);
        letter-spacing: 1%;
    }
    .page-hero {
        background:
            linear-gradient(90deg, #a4c9f3 6.98%, rgba(190, 215, 240, 0) 100%),
            url(../../images/fv/FV_mobile.jpg);
        background-position: 57% 75%;
        padding: 4rem 1.5rem;
        min-height: 40.5rem;
    }
    .page-hero__inner {
        padding: 0;
        max-width: calc(var(--size-mobile) - 3rem);
        gap: 0;
    }
    .page-hero__content {
        margin-top: 3.25rem;
    }
    .page-hero__content:has(.page-hero__stats) {
        margin-top: 1rem;
    }
    .page-hero__target {
        padding: 0.25rem 0.5rem;
    }
    .page-hero__target p {
        font-size: 0.875rem;
        letter-spacing: 0;
    }
    .page-hero__title {
        font-size: 2rem;
        letter-spacing: 3%;
    }
    .pahe-hero__target + .page-hero__title,
    .page-hero__description {
        margin-top: 0.5rem;
    }
    .page-hero__description p {
        font-size: 0.875rem;
        line-height: 180%;
    }
    .page-hero__stats {
        gap: 0.5rem;
    }
    .page-hero__stats__field {
        padding: 0.5rem;
        width: 100%;
        width: -webkit-fill-available;
        width: stretch;
    }
    .page-hero__stats__field strong {
        font-size: 1.25rem;
    }
    .page-hero__stats__field span {
        font-size: 0.75rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
        white-space: nowrap;
    }
    .breadcrumbs a,
    .breadcrumbs span {
        font-size: 0.875rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .page-section {
        gap: 1.5rem;
    }
    .page-heading {
        gap: 0;
        width: 100%;
        width: -webkit-fill-available;
        width: stretch;
    }
    .page-heading h2 {
        font-size: 1.25rem;
        letter-spacing: 2%;
    }
    .page-heading p {
        font-size: 1rem;
        line-height: 170%;
    }
    .page-heading br {
        display: none;
    }
    .column-2-title > h2 {
        font-size: 1rem;
        line-height: 170%;
    }
    .eyebrow-field > p {
        font-size: 0.75rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .eyebrow-line {
        width: 0.5rem;
    }
    .table-list th {
        width: 5rem;
    }

    .button {
        font-size: 0.875rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
        margin-inline: auto;
    }
    .button svg {
        width: 0.75rem;
        height: 0.75rem;
    }
    .article-card__thumbnail {
        max-width: fit-content;
        height: 11.25rem;
    }
    .event-link {
        font-size: 0.875rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }

    .event-card--detailed {
        grid-template-columns: 3.75rem minmax(0, 1fr);
    }
    .event-card__tag {
        font-size: 0.75rem;
    }
    .event-card--title {
        font-size: 0.875rem;
        line-height: 140%;
    }
    .event-card__details {
        gap: 0.25rem;
    }
    .event-card__details dd,
    .event-card__group {
        font-size: 0.75rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }
    .event-card__group {
        gap: 0.25rem;
    }
    .event-card__arrow {
        margin-top: auto;
        margin-inline: 0;
        border-width: 0;
    }
    .article-card {
        flex-direction: column;
        gap: 1rem;
    }
    .article-card__category,
    .article-card__new {
        font-size: 0.75rem;
        letter-spacing: 0;
    }
    .article-card__title {
        font-size: 1rem;
        line-height: 170%;
    }
    .article-card__description p {
        font-size: 0.875rem;
        line-height: 140%;
    }
    .article-card__bottom {
        flex-direction: column;
        gap: 1rem;
        font-size: 0.75rem;
    }
    .page-numbers {
        min-width: 1.5rem;
        min-height: auto;
        max-width: 1.5rem;
        max-height: 1.5rem;
        font-size: 0.75rem;
        line-height: var(--line-height-dns);
        letter-spacing: 0;
    }

    .site-footer {
        padding-bottom: 2.5rem;
    }
    .footer-column h2 {
        font-size: 1rem;
        line-height: 170%;
        letter-spacing: 2%;
        margin-bottom: 0.5rem;
    }
    .footer-column p {
        font-size: 0.875rem;
        line-height: 180%;
    }
    .footer-site-profile__fields {
        grid-template-columns: minmax(0, 1fr);
    }
    .footer-site-profile__field h2 {
        font-size: 1.125rem;
        line-height: 160%;
        letter-spacing: 2%;
    }
    .footer-site-profile__field strong {
        font-size: 0.875rem;
        line-height: 180%;
        letter-spacing: 2%;
    }
    .footer-site-profile__content * {
        font-size: 0.875rem;
        line-height: 180%;
    }
    .footer-site-profile__content h3 {
        font-size: 1rem;
        line-height: 170%;
    }
    .footer__layout > p {
        margin-top: 0.5rem;
    }
    .footer-site-terms {
        flex-wrap: wrap;
        gap: 0 0.25rem;
    }
    .footer-site-terms .footer-site-profile__link-a:nth-child(3) {
        margin-left: 0;
    }
}

/* @media (max-width: 860px) {
    .site-header__inner {
        grid-template-columns: 1fr auto;
    }
    .menu-toggle {
        display: inline-flex;
    }
    .header-cta {
        display: none;
    }
    .primary-nav {
        background: var(--color-background);
        border-top: 1px solid var(--color-border);
        grid-column: 1 / -1;
        margin-inline: calc(clamp(1rem, 4vw, 2rem) * -1);
        padding: 1rem clamp(1rem, 4vw, 2rem);
    }
    .primary-nav .menu {
        display: block;
    }
    .primary-nav a {
        width: 100%;
    }
    .card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .footer-columns {
        grid-template-columns: 1fr;
    }
    .page-hero {
        background-position: 60% center;
        min-height: 20rem;
    }
}

@media (max-width: 520px) {
    .card-grid {
        grid-template-columns: 1fr;
    }
    .filter-panel {
        align-items: stretch;
        flex-direction: column;
    }
    .details-list {
        grid-template-columns: 1fr;
    }
    .details-list dt {
        border-bottom: 0;
    }
    h1,
    .page-hero__title {
        font-size: 2rem;
    }
    .page-hero {
        background-position: 68% center;
        min-height: 18rem;
    }
    .page-hero__inner {
        padding: 1.25rem 1.25rem 2rem;
    }
    .page-hero__content {
        max-width: 80%;
        padding-block: 1.5rem;
    }
    .page-hero__description p {
        font-size: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
    }
} */
