/* ============================================================
   Page Title Section
   ============================================================ */

.c-page-title {
  background-color: var(--base-0);
  padding: 64px 24px 40px;
  overflow: hidden;
}

.c-page-title__container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.c-page-title__title {
  color: var(--primary-70);
  margin: 0;
}

.c-page-title__subtitle {
  color: var(--secondary-60);
  margin: 0;
  text-align: left;
}



/* ============================================================
   Access Info Section
   ============================================================ */

.c-access-info {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-bottom: 64px;
}

.c-access-info__image {
  width: 100%;
  aspect-ratio: 1125 / 720;
  overflow: hidden;
}

.c-access-info__image-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.c-access-info__container {
  padding: 0 24px;
}

.c-access-info__content {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.c-access-info__header {
  background-color: var(--primary-70);
  padding: 6px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-access-info__title {
  color: var(--base-0);
  margin: 0;
}

.c-access-info__section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.c-access-info__section-title {
  color: var(--primary-70);
  margin: 0;
}

.c-access-info__item {
  border-top: 1px solid var(--primary-10);
  border-bottom: 1px solid var(--primary-10);
  padding: 8px 0;
}

.c-access-info__text {
  color: var(--primary-70);
  margin: 0;
}

.c-access-info__list {
  display: flex;
  flex-direction: column;
}

.c-access-info__list-item {
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--primary-10);
  border-bottom: 1px solid var(--primary-10);
  padding: 8px 0;
}

.c-access-info__list-item + .c-access-info__list-item {
  border-top: none;
}

.c-access-info__label {
  color: var(--primary-50);
}

.c-access-info__value {
  color: var(--primary-70);
  margin-left: auto;
  text-align: right;
}

.c-access-info__value-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
  margin-left: auto;
}

.c-access-info__note {
  color: var(--secondary-60);
}

.c-access-info__subsection {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 8px;
}

.c-access-info__subsection-title {
  color: var(--primary-70);
  margin: 0;
}



/* ============================================================
   Access Traffic Section
   ============================================================ */

.c-access-traffic {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-bottom: 64px;
}

.c-access-traffic__image {
  width: 100%;
  aspect-ratio: 1125 / 720;
  overflow: hidden;
}

.c-access-traffic__image-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.c-access-traffic__container {
  padding: 0 24px;
}

.c-access-traffic__content {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.c-access-traffic__header {
  background-color: var(--primary-70);
  padding: 6px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-access-traffic__title {
  color: var(--base-0);
  margin: 0;
}

.c-access-traffic__route {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
}

.c-access-traffic__route-title {
  color: var(--primary-70);
  margin: 0;
  text-align: center;
}

.c-access-traffic__steps {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.c-access-traffic__step {
  border: 1px solid var(--primary-10);
  border-radius: 4px;
  padding: 12px 16px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-access-traffic__step-text {
  color: var(--primary-70);
  margin: 0;
  text-align: center;
}

.c-access-traffic__step-icon {
  width: 16px;
  height: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

.c-access-traffic__step-icon-img {
  width: 100%;
  height: 100%;
  display: block;
}

.c-access-traffic__times {
  display: flex;
  flex-direction: column;
  gap: 24px;
  align-items: center;
}

.c-access-traffic__times-title {
  color: var(--primary-70);
  margin: 0;
  text-align: center;
}

.c-access-traffic__times-list {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.c-access-traffic__times-item {
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--primary-10);
  border-bottom: 1px solid var(--primary-10);
  padding: 8px 0;
}

.c-access-traffic__times-item + .c-access-traffic__times-item {
  border-top: none;
}

.c-access-traffic__times-label {
  color: var(--primary-70);
}

.c-access-traffic__times-value {
  color: var(--primary-70);
  margin-left: auto;
  text-align: right;
}



/* ============================================================
   Fixed CTA Price
   ============================================================ */

.c-fixed-cta-price {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  background-color: var(--primary-60);
  border-top: 1px solid var(--primary-50);
  width: 100%;
  padding: 12px 24px 20px;
}

@media (min-width: 960px) {
  .c-fixed-cta-price {
    left: 50%;
    transform: translateX(0);
    width: 50vw;
    max-width: 50vw;
  }
}



.c-fixed-cta-price__inner {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.c-fixed-cta-price__header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 4px;
}

.c-fixed-cta-price__deco {
  width: 7px;
  height: 14px;
  display: block;
}

.c-fixed-cta-price__title {
  color: var(--base-0);
  margin: 0;
  text-align: center;
}

.c-fixed-cta-price__tel {
  border: 1px solid var(--primary-50);
  display: flex;
  align-items: stretch;
  height: 32px;
}

.c-fixed-cta-price__tel-label {
  background-color: var(--primary-50);
  width: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
}

.c-fixed-cta-price__tel-label span {
  color: var(--base-0);
  margin-top: 2px;
}

.c-fixed-cta-price__tel-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 8px 16px;
  color: var(--base-0);
}

.c-fixed-cta-price__tel-number {
  margin-top: 2px;
}

/* ============================================================
   Access Map Section
   ============================================================ */

.c-access-map {
  background-color: var(--primary-70);
}

.c-access-map__sign {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 24px;
}

.c-access-map__sign-img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.c-access-map__sign-text {
  color: var(--base-0);
  margin: 0;
  text-align: center;
}

.c-access-map__map-wrapper {
  width: 100%;
}

.c-access-map__map {
  width: 100%;
  height: 400px;
  overflow: hidden;
}

.c-access-map__map iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}



/* ============================================================
   Fixed CTA Access
   ============================================================ */

.c-fixed-cta-access {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  background-color: var(--primary-60);
  border-top: 1px solid var(--primary-50);
  width: 100%;
  padding: 24px 24px 20px;
}

@media (min-width: 960px) {
  .c-fixed-cta-access {
    left: 50%;
    transform: translateX(0);
    width: 50vw;
    max-width: 50vw;
  }
}



.c-fixed-cta-access__button {
  background-color: var(--base-0);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 8px 16px;
  height: 48px;
  border-radius: 4px;
  text-decoration: none;
  transition: background-color 0.3s ease;
  width: 100%;
}

.c-fixed-cta-access__button:hover {
  background-color: var(--primary-10);
}

.c-fixed-cta-access__icon {
  width: 24px;
  height: 24px;
  display: block;
}

.c-fixed-cta-access__text {
  color: var(--primary-70);
  margin: 0;
}

.c-fixed-cta-access__inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.c-fixed-cta-access__tel {
  border: 1px solid var(--primary-50);
  display: flex;
  align-items: stretch;
  height: 32px;
}

.c-fixed-cta-access__tel-label {
  background-color: var(--primary-50);
  width: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
}

.c-fixed-cta-access__tel-label span {
  color: var(--base-0);
  margin-top: 2px;
}

.c-fixed-cta-access__tel-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 8px 16px;
  color: var(--base-0);
}

.c-fixed-cta-access__tel-name {
  color: var(--base-0);
  margin: 0;
}

.c-fixed-cta-access__tel-number {
  color: var(--base-0);
  margin: 0;
  margin-top: 2px;
}
