/* ==========================================================================
   Maison Marlowe Models — Home (Figma 119:5). Owner: Home agent.
   Figma frame 1920; section tops: hero 94 · roster 1103 · features 1935 ·
   email band 2825 · apply 3426 · reasons 4174 · booking 4392
   ========================================================================== */

.home {
  /* page tokens (Figma px / 16) */
  --hero-pad-top: 4.375rem;          /* 70 */
  --hero-pad-bottom: 7.375rem;       /* 118 */
  --hero-col-intro: 414fr;
  --hero-col-main: 470fr;
  --hero-col-gap: 88fr;
  --hero-col-side: 318fr;
  --hero-small-w: 16.25rem;          /* 260 */
  --hero-side-top: 6.6875rem;        /* 107 */
  --roster-pad-top: 5rem;            /* 80 */
  --roster-pad-bottom: 2.0625rem;     /* 28 below the controls */
  --roster-slide-w: 26.0625rem;      /* 417 */
  --features-portrait-w: 27.625rem;  /* 442 */
  --features-list-gap: 3.75rem;      /* 60 */
  --features-list-top: 6.6875rem;    /* 107 */
  --features-pad-bottom: 1.4375rem;  /* 23 */
  --cta-lift: 6.8125rem;             /* 109: white strip the photos rise into */
  --cta-band-y: 7.0625rem;           /* 113 */
  --cta-pill-w: 16.375rem;           /* 262 */
  --cta-arch-w: 14.3125rem;          /* 201 + 2 x 14 stroke */
  --cta-stroke: 0.875rem;            /* 14 */
  --cta-bleed: 6.375rem;             /* 102 past the container */
  --cta-book: clamp(4rem, 6.77vw, 8.125rem); /* 130 */
  --apply-pad-top: 5.3125rem;        /* 85 */
  --apply-card-w: 34.125rem;         /* 546 */
  --apply-gap: 4.5rem;
  --reasons-pad-top: 6.875rem;       /* 110 */
  --reasons-pad-bottom: 7.1875rem;
  --booking-pad-top: 10.1875rem;     /* 163 */
  --booking-pad-bottom: 8.5625rem;   /* 137 */
  --booking-card-w: 45.8125rem;      /* 733 */
  --booking-card-y: 5.5rem;          /* 88 */
  --features-logo: clamp(3rem, 4.4vw, 5.25rem);
}

/* ---------- 1.1 hero ---------- */
.home-hero { padding-block: var(--hero-pad-top) var(--hero-pad-bottom); }
.home-hero__blob-a { left: 2%; top: 4%; }
.home-hero__blob-b { right: 6%; bottom: -12%; }
.home-hero__watermark { right: 8%; bottom: 3.5rem; transform: rotate(-9deg); z-index: var(--z-content); }
.home-hero__grid {
  display: grid;
  grid-template-columns: var(--hero-col-intro) var(--hero-col-main) var(--hero-col-gap) var(--hero-col-side);
  grid-template-rows: auto;
  align-items: start;
}
.home-hero__intro { position: relative; z-index: 2; grid-column: 1; min-width: 0; padding-top: var(--space-2); }
.home-hero__small { width: var(--hero-small-w); max-width: 70%; aspect-ratio: 260 / 320; margin-left: 0.875rem; }
.home-hero__title { margin-top: 2.5rem; white-space: nowrap; }
.home-hero__line { display: block; width: max-content; }
.home-hero__line--mark { background: var(--c-white); color: var(--c-accent); padding-inline: 0.12em 0.2em; margin-left: -0.12em; }
.home-hero__eyebrow { margin-top: var(--space-5); white-space: nowrap; }
.home-hero__main { position: relative; grid-column: 2; min-width: 0; }
.home-hero__main-photo { aspect-ratio: 470 / 734; }
.home-hero__badge { right: -3.5rem; bottom: 1rem; color: var(--c-taupe); }
.home-hero__side { grid-column: 4; aspect-ratio: 318 / 496; margin-top: var(--hero-side-top); }
.home-hero__scroll {
  position: absolute; z-index: var(--z-content); left: 50%; bottom: 0.75rem; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: var(--space-2);
  padding: var(--space-1) var(--space-2); color: var(--c-ink);
}
.home-hero__mouse { position: relative; width: 1rem; height: 1.625rem; border: 1px solid currentColor; border-radius: var(--r-pill); }
.home-hero__mouse::before { content: ""; position: absolute; left: 50%; top: 0.3125rem; width: 2px; height: 0.375rem; margin-left: -1px; background: var(--c-accent); border-radius: var(--r-pill); }
@media (prefers-reduced-motion: no-preference) {
  .home-hero__mouse::before { animation: home-wheel 1.8s var(--ease) infinite; }
}
@keyframes home-wheel { 0% { transform: translateY(0); opacity: 1; } 70%, 100% { transform: translateY(0.5rem); opacity: 0; } }

/* ---------- 1.2 roster ---------- */
.home-roster { padding-block: var(--roster-pad-top) var(--roster-pad-bottom); overflow: hidden; }
.home-roster .section-head { max-width: 36rem; }
.home-roster__carousel { margin-top: 1.75rem; }
.home-roster__carousel .carousel__track { padding-inline: calc(50% - min(var(--roster-slide-w), 78vw) / 2); }
.home-roster__carousel .model-card__photo { transition: aspect-ratio var(--t-med) var(--ease), transform var(--t-med) var(--ease); }
.home-roster__carousel .carousel__slide.is-active .model-card__photo { aspect-ratio: 417 / 504; }
.home-roster__carousel .carousel__controls { margin-top: var(--space-5); }

/* ---------- 1.3 features ---------- */
.home-features { padding-bottom: var(--features-pad-bottom); overflow: hidden; }
.home-features__top { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-6); padding-top: 2.625rem; }
.home-features__top .section-head { flex: 1 1 0; max-width: 36rem; }
.home-features__top .section-head + * { margin-top: 0; }
.home-features__logo { font-size: var(--features-logo); margin-right: 13rem; }
.home-features__grid {
  display: grid;
  grid-template-columns: 1fr var(--features-portrait-w) 1fr;
  grid-template-rows: auto;
  column-gap: 4.375rem;
  align-items: start;
  margin-top: -1.75rem;
}
.home-features__list { display: flex; flex-direction: column; gap: var(--features-list-gap); padding-top: var(--features-list-top); }
.home-features__portrait { position: relative; min-width: 0; }
.home-features__photo { aspect-ratio: 442 / 655; }
.home-features__photo.mask--ring::before { inset: -1.25rem 1.625rem 1.25rem -1.625rem; }
.home-features__badge { right: -3rem; bottom: -0.5rem; }

/* ---------- 1.4 email band ---------- */
.home-cta { position: relative; overflow: hidden; padding-top: var(--cta-lift); padding-bottom: var(--space-4); }
.home-cta__band { position: relative; isolation: isolate; background: var(--c-cream); }
.home-cta__decor { position: absolute; inset: 0; overflow: hidden; z-index: var(--z-decor); }
.home-cta__blob-a { left: 2%; top: -60%; }
.home-cta__blob-b { right: 18%; bottom: -70%; }
.home-cta__inner { position: relative; z-index: var(--z-content); display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-6); }
.home-cta__title { position: relative; flex: 1 1 0; min-width: 0; padding-block: var(--cta-band-y); padding-left: 4.875rem; }
.home-cta__title::before { content: ""; position: absolute; left: 0; top: calc(var(--cta-band-y) + 0.61em); width: 3.25rem; height: 2px; background: var(--c-taupe); }
.home-cta__line { display: block; }
.home-cta__mail { color: var(--c-accent-ink); text-transform: none; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; overflow-wrap: anywhere; }
.home-cta__mail:hover { color: var(--c-ink); }
.home-cta__media {
  position: relative; flex: 0 0 auto; display: flex; align-items: flex-start; gap: 0.4375rem;
  margin-top: calc(var(--space-3) - var(--cta-lift)); margin-right: calc(-1 * var(--cta-bleed));
}
.home-cta__pill { width: var(--cta-pill-w); aspect-ratio: 262 / 412; }
.home-cta__arch { width: var(--cta-arch-w); aspect-ratio: 229 / 344; margin-top: 6.875rem; border: var(--cta-stroke) solid var(--c-cream); border-left-width: 0; }
.home-cta__book {
  position: absolute; left: -5.125rem; top: 11.75rem; display: block;
  font-family: var(--ff-serif); font-weight: 700; font-size: var(--cta-book); line-height: 0.72; letter-spacing: 0;
  text-transform: uppercase; color: var(--c-white); -webkit-text-stroke: 1px var(--c-accent);
  transition: color var(--t-fast) var(--ease);
}
.home-cta__book:hover { color: var(--c-sand); }
.home-cta__book-line { display: block; }
.home-cta__book-line--in { padding-left: 1.2em; }

/* ---------- 1.5 apply ---------- */
.home-apply { padding-top: var(--apply-pad-top); }
.home-apply__row { display: flex; justify-content: space-between; align-items: center; gap: var(--apply-gap); }
.home-apply__card { position: relative; overflow: hidden; flex: 1 1 0; max-width: var(--apply-card-w); background: var(--c-cream-deep); color: var(--c-white); }
.home-apply__photo { width: 100%; aspect-ratio: 546 / 638; object-fit: cover; }
.home-apply__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--c-overlay-soft), transparent 45%); pointer-events: none; }
.home-apply__caption {
  position: absolute; z-index: 1; left: 2.5rem; top: 5.5rem; display: flex; flex-direction: column; gap: var(--space-1);
  writing-mode: vertical-rl; transform: rotate(180deg);
}
.home-apply__name { font-family: var(--ff-serif); font-weight: 500; font-size: var(--fs-h3); line-height: 1.2; letter-spacing: var(--ls-h3); text-transform: uppercase; }
.home-apply__meta { font-weight: 400; font-size: var(--fs-body); line-height: 1.4; }
.home-apply__note { position: absolute; z-index: 1; right: 1.5rem; bottom: 2rem; text-align: center; transform: rotate(-8deg); }
.home-apply__body { position: relative; flex: 1 1 0; max-width: 40.75rem; display: flex; flex-direction: column; align-items: center; gap: var(--space-5); text-align: center; }
.home-apply__swoosh { position: absolute; right: -2rem; top: -3.5rem; width: 9.375rem; color: var(--c-accent); opacity: 0.7; pointer-events: none; }
.home-apply__text { max-width: 35rem; }
.home-apply__body .btn { margin-top: var(--space-2); }

/* ---------- 1.6 reasons ---------- */
.home-reasons { padding-block: var(--reasons-pad-top) var(--reasons-pad-bottom); }

/* ---------- 1.7 booking ---------- */
.home-booking { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--booking-pad-top) var(--booking-pad-bottom); background: var(--c-ink); }
.home-booking__bg { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; }
.home-booking__card { max-width: var(--booking-card-w); padding-block: var(--booking-card-y); }
.home-booking__form { margin-top: var(--space-6); gap: var(--space-4); }
.home-booking__form textarea.field__input { min-height: 4.5rem; }
.home-booking__form .form__status:empty { display: none; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1440px) {
  .home { --cta-bleed: 0rem; --cta-pill-w: 14rem; --cta-arch-w: 12rem; }
  .home-cta__book { left: -4rem; top: 10.5rem; }
  .home-cta__arch { margin-top: 6.5rem; }
}

@media (max-width: 1280px) {
  .home {
    --features-portrait-w: 22rem; --features-list-gap: 2.5rem; --features-list-top: 3rem;
    --apply-gap: 3rem; --cta-band-y: 5rem; --cta-lift: 5rem;
    --cta-pill-w: 12rem; --cta-arch-w: 10rem;
  }
  .home-hero__badge { right: -2rem; }
  .home-features__grid { column-gap: 2.5rem; }
  .home-features__badge { right: -1.5rem; }
  .home-features__logo { margin-right: 9rem; }
  .home-cta__title { padding-left: 3.5rem; }
  .home-cta__title::before { width: 2.25rem; }
  .home-cta__book { left: -3rem; top: 8.5rem; }
  .home-cta__arch { margin-top: 5.5rem; }
  .home-apply__body br, .home-booking__card br { display: none; }
}

@media (max-width: 991px) {
  .home {
    --hero-pad-top: 3rem; --hero-pad-bottom: 4rem;
    --roster-pad-top: 4rem; --roster-pad-bottom: 4rem;
    --cta-lift: 0rem; --cta-band-y: 3.5rem;
    --apply-pad-top: 4rem; --reasons-pad-top: 4rem; --reasons-pad-bottom: 4rem;
    --booking-pad-top: 5rem; --booking-pad-bottom: 5rem;
    --features-list-top: 0rem;
  }
  .home-hero__grid { grid-template-columns: 3fr 2fr; column-gap: var(--gap-grid); row-gap: var(--space-7); }
  .home-hero__intro { grid-column: 1 / -1; padding-top: 0; }
  .home-hero__small, .home-hero__scroll { display: none; }
  .home-hero__title { margin-top: 0; }
  .home-hero__main { grid-column: 1; }
  .home-hero__side { grid-column: 2; margin-top: var(--space-8); }
  .home-hero__badge { right: -1rem; width: 8rem; }
  .home-hero__watermark { bottom: 1rem; right: 2%; }

  .home-features__top { padding-top: 0; }
  .home-features__logo { display: none; }
  .home-features__grid { grid-template-columns: 1fr 1fr; column-gap: var(--gap-grid); row-gap: var(--space-7); margin-top: var(--space-7); }
  .home-features__portrait { grid-column: 1 / -1; grid-row: 1; width: 100%; max-width: 22rem; margin-inline: auto; }
  .home-features { padding-bottom: 4rem; }

  .home-cta { padding-bottom: 0; }
  .home-cta__inner { flex-direction: column; align-items: stretch; gap: 0; }
  .home-cta__title { flex: none; padding-bottom: var(--space-6); }
  .home-cta__media { align-self: center; margin: 0 0 var(--cta-band-y); }

  .home-apply__row { flex-direction: column; align-items: stretch; }
  .home-apply__card { flex: none; width: 100%; margin-inline: auto; }
  .home-apply__body { flex: none; max-width: none; }
  .home-apply__swoosh { display: none; }
}

@media (max-width: 767px) {
  .home-hero__title { white-space: normal; }
  .home-hero__line { max-width: 100%; }
  .home-hero__eyebrow { font-size: 1rem; white-space: normal; }
  .home { --booking-card-y: 3rem; }
  .home-features__grid { grid-template-columns: 1fr; }
  .home-features__portrait { max-width: 18rem; }
  .home-features__photo.mask--ring::before { inset: -0.75rem 0.75rem 0.75rem -0.75rem; }
  .home-features__badge { right: 0; width: 7.5rem; }
  .home-cta__title { padding-left: 0; padding-top: calc(var(--cta-band-y) + 1.25rem); }
  .home-cta__title::before { top: var(--cta-band-y); }
  .home-apply__caption { left: 1.25rem; top: 2rem; }
  .home-apply__note { right: 1rem; bottom: 1.25rem; }
}

@media (max-width: 479px) {
  .home { --cta-pill-w: 9.5rem; --cta-arch-w: 8rem; --cta-stroke: 0.5rem; }
  .home-hero__grid { column-gap: var(--space-4); }
  .home-hero__badge { display: none; }
  .home-cta__book { left: 0; top: 6.5rem; }
  .home-cta__arch { margin-top: 4rem; }
  .home-cta__media { padding-left: 1rem; }
}
