@charset "utf-8";
/* CSS Document */

/* =========================
   Base
========================= */
*, *::before, *::after { box-sizing: border-box;}
html {
    font-size: 100%;
    scroll-behavior: smooth;
}
body {
    color: var(--text-base);
    font-family: "Kosugi Maru", sans-serif;
    font-size: 0.9375rem;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0.08em;
	line-height: 1.6;
    margin: 0;
}
img {
    display: block;
    height: auto;
    max-width: 100%;
}
h1,h2,h3,h4 { font-weight: 400;}
p { margin: 0;}
ul,li {
	list-style: none;
	margin: 0;
	padding: 0;
}	
a {
	color: var(--text-base);
    text-decoration: none;
}
a:hover { color: var(--text-main);}
cite { font-style: normal;}

/* =========================
   Utility
========================= */
.u-text-xs { font-size: 0.75rem;}
.u-text-sm { font-size: 0.875rem;}
.u-text-md { font-size: 1rem;}
.u-text-lg { font-size: 1.125rem;}
.u-text-color { color: var(--text-main);}
.u-text-red { color: var(--text-red);}
.u-text-center { text-align: center;}
.u-text-right { text-align: right;}
.u-pc-only { display: block !important;}
.u-sp-only { display: none !important;}
.u-ml-10 { margin-left: 10px;}
.u-mr-5 { margin-right: 5px;}
.u-mr-10 { margin-right: 10px;}
.u-font-en {
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    padding-right: 2px;
}
.u-font-en--unset { font-size: unset;}
@media (max-width: 767px) {
.u-pc-only { display: none !important;}
.u-sp-only { display: block !important;}
}

/* =========================
   Root
========================= */
:root {
    --text-base: #443226;
    --text-main: #F29226;
    --text-sub: #FABE00;
    --text-link: #1D3994;
    --text-white: #FFF;
    --text-red: #E94C4b;
    --bg-base: #443226;
    --bg-main: #FABE00;
    --bg-sub: #F29226;
    --bg-white: #FFF;
    --bg-red: #E94C4b;
    --bg-light-yellow: #FDF7E3;
    --rgb-base: 68, 50, 38;
    --rgb-main: 250, 190, 0;
    --rgb-white: 255, 255, 255;
    --rgb-black: 0, 0, 0;    
    --border-base: #443226;
    --border-main: #FABE00;
    --border-sub: #F29226;
    --border-banner: #ECEAE9;
    --border-white: #FFF;
    --border-red: #E94C4b;
    --button-main: #FABE00;
    --button-hover: #F29226;
    --button-sub: #83C149;
    --tab-color: #443226;
    --dot-color: #FABE00;
    --error-border: #EF815C;
    --error-bg: #FCF0ED;
    --facebook-color: #1877F2;
    --x-color: #000;
    --line-color: #06C755;
}

/* =========================
   Theme
========================= */
.t-give-support {
    --category-color: #83C149;
    --category-bg: #F1F7EB;
}
.t-get-support {
    --category-color: #EF815C;
    --category-bg: #FCF0ED;
}

/* =========================
   Header
========================= */
header {
    background-color: rgb(var(--rgb-white), 0.8);
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 1000;
}
.header__inner {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin: auto;
    padding: 10px;
}
.header__logo { margin: 0;}
.header__logo-image {
    object-fit: cover;
    width: 335px;
}
.header__right {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.header__menu {
    display: flex;
    font-size: 0.875rem;
    gap: 15px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.header__link {
    color: var(--text-base);
    display: inline-block;
    transition: transform 0.3s ease;
}
.header__link:hover { transform: translateY(3px);}
.header__link::before {
    color: var(--text-sub);
    content: "●";
    font-size: 0.5rem;
    margin-right: 5px;
    vertical-align: middle;
}
.header__bottom {
    align-items: center;
    display: flex;
    gap: 15px;
}
.header__buttons {
    display: flex;
    gap: 10px;
}
.header__button {
    align-items: center;
    border-radius: 10px;
    color: var(--text-white);
    display: flex;
    padding: 8px 10px;
    justify-content: center;
    min-width: 180px;
    transition: transform 0.3s ease;
}
.header__button:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    transform: translateY(3px);
}
.header__button::before {
    content: "";
    display: block;
    height: 30px;
    flex-shrink: 0;
    margin-right: 5px;
    transition: transform 0.3s ease;
    width: 38px;
}
.header__button .fa-solid { margin-left: 5px;}
.t-give-support.header__button--give-support {
    background-color: var(--category-color);
}
.t-give-support.header__button--give-support:hover {
    background-color: var(--category-bg);
    color: var(--category-color);
}
.header__button--give-support::before {
    background: url(../img/icon/icon_give-support_white.svg) no-repeat center / contain;
}
.header__button--give-support:hover::before {
    background: url(../img/icon/icon_give-support_color.svg) no-repeat center / contain;
}
.t-get-support.header__button--get-support { background-color: var(--category-color);}
.t-get-support.header__button--get-support:hover {
    background-color: var(--category-bg);
    color: var(--category-color);
}
.header__button--get-support::before {
    background: url(../img/icon/icon_get-support_white.svg) no-repeat center / contain;
}
.header__button--get-support:hover::before {
    background: url(../img/icon/icon_get-support_color.svg) no-repeat center / contain;
}
.header__sns {
    display: flex;
    gap: 10px;
}
.header__sns-link, .header__mail-link {
    align-items: center;
    border-radius: 50%;
    color: var(--text-white); 
    display: flex;
    font-size: 1.25rem;
    justify-content: center;
    height: 40px;
    width: 40px;
}
.header__sns-link {
    background-color: var(--bg-main);
    transition: transform 0.3s ease;
}
.header__sns-link:hover {
    background-color: var(--bg-sub);
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    color: var(--text-white);
    transform: translateY(3px);
}
.header__mail-link {
    background-color: var(--bg-sub);
    transition: transform 0.3s ease;
}
.header__mail-link:hover {
    background-color: var(--bg-main);
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    color: var(--text-white);
    transform: translateY(3px);
}
.header__tel-number {
    color: var(--text-red);
    display: block;
    font-family: "Nunito", sans-serif;
    font-size: 1.125rem;
    font-weight: bold;
    letter-spacing: 0.06em;
    line-height: 1.2;
    padding-top: 2px;
}
.header__tel-time {
    font-size: 0.875rem;
    letter-spacing: 0.04em;
}
.header__hamburger, .header__sp-nav, .fixed-menu { display: none;}
@media (max-width: 1160px) {
.header__hamburger {
    align-items: center;
    background-color: var(--bg-sub);
    border: 0;
    border-radius: 5px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: 40px;
    justify-content: center;
    position: relative;
    width: 40px;
    z-index: 1001;
}
.header__hamburger span {
    background-color: var(--bg-white);
    border-radius: 5px;
    height: 3px;
    width: 24px;
    transition: transform 0.3s, opacity 0.3s;
}
.header__hamburger.is-open span:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.header__hamburger.is-open span:nth-child(2) {
    opacity: 0;
}
.header__hamburger.is-open span:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}
.header__nav, .header__bottom { display: none;}
.header__nav {
    display: block;
    background-color: var(--bg-main);
    height: 100vh;
    overflow-y: auto;
    padding: 20px 0;
    position: fixed;
    right: -100%;
    top: 0;
    transition: .3s;
    width: 300px;
    z-index: 1000;
}
.header__nav.is-open { right: 0;}
.header__item {
    border-bottom: 2px solid var(--border-white);
    padding: 0 20px 15px 20px;
}
.header__item:last-child { border-bottom: none;}
.header__link::before { display: none;}
.header__tel-number { color: var(--text-base);}
.header__sns { justify-content: center;}
.header__sns-link { background-color: var(--bg-sub);}
.header__menu {
    flex-direction: column;
    gap: 15px;
}
.header__menu .u-sp-only { display: block !important;}
.header__bottom, .header__action { display: none;}
.u-sp-only.header__sns { display: flex !important;}
}
@media screen and (max-width: 767px) {
.header__logo-image { width: 220px;}
}

/* =========================
   Main
========================= */
main { margin-top: 102px;}
@media screen and (max-width: 767px) {
main { margin-top: 60px;}
}

/* =========================
   Mainvisual
========================= */
.mainvisual__slider {
    box-sizing: border-box;
    overflow: visible;
    position: relative;
    width: 100%;
}
.mainvisual__slide {
    padding: 0 10px;
    position: relative;
}
.mainvisual__slide img {
    border-radius: 20px;
    box-shadow: 5px 5px 0 0 var(--shadow-color);
    display: block;
    height: auto;
    max-height: 700px;
    object-fit: cover;
    width: 100%;
}
.mainvisual__slider .slick-prev, .mainvisual__slider .slick-next {
    background-color: var(--bg-main);
    border: none;
    border-radius: 50%;
    font-size: 0;
    height: 40px;
    line-height: 0;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 50%;
    width: 40px;
    z-index: 10;
    transform: translateY(-50%);
}
.mainvisual__slider .slick-prev:hover, .mainvisual__slider .slick-next:hover {
    background-color: rgb(var(--rgb-main), 0.8);
}
.mainvisual__slider .slick-prev { left: 2%;}
.mainvisual__slider .slick-next { right: 2%;}
.mainvisual__slider .slick-prev::before, .mainvisual__slider .slick-next::before {
    color: var(--text-white);
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1;
    opacity: 1;
}
.mainvisual__slider .slick-prev::before { content: "‹";}
.mainvisual__slider .slick-next::before { content: "›";}
@media screen and (max-width: 767px) {
.mainvisual__slide { padding: 0;}
.mainvisual__slide img { border-radius: 0;}
.mainvisual__slider .slick-prev, .mainvisual__slider .slick-next {
    height: 35px;
    width: 35px;
}
.mainvisual__slider .slick-prev::before, .mainvisual__slider .slick-next::before {
    font-size: 1rem;
}
.mainvisual__slider .slick-prev { left: 10px;}
.mainvisual__slider .slick-next { right: 10px;}
}

/* =========================
   Banner
========================= */
.banner__list {
    display: flex;
    gap: 40px;
    justify-content: center;
    margin-top: 30px;
}
.banner__item { width: calc(50% - 20px);}
@media (max-width: 767px) {
.banner__list {
    flex-direction: column;
    gap: 20px;
    width: 100%;
}
.banner__item { width: 100%;}
}

/* =========================
   Fade
========================= */
.fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}
.fade-up.is-show {
    opacity: 1;
    transform: translateY(0);
}
.delay-1 { transition-delay: 0.05s;}
.delay-2 { transition-delay: 0.1s;}
.delay-3 { transition-delay: 0.15s;}
.delay-4 { transition-delay: 0.2s;}
.delay-5 { transition-delay: 0.25s;}
.delay-6 { transition-delay: 0.3s;}
.delay-7 { transition-delay: 0.35s;}
.delay-8 { transition-delay: 0.4s;}
.delay-9 { transition-delay: 0.45s;}
.delay-10 { transition-delay: 0.5s;}

/* =========================
   Layout Container
========================= */
.l-container {
	max-width: 1200px;
    margin-left: auto;
	margin-right: auto;
    padding: 0 30px;
    width: 100%;
}
@media (max-width: 1200px) {
.l-container { max-width: none;}
}

/* =========================
   Layout Section
========================= */
.l-section { margin-top: 60px;}
@media (max-width: 767px) {
.l-section { margin-top: 40px;}
}

/* =========================
   Component Title
========================= */
.c-section-title {
    align-items: center;
    display: flex;
    font-size: 1.75rem;
    gap: 10px;
    justify-content: center;
    margin: 0;
    padding-bottom: 20px;
    position: relative;
    text-align: center;
}
.c-section-title::after {
    bottom: 0;
    color: var(--dot-color);
    content: "● ● ●";
    font-size: 0.5rem;
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    white-space: nowrap;
}
.c-section-title::before {
    background: url(../img/icon/icon_news.svg) no-repeat center / contain;
    content: "";
    flex-shrink: 0;
    height: 60px;
    width: 75px;
}
.updates--news .c-section-title::before { background: url(../img/icon/icon_news.svg) no-repeat center / contain;}
.updates--report .c-section-title::before { background: url(../img/icon/icon_report.svg) no-repeat center / contain;}
.top-partner .c-section-title::before { background: url(../img/icon/icon_supporter_color.svg) no-repeat center / contain;}
.about .c-section-title::before { background: url(../img/icon/icon_about.svg) no-repeat center / contain;}
.strength .c-section-title::before { background: url(../img/icon/icon_strength.svg) no-repeat center / contain;}
.greeting .c-section-title::before { background: url(../img/icon/icon_greeting.svg) no-repeat center / contain;}
.requests .c-section-title::before { background: url(../img/icon/icon_requests.svg) no-repeat center / contain;}
.overview .c-section-title::before { background: url(../img/icon/icon_overview.svg) no-repeat center / contain;}
.results .c-section-title::before { background: url(../img/icon/icon_results.svg) no-repeat center / contain;}
.thanks .c-section-title::before { background: url(../img/icon/icon_thanks.svg) no-repeat center / contain;}
.awards .c-section-title::before { background: url(../img/icon/icon_awards.svg) no-repeat center / contain;}
.records--kessan .c-section-title::before { background: url(../img/icon/icon_kessan.svg) no-repeat center / contain;}
.corporate .c-section-title::before { background: url(../img/icon/icon_corporate.svg) no-repeat center / contain;}
.lecture .c-section-title::before { background: url(../img/icon/icon_lecture.svg) no-repeat center / contain;}
.donate-food .c-section-title::before { background: url("../img/icon/icon_donate-food.svg") no-repeat center / contain;}
.donate-money .c-section-title::before { background: url("../img/icon/icon_donate-money.svg") no-repeat center / contain;}
.volunteer .c-section-title::before { background: url("../img/icon/icon_volunteer.svg") no-repeat center / contain;}
.amazon .c-section-title::before { background: url("../img/icon/icon_amazon.svg") no-repeat center / contain;}
.company .c-section-title::before { background: url("../img/icon/icon_company.svg") no-repeat center / contain;}
.support .c-section-title::before { background: url("../img/icon/icon_support.svg") no-repeat center / contain;}
.support .c-section-title::before { background: url("../img/icon/icon_support.svg") no-repeat center / contain;}
.youth .c-section-title::before { background: url("../img/icon/icon_youth.svg") no-repeat center / contain;}
.flow .c-section-title::before { background: url("../img/icon/icon_flow.svg") no-repeat center / contain;}
.schedule--fooddrive .c-section-title::before { background: url("../img/icon/icon_donate-food.svg") no-repeat center / contain;}
.schedule--volunteer .c-section-title::before { background: url("../img/icon/icon_volunteer.svg") no-repeat center / contain;}
.contact .c-section-title::before { background: url("../img/icon/icon_contact.svg") no-repeat center / contain;}
.privacy-policy .c-section-title::before { background: url("../img/icon/icon_privacypolicy.svg") no-repeat center / contain;}
.site-policy .c-section-title::before { background: url("../img/icon/icon_sitepolicy.svg") no-repeat center / contain;}
.c-section-title__inner, .c-section-subtitle__inner { display: inline-block;}
.c-section-title__sub {
    display: inline-block;
    font-size: 1.25rem;
    margin-bottom: 5px;
}
.c-section-subtitle {
    border: 2px solid var(--border-main);
    border-radius: 999px;
    font-size: 1rem;
    margin-bottom: 0;
    padding: 10px 30px;
}
.c-section-subtitle--none { margin-top: 0;}
.c-section-subtitle--mt30 { margin-top: 30px;}
.c-section-subtitle--mt40 { margin-top: 40px;}
.c-section-subtitle--mt60 { margin-top: 60px;}
.c-section-subtitle::before, .c-section-subtitle::after {
    content: "●";
    color: var(--text-sub);
    font-size: 0.875rem;
    vertical-align: middle;
}
.c-section-subtitle::before { margin-right: 15px;}
.c-section-subtitle::after { margin-left: 15px;}
.c-section-subtitle .u-text-sm { margin-left: 5px;}
.c-title {
    font-size: 1.375rem;
    margin: 60px auto 0 auto;
    text-align: center;
    padding-bottom: 20px;
    position: relative;
}
.c-title--none { margin-top: 0;}
.c-title::after {
    background-color: var(--text-sub);
    bottom: 0;
    content: "";
    left: 50%;
    position: absolute;
    transform: translateX(-50%);
    height: 3px;
    width: 40px;
}
.c-title__inner::before, .c-title__inner::after {
    content: "●";
    color: var(--text-sub);
    font-size: 0.875rem;
    vertical-align: middle;
}
.c-title__inner::before { margin-right: 15px;}
.c-title__inner::after { margin-left: 15px;}
.c-subtitle {
    align-items: center;
    color: var(--bg-sub);
    display: flex;
    font-size: 1.25rem;
    justify-content: center;
    margin: 30px 0 0 0;
    text-align: center;
}
.c-subtitle::before, .c-subtitle::after {
    background-color: var(--bg-sub);
    content: "";
    height: 2px;
    width: 40px;
}
.c-subtitle::before { margin-right: 30px;}
.c-subtitle::after { margin-left: 30px;}
.c-subtitle--mt60 { margin-top: 60px;}
@media (max-width: 767px) {
.c-section-title { font-size: 1.25rem;}
.c-section-title::before {
    height: 40px;
    width: 50px;
}
.c-section-title__sub { font-size: 1.125rem;}
.c-section-subtitle { padding: 10px 15px;}
.c-section-subtitle::before { margin-right: 10px;}
.c-section-subtitle::after { margin-left: 10px;}
.c-section-subtitle--mt60 { margin-top: 40px;}
.c-title { margin: 40px auto 0 auto;}
.c-subtitle { font-size: 1.125rem;}
.c-subtitle::before, .c-subtitle::after { width: 20px;}
.c-subtitle::before { margin-right: 15px;}
.c-subtitle::after { margin-left: 15px;}
.c-subtitle--mt60 { margin-top: 40px;}
}

/* =========================
   Component Section
========================= */
.c-section-lead {
    font-size: 1.375rem;
    margin-top: 30px;
    text-align: center;
}
.c-section-sub {
    font-size: 1.125rem;
    margin-top: 30px;
    text-align: center;
}
.c-section-text {
    margin-top: 20px;
    text-align: center;
}
.c-section-text--left { text-align: left;}
.c-section-reference {
    font-size: 0.875rem;
    margin-top: 30px;
    text-align: right;
}
@media (max-width: 767px) {
.c-section-lead { font-size: 1.25rem;}
.c-section-text { text-align: left;}
}

/* =========================
   Component Button
========================= */
.c-button {
    align-items: center;
    background-color: var(--button-main);
    border-radius: 999px;
    color: var(--text-white);
    display: inline-flex;
    justify-content: space-between;
    max-width: 300px;
    min-width: 260px;
    overflow: hidden;
    padding: 15px 30px;
    position: relative;
    transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.c-button--sub {
    max-width: none;
    min-width: auto;
}
.c-button .fa-solid {
	align-items: center;
	display: inline-flex;
	justify-content: center;
    margin-left: 10px;
	transition: transform 0.3s ease;
}
.c-button:hover {
    background-color: var(--button-hover);
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    color: var(--text-white);
    transform: translateY(3px);
}
.c-button:hover .fa-solid { transform: translateX(5px);}
.c-button--card {
    min-width: 0;
    padding: 15px;
    width: 100%;
}
.c-button--auto {
    min-width: 0;
    padding: 15px;
    width: 100%;
}
.c-button-area--center {
    display: flex;
    justify-content: center;
}
.c-button-area--mt20 { margin-top: 20px;}
.c-button-area--mt30 { margin-top: 30px;}
.c-button-area--mt40 { margin-top: 30px;}
.c-button-area--grid {
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(2, 1fr);
    margin: 30px auto 0 auto;
    width: 630px;
}
.c-button-wrapper {
    display: flex;
    flex-direction: column;
    text-align: center;
}
.c-button-wrapper .c-button { margin: auto;}
.c-button-size {
    font-size: 0.875rem;
    margin-top: 15px;
}
@media (max-width: 767px) {
.c-button {
    max-width: none;
    min-width: auto;
}
.c-button-area {
    display: flex;
    justify-content: center;
}
.c-button--card { padding: 15px 30px;}
.c-button-area--grid {
    grid-template-columns: 1fr;
    width: auto;
}}

/* =========================
   Component Table
========================= */
.c-table {
    margin: 0;
    width: 100%;
}
.c-table__item {
    align-items: flex-start;
    border-bottom: 2px solid var(--border-main);
    display: flex;
    margin: 0;
    padding: 15px;
}
.c-table__item:first-child { border-top: 2px solid var(--border-main);}
.c-table__term {
    align-items: center;
	display: flex;
	flex: 0 0 20%;
}
.c-table__desc { margin: 0;}
@media (max-width: 767px) {
.c-table__item { flex-direction: column;}
.c-table__term {
	flex: 1;
	width: 100%;
}
.c-table__desc { margin-top: 5px;}
}

/* =========================
   Component Content
========================= */
.c-content {
    align-items: center;
    background-color: var(--bg-light-yellow);
    border-radius: 16px;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    margin: 30px auto 0 auto;
    padding: 30px 40px;
    width: 100%;
}
.c-content--fit {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    width: fit-content;
}
.c-content__title {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-align: center;
    margin: 0;
    padding: 10px 0;
}
.c-content__title--ask::before, .c-content__title--recommend::before, .c-content__title--benefit::before {
    content: "";
    flex-shrink: 0;
    height: 60px;
    width: 75px;
}
.c-content__title--ask::before { background: url(../img/icon/icon_ask.svg) no-repeat center / contain;}
.c-content__title--recommend::before { background: url(../img/icon/icon_recommend.svg) no-repeat center / contain;}
.c-content__title--benefit::before { background: url(../img/icon/icon_benefit.svg) no-repeat center / contain;}
.c-content__list {
    border-left: 2px solid var(--border-main);
    padding: 10px 0 10px 40px; 
}
.c-content__item { padding: 5px 0;}
.c-content__item--dot::before {
    content: "●";
    color: var(--text-sub);
    font-size: 0.5rem;
    margin-right: 10px;
    vertical-align: middle;
}
.c-content__item .fa-regular {
    color: var(--text-sub);
    margin-right: 10px;
}
.c-content__num {
    align-items: center;
    background-color: var(--bg-main);
    border-radius: 50%;
    color: var(--text-white);
    display: inline-flex;
    flex-shrink: 0; 
    font-size: 0.875rem;
    height: 22px;
    justify-content: center;
    line-height: normal;
    letter-spacing: normal;
    margin-right: 10px;
    width: 22px;
}
@media (max-width: 767px) {
.c-content {
    flex-direction: column;
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 30px;
    width: 100%;
}
.c-content__title {
    gap: 20px;
    padding: 0 10px;
}
.c-content__title::before {
    height: 40px;
    width: 50px;
}
.c-content__list {
    border-left: none;
    border-top: 1px solid var(--border-main);
    padding: 20px 10px 0 10px; 
}
.c-content__item { padding: 0;}
}

/* =========================
   Page Titel
========================= */
.c-page-title {
    align-items: center;
    background: linear-gradient(
        to bottom,
        var(--bg-white) 0%,
        var(--bg-white) 10%,
        var(--bg-main) 10%,
        var(--bg-main) 90%,
        var(--bg-white) 90%,
        var(--bg-white) 100%
    );
    display: flex;
}
.c-page-title__content {
    align-items: center;
    display: flex;
    gap: 30px;
    justify-content: space-between;
}
.c-page-title__image {
    border-radius: 50%;
    height: 220px;
    overflow: hidden;
    width: 220px;
}
.c-page-title__img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.c-page-title__body {
    align-items: center;
    display: flex;
    gap: 15px;
}
.c-page-title__icon {
    flex-shrink: 0;
    height: 60px;
    width: auto;
}
.c-page-title__text {
    color: var(--text-white);
    font-size: 1.875rem;
    margin: 0;
}
@media (max-width: 767px) {
.c-page-title { background-color: var(--bg-main);}
.c-page-title .l-container { padding: 0 0 0 15px;}
.c-page-title__content { gap: 15px;}
.c-page-title__body {
    flex-direction: column;
    gap: 5px;
}
.c-page-title__image {
    border-radius: 65px 0 0 65px;
    height: auto;
    width: 130px;
}
.c-page-title__icon {
    height: 35px;
    width: 44px;
}
.c-page-title__text {
    font-size: 1.125rem;
    text-align: center;
}}

/* =========================
   Page nav
========================= */
.c-page-nav {
    display: flex;
    flex-wrap: wrap;
    font-size: 0.875rem;
    gap: 5px 20px;
    margin-top: 20px;
}
.c-page-nav .fa-solid {
    color: var(--text-sub);
    margin-right: 10px;
    transition: transform 0.5s ease;
}
.c-page-nav__link { transform: translateY(3px);}
.c-page-nav__link:hover .fa-solid { transform: translateX(5px);}

/* =========================
   Media
========================= */
.media {
    align-items: center;
	display: flex;
	gap: 60px;
    margin-top: 30px;
}
.media__image {
    display: block;
    flex: 1;
    height: auto;
    width: 100%;
}
.media__body { flex: 0 0 calc(60% - 60px);}
.media__image--logo {
    height: auto;
    margin: auto;
    width: 280px;
}
.media__title {
    font-size: 1.375rem;
    margin: 0;
}
.media__lead { font-size: 1.25rem;}
.media__text { margin-top: 20px;}
.media__text--indented { padding: 0 30px;}
.media__text--mt-none { margin-top: 0 !important;}
@media (max-width: 767px) {
.media {
	flex-direction: column !important;
	gap: 30px;
}
.media__body, .media__image {
	flex: auto;
	width: 100%;
}
.media__image--logo { width: 150px;}
.media__title { font-size: 1.25rem;}
.media__text--indented { padding: 0;}
}

/* =========================
   Updates
========================= */
.updates__grid {
    display: grid;
    gap: 40px;
    grid-template-columns: 3fr 1fr;
    margin-top: 30px;
}
@media (max-width: 767px) {
.updates__grid {
    gap: 40px;
    grid-template-columns: 1fr;
}}

/* =========================
   Layout 2column
========================= */
.l-2col {
    align-items: start;
    display: grid;
    gap: 60px;
    grid-template-columns: 3fr 1fr;
    margin-top: 30px;
}
.l-2col__main--1col {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.l-2col__main--3col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}
.l-2col__side {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media (max-width: 767px) {
.l-2col {
    gap: 30px;
    grid-template-columns: 1fr;
}
.l-2col__main--3col {
    flex-direction: column;
    grid-template-columns: 1fr;
    gap: 20px;
}}

/* =========================
   Post
========================= */
.post__item .fa-solid {
    color: var(--text-sub);
    transition: transform 0.5s ease;
}
.post__item:hover .fa-solid { transform: translateX(3px);}
.post__link {
    border: 2px solid var(--border-main);
    border-radius: 16px;
    color: var(--text-base);
    display: block;
    padding: 15px 20px;
    transition: transform 0.5s;
}
a.post__link:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    opacity: 0.8;
    transform: translateY(3px);
}
.post__body {
    align-items: flex-start;
    display: flex;
    gap: 15px;
}
.post__meta {
    align-items: center;
    display: flex;
    gap: 10px;
}
.post__date { min-width: 120px;}
.post__category {
    background-color: var(--bg-main);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.875rem;
    padding: 2px 10px;
    white-space: nowrap;
}
.post__new {
    background-color: var(--bg-red);
    border-radius: 5px;
    color: var(--text-white);
    display: inline-block;
    font-family: "Nunito", sans-serif;
    font-size: 0.75rem;
    padding: 0 5px;
    text-align: center;
    vertical-align: middle;
}
.post-tabs {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin: 0 auto 15px auto;
    max-width: 500px;
    width: 100%;    
}
.post-tabs__link {
    border: 2px solid var(--border-main);
    border-radius: 10px;
    flex: 1;
    padding: 10px 20px;
    text-align: center;
    transform: translateY(3px);
    transition: background-color 0.3s, width 0.3s ease;
}
.post-tabs__link:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    background-color: var(--bg-main);
    color: var(--text-white);
}
.post-tabs__link .fa-solid {
    color: var(--text-sub);
    margin-left: 10px;
    transition: transform 0.5s ease;
}
.post-tabs__link:hover .fa-solid {
    color: var(--text-white);
    transform: translateX(5px);
}
.term-media .post__item {
    border-bottom: 2px solid var(--border-main);
    padding-bottom: 15px;
}
:where(figure) { margin: revert;}
.wp-block-image, .wp-block-jetpack-slideshow_slide figure, .wp-block-paragraph { margin: 15px 0;}
@media (max-width: 767px) {
.post__item { width: 100%;}
.post__body {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
}
.post__meta { flex-wrap: wrap;}
.post__date { min-width: auto;}
.post-tabs {
    flex-direction: row;
    margin: 0 0 10px 0;
    max-width: none;
    transform: none;
    width: 100%;
}
.post-tabs__link {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    max-width: none;
    padding: 10px;
    width: auto;
}
.post-tabs__link .fa-solid { margin-left: 0;}
}

/* Post detail
========================= */
.post--detail .post__inner {
    border: 2px solid var(--border-main);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 30px;
}
.post--detail .post__title {
    border-bottom: 2px solid var(--border-main);
    font-size: 0.9375rem;
    margin: 0;
    padding-bottom: 20px;
}
.post--detail .post__title .fa-solid {
    color: var(--text-sub);
    margin-right: 10px;
}
.post--detail .post__date {
    display: block;
    text-align: right;
}
.post--detail .post__inner img {
    border-radius: 16px;
    margin: 15px 0;
}
.post--detail .post__inner a { color: var(--text-link);}
.wp-block-file__button { color: var(--text-white) !important;}
.single-news .post--detail .post__inner { margin-top: 30px;}
@media (max-width: 767px) {
.post--detail .post__inner { gap: 15px;}
.post--detail .post__title { padding-bottom: 15px;}
}

/* =========================
   News
========================= */
.top-news {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.top-news .post__date, .news--list .post__date {
    font-size: 0.875rem;
    white-space: nowrap;
}

/* =========================
   Report
========================= */
.top-report {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 30px;
}
.top-report .c-button-area { grid-column: 1 / -1;}
.report--list .post__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 20px;
    padding: 0;
}
.report--list .post__image {
    aspect-ratio: 4 / 3;
    display: inline-block;
    margin: 0;
    overflow: hidden;
    position: relative;
    vertical-align: bottom;
    width: 100%;
}
.report--list .post__img {
    border-radius: 16px 16px 0 0; 
    height: 100%;
    object-fit: cover;
    object-position: center;
    width: 100%;
}
.report--list .post__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 5px;
    padding: 0 20px 20px 20px;
}
.report--list .post__title { margin: 0;}
.report--list .post__title .fa-solid {
    color: var(--text-sub);
    margin-right: 10px;
}
@media (max-width: 767px) {
.top-report {
    gap: 20px;
    grid-template-columns: 1fr;
}}

/* =========================
   Side widget
========================= */
.side-widget__title {
    background-color: var(--bg-main);
    border-radius: 999px;
    color: var(--text-white);
    font-size: 0.9375rem;
    margin: 0;
    padding: 10px;
    text-align: center;
}
.side-widget__title::before, .side-widget__title::after {
    content: "●";
    color: var(--text-white);
    font-size: 0.5rem;
    vertical-align: middle;
}
.side-widget__title::before { margin-right: 15px;}
.side-widget__title::after { margin-left: 15px;}
.side-widget__list {
    list-style-position: inside;
    margin: 15px 0 0 20px;
}
.side-widget__item {
    list-style: disc;
    margin-top: 5px;
}

/* =========================
   Share link
========================= */
.post-share { text-align: center;}
.post-share__title { font-size: 0.875rem;}
.post-share__buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin: 10px 0;
}
.post-share__link {
    align-items: center;
    border-radius: 50%;
    color: var(--text-white) !important;
    display: flex;
    font-size: 1rem;
    height: 30px;
    justify-content: center;
    text-decoration: none !important;
    transition: opacity .3s ease;
    width: 30px;
}
.post-share__link:hover { opacity: 0.8;}
.post-share__link--facebook { background: var(--facebook-color);}
.post-share__link--x { background: var(--x-color);}
.post-share__link--line { background: var(--line-color);}

/* =========================
   Pagenavi
========================= */
.wp-pagenavi {
    margin: 40px; 0 10px 0;
    text-align: center;
}
.wp-pagenavi a, .wp-pagenavi span {
    border: 1px solid var(--border-main);
    border-radius: 4px;
    margin: 0 4px;
    padding: 8px 16px;
}
.wp-pagenavi a:hover {
    background-color: var(--bg-sub);
    color: var(--text-white);
}
.wp-pagenavi .current {
    background-color: var(--bg-main);
    border: 1px solid var(--border-main);
    color: var(--bg-white);
}
.nav-links {
    align-items: center;
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 40px;
}
.nav-links .page-numbers {
    align-items: center;
    border: 1px solid var(--border-main);
    border-radius: 4px;
    display: inline-flex;
    height: 40px;
    justify-content: center;
    text-decoration: none;
    width: 40px;
}
.nav-links .page-numbers.current {
    background-color: var(--bg-main);
    border: 1px solid var(--border-main);
    color: var(--text-white);
}
.nav-links a.page-numbers:hover {
    background-color: var(--bg-sub);
    color: var(--text-white);
}

/* =========================
   Schedule
========================= */
.top-schedule {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.top-schedule .schedule__item {
    border-radius: 16px;
    text-align: center;
}

.top-schedule .schedule__title {
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
    color: var(--text-white);
    font-size: 1rem;
    margin: 0 auto;
    padding: 10px;
    width: 85%;
}
.top-schedule .schedule__group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 15px 10px 15px;
}
.top-schedule .schedule__activity {
    border-top: 2px solid var(--category-color);
    padding-top: 10px;
}
.top-schedule .schedule__activity:first-child { border-top: none;}
.top-schedule .schedule-date { justify-content: center;}
.schedule__item--fooddrive { border: 2px solid var(--category-color);}
.schedule__item--volunteer { border: 2px solid var(--category-color);}
.schedule__item--fooddrive .schedule__title { background-color: var(--category-color);}
.schedule__item--volunteer .schedule__title { background-color: var(--category-color);}
.schedule-month { margin-bottom: 30px;}
.schedule-month:last-child { margin-bottom: 0;}
.schedule-title {
    align-items: center;
    border-bottom: 2px solid var(--border-main);
    display: flex;
    font-size: 1rem;
    gap: 10px;
    margin: 30px 0 0 0;
    padding: 0 15px 15px 15px;
}
.schedule-title .fa-solid { color: var(--text-sub);}
.schedule-list { padding: 0;}
.schedule-item {
    align-items: flex-start;
    border-bottom: 2px dashed #f8bd00;
    display: grid;
    gap: 30px;
    grid-template-columns: 250px minmax(0, 1fr) auto;
    padding: 15px;
}
.schedule-date {
    align-items: center;
    display: flex;
    gap: 10px;
    white-space: nowrap;
}
.schedule-content {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 30px;
    min-width: 0;
}
.schedule-content .fa-solid { margin-right: 5px;}
.schedule-place, .schedule-recruit {
    white-space: normal;
    overflow-wrap: anywhere;
}
.c-button--schedule {
    font-size: 0.875rem;
    max-width: none;
    min-width: auto;
    padding: 5px 10px 5px 15px;
}
@media screen and (max-width: 767px) {
.top-schedule .schedule-date { white-space: normal;}
.schedule-item {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 15px;
}
.schedule-date {
    display: flex;
    gap: 15px;
}
.schedule-content {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 100%;
}
.schedule-place, .schedule-recruit {
    overflow-wrap: anywhere;
    white-space: normal;
    width: 100%;
}
.c-button--schedule { margin-top: 10px;}
}

/* =========================
   Support
========================= */
.support__grid {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
}
.support__link {
    border-radius: 16px;
    color: var(--text-base);
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 40px;
    transition: transform 0.5s;
}
.t-give-support .support__link, .t-get-support .support__link {
    background-color: var(--category-bg);
    border: 2px solid var(--category-color);
}
.support__link:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    opacity: 0.8;
    transform: translateY(3px);
}
.support__header {
    align-items: center;
    color: var(--category-color);
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.support__icon {
    flex-shrink: 0;
    height: 56px;
    width: 70px;
}
.support__title {
    font-size: 1.625rem;
    line-height: normal;
    margin: 0;
}
.support__body { margin-top: 30px;}
.support__list {
    background-color: var(--bg-white);
    border-radius: 16px;
    color: var(--category-color);
    display: grid;
    font-size: 1rem;
    gap: 0 20px;
    grid-template-columns: repeat(2, minmax(0, max-content));
    justify-content: center;
    padding: 20px;
}
.support__list-item::before {
    content: "●";
    font-size: 0.5rem;
    margin-right: 5px;
    vertical-align: middle;
}
.t-give-support .support__list-item::before, .t-get-support .support__list-item::before {
    color: var(--category-color);
}
.t-give-support .c-button, .t-get-support .c-button { background-color: var(--category-color);}
.support__text {
    justify-self: center;
    margin-top: 20px;
    text-align: left;
}
@media (max-width: 767px) {
.support__grid { grid-template-columns: 1fr;}
.support__link { padding: 30px 30px 40px 30px;}
.support__icon {
    height: 40px;
    width: 50px;
}    
.support__list {
    grid-template-columns: 1fr;
    justify-content: stretch;
    padding: 30px;
}}

/* =========================
   About
========================= */
.about__inner {
    border-radius: 16px;
    padding: 60px;
}
.about__inner .media { margin-top: 0;}
.about__inner { background-color: var(--bg-light-yellow);}
.about__lead {
    font-size: 1.125rem;
    margin: 20px 0 15px 0;
}
.about__text--mt-none { margin-top: 0 !important;}
.about__grid {
    align-items: center;
    display: grid;
    gap: 40px;
    grid-template-columns: 4fr 1fr;
    justify-content: center;
}
.about__text { margin-top: 20px;}
.about__image {
    display: block;
    flex: 1;
    height: auto;
    width: 100%;
}
@media (max-width: 767px) {
.about__inner { padding: 40px 30px;}
.about__grid {
    gap: 40px;
    grid-template-columns: 1fr;
}}

/* =========================
   Greeting
========================= */
.greeting__image {
    height: 180px;
    border-radius: 50%;
    float: right;
    margin-left: 40px;
    width: 180px;
}
.greeting__title {
    color: var(--text-main);
    font-size: 1.375rem;
    margin-top: 30px;
    text-align: center;
}
.greeting__name {
    color: var(--text-base);
    font-size: 1.125rem;
    margin-top: 5px;
    text-align: center;
}
.greeting__position { margin-right: 20px;}
.greeting__lead {
    font-size: 1.125rem;
    margin: 30px 0 15px 0;
}
@media screen and (max-width: 767px) {
.greeting__inner {
    display: flex;
    flex-direction: column;
}
.greeting__image {
    float: none;
    margin: 30px auto 0 auto;
    order: 2;
}
.greeting__body { order: 1;}
.greeting__name { font-size: 1rem;}
.greeting__position {
    display: block;
    margin-right: 0;
}}

/* =========================
   Donate-money
========================= */
.donate-money__list {
    margin: 30px auto 0 auto;
    max-width: 100%;
    width: fit-content;
}
.donate-money__detail { margin: 0;}
.donate-money__item {
    border-bottom: 2px solid var(--border-main);
    padding: 0 30px 30px 30px;
}
.donate-money__item .c-content { margin-bottom: 5px;}
.donate-money__name {
    color: var(--text-main);
    font-size: 1rem;
    margin: 30px 0 5px 0;
}
.donate-money__name::before {
    color: var(--text-main);
    content: "●";
    font-size: 0.5rem;
    margin-right: 10px;
    vertical-align: middle;
}
.donate-money__style { font-size: 0.875rem;}
.donate-money__text { margin-left: 20px;}
.donate-bank {
    align-items: flex-start;
    border-bottom: 2px dashed var(--border-main);
    display: grid;
    gap: 10px;
    grid-template-columns: 5rem 1fr;
    padding: 5px 15px 15px 15px;
    text-align: left;
}
.donate-bank__column {
    grid-template-columns: 1fr;
    gap: 5px;
}
.donate-bank__term { margin: 0;}
.donate-bank__desc { margin: 0;}
@media (max-width: 767px) {
.donate-money__item { padding: 0 0 30px 0;}
.donate-money__style {
    display: block;
    margin: 0 0 10px 20px;
}}

/* =========================
   Donate-deduction
========================= */
.donate-deduction__grid {
    display: grid;
    gap: 60px;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 40px;
    padding-top: 20px;
}
.donate-deduction__item {
    background-color: var(--bg-white);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding: 50px 40px 40px 40px;
    position: relative;
}
.donate-deduction__title {
    background-color: var(--border-main);
    border-radius: 999px;
    font-size: 1rem;
    left: 50%;
    margin: 0 auto;
    max-width: 400px;
    min-width: 360px;
    padding: 10px 30px;
    position: absolute;
    text-align: center;
    top: 0;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}
.donate-deduction__title::before, .notice__title::after {
    content: "●";
    color: var(--text-white);
    font-size: 0.875rem;
    vertical-align: middle;
}
.donate-deduction__title::before { margin-right: 15px;}
.donate-deduction__title::after { margin-left: 15px;}

/* =========================
   Overview
========================= */
.overview__inner {
    display: grid;
    gap: 60px;
    grid-template-columns: 3fr 7fr;
    margin-top: 30px;
}
.overview__image {
    height: auto;
    margin: auto;
    width: 200px;
}
.overview__title {
    border: 2px solid var(--border-main);
    border-radius: 999px;
    font-size: 1rem;
    margin: 40px auto 30px auto;
    max-width: 100%;
    padding: 10px 30px;
    width: fit-content;
}
.overview__title::before, .overview__title::after {
    content: "●";
    color: var(--text-sub);
    font-size: 0.875rem;
    vertical-align: middle;
}
.overview__title::before { margin-right: 15px;}
.overview__title::after { margin-left: 15px;}
@media (max-width: 767px) {
.overview__inner {
    grid-template-columns: 1fr;
    gap: 30px;
}
.overview__image { width: 160px;}
}

/* =========================
   Results
========================= */
.results-table-wrapper {
    display: block;
    margin-top: 30px;
    overflow-x: auto;
    table-layout: fixed;
    -webkit-overflow-scrolling: touch;
    width: 100%;
}
.results-table {
    border-collapse: collapse;
    text-align: center;
    white-space: nowrap;
    width: 100%;
}
.results-table__th {
    background-color: var(--bg-light-yellow);
    border: 2px solid var(--border-main);
    font-weight: normal;
    padding: 10px;
}
.results-table__td {
    border: 2px solid var(--border-main);
    padding: 10px;
}
.results__inner {
    display: grid;
    gap: 40px;
    grid-template-columns: 13fr 7fr;
    margin-top: 30px;
}
.results__list {
    column-gap: 40px;
    font-size: 0.875rem;
    list-style-position: inside;
    margin-left: 50px;
    padding: 0 40px 0 0;
}
.results__item {
    break-inside: avoid; 
    list-style: disc;
}
.results__list--col2, .results__list--col2--sp-col3 { columns: 2;}
.results__list--col3 { columns: 3;}
.results__list--col4 { columns: 4;}
.results__list--mt30 { margin-top: 30px;}
.results__title {
    align-items: center;
    display: flex;
    font-size: 1rem;
    margin: 30px 0 15px 0;
}
.results__title::before {
    color: var(--text-sub);
    content: "●";
    font-size: 0.875rem;
    margin-right: 15px;
    vertical-align: middle;
}
.results__title::after {
    background-color: var(--bg-main);
    content: "";
    flex: 1;
    height: 2px;
    margin-left: 20px;
}
.results__map img {
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}
.results__text {
    font-size: 0.875rem;
    margin-top: 20px;
    text-align: center;
}
@media (max-width: 767px) {
.results-table {
    max-width: 100%;
    width: fit-content;
}
.results__inner {
    flex-direction: column;
    gap: 0;
    grid-template-columns: 1fr;
}
.results__list { margin-left: 30px;}
.results__list--col2, .results__list--col3 { columns: 1;}
.results__list--col3--sp-col3, .results__list--col2--sp-col3 { columns: 3;}
.results__map { margin-top: 30px;}
.results__map img {
    height: 450px;
    margin: auto;
    width: auto;
}}

/* =========================
   Awards
========================= */
.awards__list {
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(3, max-content);
    justify-content: center;
}
.awards__list--mt30 { margin-top: 30px;}
.awards__list--mt60 { margin-top: 60px;}
.awards__item img { height: 130px;}
.awards__title {
    font-size: 1rem;
    padding: 15px;
    border-bottom: 2px solid var(--border-main);
}
.awards__title:first-child { border-top: 2px solid var(--border-main);}
.awards__title::before {
    color: var(--text-sub);
    content: "●";
    font-size: 0.875rem;
    margin-right: 10px;
    vertical-align: middle;
}
.awards__image img {
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}
.awards .media { margin-top: 40px !important;}
@media (max-width: 767px) {
.awards__list {
    gap: 20px;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0;
}
.awards__item img {
    height: 100px;
    margin: auto;
    width: auto;
}
.awards__item:first-child { grid-column: 1 / -1;}
}

/* =========================
   Records
========================= */
.records {
    background-color: var(--bg-light-yellow);
    padding: 60px 0;
}
.records-inner {
    align-items: center;
    display: flex;
    flex-direction: column;
    width: 100%;
}
.records__list {
    max-width: 100%;
    margin-top: 30px;
    padding: 0;
    text-align: left;
    width: fit-content;
}
.records__item {
    font-size: 1rem;
    padding: 15px 30px;
    border-bottom: 2px solid var(--border-main);
}
.records__item:first-child { border-top: 2px solid var(--border-main);}
.records__item .fa-solid {
    color: var(--text-sub);
    margin-right: 10px;
}
.records__meta {
    font-size: 0.875rem;
    margin-left: 10px;
}

/* =========================
   Partner
========================= */
.top-partner {
    background-color: var(--category-bg);
    padding: 60px 40px;
}
.top-partner .c-section-title::after { color: var(--category-color); }
.partner__list {
    align-items: flex-start;
    display: flex;
    gap: 60px;
    justify-content: center;
    margin-top: 30px;
}
.partner__rect-group {
    display: grid;
    gap: 20px 60px;
    grid-template-columns: repeat(2, 255px);
}
.partner__square-group {
    display: flex;
    flex-direction: column;
}
.partner__item { overflow: hidden;}
.partner__image {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}
.partner__item--rect {
    flex-shrink: 0;
    height: 70px;
    width: 255px;
}
.partner__item--square {
    flex-shrink: 0;
    height: 130px;
    margin: auto;
    width: 130px;
}
@media (max-width: 767px) {
.top-partner { padding: 40px 0;}
.partner__list {
    align-items: center;
    flex-direction: column;
    gap: 15px;
    width: 100%;
}
.partner__rect-group {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 15px;
    justify-content: center;
    width: 100%;
}}

/* =========================
   Foodbank
========================= */
.top-foodbank {
    background: url("../img/foodbank/top_foodbank.webp") no-repeat center / cover;
    padding: 100px 0;
    position: relative;
    width: 100%;
}
.top-foodbank::before {
    background-color: rgb(var(--rgb-white), 0.6);
    content: "";
    inset: 0;
    position: absolute;
}
.foodbank__inner {
    display: flex;
    justify-content: flex-start;
    position: relative;
    z-index: 1;
}
.foodbank__body { width: calc(100% / 2);}
.foodbank__title {
    background: linear-gradient(transparent 60%, rgb(var(--rgb-main), 0.6) 30%);
    display: inline;
    font-size: 1.625rem;
    margin: 0;
}
.foodbank__title span {
    font-size: 1.25rem;
    margin-bottom: 5px;
}
.foodbank__text { margin-top: 20px;}
@media (max-width: 767px) {
.top-foodbank {
    background: url("../img/foodbank/top_foodbank_sp.webp") no-repeat center / cover;
    padding: 40px 0;
    position: relative;
    width: 100%;
}
.foodbank__body { width: 100%;}
.foodbank__title { font-size: 1.25rem;}
.foodbank__title span { font-size: 1.125rem;}
}

/* =========================
   Food
========================= */
.food {
    background-color: var(--bg-light-yellow);
    padding: 50px 0;
}
.food__title {
    align-items: center;
    color: var(--text-main);
    display: flex;
    font-size: 1.375rem;
    gap: 10px;
    justify-content: center;
    margin: 0;
    position: relative;
    text-align: center;
}
.food__title::before {
    background: url(../img/icon/icon_food.svg) no-repeat center / contain;
    content: "";
    flex-shrink: 0;
    height: 56px;
    width: 70px;
}
.food__grid {
    display: flex;
    gap: 20px;
    justify-content: center;
    margin-top: 30px;
    flex-wrap: wrap;
}
.food__item {
    display: flex;
    flex-direction: column;
    gap: 15px;
    text-align: center;
    width: calc((100% - (20px * 7)) / 8); 
}
@media (max-width: 767px) {
.food { padding: 40px 0;}
.food__title { font-size: 1.125rem;}
.food__title::before {
    height: 40px;
    width: 50px;
}
.food__grid { gap: 20px;}
.food__item { width: calc((100% - (30px * 2)) / 3);}
}

/* =========================
   Notice
========================= */
.notice__button {
    border-radius: 10px;
    max-width: 400px;
    min-width: 360px;
    margin: auto;
    padding: 15px;
}
.notice__link:hover { color: var(--text-base);}
.notice__list-item { margin-top: 5px;}
.notice__list-item .fa-regular {
    color: var(--text-sub);
    font-size: 1rem;
    margin-right: 10px;
}
.notice__box {
    background-color: var(--bg-white);
    border-radius: 16px;
    margin-top: 70px;
    padding: 40px;
    position: relative;
}
.notice__group { margin: 0;}
.notice__brand::before {
    content: "●";
    color: var(--text-sub);
    font-size: 0.875rem;
    margin-right: 10px;
    vertical-align: middle;
}
.notice__desc { margin-left: 24.5px;}
@media (max-width: 767px) {
.notice__button {
    max-width: none;
    min-width: auto;
}
.notice__box { padding: 30px;}
}

/* =========================
   Merit
========================= */
.merit__title {
    color: var(--text-main);
    font-size: 1.25rem;
    margin: 0;
}
.merit__lead { text-align: left;}
.merit__details {
    margin: auto;
    max-width: 100%;
    padding: 0;
    text-align: left;
    width: fit-content;
}
.merit__detail { margin-top: 20px;}
.merit__detail:first-child { margin-top: 0;}
.merit__text {
    color: var(--text-main);
    display: block;
    font-size: 1rem;
    margin: 0 0 10px 0;
}
.merit__text::before {
    color: var(--text-main);
    content: "●";
    font-size: 0.5rem;
    margin-right: 5px;
    vertical-align: middle;
}
.merit__list {
    list-style-position: inside;
    margin: 10px 0 0 20px;
}
.merit__list-item { list-style: disc;}
@media (max-width: 767px) {
.merit__grid {
    gap: 40px;
    grid-template-columns: 1fr;
    margin-top: 30px;
}
.merit__item { margin-top: 30px;}
}

/* =========================
   Lecture
========================= */
.lecture__grid {
    display: grid;
    gap: 60px;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 30px;
}
.lecture__item {
    display: flex;
    flex-direction: column;
    margin-top: 10px;
}
.lecture__inner { padding: 10px 30px 0 30px;}
.lecture__text { margin-top: 20px;}
.lecture__download {
    align-items: center;
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 30px;
}
.lecture__body {
    display: flex;
    flex-direction: column;
    gap: 20px;    
}
.c-button--lecture {
    max-width: none;
    min-width: auto;
    padding: 15px;
}
@media (max-width: 767px) {
.lecture__grid {
    gap: 40px;
    grid-template-columns: 1fr;
}
.lecture__inner { padding: 10px 0 0 0;}
}

/* =========================
   Example
========================= */
.example {
    background-color: var(--bg-light-yellow);
    padding: 50px 0;
}
.example__title {
    align-items: center;
    color: var(--text-main);
    display: flex;
    font-size: 1.375rem;
    gap: 10px;
    justify-content: center;
    margin: 0;
    position: relative;
    text-align: center;
}
.example__title::before {
    background: url(../img/icon/icon_example.svg) no-repeat center / contain;
    content: "";
    flex-shrink: 0;
    height: 56px;
    width: 70px;
}
.example__grid {
    display: grid;
    gap: 30px 40px;
    grid-template-columns: repeat(3, 1fr);
    justify-content: center;
    margin-top: 40px;
}
.example__item {
    align-items: center;
    display: grid;
    gap: 30px;
    grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 767px) {
.example { padding: 40px 0;}
.example__grid {
    align-items: flex-start;
    gap: 30px;
    grid-template-columns: repeat(2, 1fr);
}
.example__title { font-size: 1.125rem;}
.example__title::before {
    height: 40px;
    width: 50px;
}
.example__item {
    gap: 20px;
    grid-template-columns: 1fr;
}
.example__image {
    margin: 0 auto;
    width: 100px;
}}

/* =========================
   Youth
========================= */
.youth__grid {
    align-items: flex-start;
    display: grid;
    gap: 30px 40px;
    grid-template-columns: repeat(5, 1fr);
    justify-content: center;
    margin-top: 30px;
}
.youth__item {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.youth__image {
    margin: auto;
    width: 200px;
}
.youth__copy {
    align-items: center;
    display: flex;
    font-size: 1.375rem;
    gap: 10px;
    justify-content: center;
    margin: 40px 0 0 0;
    overflow: hidden;
    text-align: center;
}
.youth__copy::before, .youth__copy::after {
    background-color: var(--category-color);;
    content: "";
    height: 2px;
    width: 30px;
}
.youth__copy::before { transform: rotate(60deg)}
.youth__copy::after { transform: rotate(-60deg);}
.t-get-support .youth__copy { color: var(--category-color);}
.t-get-support .c-button--youth { color: var(--text-white);}
.t-get-support .c-button--youth:hover {
    color: var(--category-color);
    background-color: var(--category-bg);
}
@media (max-width: 767px) {
.youth__grid {
    gap: 30px;
    grid-template-columns: repeat(2, 1fr);
}
.youth__item { gap: 20px;}
.youth__image { width: 100px;}
}

/* =========================
   Abuse
========================= */
.abuse__grid {
    align-items: stretch;
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(4, 1fr);
    justify-content: center;
    margin-top: 60px;
}
.abuse__item {
    background-color: var(--bg-light-yellow);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 30px;
}
.abuse__title {
    background-color: var(--bg-main);
    border-radius: 999px;
    font-size: 1rem;
    margin: 0 auto;
    padding: 10px;
    text-align: center;
    width: 100%;
}
.abuse__title::before, .abuse__title::after {
    content: "●";
    color: var(--text-white);
    font-size: 0.875rem;
    vertical-align: middle;
}
.abuse__title::before { margin-right: 15px;}
.abuse__title::after { margin-left: 15px;}
.abuse__image {
    margin-left: auto;
    margin-right: auto;
    width: 156px;
}
@media (max-width: 767px) {
.abuse__grid {
    gap: 30px;
    grid-template-columns: 1fr;
}
.abuse__item { gap: 20px;}
}

/* =========================
   Flow
========================= */
.flow__list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin: 30px 0 0 0;
    padding: 0;
}
.flow__item {
    align-items: center;
    border: 2px solid var(--border-main);
    border-radius: 16px;
    display: grid;
    grid-template-columns: 1fr 9fr;
    gap: 20px;
    padding: 20px;
    position: relative;
}
.flow__item::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 45px;
    border: 12px solid transparent;
    border-top-color: var(--border-main);
}
.flow__list li:last-child::after { display: none;}
.flow__badge {
    align-items: center;
    background-color: var(--bg-main);
    border-radius: 50%;
    display: flex;   
    flex-direction: column;
    font-family: "Nunito", sans-serif;
    font-weight: bold;
    height: 80px;
    justify-content: center;
    letter-spacing: 0.02em;
    width: 80px;
}
.flow__badge-number { font-size: 1.25rem;}
.flow__title {
    color: var(--text-main);
    font-size: 1rem;
    margin: 0 0 5px 0;
}
.flow__contact {
    display: flex;
    gap: 20px;
    margin-top: 5px;
}
.flow__tel {
    color: var(--text-main) !important;
    font-family: "Nunito", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    letter-spacing: 0.02em;
}
.flow__time {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: center;
}
.flow__label {
    border: 1px solid var(--text-base);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.875rem;
    line-height: normal;
    padding: 2px 10px;
}
@media (max-width: 768px) {
.flow__item {
    align-items: flex-start;
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 30px;
}
.flow__badge {
    border-radius: 999px;
    flex-direction: row;
    height: auto;
    line-height: normal;
    padding: 5px 15px;
    width: 100%;
}
.flow__title {
    margin: 0 0 15px 0;
    text-align: center;
}
.flow__contact {
    flex-direction: column;
    gap: 5px;
    text-align: center;
}}

/* =========================
   C-grid
========================= */
.c-grid {
    display: grid;
    gap: 40px;
    justify-content: center;
    margin-top: 30px;
}
.c-grid--col-1 {
    grid-template-columns: 1fr;
    margin-top: 70px !important;
}
.c-grid--col-2 { grid-template-columns: repeat(2, 1fr);}
.c-grid--col-3 { grid-template-columns: repeat(3, 1fr);}
.c-grid--col-4 { grid-template-columns: repeat(4, 1fr);}
.c-grid--mt60 { margin-top: 60px;}
.c-card {
    background-color: var(--bg-light-yellow);
    border-radius: 16px;
    margin-top: 30px;
    padding-top: 60px;
    position: relative;
}
.c-card--sm { padding-top: 40px;}
.c-card--no-title {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 0 !important;
    padding: 30px 30px 35px 30px;
    text-align: center;
}
.c-card--reverse { background-color: var(--bg-white);}
.c-card__badge {
    align-items: center;
    background-color: var(--bg-main);
    border-radius: 50%;
    display: flex;
    font-size: 1.25rem;
    height: 60px;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: 0;
    transform: translate(-50%, -50%);
    width: 60px;
}
.c-card__title {
    background-color: var(--border-main);
    border-radius: 999px;
    font-size: 1rem;
    left: 50%;
    margin: 0 auto;
    max-width: 400px;
    min-width: 360px;
    padding: 10px 15px;
    position: absolute;
    text-align: center;
    top: 0;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}
.c-card--sm .c-card__title {
    max-width: none;
    min-width: 70%;
}
.c-card__title::before, .c-card__title::after {
    content: "●";
    color: var(--text-white);
    font-size: 0.875rem;
    vertical-align: middle;
}
.c-card__title::before { margin-right: 15px;}
.c-card__title::after { margin-left: 15px;}
.c-card__body {
    display: flex;
    flex-direction: column;
    gap: 30px;
    justify-content: center;
    margin: 0;
    padding: 0 30px 35px 30px;
    text-align: center;
}
.c-card__body--left {
    padding: 0 40px 40px 40px;
    text-align: left;
}
.c-grid--col-1 .c-card__body { gap: 10px;}
.c-card--sm .c-card__body { gap: 10px;}
.c-card__list {
    display: flex;
    gap: 15px;
    justify-content: center;
    margin-top: 30px;
}
.c-card__item {
    background-color: var(--bg-white);
    border-radius: 999px;
    min-width: 120px;
    padding: 10px 20px;
}
.c-card__text--main {
    background-color: var(--bg-white);
    border-radius: 999px; 
    display: block;
    padding: 10px;
}
.c-card__box {
    margin-top: 30px;
    text-align: center;
}
.c-card__tel {
    color: var(--text-red) !important;
    display: block;
    font-family: "Nunito", sans-serif;
    font-size: 1.625rem;
    font-weight: bold;
    margin: 20px 0 5px 0;
}
.c-card__tel .fa-solid { margin-right: 10px;}
.c-card__time { color: var(--text-red);}
.c-card__label {
    border: 1px solid var(--border-red);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.875rem;
    line-height: normal;
    margin-right: 10px;
    padding: 2px 10px;
}
.c-card__label--highlight { border: 1px solid var(--border-red);}
.c-card__info {
    background-color: var(--bg-white);
    border-radius: 16px;
    margin-top: 30px;
    padding: 30px;
}
.c-card__info--sub {
    border: 2px solid var(--border-main);
    max-width: 100%;
    margin: 40px auto auto;
    padding: 30px;
    text-align: center;
    width: fit-content;
}
.c-card__info-title {
    font-size: 1.125rem;
    margin-bottom: 10px;
}
.c-card__info-text-important {
    color: var(--text-red);
    font-size: 1rem;
    margin-bottom: 5px;
}
.c-card__info-url {
    font-family: "Nunito", sans-serif;
    font-size: 1.125rem;
    letter-spacing: 0.02em;
    overflow-wrap: anywhere;
}
.c-card-flat {
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.c-card-flat__detail { margin: 0;}
.c-card-flat__name {
    align-items: center;
    display: flex;
    font-size: 1rem;
    justify-content: flex-start;
    margin: 0 30px 10px 0;
}
.c-card-flat__step {
    background-color: var(--bg-main);
    border-radius: 999px;
    color: var(--text-base);
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    line-height: normal;
    letter-spacing: 0.02em;
    margin: 0 15px 5px 0;
    padding: 2px 10px;
}
.c-card-flat__name::before {
    background-color: var(--bg-main);
    content: "";
    height: 2px;
    margin-right: 10px;
    width: 20px;
}
.c-card-flat__body, .c-card-flat__text { margin: 0 30px;}
.c-card-flat__pdf { padding: 0 5px;}
.c-card-flat__link {
    background-color: var(--bg-white);
    display: inline-block;
    transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    vertical-align: bottom;
}
.c-card-flat__link:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    opacity: 0.8;
    transform: translateY(3px);
}
.c-card-flat__banner {
    display: block;
    height: 100px;
    object-fit: cover;
    width: auto;
}
.c-card-flat__title {
    background-color: var(--bg-main);
    border-radius: 999px;
    max-width: 100%;
    padding: 5px 20px;
    width: fit-content;
}
.c-card-flat__list {
    display: grid;
    grid-template-columns: 1fr;
    margin: 15px 0 0 0;
}
.c-card-flat__list--col-2 { grid-template-columns: repeat(2, 1fr);}
.c-card-flat__item { margin-left: 20px;}
.c-card-flat__item--full {
    grid-column: 1 / -1;
    margin: 10px 0 0 0;
}
.c-card-flat__item::before {
    content: "●";
    color: var(--text-sub);
    font-size: 0.5rem;
    margin-right: 10px;
    vertical-align: middle;
}
.c-card-flat__item--full::before { display: none;}
.c-card-flat__flex {
    display: flex;
    gap: 20px;
    margin-top: 30px;
}
.c-card-flat__info {
    display: flex;
    gap: 10px;
    margin: 0;
}
.c-card-flat__symbol { object-fit: contain;}
.c-card--sub {
    margin: 0 auto;
    max-width: 100%;
    padding: 40px;
    position: static;
    text-align: center;
    width: fit-content;    
}
.c-card--mt30 { margin-top: 30px;}
.c-card--mt60 { margin-top: 60px;}
.c-card__title-sub {
    font-size: 1.25rem;
    margin: 0;
}
.c-card__title-sub::before, .c-card__title-sub::after {
    content: "●";
    color: var(--text-sub);
    font-size: 0.875rem;
    vertical-align: middle;
}
.c-card__title-sub::before { margin-right: 15px;}
.c-card__title-sub::after { margin-left: 15px;}
@media (max-width: 767px) {
.c-grid {
    align-items: center;
    grid-template-columns: 1fr;
    margin-top: 30px;
}
.c-card { padding-top: 60px;}
.c-card--no-title {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 30px 30px 35px 30px;
    text-align: center;
}
.c-card-flat__body, .c-card-flat__text { margin: 0;}
.c-card__body { gap: 20px;}
.c-card__body--left { padding: 0 30px 30px 30px;}
.c-card__title {
    max-width: none;
    min-width: auto;
}
.c-card--sub {
    border-radius: 0;
    margin: 40px auto 0 auto;
    padding: 30px;
    width: 100%;
}
.c-card__list {
    flex-direction: column;
    gap: 10px;
}
.c-card__item {
    min-width: none;
    padding: 10px 15px;
}
.c-card-flat__list--col-2 { grid-template-columns: 1fr;}
.c-card__info { padding: 20px;}
.c-card__info-url { font-size: 1.125rem;}
.c-card__info--sub { padding: 30px;}
}

/* =========================
   Formnest
========================= */
.formnest-form-container {
    border-radius: 0 !important;
    margin: 40px auto 0 auto !important;
    max-width: 800px !important;
    font-family: "Kosugi Maru", sans-serif !important;
    padding: 0 !important;
    width: 100% !important;
}
.formnest-form-fields { margin-bottom: 0 !important;}
.formnest-form-row { border-bottom: 2px solid var(--border-main) !important;}
.formnest-form-row:first-child { border-top: 2px solid var(--border-main) !important;}
.formnest-form-label {
    padding: 20px 20px 20px 0 !important;
    font-size: 0.9375rem !important;
    font-weight: normal !important;
    color: var(--text-base) !important;
}
.formnest-required {
    background-color: var(--bg-main);
    border-radius: 999px;
    color: var(--text-white) !important;
    font-size: 0.75rem !important;
    font-weight: normal !important;
    margin-left: 0 !important;
    padding: 3px 5px;
}
.formnest-form-field {
    font-size: 0.9375rem !important;
    padding: 20px 0 !important;
}
.formnest-input, .formnest-textarea, .formnest-select {
    color: var(--text-base) !important;
    font-size: 0.9375rem !important;
	line-height: 1.6 !important;
}
.formnest-textarea { height: calc( 1.8em * 5 ) !important;}
.formnest-field__error {
    background-color: var(--error-bg) !important;
    border: 1px solid var(--error-border) !important;
    color: var(--text-red) !important;
    font-size: 0.9375rem !important;
}
.formnest-radio-group, .formnest-checkbox-group { gap: 0 !important;}
.formnest-radio, .formnest-checkbox, input[type="radio"].formnest-field__input, input[type="checkbox"].formnest-field__input {
    height: 12px !important;
    width: 12px !important;
}
.formnest-radio-text, .formnest-checkbox-text {
    color: var(--text-base) !important;
    font-size: 0.9375rem !important;
}
.formnest-file-upload-button {
    background-color: var(--bg-main) !important;
    font-size: 0.9375rem !important;
}
.formnest-form-submit { margin-bottom: 0 !important;}
.formnest-submit-button, .formnest-button-back {
    align-items: center;
    background: var(--button-main) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    display: inline-flex;
    justify-content: space-between;
    font-weight: normal !important;
    font-size: 0.9375rem !important;
    justify-content: space-between;
    max-width: 300px;
    min-width: 260px !important;
    overflow: hidden;
    padding: 15px 30px;
    position: relative;
    transition: background-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
}
.formnest-submit-button:hover, .formnest-button-back:hover {
    background-color: var(--button-hover) !important;
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15) !important;
    transform: translateY(3px) !important;
}
.formnest-submit-button::after {
	content: '\f138';
    font-family: fontAwesome;
    transition: transform 0.3s ease;
}
.formnest-submit-button:hover::after { transform: translateX(5px);}
.formnest-form-footer {
    border-top: none !important;
    padding-top: 0 !important;
}
.formnest-required-note { display: none !important;}
.formnest-confirm-table .formnest-form-label { background-color: var(--bg-white) !important;}
.formnest-confirm-buttons {
    border-top: none !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.formnest-confirm-row:nth-child(3) { display: none !important;}
@media (max-width: 767px) {
.formnest-form-container {
    max-width: none !important;
    min-width: auto !important;
}
.formnest-form-label, .formnest-form-field { width: 100% !important;}
.formnest-form-label { padding: 20px 0 0 0 !important;}
.formnest-form-field { padding: 10px 0 20px 0 !important;}
}

/* =========================
   Contact
========================= */
.contact__inner {
    margin: 60px auto 0 auto;
    max-width: 800px;
    width: 100%;
}
.contact__info {
    border: 2px solid var(--border-red);
    border-radius: 16px;
    margin-top: 20px;
    padding: 20px;
}
.contact__info-lead {
    color: var(--text-red);
    font-size: 1rem;
    margin-bottom: 5px;
}
.contact__text { margin-top: 20px;}
@media (max-width: 767px) {
.contact__inner {
    margin: 40px 0 0 0;
    max-width: none;
    width: 100%;
}}

/* =========================
   Strength
========================= */
.strength__image { border-radius: 16px;}
.strength__title {
    color: var(--text-main);
    font-size: 1.25rem;
    margin: 0;
}
.strength__lead { font-size: 1.125rem;}
.strength__details {
    margin: auto;
    max-width: 100%;
    padding: 0;
    text-align: left;
    width: fit-content;
}
.strength__detail::before {
    color: var(--text-sub);
    content: "●";
    font-size: 0.5rem;
    margin-right: 5px;
    vertical-align: middle;
}
.strength__copy {
    background-color: var(--bg-white);
    border-radius: 16px;
    font-size: 1rem;
    padding: 15px;
}

/* =========================
   Policy
========================= */
.policy__heading {
    font-size: 1.125rem;
    margin: 30px 0 10px 0;
}
.policy__list { margin: 15px 0 15px 20px;}
.policy__item { list-style: disc;}
.policy-button {
    margin: 30px auto 0 auto;
    max-width: 800px;
    text-align: right;
    width: 100%;
}
.policy-button__link {
    border: 1px solid var(--border-base);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.875rem;
    padding: 10px 15px;
}
.policy-button__link .fa-solid {
    margin-left: 5px;
    transition: transform 0.5s ease;
}
.policy-button__link:hover { border: 1px solid var(--border-sub);}
.policy-button__link:hover .fa-solid { transform: translateX(5px);}

/* =========================
   Footer
========================= */
.footer { margin-top: 60px;}
.footer__body {
    align-items: center;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
}
.footer__logo { padding: 0 20px 20px 20px;}
.footer__logo img {
    display: block;
    width: 335px;
}
.footer__tel {
    color: var(--text-red) !important;
    font-family: "Nunito", sans-serif;
    font-size: 1.25rem;
    font-weight: bold;
    letter-spacing: 0.02em;
}
.footer__time { margin-bottom: 5px;}
.footer__label {
    border: 1px solid var(--text-base);
    border-radius: 999px;
    display: inline-block;
    font-size: 0.875rem;
    line-height: normal;
    margin-right: 10px;
    padding: 2px 10px;
}
.footer__links {
    display: flex;
    gap: 30px;
    justify-content: center;
    margin-top: 20px;
}
.footer__links a {
    align-items: center;
    background-color: var(--bg-main);
    border-radius: 50%;
    color: var(--text-white); 
    display: flex;
    font-size: 1.25rem;
    justify-content: center;
    height: 45px;
    width: 45px;
}
.footer__links a:hover { background-color: var(--bg-sub);}
.footer__iframe {
    border-radius: 16px;
    height: 400px;
    width: 100%;
}
.footer__banner {
    border-top: 2px solid var(--border-main);
    display: flex;
    font-size: 0.875rem;
    gap: 20px;
    justify-content: center;
    margin-top: 60px;
    padding: 30px;
}
.footer__banner img {
    height: 40px;
    object-fit: cover;
    width: auto;
}
.footer__copyright {
    background-color: var(--bg-light-yellow);
    font-family: "Kosugi Maru", sans-serif;
    font-size: 0.875rem;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    padding: 10px 15px;
    text-align: center;
}
@media (max-width: 767px) {
.footer {
    margin-top: 40px;
    padding: 10px 0 90px 0;
}
.footer__body {
    grid-template-columns: 1fr;
    gap: 40px;
}
.footer__info, .footer__map {
    flex: none;
    width: 100%;
}
.footer__iframe { height: 350px !important;}
.footer__banner {
    margin-top: 40px;
    padding: 20px 30px;
}}

/* =========================
   Side-tabs
========================= */
.side-tabs {
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: fixed;
    right: 0;
    top: 62%;
    transform: translateY(-50%);
    z-index: 100;
}
.side-tabs__link {
    align-items: center;
    border-radius: 10px 0 0 10px;
    color: var(--text-white);
    display: flex;
    gap: 5px;
    justify-content: center;    
    letter-spacing: 0.16em;
    margin-left: auto; 
    padding: 10px 0;
    text-align: center;
    text-orientation: mixed;
    transition: background-color 0.3s, width 0.3s ease;
    writing-mode: vertical-rl;
    width: 50px;
}
.side-tabs__link:hover {
    box-shadow: 0 3px 6px rgb(var(--rgb-black), 0.15);
    color: var(--text-white);
    width: 56px;
}
.side-tabs__link--donation {
    background-color: var(--category-color);
    min-height: 160px;
}
.side-tabs__link--donation::before {
    background: url(../img/common/tab_symbol.svg) no-repeat center / contain;
    content: "";
    height: 28px;
    width: 30px;
}
.side-tabs__link--donation:hover { background-color: var(--bg-main);}
.side-tabs__link--amazon { background-color: var(--bg-sub);}
.side-tabs__link--amazon:hover { background-color: var(--bg-main);}
.side-tabs__text {
    font-family: "Nunito", sans-serif;
    font-size: 1rem;
    font-weight: bold;
    letter-spacing: -0.6em;
    padding-bottom: 10px;
    text-orientation: upright;
}
.side-tabs__link--top {
    background-color: var(--tab-color);
    font-size: 1.25rem;
    line-height: 1;
}
.side-tabs__link--top:hover { background-color: var(--bg-main);}
@media (max-width: 767px) {
.side-tabs {
    bottom: 0;
    left: 0;
    height: 60px;
    gap: 0;
    flex-direction: row;
    top: auto;
    transform: none;
    right: auto;
    width: 100%;
    z-index: 999;
}
.side-tabs__link {
    border-radius: 0;
    flex: 1;
    gap: 10px;
    height: 100%;
    letter-spacing: 0.08em;
    min-height: auto;
    padding: 10px;
    width: auto;
    writing-mode: horizontal-tb;
}
.side-tabs__link:hover { width: auto;}
.side-tabs__link--top { display: none;}
.side-tabs__body {
    display: flex;
    flex-direction: column;
    line-height: 1.4;
    text-align: left;
}
.side-tabs__text {
    letter-spacing: 0.08em;
    padding-bottom: 0;
    text-orientation: mixed;
}}

/* =========================
   電話リンク
========================= */
@media (hover: hover) {
a[href^="tel:"] {
    color: inherit;
    cursor: default;
    pointer-events: none;
    text-decoration: none;
}}