* {
margin: 0;
padding: 0;
box-sizing: border-box;}

html, body {
height: 100%;}

html {
scroll-behavior: smooth;}

body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
background: #fff;
display: flex;
flex-direction: column;
overflow-x: hidden;
max-width: 100vw;}

body.loading {
overflow: hidden;}

.site {
display: flex;
flex-direction: column;
min-height: 100vh;
opacity: 0;
transition: opacity 0.6s ease;}

.site.loaded {
opacity: 1;}

.site-content {
flex: 1;}

.loading-screen {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
opacity: 1;
transition: opacity 0.6s ease;}

.loading-screen.hidden {
opacity: 0;
pointer-events: none;}

.loading-content {
text-align: center;
width: 100%;
max-width: 600px;
padding: 0 2rem;}

.loading-logo {
max-width: 200px;
height: auto;
margin-bottom: 2rem;}

.loading-text {
font-size: 1.2rem;
color: #333;
font-weight: 500;}

.loading-text .sp-only {
display: none;}

@media (max-width: 768px) {
.site-logo-img {
height: 40px;}

.footer-logo-img {
height: 60px;}

.loading-text {
font-size: 1rem;
text-align: center;}

.loading-text .sp-only {
display: inline;}

}

.loading-dots::after {
content: '.';
animation: loadingDots 1.5s infinite;}

@keyframes loadingDots {
0% { content: '.'; }

33% { content: '..'; }

66% { content: '...'; }

100% { content: '.'; }

}

.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;}

.hero-section {
position: relative;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;}

.hero-video {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
object-fit: cover;
z-index: 1;
opacity: 1;}

.hero-video--sp { display: none; }

@media (max-width: 768px) {
.hero-section {
width: 100%;
height: min(100vh, calc(100vw * 4 / 3));
min-height: auto;
aspect-ratio: auto;
margin: 0 auto;}

.scroll-indicator {display: none;}

.hero-top-banners {
position: absolute;
bottom: 2rem;
left: 50%;
transform: translateX(-50%);
right: auto;
width: calc(100% - 2rem);
max-width: 400px;
display: flex;
flex-direction: column;
gap: 0.75rem;
justify-content: center;
align-items: center;}

.hero-top-banner-item {
width: 100%;
max-width: 100%;
flex: none;}

.hero-top-banner-item img {
width: 100%;
height: auto;}

}

@media (max-width: 768px) {
.hero-video--pc { display: none; }

.hero-video--sp { display: block; }

}

@media (prefers-reduced-motion: reduce) {
.hero-video--pc, .hero-video--sp { display: none; }

}

.hero-content {
text-align: center;
color: #fff;
z-index: 2;}

.hero-title {
font-size: 4rem;
font-weight: 700;
margin-bottom: 1rem;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);}

.hero-subtitle {
font-size: 1.5rem;
opacity: 0.9;
margin-bottom: 2rem;}

.hero-top-banners {
position: absolute;
bottom: 2rem;
right: 2rem;
display: flex;
flex-direction: column;
gap: 1rem;
z-index: 3;
width: 35vw;
max-width: 400px;
min-width: 200px;}

.hero-top-banner-item {
display: block;
width: 100%;
transition: transform 0.3s ease, opacity 0.3s ease;}

.hero-top-banner-item:hover {
transform: translateY(-3px);
opacity: 0.9;}

.hero-top-banner-item img {
width: 100%;
height: auto;
display: block;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
object-fit: contain;}

.scroll-indicator {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: column;
align-items: center;
cursor: pointer;
z-index: 3;
animation: scrollBounce 2s infinite;}

@media (max-width: 768px) {
.scroll-indicator {display: none;}

}

.scroll-line {
width: 2px;
height: 30px;
background: #fff;
opacity: 0.8;}

@media (min-width: 769px) {
.scroll-line { position: relative; overflow: hidden; }

.scroll-line::before { display: none; }

.scroll-indicator { animation: none; }

.scroll-text { animation: none; margin-top: 0; margin-bottom: 6px; }

.scroll-line { height: 24px; will-change: opacity, transform; }

.scroll-indicator .scroll-line:first-of-type { display: none; }

.scroll-indicator .scroll-line:last-of-type { 
animation: none; 
background: rgba(255,255,255,0.35);}

.scroll-indicator .scroll-line:last-of-type::after {
content: '';
position: absolute;
left: 0;
width: 100%;
height: 8px;
top: -8px;
background: #fff;
border-radius: 1px;
animation: scrollDrop 2.4s ease-in-out infinite;}

}

@keyframes scrollSwapTop {
0%   { opacity: 0; transform: translateY(-6px); }

10%  { opacity: 1; transform: translateY(0); }

60%  { opacity: 1; transform: translateY(0); }

70%  { opacity: 0; transform: translateY(6px); }

100% { opacity: 0; transform: translateY(6px); }

}

@keyframes scrollSwapBottom {
0%   { opacity: 0; transform: translateY(-6px); }

50%  { opacity: 1; transform: translateY(0); }

100% { opacity: 0; transform: translateY(6px); }

}

@keyframes scrollDrop {
0%   { top: -8px; opacity: 0; }

10%  { opacity: 1; }

85%  { top: 100%; opacity: 1; }

100% { top: 100%; opacity: 0; }

}

.scroll-text {
color: #fff;
font-size: 0.8rem;
font-weight: 600;
letter-spacing: 2px;
margin: 10px 0;
opacity: 0.8;}

@keyframes scrollBounce {
0%, 20%, 50%, 80%, 100% {
transform: translateX(-50%) translateY(0);}

40% {
transform: translateX(-50%) translateY(-6px);}

60% {
transform: translateX(-50%) translateY(-3px);}

}

@media (min-width: 769px) {
.scroll-indicator { animation: none; }

.scroll-text { animation: none; }

.scroll-line { height: 40px; }

}

.site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
width:100%;
padding:1rem;
display:flex;
justify-content:space-between;
align-items:center;
background: transparent;
transition: background-color 0.3s ease;
position: fixed;}

.site-header > * { position: relative; z-index: 1; }

.site-logo {
display: flex;
align-items: center;}

.site-logo-img {
height: 60px;
width: auto;}

.site-title {
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 0.5rem;
color: #333;}

.site-description {
font-size: 1.1rem;
opacity: 0.9;}

.main-content {
padding: 3rem 0;}

.content-area {
background: #fff;
padding: 2rem;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0,0,0,0.08);
margin-bottom: 2rem;}

.post {
margin-bottom: 3rem;
padding-bottom: 2rem;
border-bottom: 1px solid #eee;}

.post:last-child {
border-bottom: none;}

.post-title {
font-size: 2rem;
color: #fff;
margin-bottom: 1rem;}

.post-title a {
text-decoration: none;
color: inherit;
transition: color 0.3s ease;}

.post-title a:hover {
color: #e94746;}

.post-meta {
color: #666;
font-size: 0.9rem;
margin-bottom: 1rem;}

.post-content {
line-height: 1.8;}

.post-content p {
margin-bottom: 1rem;}

.sidebar {
background: #fff;
padding: 2rem;
border-radius: 10px;
box-shadow: 0 5px 15px rgba(0,0,0,0.08);}

.widget {
margin-bottom: 2rem;}

.widget-title {
font-size: 1.3rem;
color: #fff;
margin-bottom: 1rem;
padding-bottom: 0.5rem;
border-bottom: 2px solid #e94746;}

.cta-section {
background-color: #fff;
background-image: url('../images/cta_bk.png');
background-size: cover;
background-position: center;
background-attachment: fixed;
background-repeat: no-repeat;
padding: 4rem 0;
text-align: center;
position: relative;}

.cta-content {
max-width: 800px;
margin: 0 auto;
padding: 0 2rem;}

.cta-section .cta-title {
font-size: clamp(1.3rem, 5vw, 2rem);
font-weight: 500;
color: #333;
margin-bottom: 1.5rem;}

.cta-title .sp-only {
display: none;}

@media (max-width: 768px) {
.cta-title .sp-only {
display: inline;}

}

.cta-section .cta-org {
font-size: 1rem;
color: #333;
font-weight: 600;}

.cta-section .cta-address {
font-size: 1rem;
color: #333;
margin-bottom: 1.5rem;}

.cta-contact {
display: flex;
gap: 2rem;
margin-bottom: 2rem;
justify-content: center;
flex-wrap: wrap;}

.cta-section .cta-tel,
.cta-section .cta-fax {
font-size: 1.1rem;
color: #333;
margin: 0;}

.cta-tel {
display: inline-flex;
align-items: center;
gap: 1rem;}

.cta-tel i {
font-size: 2rem;}

.cta-section .cta-tel .tel-link {
color: #333;
text-decoration: none;
pointer-events: none;
font-size: 2.5rem;
font-weight: 500;}

@media (max-width: 768px) {
.cta-section .cta-tel {
gap: 0.5rem;}

.cta-section .cta-tel i {
font-size: 1.2rem;}

.cta-section .cta-tel .tel-link {
pointer-events: auto;
text-decoration: underline;
text-decoration-color: #333;
font-size: 1.3rem;}

}

.cta-line {
margin-bottom: 2rem;}

.cta-line-link {
display: inline-block;
text-decoration: none;
transition: opacity 0.3s ease;}

.cta-line-link:hover {
opacity: 0.8;}

.cta-line-link img {
max-width: 180px;
height: auto;
background: #fff;
padding: 1rem;
border-radius: 8px;
margin-bottom: 0.5rem;}

.cta-section .cta-line-link p {
font-size: 1rem;
color: #333;
margin: 0;}

.cta-button {
display: inline-block;
padding: 1rem 3rem;
background: #e94746;
color: #fff;
text-decoration: none;
border-radius: 50px;
font-weight: 600;
font-size: 1.1rem;
transition: all 0.3s ease;}

.cta-button:hover {
background: #fff;
color: #e94746;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);}

@media (max-width: 768px) {
.cta-section {
background-image: url('../images/cta_bk_mb.png');
padding: 3rem 0;}

.cta-org {
font-size: 0.9rem;}

.cta-address {
font-size: 0.9rem;}

.cta-contact {
flex-direction: column;
gap: 0.5rem;
align-items: center;}

.cta-button {
padding: 0.8rem 2rem;
font-size: 1rem;}

}

.site-footer {
background: #f8f9fa;
color: #333;
padding: 3rem 0 1.5rem;}

.footer-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 40px;
margin-bottom: 3rem;
padding-bottom: 2rem;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);}

@media (max-width: 768px) {
.footer-content {
grid-template-columns: 1fr;
gap: 2rem;}

.footer-logo-img {
margin-left: auto;
margin-right: auto;}

.footer-social-links {
justify-content: flex-end;}

}

.footer-column {
display: flex;
flex-direction: column;
align-items: flex-start;}

.footer-column-title {
font-size: 1.1rem;
margin-bottom: 1rem;
color: #333;
font-weight: 600;}

.footer-logo {}

.footer-logo-img {
height: 80px;
width: auto;
margin-bottom: 1rem;
display: block;}

.footer-org-info {
margin-bottom: 1rem;}

.footer-org-name {
font-size: 0.95rem;
font-weight: 600;
color: #333;
margin: 0 0 0.5rem 0;
line-height: 1.5;}

.footer-org-address {
font-size: 0.9rem;
color: #666;
margin: 0;
line-height: 1.5;}

.footer-org-contact {
font-size: 0.9rem;
color: #666;
margin: 0;
line-height: 1.5;}

.footer-social-links {
display: flex;
align-items: center;
width: 100%;
justify-content: flex-end;}

.footer-social-link {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
color: #e94746;
font-size: 1.5rem;
transition: all 0.3s ease;
text-decoration: none;}

.footer-social-link:hover {
color: #c63635;
transform: scale(1.1);}

.footer-org-contact a {
color: #e94746;
transition: all 0.3s ease;}

.footer-org-contact a:hover {
color: #c63635;
transform: scale(1.1);}

.footer-site-title {
font-size: 1.8rem;
margin: 0 0 0.5rem 0;}

.footer-site-title a {
color: #333;
text-decoration: none;
transition: color 0.3s ease;}

.footer-site-title a:hover {
color: #e94746;}

.footer-site-description {
color: #666666;
font-size: 0.9rem;
margin: 0;
line-height: 1.6;}

.footer-logo .custom-logo-link {
display: inline-block;
margin-bottom: 0.5rem;}

.footer-logo .custom-logo {
max-width: 150px;
height: auto;}

.footer-menu-list {
list-style: none;
padding: 0;
margin: 0;
width: 100%;}

.footer-menu-list li {
margin-bottom: 0.75rem;}

.footer-menu-list li a {
color: #0a0607;
text-decoration: none;
transition: color 0.3s ease;}

.footer-menu-list li a:hover {
color: #e94746;}

.footer-menu-list .current-menu-item > a,
.footer-menu-list .current_page_item > a,
.footer-menu-list .current-menu-parent > a,
.footer-menu-list .current_page_parent > a {
color: #d6d6d6;
font-weight: 600;
pointer-events: none;
cursor: default;}

.footer-menu-list--main2 {
margin-top: 1.5rem;
padding-top: 1.5rem;
border-top: 1px solid rgba(0, 0, 0, 0.1);}

.footer-documents {}

.footer-documents-list {
list-style: none;
padding: 0;
margin: 0;}

.footer-documents-list li {
margin-bottom: 0.75rem;}

.footer-documents-list li a {
display: inline-flex;
align-items: center;
gap: 0.5rem;
color: #0a0607;
text-decoration: none;
transition: color 0.3s ease;}

.footer-documents-list li a:hover {
color: #e94746;}

.footer-documents-list li a i {
color: #f40f02;
font-size: 1rem;}

.footer-bottom {
text-align: center;}

.footer-copyright {
color: #888888;
font-size: 0.9rem;
margin: 0;}

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

.error-404 {
text-align: center;
padding: 3rem 0;}

.error-title {
font-size: 8rem;
font-weight: 900;
color: #e94746;
margin-bottom: 1rem;
line-height: 1;}

.error-subtitle {
font-size: 2rem;
color: #fff;
margin-bottom: 1rem;}

.error-description {
font-size: 1.1rem;
color: #666;
margin-bottom: 2rem;
line-height: 1.6;}

.error-actions {
margin-bottom: 3rem;}

.btn-home {
display: inline-block;
background: linear-gradient(135deg, #e94746 0%, #764ba2 100%);
color: #fff;
padding: 1rem 2rem;
text-decoration: none;
border-radius: 50px;
font-weight: 600;
transition: all 0.3s ease;
margin-bottom: 2rem;}

.btn-home:hover {
transform: translateY(-2px);
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
color: #fff;}

.search-form {
max-width: 400px;
margin: 0 auto;}

.search-form h3 {
font-size: 1.2rem;
color: #fff;
margin-bottom: 1rem;}

.search-form input[type="search"] {
width: 100%;
padding: 0.8rem 1rem;
border: 2px solid #eee;
border-radius: 25px;
font-size: 1rem;
outline: none;
transition: border-color 0.3s ease;}

.search-form input[type="search"]:focus {
border-color: #e94746;}

.recent-posts {
text-align: left;
max-width: 600px;
margin: 0 auto;}

.recent-posts h3 {
font-size: 1.3rem;
color: #fff;
margin-bottom: 1rem;
text-align: center;}

.recent-posts ul {
list-style: none;
padding: 0;}

.recent-posts li {
padding: 0.8rem 0;
border-bottom: 1px solid #eee;}

.recent-posts li:last-child {
border-bottom: none;}

.recent-posts a {
color: #fff;
text-decoration: none;
transition: color 0.3s ease;}

.recent-posts a:hover {
color: #e94746;}

.hamburger-menu {
position: relative;
z-index: 1000;}

.hamburger-btn {
background: transparent;
border: none;
cursor: pointer;
padding: 0;
z-index: 1001;}

.hamburger-btn-bg {
display: flex;
flex-direction: column;
justify-content: center;
gap: 6px;
width: 60px;
height: 60px;
padding: 0.5rem 0.8rem;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: saturate(120%) blur(4px);
-webkit-backdrop-filter: saturate(120%) blur(4px);
border-radius: 4px;
transition: background-color 0.3s ease;}

.hamburger-btn:hover .hamburger-btn-bg {
background: #e94746;}

.hamburger-btn:hover .hamburger-line {
background-color: #ffffff;}

@media (min-width: 769px) {
.hamburger-btn {
position: static;
background: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;}

}

.hamburger-line {
width: 100%;
height: 2px;
background-color: #333;
border-radius: 1px;}

.menu-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
z-index: 1001;}

.menu-overlay.active {
opacity: 1;
visibility: visible;}

.hamburger-nav {
position: fixed;
top: 0;
right: -100%;
width: 80%;
max-width: 400px;
height: 100%;
background-color: #fff;
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
transition: right 0.3s ease;
z-index: 999;
overflow-y: auto;}

.hamburger-nav.active {
right: 0;
z-index: 1002;}

.menu-header {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 1rem;}

.menu-close-btn {
background: none;
border: none;
font-size: 2rem;
font-weight: 300;
color: #fff;
cursor: pointer;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
padding: 0;}

.menu-close-btn:hover {
background-color: transparent;}

.menu-content {
overflow-y: auto;
overflow-x: hidden;
max-height: calc(100vh - 80px);
padding: 0 1rem 1rem 1rem;}

.hamburger-menu-list {
list-style: none;
margin: 0;
padding: 0;}

.hamburger-menu-list li {
position: relative;}

.hamburger-menu-list li.has-submenu {
position: relative;
overflow: visible;}

.hamburger-menu-list a {
display: block;
padding: 1rem 1.5rem;
color: #0a0607;
text-decoration: none;
font-weight: 500;
transition: all 0.3s ease;
position: relative;}

.hamburger-menu-list a:hover {
background-color: #f8f9fa;
color: #e94746;
border-radius: 8px;}

.hamburger-menu-list .current-menu-item > a,
.hamburger-menu-list .current_page_item > a,
.hamburger-menu-list .current-menu-parent > a,
.hamburger-menu-list .current_page_parent > a {
color: #999999;
font-weight: 600;
pointer-events: none;
cursor: default;}

.hamburger-menu-list--secondary {
margin-top: 1.5rem;
padding-top: 1.5rem;
border-top: 1px solid #e0e0e0;}

.hamburger-menu-list .has-submenu > a {
padding-right: 3rem;
position: relative;}

.menu-toggle-btn {
position: absolute;
right: 0;
top: 0;
height: 3.5rem;
width: 3.5rem;
background: none;
border: none;
color: #666;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: transform 0.3s ease, color 0.3s ease;
z-index: 99999;
pointer-events: auto;}

.menu-toggle-btn:hover {
color: #fff;}

.menu-toggle-btn.active {
transform: rotate(180deg);}

.menu-toggle-btn i {
font-size: 0.8rem;
transition: transform 0.3s ease;}

.sub-menu {
list-style: none;
margin: 0;
padding: 0;
background-color: #f0f2f5;
border-radius: 8px;
max-height: 0;
overflow: hidden;
transition: max-height 0.4s ease, opacity 0.3s ease;
position: relative;
z-index: 1;
opacity: 0;
transform: translateY(-10px);}

.sub-menu.active {
max-height: 500px;
opacity: 1;
transform: translateY(0);}

.sub-menu a {
padding-left: 3rem;
font-size: 0.9rem;
color: #666;
opacity: 0;
transform: translateX(-20px);
transition: opacity 0.3s ease, transform 0.3s ease, color 0.3s ease;}

.sub-menu.active a {
opacity: 1;
transform: translateX(0);}

.sub-menu li:nth-child(1) a {
transition-delay: 0.1s;}

.sub-menu li:nth-child(2) a {
transition-delay: 0.15s;}

.sub-menu li:nth-child(3) a {
transition-delay: 0.2s;}

.sub-menu li:nth-child(4) a {
transition-delay: 0.25s;}

.sub-menu li:nth-child(5) a {
transition-delay: 0.3s;}

.sub-menu a:hover {
background-color: #e9ecef;
color: #e94746;
border-radius: 6px;}

.sub-menu .current-menu-item > a,
.sub-menu .current_page_item > a {
color: #999999;
font-weight: 600;
opacity: 1;
pointer-events: none;
cursor: default;}

body.menu-open {
overflow: hidden;}

.banner-section {
padding: 3rem 0;
background-color: #f8f9fa;}

.banner-title {
font-size: 1.8rem;
font-weight: 500;
color: #333;
text-align: center;
margin-bottom: 2rem;}

.banner-title .sp-only {
display: none;}

.banner-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 200px));
gap: 1.5rem;
max-width: 1200px;
margin: 0 auto;}

.banner-item {
background: #fff;
overflow: hidden;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;}

.banner-item:hover {
transform: translateY(-5px);
box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);}

.banner-item a {
display: block;
text-decoration: none;}

.banner-item img {
width: 100%;
height: auto;
object-fit: contain;
display: block;}

@media (max-width: 768px) {
.banner-section {
padding: 2rem 0;}

.banner-title {
font-size: 1.3rem;}

.banner-title .sp-only {
display: inline;}

.banner-grid {
grid-template-columns: repeat(auto-fit, minmax(150px, 180px));
gap: 1rem;}

}

@media (min-width: 769px) {
.hamburger-menu {
display: block;}

}

@media (max-width: 768px) {
.site-title {
font-size: 2rem;}

.content-area, .sidebar {
padding: 1.5rem;}

.grid {
grid-template-columns: 1fr;}

.error-title {
font-size: 6rem;}

.error-subtitle {
font-size: 1.5rem;}

.error-description {
font-size: 1rem;}

}

.hero-intro-section {
width: 100%;
position: relative;
min-height: 500px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;}

.hero-intro-section::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #e94746;
z-index: 10;
transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1);}

.hero-intro-section.fade-in::after {
transform: translateX(100%);}

.hero-intro-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #e94746;
background-image: url('../images/main_header.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
z-index: 1;}

.hero-intro-bg::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;}

.hero-intro-content {
position: relative;
z-index: 3;
text-align: left;
width: 100%;
max-width: 1200px;
padding: 0 2rem;
color: #fff;}

.hero-intro-image-mobile {
display: none;}

.hero-intro-title {
font-size: 2.5rem;
font-weight: 500;
margin-bottom: 1.5rem;
line-height: 1.3;
color: #fff;}

.hero-intro-title .sp-only {
display: none;}

.hero-intro-description {
font-size: 1.1rem;
line-height: 1.8;
margin: 0 0 1.5rem 0;
color: #fff;}

.hero-intro-link {
display: inline-flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: #fff;
font-weight: 600;
position: relative;}

.hero-intro-link-text {
position: relative;
transition: color 0.3s ease;}

.hero-intro-link-text::after {
content: '';
position: absolute;
left: 0;
bottom: -2px;
width: 0;
height: 1px;
background-color: #fff;
transition: width 0.3s ease;}

.hero-intro-link:hover .hero-intro-link-text {
color: #e97a7a;}

.hero-intro-link:hover .hero-intro-link-text::after {
width: 100%;
background-color: #e97a7a;}

.hero-intro-link-line {
display: block;
width: 20px;
height: 3px;
background-color: #e97a7a;
transition: width 0.3s ease;}

.hero-intro-link:hover .hero-intro-link-line {
width: 10px;}

.alternating-section {
padding: 5rem 0;
background-color: #ffffff;}

.alternating-section .container {
overflow: hidden;}

.alternating-item {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3rem;
align-items: center;
margin-bottom: 5rem;
position: relative;}

.alternating-content {
opacity: 0;
transition: opacity 1s ease, transform 1s ease;
padding: 0;
position: relative;}

.alternating-item--image-left .alternating-content {
transform: translateX(60px);}

.alternating-item--image-right .alternating-content {
transform: translateX(-60px);}

.alternating-item.fade-in .alternating-content {
opacity: 1;
transform: translateX(0);}

.alternating-item:last-child {
margin-bottom: 0;}

.alternating-image-link {
display: block;
text-decoration: none;
position: relative;
z-index: 1;}

.alternating-image {
width: 100%;
overflow: hidden;
border-radius: 12px;
position: relative;}

.alternating-image::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #fff;
z-index: 5;
border-radius: 0;
transition: transform 1.2s cubic-bezier(0.77, 0, 0.175, 1);}

.alternating-item--image-left.fade-in .alternating-image::after {
transform: translateX(100%);}

.alternating-item--image-right.fade-in .alternating-image::after {
transform: translateX(-100%);}

.alternating-image img {
width: 100%;
height: auto;
display: block;
object-fit: cover;
transition: transform 0.3s ease;}

.alternating-image-link:hover .alternating-image img {
transform: scale(1.05);}

.alternating-title {
font-size: 2rem;
font-weight: 500;
color: #333;
margin-bottom: 1rem;}

.alternating-title .sp-only {
display: none;}

.alternating-description {
font-size: 1.1rem;
line-height: 1.8;
color: #666;
margin-bottom: 1.5rem;}

.alternating-link {
display: inline-flex;
align-items: center;
gap: 8px;
text-decoration: none;
color: #0a0607;
font-weight: 600;
position: relative;}

.alternating-link-text {
position: relative;
transition: color 0.3s ease;}

.alternating-link-text::after {
content: '';
position: absolute;
left: 0;
bottom: -2px;
width: 0;
height: 1px;
background-color: #e94746;
transition: width 0.3s ease;}

.alternating-link:hover .alternating-link-text {
color: #e94746;}

.alternating-link:hover .alternating-link-text::after {
width: 100%;}

.alternating-link-line {
display: block;
width: 20px;
height: 3px;
background-color: #e94746;
transition: width 0.3s ease;}

.alternating-link:hover .alternating-link-line {
width: 10px;}

@media (max-width: 768px) {
.hero-intro-section {
min-height: auto;
flex-direction: column;
align-items: stretch;}

.hero-intro-section::after {
display: none;}

.hero-intro-bg {
display: none;}

.hero-intro-image-mobile {
display: none;}

.hero-intro-content {
background-color: #e94746;
background-image: url('../images/main_header_mb_bk.png');
background-repeat: no-repeat;
background-position: right bottom;
background-size: cover;
padding: 3rem 2rem;
text-align: left;
order: 1;
display: flex;
flex-direction: column;}

.hero-intro-title {
font-size: 1.8rem;
color: #fff;}

.hero-intro-title .sp-only {
display: inline;}

.hero-intro-description {
font-size: 1rem;
color: #fff;}

.hero-intro-link {
align-self: flex-end;}

.alternating-section {
padding: 3rem 0;}

.alternating-item {
grid-template-columns: 1fr;
gap: 0;
margin-bottom: 3rem;}

.alternating-image {
overflow: visible;
border-radius: 0;}

.alternating-image img {
border-radius: 12px;}

.alternating-image::after {
top: -2%;
left: -2%;
width: 104%;
height: 104%;}

.alternating-item--image-right .alternating-image-link {
order: -1;}

.alternating-item--image-left .alternating-image-link {
order: -1;}

.alternating-content {
padding: 2rem;
display: flex;
flex-direction: column;}

.alternating-link {
align-self: flex-end;}

.alternating-title {
font-size: 1.5rem;}

.alternating-title .sp-only {
display: inline;}

.alternating-description {
font-size: 1rem;
margin-bottom: 1rem;}

}

.scroll-to-top {
position: fixed;
bottom: 2rem;
right: 2rem;
width: 60px;
height: 60px;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: saturate(120%) blur(4px);
-webkit-backdrop-filter: saturate(120%) blur(4px);
border: none;
border-radius: 4px;
cursor: pointer;
z-index: 999;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
visibility: hidden;
transform: translateY(20px);
transition: all 0.3s ease;}

.scroll-to-top.visible {
opacity: 1;
visibility: visible;
transform: translateY(0);}

.scroll-to-top:hover {
background: #e94746;}

.scroll-to-top:hover i {
color: #ffffff;}

.scroll-to-top i {
font-size: 1.2rem;
color: #333;
transition: color 0.3s ease;}

@media (max-width: 768px) {
.scroll-to-top {
bottom: 1.5rem;
right: 1.5rem;
width: 50px;
height: 50px;}

.scroll-to-top i {
font-size: 1rem;}

}

.page-hero {
width: 100%;
position: relative;
min-height: 300px;
display: flex;
align-items: center;
justify-content: center;
padding-top: 80px;}

.page-hero-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #fff;
background-image: url('../images/header_bk_1.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
z-index: 1;}

.page-slug-dayservice .page-hero-bg {
background-image: url('../images/header_bk_2.png');}

.page-slug-welfaretaxi .page-hero-bg {
background-image: url('../images/header_bk_3.png');}

.page-slug-mobilitysupport .page-hero-bg {
background-image: url('../images/header_bk_4.png');}

.page-hero-content {
position: relative;
z-index: 3;
text-align: left;
max-width: 1200px;
width: 100%;
margin: 0 auto;
padding: 0 20px;}

.page-title {
font-size: 2.5rem;
font-weight: 500;
color: #333;
margin: 0;
line-height: 1.3;}

.breadcrumb-wrapper {
background: #f8f9fa;
padding: 1rem 0;}

.breadcrumb {
display: flex;
align-items: center;}

.breadcrumb ol {
display: flex;
align-items: center;
list-style: none;
margin: 0;
padding: 0;
flex-wrap: wrap;}

.breadcrumb li {
display: flex;
align-items: center;
font-size: 0.9rem;
color: #666;}

.breadcrumb li:not(:last-child)::after {
content: '\f054';
font-family: 'Font Awesome 6 Free';
font-weight: 900;
margin: 0 0.5rem;
color: #e0e0e0;
font-size: 0.75rem;}

.breadcrumb a {
color: #555;
text-decoration: none;
transition: color 0.3s ease;}

.breadcrumb a:hover {
color: #e94746;}

.breadcrumb li:last-child {
color: #999;}

.page-content-section {
padding: 5rem 0;
background-color: #ffffff;}

.page-content {
background: #fff;
line-height: 1.8;
max-width: 800px;
margin: 0 auto;}

.page-content h2 {
font-size: 2rem;
font-weight: 500;
color: #333;
margin: 2rem 0 1rem 0;
padding-bottom: 0.5rem;
border-bottom: 2px solid #e94746;}

.page-content h3 {
font-size: 1.5rem;
font-weight: 500;
color: #333;
margin: 1.5rem 0 1rem 0;}

.page-content h4 {
font-size: 1.2rem;
color: #333;
margin: 1.5rem 0 1rem 0;
padding-top: 1rem;
border-top: 1px solid #e0e0e0;}

.page-content h5 {
font-size: 1.1rem;
color: #333;
margin: 1rem 0 0.5rem 0;}

.page-content p {
margin-bottom: 1rem;
color: #666;}

.page-content a {
color: #e94746;
text-decoration: none;
transition: color 0.3s ease;}

.page-content a:hover {
color: #c63635;
text-decoration: underline;}

.page-content .text-right {
text-align: right;
margin-top: 2rem;}

.page-content ul,
.page-content ol {
margin: 1rem 0;
padding-left: 0;
color: #666;}

.page-content ul {
list-style: none;}

.page-content ul li {
margin-bottom: 0.75rem;
padding-left: 1.5rem;
position: relative;}

.page-content ul li::before {
content: '・';
position: absolute;
left: 0;
color: #999;}

.page-content ul.asterisk-list {
list-style: none;}

.page-content ul.asterisk-list li {
margin-bottom: 0.75rem;
padding-left: 1.5rem;
position: relative;}

.page-content ul.asterisk-list li::before {
content: '※';
position: absolute;
left: 0;
color: #999;
font-weight: 600;}

.page-content ol {
margin: 1rem 0;
list-style: decimal;
padding-left: 1.5rem;}

.page-content ol li {
margin-bottom: 0.75rem;
padding-left: 0;}

.page-content .menu-item {
padding-left: 0;}

.page-content .menu-item::before {
display: none;}

.page-content .menu-item a {
color: #0a0607;
text-decoration: none;
transition: color 0.3s ease;
display: inline-block;
padding-left: 1.5rem;
position: relative;}

.page-content .menu-item a::before {
content: '・';
position: absolute;
left: 0;
color: #999;}

.page-content .menu-item a:hover {
color: #e94746;}

.page-content .inline-list {
display: flex;
flex-wrap: wrap;
align-items: center;
list-style: none;
margin: 1rem 0;
padding: 0;}

.page-content .inline-list li {
margin: 0;
padding-left: 0;
display: flex;
align-items: center;}

.page-content .inline-list li::before {
display: none;}

.page-content .inline-list li:not(:last-child)::after {
content: '・';
margin: 0 0.5rem;
color: #999;}

.page-content .info-list {
display: grid;
grid-template-columns: 150px 1fr;
gap: 1rem 2rem;
margin: 2rem 0;}

.page-content .info-list dt {
font-weight: 600;
color: #333;
padding: 0.5rem 0;}

.page-content .info-list dd {
color: #666;
padding: 0.5rem 0;
margin: 0;}

.page-content .dl-list {
margin: 2rem 0;}

.page-content .dl-list dt {
font-weight: 600;
color: #333;
margin:0;}

.page-content .dl-list dt:not(:first-of-type) {
margin-top: 1rem;}

.page-content .dl-list dd {
color: #666;
padding-left: 1rem;
margin: 0;}

.page-content .dl-list dd:last-child {
margin-bottom: 0;}

.map-container {
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
margin: 2rem 0;
border-radius: 4px;}

.map-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;}

.page-content .sign-wrapper {
display: flex;
justify-content: flex-end;
align-items: flex-start;
gap: 2rem;
margin: 2rem 0;}

.page-content .sign-wrapper .sign {
text-align: right;
margin: 0;
flex-shrink: 0;}

.page-content .sign-wrapper .sign p {
text-align: left;
margin: 0;
color: #666;
line-height: 1.8;}

.page-content .sign-wrapper .sign p:first-child {
margin-bottom: 0.5rem;}

.page-content .sign-wrapper .sign-image {
width: auto;
height: auto;
flex-shrink: 0;}

.page-content .sign-wrapper .sign-image img {
width: auto;
height: auto;
max-width: 200px;
display: block;
object-fit: cover;}

@media (max-width: 768px) {
.page-content .sign-wrapper {
gap: 1rem;
justify-content: flex-end;}

.page-content .sign-wrapper .sign-image img {
max-width: 120px;}

}

@media (max-width: 768px) {
.page-content .info-list {
grid-template-columns: 1fr;
gap: 0.5rem;}

.page-content .info-list dt {
padding: 0.5rem 0 0.25rem 0;}

.page-content .info-list dd {
padding: 0 0 1rem 0;
border-bottom: 1px solid #f0f0f0;}

.page-content .info-list dd:last-of-type {
border-bottom: none;}

}

@media (max-width: 768px) {
.page-hero {
min-height: 200px;}

.page-hero-bg {
background-image: url('../images/header_bk_1_mb.png');}

.page-slug-dayservice .page-hero-bg {
background-image: url('../images/header_bk_2_mb.png');}

.page-slug-welfaretaxi .page-hero-bg {
background-image: url('../images/header_bk_3_mb.png');}

.page-slug-mobilitysupport .page-hero-bg {
background-image: url('../images/header_bk_4_mb.png');}

.page-title {
font-size: 1.8rem;}

.page-content-section {
padding: 3rem 0;}

.page-content h2 {
font-size: 1.5rem;}

.page-content h3 {
font-size: 1.2rem;}

}

.flow-chart {
max-width: 800px;
margin: 3rem auto;
padding: 0;}

.flow-item {
background: #fff;
border: 2px solid #e94746;
border-radius: 8px;
padding: 2rem;
position: relative;}

.flow-item:last-child {
margin-bottom: 2rem;}

.flow-header {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 1rem;}

.flow-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
background: #e94746;
color: #fff;
border-radius: 50%;
font-weight: 600;
font-size: 1.2rem;
flex-shrink: 0;}

.flow-title {
font-size: 1.5rem;
font-weight: 500;
color: #fff;
margin: 0;}

.flow-content {
color: #666;
line-height: 1.8;}

.flow-content p {
margin: 0;}

.flow-content dl {
margin: 0;}

.flow-content dt {
font-weight: 600;
color: #333;
margin-bottom: 0.5rem;}

.flow-content dd {
margin: 0 0 1rem 0;
color: #666;
padding-left: 1.5rem;
position: relative;}

.flow-content dd::before {
content: '・';
position: absolute;
left: 0;
color: #999;}

.flow-content dd:last-child {
margin-bottom: 0;}

.flow-arrow {
text-align: center;
margin: 2rem 0;
position: relative;}

.flow-arrow::before {
content: '▼';
font-size: 2rem;
color: #e94746;}

@media (max-width: 768px) {
.flow-item {
padding: 1.5rem;}

.flow-title {
font-size: 1.2rem;}

}

.inquiry-phone {
max-width: 800px;
margin: 0 auto 3rem auto;
text-align: center;
padding: 2rem;
background: #fff;
border: 2px solid #e94746;
border-radius: 8px;}

.inquiry-phone-text {
font-size: 1.1rem;
color: #333;
margin-bottom: 1.5rem;
font-weight: 500;}

.inquiry-phone-number {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;}

.inquiry-phone-number i {
font-size: 2.5rem;
color: #e94746;}

.inquiry-tel-link {
font-size: clamp(2rem, 5vw, 3rem);
font-weight: 600;
color: #e94746;
text-decoration: none;
pointer-events: none;
transition: color 0.3s ease;
white-space: nowrap;}

.inquiry-tel-link:hover {
color: #c63635;}

@media (max-width: 768px) {
.inquiry-phone {
padding: 1.5rem;}

.inquiry-phone-text {
font-size: 1rem;}

.inquiry-phone-number {
gap: 0.5rem;}

.inquiry-phone-number i {
font-size: 1.5rem;}

.inquiry-tel-link {
pointer-events: auto;
text-decoration: underline !important;
text-decoration-color: #e94746 !important;}

}

.wpcf7 {
max-width: 800px;
margin: 0 auto;}

.wpcf7-form {
display: flex;
flex-direction: column;
gap: 2rem;}

.wpcf7-form-control-wrap {
display: block;}

.wpcf7 label {
display: block;
font-weight: 600;
color: #333;
margin-bottom: 0.5rem;
font-size: 1rem;}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
width: 100%;
padding: 0.8rem 1rem;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 1rem;
font-family: inherit;
transition: border-color 0.3s ease;
background: #fff;}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 textarea:focus {
outline: none;
border-color: #e94746;}

.wpcf7 textarea {
min-height: 200px;
resize: vertical;}

.wpcf7 input[type="submit"] {
padding: 1rem 3rem;
background: #e94746;
color: #fff;
border: none;
border-radius: 4px;
font-size: 1.1rem;
font-weight: 600;
cursor: pointer;
transition: background-color 0.3s ease;
align-self: flex-end;}

.wpcf7 input[type="submit"]:hover {
background: #e07d0a;}

.wpcf7-not-valid-tip {
color: #dc3232;
font-size: 0.9rem;
margin-top: 0.5rem;}

.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
border: 2px solid #dc3232;
background: #ffe6e6;
color: #dc3232;
padding: 1rem;
border-radius: 4px;
margin-top: 1rem;}

.wpcf7-mail-sent-ok {
border: 2px solid #46b450;
background: #e7f7e9;
color: #46b450;
padding: 1rem;
border-radius: 4px;
margin-top: 1rem;}

@media (max-width: 768px) {
.wpcf7 input[type="submit"] {
width: 100%;
align-self: stretch;}

}

.price-table {
border-collapse: collapse;
width: 100%;
margin: 0 auto 2rem auto;}

.price-table th,
.price-table td {
padding: 10px;
border: solid 1px #e0e0e0;
text-align: center;
vertical-align: middle;
box-sizing: border-box;
font-size: 1rem;
color: #333;
letter-spacing: 0.8pt;}

.price-table td strong {
font-weight: 700;}

.price-table th {
background: #e94746;
color: #fff;
font-size: 1rem;
font-weight: 700;
letter-spacing: 0.8pt;}

.price-table-header th:first-child {
width: 137px;}

@media screen and (max-width: 640px) {
.price-table .price-table-header {
display: none;}

.price-table {
width: 100%;}

.price-table td {
display: block;
width: 100%;
border-bottom: none;}

.price-table td:first-child {
background: #e94746;
color: #fff;
font-weight: 700;}

.price-table td:before {
content: attr(data-label);
font-size: 0.7rem;
font-weight: 700;
color: #999;
display: block;}

.price-table tr:last-child {
border-bottom: solid 1px #e0e0e0;}

}

.qa-list {
max-width: 800px;
margin: 3rem auto;}

.qa-item {
border: 1px solid #ddd;
border-radius: 4px;
margin-bottom: 1rem;
overflow: hidden;}

.qa-question {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1.5rem;
background: #f8f9fa;
cursor: pointer;
user-select: none;
transition: background-color 0.3s ease;}

.qa-question:hover {
background: #e9ecef;}

.qa-question-text {
font-size: 1.1rem;
font-weight: 600;
color: #333;
padding-right: 1rem;
margin: 0 !important;}

.qa-icon {
font-size: 1.5rem;
color: #e94746;
font-weight: 300;
transition: transform 0.3s ease;
flex-shrink: 0;}

.qa-item.active .qa-icon {
transform: rotate(45deg);}

.qa-answer {
max-height: 0;
overflow: hidden;
transition: max-height 0.3s ease, padding 0.3s ease;}

.qa-item.active .qa-answer {
max-height: 500px;
padding: 1.5rem;
border-top: 1px solid #ddd;}

.qa-answer-text {
font-size: 1rem;
line-height: 1.8;
color: #666;}

.qa-answer p {
margin: 0 !important;}

@media (max-width: 768px) {
.qa-question {
padding: 1rem;}

.qa-question-text {
font-size: 1rem;}

.qa-item.active .qa-answer {
padding: 1rem;}

}

.scrollable-table-wrapper {
position: relative;
width: 100%;
margin: 2rem 0;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: thin;
scrollbar-color: #e94746 #f0f0f0;}

.scrollable-table-wrapper::-webkit-scrollbar {
height: 8px;}

.scrollable-table-wrapper::-webkit-scrollbar-track {
background: #f0f0f0;
border-radius: 4px;}

.scrollable-table-wrapper::-webkit-scrollbar-thumb {
background: #e94746;
border-radius: 4px;}

.scrollable-table-wrapper::before {
content: '← スクロールできます →';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: rgba(233, 71, 70, 0.9);
color: #fff;
padding: 0.5rem 1rem;
border-radius: 20px;
font-size: 0.85rem;
font-weight: 600;
white-space: nowrap;
z-index: 2;
pointer-events: none;
opacity: 0;
transition: opacity 0.3s ease;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);}

.scrollable-table-wrapper.show-hint::before {
opacity: 1;}

.scrollable-table {
width: 100%;
min-width: 600px;
border-collapse: collapse;
margin: 0;
position: relative;
z-index: 0;}

.scrollable-table th,
.scrollable-table td {
padding: 12px 16px;
border: 1px solid #e0e0e0;
text-align: center;
vertical-align: middle;
font-size: 1rem;
color: #333;
background: #fff;}

.scrollable-table th {
background: #e94746;
color: #fff;
font-weight: 600;
position: sticky;
left: 0;
z-index: 1;}

.scrollable-table th:first-child {
background: #e94746;
color: #fff;
font-weight: 600;}

.scrollable-table tbody tr:nth-child(even) {
background: #f8f9fa;}

.scrollable-table tbody tr:hover {
background: #f0f0f0;}

@media (min-width: 769px) {
.scrollable-table-wrapper::before {
display: none;}

.scrollable-table {
min-width: 100%;}

}
