/* =========================================
FOOTER SECTION
========================================= */
.site-footer {
position: relative;
background-color: #F7F7F7;
margin-top: 120px;
padding-top: 80px;
padding-bottom: 0;
border-bottom: 16px solid #0ABAB5;
overflow: visible;
}

.footer-cta-wrapper {
position: absolute;
top: 0;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
max-width: 1250px;
padding: 0 2%;
}

.footer-cta {
background-color: var(--primary-color);
border-radius: 20px;
display: flex;
align-items: stretch;
justify-content: space-between;
padding: 0;
color: var(--white);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
overflow: hidden;
}

.cta-left {
flex: 1.2;
text-align: center;
padding: 25px 20px 25px 40px;
transition: background-color 0.3s ease;
display: flex;
flex-direction: column;
justify-content: center;
}

.cta-left:hover {
background-color: #4FDEDA;
cursor: pointer;
}

.cta-left p {
font-size: var(--font-md);
font-weight: 700;
line-height: 1.6;
}

.cta-divider {
width: 1px;
height: 70px;
background-color: #FFFFFF;
align-self: center;
}

.cta-middle {
flex: 2;
text-align: center;
padding: 25px 30px;
transition: background-color 0.3s ease;
display: flex;
flex-direction: column;
justify-content: center;
}

.cta-middle:hover {
background-color: #4FDEDA;
cursor: pointer;
}

.cta-label {
font-size: 16px;
margin-bottom: 5px;
font-weight: 500;
}

.cta-phone-wrap {
display: flex;
align-items: baseline;
justify-content: center;
gap: 15px;
flex-wrap: nowrap;
}

.cta-phone {
font-size: clamp(1.2rem, 1.5vw + 0.5rem, 1.8rem);
font-weight: 400;
letter-spacing: 0.05em;
color: var(--white);
display: inline-flex;
align-items: center;
gap: 8px;
white-space: nowrap;
}

.cta-phone svg {
width: 20px;
height: 20px;
}

.cta-time {
font-size: clamp(0.7rem, 1vw, 0.8rem);
font-weight: 500;
white-space: nowrap;
}

.cta-right {
flex: 1.5;
text-align: center;
padding: 25px 40px 25px 20px;
transition: background-color 0.3s ease;
display: flex;
flex-direction: column;
justify-content: center;
}

.cta-right:hover {
background-color: #4FDEDA;
cursor: pointer;
}

.cta-btn-link {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 15px;
color: var(--white);
font-weight: 500;
font-size: 14px;
margin-top: 10px;
width: 100%;
}

.cta-line {
width: 40px;
height: 1px;
background-color: var(--white);
}

.cta-icon-arrow {
display: inline-flex;
align-items: center;
justify-content: center;
width: 24px;
height: 24px;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.3);
font-size: 0.8rem;
}

.site-footer .container {
max-width: 1330px;
}

.footer-grid {
display: flex;
justify-content: space-between;
gap: 80px;
padding-bottom: 40px;
padding-top: 40px;
}

.footer-left {
flex: 2;
max-width: 550px;
}

.footer-company-name {
color: var(--primary-color);
font-size: 1.25rem;
font-weight: 500;
margin-bottom: 30px;
letter-spacing: 0.1em;
font-family: 'Hiragino Sans', 'ヒラギノ角ゴシック', sans-serif;
}

.footer-address-container {
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-bottom: 40px;
}

.footer-address-text p {
font-size: 0.85rem;
color: var(--text-color);
line-height: 1.8;
}

.btn-google-map {
display: inline-block;
padding: 5px 30px;
border: 1px solid var(--text-color);
border-radius: 20px;
font-size: 0.75rem;
white-space: nowrap;
margin-left: 15px;
margin-bottom: -3px;
align-self: flex-end;
transition: all 0.3s ease;
}

.btn-google-map:hover {
background-color: var(--primary-color);
color: var(--white);
border-color: var(--primary-color);
}

.footer-logo {
margin-top: 70px;
}

.footer-logo img {
width: 125px;
max-width: 100%;
margin-bottom: 25px;
}

.footer-logo-desc {
font-size: 13px;
color: #8F8F8F;
font-weight: 400;
line-height: 1.8;
}

.footer-center,
.footer-right {
flex: 1;
display: flex;
flex-direction: column;
gap: 40px;
}

.footer-heading {
font-size: 0.95rem;
font-weight: 700;
color: var(--text-color);
margin-bottom: 20px;
}

.footer-links {
display: flex;
flex-direction: column;
gap: 15px;
}

.footer-links a {
color: var(--text-light);
font-size: 0.85rem;
font-weight: 500;
}

.footer-links a:hover {
color: var(--primary-color);
}

.site-footer-bottom {
padding: 30px 0;
position: relative;
z-index: 10;
border-top: 1px solid #e0e0e0;
}

.site-footer-bottom-container {
display: flex;
justify-content: space-between;
align-items: center;
}

.footer-external-links {
display: flex;
gap: 20px;
}

.footer-external-anchor {
color: var(--text-color);
transition: opacity 0.3s ease;
display: inline-flex;
align-items: center;
}

.footer-external-anchor img {
transition: opacity 0.3s ease;
opacity: 0.7;
}

.footer-external-anchor:hover img {
opacity: 1;
}

.footer-action-btn img {
display: block;
}

.footer-copyright {
font-size: 0.75rem;
color: var(--text-light);
text-align: center;
flex-grow: 1;
}

.footer-action-btn {
width: 45px;
height: 45px;
border-radius: 50%;
border: 1px solid var(--primary-color);
background: transparent;
color: var(--primary-color);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
}

.footer-action-btn svg {
width: 20px;
height: 20px;
}

.footer-action-btn:hover {
background: var(--primary-color);
color: var(--white);
}

/* Responsive */
@media (max-width: 991px) {
.site-footer {
margin-top: 180px;
padding-top: 180px;
}

.footer-cta-wrapper {
padding: 0 20px;
}

.footer-cta {
flex-direction: column;
padding: 0;
gap: 0;
}

.cta-left {
width: 100%;
padding: 30px 20px 20px 20px;
}

.cta-middle {
width: 100%;
padding: 20px 20px;
}

.cta-right {
width: 100%;
padding: 20px 20px 30px 20px;
}

.cta-divider {
width: calc(100% - 40px);
margin: 0 auto;
height: 1px;
}

.footer-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 30px 15px; /* Reduced column gap to give more width to text */
}

.footer-left {
display: contents;
}

.footer-company-name {
grid-column: 1 / -1;
order: 1;
margin-bottom: 0;
}

.footer-address-container {
grid-column: 1 / -1;
order: 2;
}

.footer-center {
grid-column: 1 / 2;
order: 3;
}

.footer-right {
grid-column: 2 / -1;
order: 4;
}

.footer-logo {
grid-column: 1 / -1;
order: 5;
margin-top: 20px;
}

.footer-links a {
display: block;
padding: 5px 0; /* Reduced vertical padding */
}

.site-footer-bottom-container {
flex-direction: column;
align-items: flex-start;
gap: 40px;
position: relative;
}

.footer-copyright {
align-self: center;
margin-top: 20px;
}

.footer-action-top {
position: absolute;
right: 0;
top: 0;
}

.footer-external-links svg {
width: 32px;
height: 32px;
}

.cta-phone-wrap {
flex-direction: column;
align-items: center;
gap: 5px;
}
}

@media (max-width: 768px) {
.footer-address-container {
flex-direction: column;
align-items: flex-start;
gap: 20px;
}
.btn-google-map {
margin-left: 0;
align-self: flex-start;
}
.footer-center, .footer-right {
gap: 20px; /* Reduced gap between groups */
}
.footer-heading {
font-size: 0.95rem;
margin-bottom: 12px;
}
.footer-links {
gap: 8px; /* Tighter spacing between links */
}
.footer-links a {
font-size: 0.85rem; /* Slightly increased font size */
letter-spacing: -0.03em; /* Keep it tight so it fits on one line */
}
.cta-phone {
font-size: 1.5rem;
}
}

@media (max-width: 480px) {
.footer-cta-wrapper {
padding: 0 15px;
}
.footer-cta {
padding: 0;
}
.cta-left {
padding: 25px 15px 20px 15px;
}
.cta-middle {
padding: 20px 15px;
}
.cta-right {
padding: 20px 15px 25px 15px;
}
.cta-divider {
width: calc(100% - 30px);
margin: 0 auto;
}
.cta-left p {
font-size: 0.95rem;
}
.footer-external-links {
flex-wrap: wrap;
justify-content: center;
}
}
