/* Shared editorial additions: Forward navy, chalk, rust and DM Sans. */
[hidden] { display: none !important; }
.content-wrap { width: min(1120px, 100%); margin: auto; padding: 64px 28px; font-weight: 400; }
main.content-wrap { padding-top: 150px; }
.content-wrap > * + * { margin-top: 24px; }
.content-wrap h1 { max-width: 900px; font-size: clamp(36px, 6vw, 68px); line-height: 1.08; font-weight: 500; letter-spacing: -.035em; }
.content-wrap h2 { font-size: clamp(25px, 3vw, 38px); line-height: 1.2; font-weight: 500; letter-spacing: -.02em; }
.content-wrap h3 { font-size: 21px; line-height: 1.3; font-weight: 500; }
.content-wrap p, .content-wrap li, .content-wrap dd { font-size: 17px; line-height: 1.65; }
.content-wrap p { max-width: 76ch; }
.content-wrap a:not(.btn), .enquiry-privacy a, [data-enquiry-status] a { text-decoration: underline; text-underline-offset: 4px; }
.content-wrap ul, .content-wrap ol { padding-left: 1.3em; }
.content-wrap li + li { margin-top: 10px; }
.content-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.content-card { min-width: 0; padding: 28px; border: 1px solid rgba(13,24,36,.2); }
.content-card > * + * { margin-top: 16px; }
.content-card img { width: 100%; height: 240px; object-fit: cover; }
.content-kicker { text-transform: uppercase; color: #C2503A; font-size: 12px !important; font-weight: 700; letter-spacing: .16em; }
.content-lead { font-size: clamp(19px, 2vw, 23px) !important; }
.content-note { padding: 20px 24px; background: rgba(13,24,36,.045); border-left: 3px solid #C2503A; font-size: 15px !important; }
.content-actions { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; }
.content-faq { border-top: 1px solid rgba(13,24,36,.2); }
.content-faq details { padding: 20px 0; border-bottom: 1px solid rgba(13,24,36,.2); }
.content-faq summary { cursor: pointer; font-size: 18px; font-weight: 500; line-height: 1.4; padding-right: 16px; }
.content-faq details p { margin: 16px 0 0; }
.content-footer { display: flex; gap: 16px 28px; flex-wrap: wrap; margin: 24px 0; font-size: 14px; }
.content-footer a { min-height: 44px; display: inline-flex; align-items: center; }
.enquiry-privacy, [data-enquiry-status] { font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
[data-enquiry-status]:empty { display: none; }
[data-enquiry-status][data-state="error"] { border-left: 3px solid #C2503A; padding-left: 12px; }
[data-enquiry-status][data-state="success"] { border-left: 3px solid currentColor; padding-left: 12px; }
[data-enquiry-form] button:disabled { opacity: .6; cursor: wait; }
.content-wrap :focus-visible, .content-footer :focus-visible { outline: 2px solid #C2503A; outline-offset: 4px; }
.content-wrap address { font-style: normal; line-height: 1.7; }
.hd-book-note { line-height: 1.6; }
.hd-facts-grid dd { overflow-wrap: anywhere; }
.book-summary { max-width: 70ch; line-height: 1.6; }
@media(max-width: 700px) {
  .content-wrap { padding: 40px 22px; }
  main.content-wrap { padding-top: 112px; }
  .content-grid { grid-template-columns: 1fr; }
  .content-card { padding: 22px; }
  .content-card img { height: 200px; }
  .content-wrap p, .content-wrap li, .content-wrap dd { font-size: 16px; }
  [data-enquiry-form] input, [data-enquiry-form] select, [data-enquiry-form] textarea { font-size: 16px; }
  .property-search__tabs { flex-wrap: wrap; }
  .proof { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof__item { min-width: 0; padding-left: 18px; padding-right: 18px; }
  .proof__label { max-width: 100%; overflow-wrap: anywhere; }
}

/* Live figures that are hidden (failed read or zero) close the gap in the proof strip. */
.proof:has(> .proof__item[hidden]) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .proof:has(> .proof__item[hidden]) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .proof:has(> .proof__item[hidden]) > .proof__item:last-child { grid-column: 1 / -1; }
}
.listing__price-note, .prop-card__note { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; opacity: .72; }
.listing__wa--second { margin-top: 0; }

/* Question forms shared by Forward Holidays and brokerage pages:
   "holiday-enquiry" (guests) and "owner-enquiry" (management). */
.hq {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(36px, 6vw, 96px);
  padding: clamp(80px, 12vh, 140px) var(--gutter);
  border-top: 1px solid var(--ink-12);
}
.hq__title { font-size: clamp(30px, 3.6vw, 48px); margin-bottom: 22px; }
.hq__title em { color: var(--rust); font-style: normal; }
.hq__intro p:not(.kicker) { color: var(--ink-70); max-width: 30em; }
.hq__form { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.hq__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.hq__field { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.hq__field label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-45);
}
.hq__field input,
.hq__field textarea {
  width: 100%;
  background: none;
  border: none;
  border-bottom: 1px solid var(--ink-25);
  color: var(--ink);
  font-size: 15.5px;
  font-weight: 300;
  padding: 8px 2px 12px;
  outline: none;
  resize: vertical;
  transition: border-color 0.4s;
}
.hq__field input::placeholder { color: var(--ink-45); }
.hq__field input:focus,
.hq__field textarea:focus { border-color: var(--rust); }
.hq__form .btn { align-self: flex-start; }
.hq .enquiry-privacy { color: var(--ink-45); }
@media (max-width: 820px) {
  .hq { grid-template-columns: 1fr; }
  .hq__row { grid-template-columns: 1fr; }
  .hq__form .btn { align-self: stretch; text-align: center; }
}
.hq--owner { background: rgba(13, 24, 36, 0.035); }

/* Listing agent contact: phone, WhatsApp and email icons */
.listing__contact { display: flex; gap: 12px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--ink-12); }
.listing__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border: 1px solid var(--ink-25); color: var(--ink); transition: color .3s, border-color .3s; }
.listing__icon:hover, .listing__icon:focus-visible { color: var(--rust); border-color: var(--rust); }
.listing__icon svg { width: 20px; height: 20px; }
.listing__contact-line { margin-top: 12px; font-size: 14px; line-height: 1.5; color: var(--ink-70); overflow-wrap: anywhere; }

/* Listing description lists: same type as the description paragraphs, with the
   small rust square used for features and amenities. */
.listing__list { list-style: none; max-width: 39em; margin: 0 0 24px; padding: 0; }
.listing__list li { display: grid; grid-template-columns: 16px minmax(0, 1fr); column-gap: 8px; color: var(--ink-70); font-size: var(--type-body); line-height: 1.7; padding: 2px 0; }
.listing__list li::before { content: ''; width: 4px; height: 4px; margin: .75em 0 0 4px; background: var(--rust); }
.listing__desc p:has(+ .listing__list) { margin-bottom: 10px; }
