/* Final section-by-section layout QA. Intent: photography first, then concise readable copy.
   The spacing rhythm is intentionally denser on phones, where vertical space is costly. */

/* Shared layout rhythm on tablet / desktop. */
.page-index .manifesto { padding-block: clamp(44px,4.7vw,70px) clamp(49px,4.9vw,76px); }
.page-index .manifesto-layout { margin-top: clamp(20px,2.1vw,30px); }
.page-index .ideas-section { padding-block: clamp(56px,5.7vw,82px); }
.page-index .ticket-section { padding-block: clamp(53px,5.8vw,88px); }
.page-index .worlds-head { padding-top: clamp(27px,3vw,44px); padding-bottom: clamp(24px,2.6vw,38px); }
.page-index .cta-giant {min-height:0; padding:clamp(65px,6vw,100px) 5% clamp(70px,7vw,115px);}
.service-chapter { padding-block: clamp(62px,6vw,88px); }
.service-chapter .service-index { margin-bottom: clamp(16px,2.1vw,30px); }
.process-scene { padding-block: clamp(68px,6.3vw,105px); }
.process-scene h2 { margin-top: clamp(24px,3vw,43px); margin-bottom: clamp(42px,4vw,72px); }
.faq-scene { padding-block: clamp(65px,6.3vw,95px); }

/* Medium widths were inheriting almost-desktop whitespace even after stacking. */
@media (min-width:701px) and (max-width:1050px) {
  .page-index .manifesto {padding-block: 43px 51px;}
  .page-index .ideas-section {padding-block:65px 72px;}
  .page-index .ticket-section {padding-block:68px 73px;}
  .service-chapter {padding-block:56px 60px;}
  .process-scene {padding:60px 5% 66px;}
  .process-scene h2 {font-size:clamp(51px,7.2vw,77px);line-height:.98;margin:23px 0 36px;}
  .process-line>div {padding:28px 0;}
  .faq-scene {padding-block:56px 62px;gap:24px;}
}

@media (max-width:700px) {
  /* The screenshot: stop leaving a cream strip after the final gold project. */
  .page-index .manifesto {padding:27px 5% 36px;}
  .page-index .manifesto-layout {margin-top:17px;gap:10px;}
  .page-index .manifesto-bottom {margin-top:13px;line-height:1.53;}
  .page-index .manifesto-side {gap:8px;}
  .page-index .manifesto-side p {margin-bottom:0;}
  .page-index .worlds-head {padding:19px 5% 17px;}
  .page-index .world-text {padding:22px 6% 27px;}
  .page-index .ideas-section {padding:43px 5% 49px;}
  .page-index .ideas-top h2 {margin:22px 0 23px;}
  .page-index .ideas-top>p {margin-bottom:25px;}
  .page-index .ticket-section {padding:43px 5% 52px;}
  .page-index .cta-giant {padding:62px 5% 68px;}

  /* Services: remove legacy poster-sized typography and generous section bands. */
  .service-chapter {padding:35px 5% 40px;min-height:0;}
  .service-chapter .service-index {margin-bottom:13px;padding-bottom:15px;}
  .service-chapter .service-description {padding:18px 0 3px;}
  .service-description h2 {font-size:clamp(40px,10.7vw,65px);line-height:1.0;margin:14px 0 18px;}
  .service-description p {margin-bottom:18px;line-height:1.58;}
  .process-scene {padding:46px 5% 49px;}
  .process-scene h2 {font-size:clamp(43px,10.8vw,66px);line-height:.95;margin:20px 0 29px;}
  .process-line>div {padding:23px 0;}
  .process-line strong {font-size:clamp(25px,6.4vw,32px);}
  .faq-scene {padding:46px 5% 53px;gap:19px;}
  .faq-intro h2 {font-size:clamp(44px,11.5vw,68px);line-height:.96;margin:18px 0;}
  .faq-intro p {line-height:1.58;}

  /* Compact, connected openings on all interior pages. */
  .vf-inner-intro {padding-bottom:25px;}
  .archive {padding:38px 5% 55px;}
  .archive-filter-bar {gap:13px;margin-bottom:16px;}
  .page-cta {padding:62px 5% 67px;}
  .brief-section {padding:43px 5% 50px;gap:24px;}
  .contact-bottom {padding:57px 5% 64px;}
}
@media (max-width:359px) {
  .page-index .manifesto {padding-top:24px;}
  .page-index .world-text h3 {font-size:clamp(30px,10.3vw,37px);}
  .process-scene h2 {font-size:clamp(39px,11.3vw,45px);}
  .faq-intro h2 {font-size:clamp(40px,12vw,46px);}
}


/* Tighten the transition into the philosophy block so it does not leave a tall empty band. */
.page-index .manifesto { padding-top: clamp(12px, 1.2vw, 20px); }
@media (max-width: 900px) {
  .page-index .manifesto { padding-top: 10px; }
}
@media (max-width: 600px) {
  .page-index .manifesto { padding-top: 7px; }
}
@media (max-width: 359px) {
  .page-index .manifesto { padding-top: 6px; }
}

/* Keep asterisks immediately after the field name, not on a flex row of their own. */
#inquiry-form label > .field-label-text { color: inherit; display: inline; align-self: flex-start; line-height: 1.45; }
#inquiry-form .field-label-text .required-star { color: #b9305b; display: inline; margin-left: 2px; }
