/* Homepage visual system: aligned with the refined Service / About pages. */
:root {
  --atj-home-ink: #17231f;
  --atj-home-copy: #46534e;
  --atj-home-red: #b80032;
  --atj-home-cream: #f8f3e7;
  --atj-home-mist: #f3f6f4;
  --atj-home-line: rgba(23, 35, 31, .12);
}

#main_content {
  color: var(--atj-home-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans", Arial, sans-serif;
}

#main_content .post_content {
  font-size: clamp(16px, 1.05vw, 18px);
  line-height: 1.85;
}

#main_content .swell-block-fullWide {
  padding-top: clamp(60px, 7vw, 88px) !important;
  padding-bottom: clamp(60px, 7vw, 88px) !important;
}

#main_content h2.is-style-section_ttl {
  margin: 0 auto clamp(34px, 5vw, 56px);
  color: var(--atj-home-ink);
  font-size: clamp(2rem, 3.4vw, 3.15rem);
  font-weight: 780;
  line-height: 1.1;
  letter-spacing: -.04em;
}

#main_content h2.is-style-section_ttl .swl-fz {
  display: inline-block;
  margin-bottom: 11px;
  color: var(--atj-home-red) !important;
  font-size: 12px !important;
  font-weight: 780;
  line-height: 1.2;
  letter-spacing: .17em;
  text-transform: uppercase;
}

#main_content h3 {
  color: var(--atj-home-ink);
  font-size: clamp(1.18rem, 1.7vw, 1.48rem);
  font-weight: 740;
  line-height: 1.35;
  letter-spacing: -.02em;
}

#main_content p,
#main_content li {
  color: var(--atj-home-copy);
}

#main_content figure.wp-block-image,
#main_content .p-postList__thumb {
  overflow: hidden;
  border-radius: 20px;
}

#main_content figure.wp-block-image img,
#main_content .p-postList__thumb img {
  width: 100%;
  transition: transform .35s ease;
}

#main_content .swell-block-columns__inner {
  gap: 22px;
}

#main_content .swell-block-column,
#main_content .p-postList__item {
  overflow: hidden;
  border: 1px solid var(--atj-home-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(34, 45, 40, .08);
}

#main_content .swell-block-column {
  padding: clamp(20px, 3vw, 30px) !important;
}

#main_content .swell-block-column figure:first-child {
  margin: calc(clamp(20px, 3vw, 30px) * -1) calc(clamp(20px, 3vw, 30px) * -1) 24px !important;
  border-radius: 0;
}

#main_content .swell-block-column figure:first-child img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

#main_content .about__textarea {
  align-self: center;
  padding: clamp(25px, 4vw, 44px) !important;
}

#main_content .about__text {
  color: var(--atj-home-ink);
  font-size: clamp(1.42rem, 2.4vw, 2rem);
  font-weight: 760;
  line-height: 1.35;
  letter-spacing: -.03em;
}

#main_content .swell-block-button__link {
  min-height: 48px;
  padding: 14px 28px;
  border-radius: 999px;
  background: var(--atj-home-red);
  color: #fff !important;
  box-shadow: 0 11px 26px rgba(184, 0, 50, .24);
  font-weight: 760;
  letter-spacing: .01em;
}

#main_content .swell-block-button__link span,
#main_content .swell-block-button__link svg {
  color: #fff !important;
  fill: currentColor;
}

#main_content .challenges {
  background: linear-gradient(145deg, #f8f3e7, #fffaf0) !important;
}

#main_content .reason {
  background: linear-gradient(135deg, #850927, #b80032) !important;
}

#main_content .reason h2,
#main_content .reason h2 .swl-fz {
  color: #fff !important;
}

#main_content .p-postList__item {
  padding: 0 !important;
}

#main_content .p-postList__body {
  padding: 18px 20px 22px;
}

#main_content .animated,
#main_content .hidden-animated,
#main_content .o-anim-ready {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

@media (max-width: 767px) {
  #main_visual {
    --atj-hero-image-h: min(340px, calc((100vw - 24px) * .75));
    --atj-hero-copy-h: 205px;
    width: calc(100% - 24px);
    margin: 12px;
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(34, 45, 40, .16);
  }

  .p-mainVisual.-height-set,
  .p-mainVisual__inner,
  .p-mainVisual__slider,
  .p-mainVisual__slide {
    height: calc(var(--atj-hero-image-h) + var(--atj-hero-copy-h) + 2px) !important;
    min-height: 0 !important;
  }

  .p-mainVisual__imgLayer {
    top: 0 !important;
    bottom: auto !important;
    height: var(--atj-hero-image-h) !important;
    background: #172016;
  }

  /* The guest group photo is 4:3. Contain prevents anyone at the left edge
     from being cropped on narrow screens. */
  .p-mainVisual__img[src*="IMG_4537"],
  .p-mainVisual__img[data-src*="IMG_4537"] {
    object-fit: contain !important;
    object-position: center center !important;
    background: #172016;
  }

  /* Every slide must use the image selected in SWELL. Do not hard-code a
     background to a slide index: the index changes when images are replaced. */
  .p-mainVisual__img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .p-mainVisual__textLayer {
    top: calc(var(--atj-hero-image-h) + 2px) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: var(--atj-hero-copy-h) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 20px 18px 18px !important;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    color: var(--atj-home-ink) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif !important;
    text-shadow: none !important;
    transform: none !important;
  }

  .p-mainVisual__slideTitle {
    max-width: 330px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    font-size: clamp(24px, 6.8vw, 28px) !important;
    font-weight: 720 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.035em !important;
    text-wrap: balance !important;
    color: var(--atj-home-ink) !important;
    text-shadow: none !important;
  }

  .p-mainVisual__slideText {
    max-width: 330px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    font-size: 11.5px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    letter-spacing: 0.01em !important;
    color: var(--atj-home-copy) !important;
    text-shadow: none !important;
  }

  .p-mainVisual__slideBtn {
    min-height: 44px !important;
    border-radius: 3px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.015em !important;
  }

  #main_content .swell-block-fullWide {
    padding-top: 54px !important;
    padding-bottom: 54px !important;
  }

  #main_content .swell-block-button,
  #main_content .swell-block-button[data-align="left"],
  #main_content .swell-block-button[data-align="right"] {
    display: flex !important;
    width: 100%;
    margin-right: auto !important;
    margin-left: auto !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #main_content .swell-block-button__link {
    display: inline-flex !important;
    width: min(100%, 320px);
    align-items: center;
    justify-content: center;
  }

  #main_content h2.is-style-section_ttl {
    margin-bottom: 30px;
    font-size: clamp(1.85rem, 8.1vw, 2.35rem);
  }

  #main_content .swell-block-columns__inner {
    gap: 18px;
  }

  #main_content .swell-block-column,
  #main_content .p-postList__item {
    border-radius: 17px;
  }

  #main_content figure.wp-block-image,
  #main_content .p-postList__thumb {
    border-radius: 17px;
  }

  #main_content .swell-block-column figure:first-child {
    border-radius: 0;
  }
}



/* ATJ slide 2 guest framing v1.1.5 */
@media (max-width: 767px) {
  .p-mainVisual__img[src*="dc9d6316-aeb6-47b2-a629-88dfdf88963d-2"],
  .p-mainVisual__img[data-src*="dc9d6316-aeb6-47b2-a629-88dfdf88963d-2"] {
    object-position: center bottom !important;
  }
}


/* ATJ second slide garden framing v1.1.6 */
@media (max-width: 767px) {
  #main_visual .p-mainVisual__slide[data-swiper-slide-index="1"] .p-mainVisual__img {
    object-fit: cover !important;
    object-position: 38% 72% !important;
  }
}


/* Desktop layout repair: SWELL already supplies its own 24px column gutter. */
@media (min-width: 768px) {
  #main_content .swell-block-columns__inner {
    gap: 0;
  }

  #main_content .about .swell-block-column {
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  #main_content .about .swell-block-column:not(.about__textarea) {
    padding: 0 !important;
  }

  #main_content .about .swell-block-column:not(.about__textarea) figure:first-child {
    margin: 0 !important;
    overflow: hidden;
    border-radius: 20px;
  }
}
