.detail-section.gallery-only {
  padding-top: 40px;
}

@media (max-width: 750px) {
  .detail-section.gallery-only {
    padding-top: 24px;
  }
}

/* Size the heading to its text column, including narrow notebook layouts. */
.subpage-hero.application-page .subpage-hero-copy {
  container-type: inline-size;
}

.subpage-hero.application-page h1 {
  max-width: 680px;
  font-size: clamp(1rem, 11.5cqw, 4rem);
  line-height: 1.09;
  letter-spacing: -0.035em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.packages .section-heading h2 {
  max-width: 680px;
  line-height: 1.08;
  letter-spacing: -1.8px;
  text-wrap: balance;
}

@media (max-width: 750px) {
  .packages .section-heading h2 {
    max-width: 100%;
    font-size: clamp(32px, 9vw, 40px);
    line-height: 1.12;
    letter-spacing: -1px;
  }
}

.ai-inline-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 20px 42px;
  text-align: center;
}

.ai-inline-cta > p {
  margin: 0 0 15px;
  font-size: 18px;
  font-weight: 800;
}

.ai-inline-cta .ai-round-button {
  flex-basis: auto;
  width: 138px;
  height: 138px;
  padding: 18px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .18);
}

.ai-inline-cta .ai-round-button span {
  font-size: 8px;
}

.ai-inline-cta .ai-round-button strong {
  margin: 6px 0 2px;
  font-size: 16px;
}

.ai-inline-cta .ai-round-button b {
  font-size: 22px;
}

.ai-inline-cta + .packages {
  padding-top: 36px;
}

.package-grid .price del {
  margin-right: 10px;
  color: #777;
  font-size: .58em;
  font-weight: 700;
  text-decoration-thickness: 2px;
}

.package-grid .price .promotion {
  display: inline-block;
  margin-left: 8px;
  padding: 5px 9px;
  background: var(--red);
  color: #fff;
  font-size: .32em;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  vertical-align: middle;
}

@media (max-width: 750px) {
  .ai-inline-cta {
    padding: 24px 20px 34px;
  }

  .ai-inline-cta + .packages {
    padding-top: 26px;
  }
}

/* Package-specific shooting and selection workflows. */
.package-process { scroll-margin-top: 160px; }
.package-process-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.package-process-grid article { padding: clamp(24px, 3vw, 40px); background: #fff; border-top: 4px solid var(--red); }
.package-process-grid h3 { margin: 0 0 20px; font-size: 26px; text-transform: uppercase; }
.package-process-grid p { margin: 0 0 18px; font-size: 18px; line-height: 1.65; }
.package-process-grid p:last-child { margin-bottom: 0; }
@media (max-width: 850px) { .package-process-grid { grid-template-columns: 1fr; } }

.application-slideshow { position: relative; min-height: 560px; overflow: hidden; background: #aaa; }
.application-slideshow .application-slide { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 35%; opacity: 0; transition: opacity 900ms ease; }
.application-slideshow .application-slide.is-active { opacity: 1; }
.slideshow-controls { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; padding: 5px; border-radius: 6px; color: white; background: rgba(18,18,18,.85); }
.slideshow-controls[hidden] { display: none; }
.slideshow-controls button { min-width: 44px; min-height: 44px; border: 0; border-radius: 3px; padding: 8px 12px; color: inherit; background: transparent; cursor: pointer; font-size: 14px; }
.slideshow-controls button:hover { background: #444; }
.slideshow-controls button:focus-visible { outline: 2px solid white; outline-offset: -2px; }
.slideshow-controls span { white-space: nowrap; font-size: 14px; padding: 0 5px; }
@media (max-width: 850px) { .application-slideshow { min-height: 0; height: clamp(400px, 110vw, 650px); } }
@media (prefers-reduced-motion: reduce) { .application-slideshow .application-slide { transition: none; } }

/* Visually unobstructed; keep keyboard and assistive controls available. */
.slideshow-controls:not(:focus-within) {
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.application-slideshow { cursor: pointer; }
