/* ==============================================
   Layout Styles - Header / Footer / Fixed CTA
   ============================================== */

/* ---- Header ---- */

.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-line);
  height: 80px;
}

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 var(--space-md);
  height: 100%;
}

.header__logo img {
  height: 40px;
  width: auto;
}

.header__nav ul {
  display: flex;
  gap: var(--space-lg);
}

.header__nav a {
  font-size: var(--fs-small);
  font-weight: var(--fw-medium);
  color: var(--color-text);
  transition: color 0.2s;
  white-space: nowrap;
}

.header__nav a:hover {
  color: var(--color-main);
}

.header__right {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

.header__tel {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-decoration: none;
}

.header__tel-label {
  font-size: var(--fs-tiny);
  color: var(--color-text-sub);
}

.header__tel-num {
  font-family: var(--font-en);
  font-size: 22px;
  font-weight: var(--fw-bold);
  color: var(--color-main);
  letter-spacing: 0.02em;
}

.header__line {
  background: #06C755;
  color: #FFFFFF;
  font-size: var(--fs-small);
  font-weight: var(--fw-bold);
  padding: 8px 16px;
  border-radius: 4px;
  white-space: nowrap;
}

.header__line:hover {
  opacity: 0.9;
}

.header__menu-btn {
  font-size: var(--fs-small);
  font-weight: var(--fw-bold);
  color: var(--color-text);
  padding: var(--space-xs);
}

@media (max-width: 768px) {
  .site-header {
    height: 60px;
  }

  .header__logo img {
    height: 32px;
  }

  .header__tel,
  .header__line {
    display: none;
  }
}

/* ---- Footer ---- */

.site-footer {
  background: var(--color-bg-dark);
  color: #FFFFFF;
}

.footer__cta {
  background: var(--color-accent);
  color: var(--color-text);
  text-align: center;
  padding: var(--space-xl) var(--space-md);
}

.footer__cta h2 {
  font-size: var(--fs-h2);
  margin-bottom: var(--space-md);
}

.footer__cta .btn-primary {
  margin-right: var(--space-sm);
  margin-bottom: var(--space-sm);
}

.footer__main {
  display: flex;
  justify-content: space-between;
  gap: var(--space-xl);
  max-width: var(--container-max);
  margin: 0 auto;
  padding: var(--space-xxl) var(--space-md);
}

.footer__brand {
  font-size: var(--fs-h4);
  font-weight: var(--fw-bold);
  margin-bottom: var(--space-sm);
}

.footer__info p {
  font-size: var(--fs-small);
  color: rgba(255, 255, 255, 0.7);
  line-height: var(--lh-base);
  margin-bottom: var(--space-xxs);
}

.footer__nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-lg);
}

.footer__nav a {
  font-size: var(--fs-small);
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.2s;
}

.footer__nav a:hover {
  color: #FFFFFF;
}

.footer__copyright {
  text-align: center;
  font-size: var(--fs-tiny);
  color: rgba(255, 255, 255, 0.5);
  padding: var(--space-md) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

@media (max-width: 768px) {
  .footer__main {
    flex-direction: column;
    gap: var(--space-lg);
    padding: var(--space-xl) var(--space-sm);
  }

  .footer__nav ul {
    flex-direction: column;
    gap: var(--space-sm);
  }
}

/* ---- Fixed CTA (SP) ---- */

.fixed-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  display: none;
  height: 60px;
}

.fixed-cta a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: #FFFFFF;
  font-size: var(--fs-tiny);
  font-weight: var(--fw-bold);
  text-decoration: none;
}

.fixed-cta__tel {
  background: var(--color-main);
}

.fixed-cta__line {
  background: #06C755;
}

.fixed-cta__form {
  background: var(--color-accent);
  color: var(--color-text) !important;
}

@media (max-width: 768px) {
  .fixed-cta {
    display: flex;
  }

  /* Footerの下部にFixed CTAの高さ分余白を追加 */
  body {
    padding-bottom: 60px;
  }
}
