/* Property management page (manage/index.html, generated by
   tools/build-manage.mjs). Builds on package.css: only what that page needs
   on top (hero photo, tables, photos, areas, facts, FAQ, quotes, form). */

.pk .mg-title { max-width: 17em; text-wrap: balance; font-size: clamp(1.25rem, 0.8rem + 1.2vw, 2rem) !important; }
.mg-text { max-width: 40rem; line-height: 1.85; }
.mg-intro { max-width: 30rem; line-height: 1.85; }
.mg-small { max-width: 40rem; margin: 1.25rem 0 0; font-size: 0.72rem; line-height: 1.75; letter-spacing: 0.02em; color: var(--sc-ink-soft); }
.mg-h3 { margin: clamp(3rem, 8vh, 4.5rem) 0 0; font-size: 0.95rem; font-weight: 400; letter-spacing: 0.04em; }

/* Hero */
.mg .pk-hero .pk-points { margin-top: clamp(1.25rem, 3vh, 1.75rem); }
.mg-hero__actions { display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; margin-block: 0; }
.mg-hero__img { margin: 0; }
.mg-hero__img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; max-height: calc(100svh - 12rem); object-fit: cover; filter: var(--pf-photo-filter); }
.mg-hero__img figcaption, .mg-photo figcaption, .mg-graphic figcaption {
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  padding: 0.8rem var(--sc-gutter) 0 0; line-height: 1.6;
  font-size: 0.6rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--sc-ink-soft);
}
.mg-hero__img b { font-weight: 400; color: var(--sc-ink); }

/* Tables: comparison and rental strategy, on hairlines. */
.mg-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; line-height: 1.6; }
.mg-table th, .mg-table td { padding: 0.9rem 1.25rem 0.9rem 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--sc-hairline); }
.mg-table thead th {
  border-bottom-color: color-mix(in oklab, var(--sc-ink) 28%, transparent);
  font-size: 0.6rem; font-weight: 400; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft);
}
.mg-table td { font-weight: 300; color: var(--sc-ink-soft); }
.mg-table--compare td:last-child, .mg-table--compare thead th:last-child { color: var(--sc-ink); }
.mg-table tbody th { font-weight: 400; color: var(--sc-ink); }
.mg-scroll { overflow-x: auto; margin-top: clamp(1.5rem, 4vh, 2.25rem); max-width: 64rem; }
.mg-table--strategy { min-width: 34rem; }
.mg-table--strategy tbody th { width: 28%; }

.mg-graphic { margin: 0; }
.mg-graphic img { display: block; width: 100%; height: auto; transition: opacity var(--sc-d-fast) var(--sc-ease-out); }
.mg-graphic a:hover img { opacity: 0.88; }

/* Photo + text spreads (overseas owners, network). */
.mg-split { align-items: center; }
.mg-photo { margin: 0; }
.mg-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; filter: var(--pf-photo-filter); }
.mg-checks { grid-template-columns: 1fr; max-width: 30rem; }

/* Owner pathways */
.mg-paths .pk-col { display: flex; flex-direction: column; align-items: flex-start; padding-top: 1.25rem; border-top: 1px solid var(--sc-hairline); }
.mg-outcome { margin: 1.25rem 0 1.5rem !important; font-size: 0.86rem; color: var(--sc-ink); }
.mg-outcome span { display: block; margin-bottom: 0.35rem; font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft); }

.mg-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* Rental focus: the large figure */
.mg-big { margin: 0; }
.mg-big b { display: block; font-size: clamp(4rem, 2rem + 6vw, 8rem); font-weight: 200; line-height: 1; letter-spacing: 0.02em; }
.mg-big span { display: block; margin-top: 0.8rem; font-size: 0.6rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--sc-ink-soft); }

/* Areas */
.mg-areas {
  list-style: none; margin: clamp(2rem, 5vh, 3rem) 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3rem) clamp(1rem, 2vw, 2rem);
}
.mg-areas img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; filter: var(--pf-photo-filter); }
.mg-areas__n { margin: 1rem 0 0; font-size: 0.66rem; letter-spacing: 0.16em; color: var(--sc-ink-soft); }
.mg-areas h3 { margin: 0.4rem 0 0; font-size: 0.95rem; font-weight: 400; letter-spacing: 0.04em; }
.mg-areas__where { margin: 0.3rem 0 0; font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft); }

/* Network facts */
.mg-facts { margin: 0; border-top: 1px solid var(--sc-hairline); }
.mg-facts > div { padding: 1rem 0; border-bottom: 1px solid var(--sc-hairline); }
.mg-facts dt { font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft); }
.mg-facts dd { margin: 0.5rem 0 0; font-size: 0.86rem; line-height: 1.7; font-weight: 300; }
.mg-facts dd b { font-weight: 300; font-size: 1.6rem; letter-spacing: 0.04em; margin-right: 0.35rem; }
.mg-facts ul { list-style: none; margin: 0 0 0.5rem; padding: 0; columns: 2; column-gap: 2rem; }
.mg-facts li { color: var(--sc-ink); }

/* FAQ */
.mg-faq { margin-top: clamp(1.75rem, 4vh, 2.5rem); max-width: 56rem; border-top: 1px solid var(--sc-hairline); }
.mg-faq details { border-bottom: 1px solid var(--sc-hairline); }
.mg-faq summary {
  display: grid; grid-template-columns: 2.4rem 1fr auto; gap: 0.5rem; align-items: baseline;
  padding: 1rem 0; cursor: pointer; list-style: none; font-size: 0.9rem; line-height: 1.6;
}
.mg-faq summary::-webkit-details-marker { display: none; }
.mg-faq summary::after {                         /* a plus that turns into a minus */
  content: ""; width: 0.7rem; height: 0.7rem; align-self: center;
  background: linear-gradient(currentColor, currentColor) center / 100% 1px no-repeat,
              linear-gradient(currentColor, currentColor) center / 1px 100% no-repeat;
  color: var(--sc-ink-soft); transition: transform var(--sc-d-fast) var(--sc-ease-out);
}
.mg-faq details[open] summary::after { background-size: 100% 1px, 1px 0; }
.mg-faq summary span { font-size: 0.66rem; letter-spacing: 0.16em; color: var(--sc-ink-soft); }
.mg-faq summary:hover { color: var(--sc-accent); }
.mg-faq summary:focus-visible { outline: 1px solid var(--sc-ink); outline-offset: 4px; }
.mg-faq p { margin: 0 0 1.25rem 2.9rem; max-width: 42rem; font-size: 0.86rem; line-height: 1.85; color: var(--sc-ink-soft); }

/* Client quotes with a small round portrait */
.mg-quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mg-quotes li { display: flex; }
.mg-quotes .pf-quote { display: flex; flex-direction: column; justify-content: space-between; width: 100%; }
.mg-quotes figcaption { display: flex; align-items: center; gap: 0.9rem; margin-top: 1.25rem; }
.mg-quotes figcaption img { width: 2.75rem; height: 2.75rem; border-radius: 50%; object-fit: cover; filter: var(--pf-photo-filter); }

/* Request: intro left, form right. */
.mg-contact {
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 6vw, 7rem); align-items: start; text-align: left;
  margin-top: 0; padding-bottom: clamp(6rem, 14vh, 8rem);     /* room for the dock */
}
.mg-contact .pk-h2 { margin-inline: 0; }
.mg-person { display: flex; flex-direction: column; gap: 0.35rem; margin: 1.75rem 0 0; font-size: 0.86rem; color: var(--sc-ink); }
.mg-person a { color: var(--sc-ink-soft); text-decoration: none; }
.mg-person a:hover { color: var(--sc-ink); }

.mg-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem clamp(1rem, 2vw, 2rem); margin-top: clamp(0rem, 2vh, 1rem); }
.mg-form label {
  display: flex; flex-direction: column; gap: 0.6rem;
  font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft);
}
.mg-form__wide { grid-column: 1 / -1; }
.mg-form input, .mg-form select, .mg-form textarea {
  height: 2.6rem; padding: 0 0.1rem; border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0;
  background: transparent; color: var(--sc-ink);
  font: inherit; font-size: 0.9rem; letter-spacing: 0.02em; text-transform: none;
}
.mg-form textarea { height: auto; padding-block: 0.6rem; resize: vertical; line-height: 1.6; }
.mg-form input::placeholder, .mg-form textarea::placeholder { color: color-mix(in oklab, var(--sc-ink-soft) 70%, transparent); }
.mg-form input:focus, .mg-form select:focus, .mg-form textarea:focus { outline: none; border-bottom-color: var(--sc-ink); }
.mg-form select:invalid { color: color-mix(in oklab, var(--sc-ink-soft) 70%, transparent); }
.mg-form .mg-form__agree { flex-direction: row; align-items: center; gap: 0.75rem; font-size: 0.8rem; letter-spacing: 0.02em; text-transform: none; }
.mg-form__agree input { width: 1rem; height: 1rem; margin: 0; accent-color: var(--sc-accent); }
.mg-form__send { grid-column: 1 / -1; justify-self: start; margin-top: 0.75rem; border: 0; cursor: pointer; font: inherit; }
.mg .pk-btn { letter-spacing: 0.18em; text-transform: uppercase; }

@media (max-width: 1100px) {
  .mg-areas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mg-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .mg-hero__img { order: 1; align-self: stretch; margin-top: 1.5rem; }
  .mg-hero__img img { max-height: none; }
  .mg-hero__img figcaption { padding-inline: var(--sc-gutter); }
  .mg-intro { order: 2; margin-top: 1.25rem; }
  .mg .pk-hero .pk-points { order: 3; }
  .mg-hero__actions { order: 4; }
  .pk-sec__grid { grid-template-columns: 1fr; }
  .mg-areas { grid-template-columns: 1fr 1fr; }
  .mg-steps { grid-template-columns: 1fr; }
  .mg-quotes { grid-template-columns: 1fr; }
  .mg-photo figcaption, .mg-graphic figcaption { padding-right: 0; }
  .mg-contact { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  /* Strategy table: one block per factor, the two options labelled. */
  .mg-table--strategy { min-width: 0; }
  .mg-table--strategy thead { display: none; }
  .mg-table--strategy tr, .mg-table--strategy th, .mg-table--strategy td { display: block; width: auto !important; }
  .mg-table--strategy tr { padding: 0.9rem 0; border-bottom: 1px solid var(--sc-hairline); }
  .mg-table--strategy th, .mg-table--strategy td { padding: 0; border: 0; }
  .mg-table--strategy td { margin-top: 0.6rem; }
  .mg-table--strategy td::before {
    content: attr(data-label); display: block; margin-bottom: 0.15rem;
    font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sc-ink-soft);
  }
}
@media (max-width: 520px) {
  .mg-areas { gap: 1.75rem 0.9rem; }
  .mg-facts ul { columns: 1; }
  .mg-form { grid-template-columns: 1fr; }
  .mg-faq p { margin-left: 0; }
}
