/* * {
    background: rgba(255,0,0,.1);
} */

:root {
    --main-font-family: "m-plus-rounded-2p", sans-serif;
    --sub-font-family: "heisei-maru-gothic-std", sans-serif;
    --bs-primary: #e50012;
    --bs-primary-rgb: 229,0,18;
    --bs-secondary: #3ebcdf;
    --bs-secondary-rgb: 61,188,223;
    --bs-tertiary: ;
    --bs-tertiary-rbg: ;
    --bs-body-color: #946134;
    --bs-body-color-rgb: 198,97,52;
    --bs-body-bg: #fff0c1;
    --bs-body-bg-rgb: 255,240,193;
    --bs-emphasis-color: #fff0c1;
    --bs-emphasis-color-rgb: 255,240,193;
    --bs-secondary-color: #ffffff;
    --bs-secondary-color-rgb: 255,255,255;
    --bs-secondary-bg: #3ebcdf;
    --bs-secondary-bg-rgb: 61,188,223;
    --bs-tertiary-color: #ffffff;
    --bs-tertiary-color-rgb: 255,255,255;
    --bs-tertiary-bg: #946134;
    --bs-tertiary-bg-rgb: 198,97,52;
}

/* Adobe Font */
.main-font-family { font-family: var(--main-font-family); font-style: normal; }
.sub-font-family { font-family: var(--sub-font-family); font-style: normal; }

header.hero {
    background: rgba(var(--bs-body-bg-rgb),.9);
    backdrop-filter: blur(5px);
    box-shadow: 0 3px 16px rgba(66,0,0,.16);
}

header.hero .site-logo img {
    width: 100%;
    height: 3rem;
}

header.hero .nav-link {
    background: var(--bs-primary);
    color: var(--bs-emphasis-color);
    border: 3px solid var(--bs-primary);
    letter-spacing: 0.1rem;
    font-size: clamp(1rem,5vw,1.2rem);
}
header.hero .nav-link:is(:focus, :hover) {
    background: var(--bs-body-bg);
    color: var(--bs-primary);
}
header.hero .custom-toggler.navbar-toggler {
    border-color: var(--bs-primary);
}
header.hero .custom-toggler .navbar-toggler-icon {
    background-image: url(
"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(299, 0, 18, 0.8)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}
section.hero {
    background: var(--bs-primary);
}

section.hero h3 {
    font-size: clamp(1.4rem, 5.5vw, calc(1rem * 1.618 * 1.618));
    color: var(--bs-emphasis-color);
    letter-spacing: 0.33rem;
}

section.hero h2 {
    font-size: clamp(2.8rem, 10vw, calc(1rem * 1.618 * 1.618 * 1.618));
    color: var(--bs-white);
    letter-spacing: 0.33rem;
}

section.hero .h2_sub {
    color: var(--bs-white);
    font-size: clamp(1.2rem, 3vw, calc(1rem* 1.618));
}

section.hero img.hero-card {
    /* width: min(100%, 800px); */
    width: min(100%, 900px);
}

section.hero p {
    color: var(--bs-emphasis-color);
    font-size: clamp(1rem,3vw,2rem);
}

section.hero .gyouza-line {
    height: clamp(30px,5vw,50px);
    background: url('/images/manpay/gyouza-line-bg.png') repeat-x 0 0 / clamp(50px,6vw,80px) auto;
    content: "";
}

section.section_2nd {
    background: var(--bs-secondary);
    color: var(--bs-white);
    font-size: clamp(1.1rem,3vw,2rem);
}

section.section_3rd {
    background-color: #ffffff; /* アートボードのデフォルトカラーとして白に設定 */
    color: var(--bs-body-color);
    font-size: clamp(1rem,3vw,1.618rem);
}

section.section_3rd .point img {
    width: min(100%, 900px);
}

section.section_3rd .point dl,
section.section_3rd .point div {
    width: min(100%, 800px);
}

section.section_3rd .point div p {
    text-indent: clamp(-1.618rem,-4vw,-1rem);
    margin-left: clamp(1rem,3vw,1.618rem);
}

section.section_4th {
    height: clamp(150px,25vw,250px);
}
section.section_4th ul li {
    list-style: none;
}

section.section_4th ul li a {
    text-decoration: none;
    color: #e50012;
    border: 2px solid #e50012;
    font-size: clamp(1.1rem,3vw,1.618rem);
    letter-spacing: clamp(0.1rem,1vw,0.33rem);
}

section.section_4th ul li a:hover {
    background: #e50012;
    color: white;
}

section.section_qa h3 {
    font-size: clamp(1.618rem, 5.5vw, calc(1rem * 1.618 * 1.618));
    color: var(--bs-emphasis-color);
    letter-spacing: clamp(0.1rem,1vw,0.33rem);
}

section.section_qa button.accordion-button {
    font-size: clamp(1.2rem,1.6vw,1.618rem);
}

section.section_qa .accordion-body {
    display: flex;
    font-size: clamp(1.1rem,1.5vw,1.5rem);
}

footer {
    background: #e50012;
    color: #ffffff;
    height: 100px;
}

footer>div {
    height: 100%;
}

footer .copyright {
    font-size: clamp(0.8rem, 1.618vw, 1.2rem)
}

.modal.show { backdrop-filter: blur(3px);}
.modal-body h4 { font-size: calc(1.2rem + 0.3vw);}
.modal-body h5 { font-size: calc(1.1rem + 0.2vw);}
.modal-body .list-style-lower-roman { list-style-type: lower-roman; }

/* customize bootstrap5 */
.accordion {
    --bs-accordion-btn-color: #e50012;
    --bs-accordion-border-color: rgba(229,0,18,0);
    --bs-accordion-active-color: #e50012;
    --bs-accordion-active-bg: #fff0c1;
    --bs-accordion-active-shadow: 0 0 0 0.25rem rgba(229,0,18, 0);
    --bs-accordion-btn-focus-border-color: rgba(229,0,18, 0.25);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(229,0,18, 0);
}
.accordion-item:not(:last-child) {
    border-bottom: 1px dotted rgba(229,0,18,0.1);
}

/* --- Campaign 2026 Override Styles --- */
.main-font-family,
.main-font-family-reg {
  font-family: "M PLUS Rounded 1c", "m-plus-rounded-2p", sans-serif !important;
  font-weight: 400;
}
.main-font-family-bold {
  font-family: "M PLUS Rounded 1c", "m-plus-rounded-2p", sans-serif !important;
  font-weight: 700;
}

/* hero sections */
section.hero.container-fluid:first-of-type {
  background-color: #d7b782;
}

section.hero.container-fluid:nth-of-type(2) {
  background-color: #fff0c1;
}

section.hero img.hero-card {
  width: min(100%, 900px);
}

/* section_2nd の背景色と文字色 */
section.section_2nd {
  background-color: #dadf00;
}
section.section_2nd p {
  color: #000000;
}

/* section_qa の背景と見出し色 */
section.section_qa.bg-primary {
  background-color: #dadf00 !important;
}
section.section_qa h3 {
  color: #000000;
}

/* アコーディオン部分의 配色 */
section.section_qa .accordion-item,
section.section_qa .accordion-button,
section.section_qa .accordion-body {
  background-color: #ffffff !important;
  color: #946134 !important;
}

/* --- Animations --- */
.fade-in-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-in-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* --- Card Floating Animation --- */
.floating-card {
  position: absolute;
  top: 5%;
  left: 52%;
  right: auto;
  width: clamp(180px, 35%, 380px); /* サイズを大きく調整 */
  z-index: 5;
  pointer-events: none;
  animation: sway-card 6s ease-in-out infinite;
  filter: drop-shadow(4px 4px 8px #a67c52);
}

@keyframes sway-card {
  0%, 100% { transform: translateY(0) rotate(-10deg); }
  50% { transform: translateY(-15px) rotate(-7deg); }
}