/* =========================================================
   OCEAN AREA LIVING — interior pages brand layer
   Brand Identity v1.0, matching the approved homepage (refined
   look: 600-weight Plus Jakarta Sans headings, DM Sans body,
   hairlines over boxes, rounded photos, Ocean Blue accents).

   Loaded after each page's own stylesheet and after oal-site.css.
   Visual only: no copy, order, links or behaviour change.
   Covers: Sell, Buy, About, Contact, Properties, Waterfront,
   Areas, area guides, New Construction, Privacy, Terms, 404.
   ========================================================= */

/* ---------- Shared measures ---------- */
:root {
  --oal-body-ink: #3A4650;            /* calm body colour (as homepage) */
  --oal-title: clamp(40px, 5.2vw, 72px);
  --oal-h2: clamp(32px, 3.6vw, 50px);
}

/* Wraps: 1240px content, 40px / 20px sides */
.s-hero-copy, .s-strategy-inner, .s-present-inner, .s-prep-inner,
.b-hero-inner, .b-two, .b-look-inner,
.a-intro-inner, .a-profile-inner,
.c-wrap, .pr-wrap, .w-wrap, .ar-wrap, .nc-wrap,
.lg-head, .lg-body {
  max-width: 1320px; padding-left: 40px; padding-right: 40px;
}
.pr-private-cont { max-width: 1320px; }

/* ---------- Page titles: more presence ---------- */
.s-hero-h, .b-hero-h, .a-h1, .c-h1, .pr-h1, .w-hero-h,
.ar-hero-h, .ai-h1, .nc-h1, .lg-h1 {
  font-family: var(--oal-display); font-weight: 600; font-style: normal;
  font-size: var(--oal-title);
  line-height: 1.04; letter-spacing: -.035em;
  color: var(--oal-deep);
  text-wrap: balance;
}
.s-hero-h i, .b-hero-h i, .a-h1 i, .c-h1 i, .pr-h1 i, .w-hero-h i,
.ar-hero-h i, .ai-h1 i, .nc-h1 i, .lg-h1 i {
  font-family: var(--oal-display); font-style: normal; font-weight: 400;
  color: inherit;
}
.a-h1 { max-width: 16ch; }
.pr-h1 { max-width: 12ch; }
.nc-h1 { font-size: clamp(34px, 4vw, 56px); max-width: 24ch; line-height: 1.08; }
.lg-h1 { font-size: clamp(38px, 4.4vw, 60px); }

/* ---------- Section headings ---------- */
.s-h, .nc-h2, .pr-coll-h, .pr-private-h, .pr-network-h, .pr-dialog-h,
.ai-cities-h, .a-name, .c-name, .pr-card-name, .pr-title, .pr-hero-h2 {
  font-family: var(--oal-display); font-weight: 600; font-style: normal;
  color: var(--oal-deep); letter-spacing: -.028em; text-wrap: balance;
}
.s-h i, .nc-h2 i, .pr-coll-h i, .pr-private-h i, .pr-network-h i,
.pr-dialog-h i, .a-name i, .c-name i, .pr-card-name i {
  font-style: normal; font-weight: 400;
}
.s-h { font-size: var(--oal-h2); line-height: 1.08; max-width: 18ch; }
.nc-h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.12; }

/* ---------- Eyebrows: brand label with a fine rule ---------- */
.s-hero-folio, .b-hero-folio, .a-folio, .a-eyebrow, .pr-label,
.pr-hero-kicker, .w-label, .ar-label, .nc-label, .lg-folio,
.pr-no-l, .pr-ref, .pr-price-label {
  font: 600 11.5px/1.3 var(--oal-display);
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--oal-ocean-ink); opacity: 1;
}
.a-folio, .pr-hero .pr-label, .w-hero .w-label, .ar-hero .ar-label,
.ai-open .ar-label, .nc-label, .lg-folio, .c-open .a-folio {
  display: inline-flex; align-items: center; gap: 14px;
}
.a-folio::before, .pr-hero .pr-label::before, .w-hero .w-label::before,
.ar-hero .ar-label::before, .ai-open .ar-label::before,
.nc-label::before, .lg-folio::before {
  content: ""; width: 28px; height: 1px; background: currentColor; flex: none;
}
.a-eyebrow::after, .a-talk .a-eyebrow::before { opacity: .6; width: 28px; }

/* ---------- Body copy: comfortable measure ---------- */
.s-p, .s-guide-p, .ar-hero-intro, .ai-intro, .ai-card p, .ar-card p,
.ar-life-item p, .w-theme p, .w-acc-panel p, .nc-p, .nc-intro p,
.nc-list li, .nc-faq-a p, .nc-card-d, .pr-desc, .lg-content p,
.lg-content li, .c-email {
  font-family: var(--oal-body); font-style: normal;
  font-size: 17px; line-height: 1.75;
  color: var(--oal-body-ink);
}
.s-p { max-width: 60ch; }
.nc-p, .nc-intro p, .nc-faq-a p { max-width: 66ch; }
.lg-content { max-width: 70ch; }
.lg-content p, .lg-content li { font-size: 16.5px; }

/* ---------- Lede / "voice" lines: brand sans, no faux italic ---------- */
.s-guide-lead, .s-prep-p, .s-contact-p, .b-hero-lede, .b-pull, .b-pull p,
.b-look-voice, .b-guide-close, .a-intro-copy .s-p:first-child, .a-role,
.c-lede, .c-service p, .pr-sub, .pr-place, .pr-network-lead,
.pr-private-cont, .pr-dialog-p, .w-hero-body, .w-intro-lede, .w-close-p,
.ar-voice, .ar-hero-sub, .ar-glance-p, .ar-water-sub, .ar-close-p,
.ai-sub, .lg-effective, .lg-contact .lg-org, .a-creds dd.voice,
.c-thanks-h, .pr-price.is-request {
  font-family: var(--oal-body); font-style: normal; font-weight: 400;
  letter-spacing: 0; text-transform: none;
}
.s-guide-lead { font: 600 20px/1.35 var(--oal-display); color: var(--oal-deep); }
.s-contact-p, .w-close-p, .ar-close-p { font-size: 19px; line-height: 1.6; }
.s-contact-p { color: var(--oal-slate); }
.b-hero-lede { font-size: 20px; line-height: 1.55; }
.b-pull { font: 500 21px/1.5 var(--oal-display); color: var(--oal-deep); border-color: var(--oal-line); }
.b-pull p { font: inherit; color: inherit; }
.b-pull p.b-pull-a { font: 400 17px/1.65 var(--oal-body); color: var(--oal-body-ink); }
.b-look-voice, .b-guide-close { font: 500 19px/1.55 var(--oal-display); color: var(--oal-deep); }
.b-guide-close { border-top-color: var(--oal-line); }
.a-intro-copy .s-p:first-child { font: 500 20px/1.55 var(--oal-display); color: var(--oal-deep); }
.a-role { font: 500 18px/1.5 var(--oal-display); color: var(--oal-slate); opacity: 1; border-bottom-color: var(--oal-line); }
.c-lede { font: 400 19px/1.6 var(--oal-body); color: var(--oal-slate); }
.c-service p { font-size: 16px; color: var(--oal-slate); opacity: 1; border-top-color: var(--oal-line); }
.pr-sub { font: 500 20px/1.5 var(--oal-display); color: var(--oal-slate); }
.w-hero-body { font: 400 19px/1.6 var(--oal-body); color: var(--oal-slate); border-top-color: var(--oal-line); }
.w-intro-lede { font: 500 22px/1.5 var(--oal-display); color: var(--oal-deep); }
.ar-hero-sub, .ai-sub, .ar-water-sub { font: 500 20px/1.5 var(--oal-display); color: var(--oal-slate); }
.ar-glance-p { font: 400 20px/1.6 var(--oal-body); color: var(--oal-ink); }
.lg-effective { font-size: 17px; color: var(--oal-slate); opacity: 1; }
.lg-contact .lg-org { font: 600 18px/1.4 var(--oal-display); color: var(--oal-deep); }
.c-thanks-h { font: 600 26px/1.3 var(--oal-display); color: var(--oal-deep); }

/* Rules */
.s-rule { width: 100%; max-width: 46ch; background: var(--oal-line); }
.w-intro-mark { background: var(--oal-ocean); width: 2px; }

/* ---------- Photos: rounded, no stripes ---------- */
.s-frame, .pr-ph, .w-hero-media, .ar-hero-media, .nc-card-media {
  border: 0; border-radius: var(--oal-r-md);
  background: var(--oal-cloud);
}
.s-frame-slug { display: none; }
.w-hero-media, .ar-hero-media { border-radius: 0; }

/* =========================================================
   BUTTONS
   ========================================================= */
.s-btn-navy, .s-btn-paper, .ar-btn-ghost, .pr-call-btn,
.btn-inverse-thin, .s-guide-btn, .b-guide-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 24px;
  border-radius: var(--oal-r-sm);
  border: 1.5px solid transparent;
  font: 600 15px/1.2 var(--oal-display);
  letter-spacing: 0; text-transform: none;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.s-btn-navy { background: var(--oal-ocean); color: #fff; }
.s-btn-navy:hover { background: var(--oal-ocean-ink); gap: 10px; opacity: 1; }
.s-btn-navy:active { background: var(--oal-ocean-ink); }
.s-btn-paper { background: #fff; color: var(--oal-deep); }
.s-btn-paper:hover { background: var(--oal-mist); gap: 10px; }
.ar-btn-ghost, .pr-call-btn { background: #fff; color: var(--oal-deep); border-color: var(--oal-deep); }
.ar-btn-ghost:hover, .pr-call-btn:hover { background: var(--oal-mist); color: var(--oal-deep); }
.btn-inverse-thin { color: #fff; border-color: rgba(255, 255, 255, .7); background: transparent; }
.btn-inverse-thin:hover { background: #fff; color: var(--oal-deep); }

/* Guide downloads: Deep Ocean button (label text unchanged) */
.s-guide-btn, .b-guide-btn {
  background: var(--oal-deep); color: #fff;
  padding: 14px 22px; font-size: 13.5px; letter-spacing: .04em;
}
.s-guide-btn:hover, .b-guide-btn:hover { background: var(--oal-deep-2); gap: 10px; }

.s-btn-navy:focus-visible, .s-btn-paper:focus-visible, .ar-btn-ghost:focus-visible,
.pr-call-btn:focus-visible, .s-guide-btn:focus-visible, .b-guide-btn:focus-visible,
.btn-inverse-thin:focus-visible {
  outline: 2px solid var(--oal-ocean); outline-offset: 3px;
}

/* Text actions (.oal-btn-text) */
.c-act, .pr-act, .ai-link, .lg-back a {
  display: inline-flex; align-items: center; gap: 10px;
  font: 600 15px/1.3 var(--oal-display);
  letter-spacing: 0; text-transform: none;
  color: var(--oal-ocean-ink); opacity: 1;
  border-bottom: 1.5px solid currentColor; padding: 4px 0 3px;
}
.c-act:hover, .pr-act:hover, .ai-link:hover, .lg-back a:hover { color: var(--oal-deep); border-bottom-color: currentColor; }
.pr-act .pr-num { letter-spacing: 0; font-variant-numeric: tabular-nums; }
.pr-network .pr-act { color: #fff; border-bottom-color: rgba(255, 255, 255, .6); }
.pr-network .pr-act:hover { color: var(--oal-aqua); }

/* In-text links: Ocean Ink */
.nc-p a, .nc-intro a, .ar-link, .lg-content a, .pr-dialog-alt a, .pr-dialog .c-status a {
  color: var(--oal-ocean-ink);
  text-decoration: underline; text-decoration-thickness: 1px;
  text-underline-offset: 3px; text-decoration-color: currentColor;
  border-bottom: 0;
}
.nc-p a:hover, .nc-intro a:hover, .ar-link:hover, .lg-content a:hover { color: var(--oal-deep); }

/* =========================================================
   SELL + BUY — photo heroes start below the white header
   ========================================================= */
.s-hero, .b-hero {
  margin-top: var(--oal-nav-h);
  padding-top: 64px;
  min-height: clamp(560px, calc(92vh - var(--oal-nav-h)), 980px);
  background: var(--oal-deep);
}
.s-hero-scrim {
  background:
    linear-gradient(90deg, rgba(0, 24, 44, .55) 0%, rgba(0, 24, 44, .35) 40%, rgba(0, 24, 44, 0) 70%),
    linear-gradient(180deg, rgba(0, 24, 44, 0) 35%, rgba(0, 24, 44, .35) 65%, rgba(0, 24, 44, .70) 100%);
}
.b-hero-scrim {
  background:
    linear-gradient(90deg, rgba(0, 24, 44, .62) 0%, rgba(0, 24, 44, .40) 40%, rgba(0, 24, 44, 0) 68%),
    linear-gradient(180deg, rgba(0, 24, 44, 0) 55%, rgba(0, 24, 44, .30) 100%);
}
.s-hero-folio, .b-hero-folio { color: #fff; opacity: .92; text-shadow: 0 1px 10px rgba(0, 24, 44, .5); margin-bottom: 24px; }
.s-hero-h, .b-hero-h {
  color: #fff; font-size: clamp(40px, 5vw, 72px);
  text-shadow: 0 2px 28px rgba(0, 24, 44, .45);
}
.s-hero-h { max-width: 18ch; }
.b-hero-h { max-width: 14ch; }
.s-hero-body, .b-hero .s-p {
  font-family: var(--oal-body); font-size: 17px; line-height: 1.75;
  color: #F2F5F7; max-width: 52ch;
  text-shadow: 0 1px 14px rgba(0, 24, 44, .6);
}
.b-hero-lede { color: #F3EBD8; text-shadow: 0 1px 14px rgba(0, 24, 44, .6); }

.s-strategy, .s-contact, .b-priorities, .b-guide { padding: 128px 0; }
.s-present, .b-look { padding: 128px 0; border-top: 0; }
.s-guide { border-top-color: var(--oal-line); }
.s-strategy-inner, .s-present-inner, .b-two, .b-look-inner { gap: 88px; }

/* The one Deep Ocean band */
.s-prep { background: var(--oal-deep); padding: 112px 0; }
.s-prep-p { font: 500 clamp(22px, 2vw, 28px)/1.55 var(--oal-display); color: #fff; max-width: 48ch; letter-spacing: -.01em; }

.s-contact .s-h { margin: 0 auto; }
.b-guide + .s-contact { border-top-color: var(--oal-line); }
.b-contact-media { border-radius: var(--oal-r-md); }

/* =========================================================
   ABOUT
   ========================================================= */
.a-intro { padding: calc(var(--oal-nav-h) + 104px) 0 120px; }
.a-intro-grid { margin-top: 72px; gap: 80px; }
.a-profile { padding: 128px 0; }
.a-profile-f { border-top: 0; }
.a-profile-inner { gap: 88px; }
.a-portrait { top: calc(var(--oal-nav-h) + 32px); }
.a-name { font-size: clamp(40px, 4.4vw, 60px); line-height: 1.04; margin: 22px 0 14px; }
.a-profile .s-p { max-width: 60ch; }
#heather, #francesca { scroll-margin-top: calc(var(--oal-nav-h) + 16px); }

/* Credentials: label + values, readable */
.a-creds { border-top: 1px solid var(--oal-deep); }
.a-creds-row { border-bottom-color: var(--oal-line); }
.a-creds dt { font: 600 11.5px/1.4 var(--oal-display); letter-spacing: .2em; color: var(--oal-ocean-ink); opacity: 1; }
.a-creds dd { font: 600 15px/1.8 var(--oal-display); letter-spacing: .06em; color: var(--oal-deep); }
.a-creds dd.voice { font: 500 17px/1.5 var(--oal-display); color: var(--oal-deep); }
/* Verified external profiles — quiet text links inside the credentials list */
.a-creds dd.a-links { font: 500 15px/1.6 var(--oal-body, inherit); letter-spacing: 0; text-transform: none; }
.a-creds dd.a-links a { color: var(--oal-ocean-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.a-creds dd.a-links a:hover, .a-creds dd.a-links a:focus-visible { color: var(--oal-deep); }
.a-talk { border-top-color: var(--oal-line); }

/* =========================================================
   CONTACT
   ========================================================= */
.c-open { padding: calc(var(--oal-nav-h) + 96px) 0 112px; }
.c-person { border-top: 1px solid var(--oal-deep); }
.c-name { font-size: clamp(28px, 2.4vw, 36px); }
.c-line dt { font: 600 11.5px/1.3 var(--oal-display); letter-spacing: .2em; color: var(--oal-ocean-ink); opacity: 1; }
.c-phone {
  font: 600 clamp(22px, 1.9vw, 27px)/1.2 var(--oal-display);
  letter-spacing: -.01em; color: var(--oal-deep);
  font-variant-numeric: lining-nums tabular-nums;
}
.c-email { font-size: 16px; color: var(--oal-ocean-ink); }
.c-inquiry { padding: 120px 0 128px; scroll-margin-top: var(--oal-nav-h); }
.c-inquiry .s-h { max-width: 14ch; }

/* Inquiry form: brand fields */
.c-label {
  font: 600 13px/1.3 var(--oal-display);
  letter-spacing: 0; text-transform: none;
  color: var(--oal-deep); margin-bottom: 6px;
}
legend.c-label { margin-bottom: 10px; }
.c-hint { font: 400 13px/1.3 var(--oal-body); letter-spacing: 0; color: var(--oal-slate); }
.c-field input, .c-field textarea {
  min-height: 48px; padding: 0 14px;
  background: #fff;
  border: 1.5px solid var(--oal-line); border-radius: var(--oal-r-sm);
  font: 400 16px/1.4 var(--oal-body); color: var(--oal-ink);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.c-field textarea { padding: 12px 14px; min-height: 120px; }
.c-field input:focus, .c-field textarea:focus {
  border-color: var(--oal-ocean); box-shadow: 0 0 0 3px rgba(0, 160, 210, .18);
}
.c-method span {
  min-height: 44px; border-radius: var(--oal-r-sm);
  border: 1.5px solid var(--oal-line);
  font: 600 14px/1 var(--oal-display); letter-spacing: 0; text-transform: none;
  color: var(--oal-deep);
}
.c-method input:hover + span { border-color: var(--oal-deep); }
.c-method input:checked + span { background: var(--oal-deep); border-color: var(--oal-deep); color: #fff; }
.c-method input:focus-visible + span { outline: 2px solid var(--oal-ocean); outline-offset: 3px; }
.c-field.is-invalid input, .c-field.is-invalid textarea { border-color: #B3261E; }
.c-err { color: #B3261E; font-size: 13.5px; }
.c-status { font-size: 15px; color: var(--oal-ink); }

/* =========================================================
   PROPERTIES — listings readability
   ========================================================= */
.pr-hero { padding: calc(var(--oal-nav-h) + 96px) 0 96px; }
.pr-hero-copy { border-top-color: var(--oal-line); }
.pr-hero-beyond { border-top-color: var(--oal-line); }
.pr-hero-h2 { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.18; color: var(--oal-ocean-ink); }
.pr-em {
  font: 600 1em/1.2 var(--oal-display); font-style: normal;
  color: var(--oal-deep); border-bottom: 2px solid var(--oal-ocean);
}

.pr-collection { padding-top: 104px; }
.pr-coll-h { font-size: var(--oal-h2); line-height: 1.08; }
.pr-entry + .pr-entry { border-top-color: var(--oal-line); }
.pr-photos { gap: 16px; }

/* Property number */
.pr-no { border-bottom-color: var(--oal-line); }
.pr-no-n {
  font: 500 clamp(52px, 4.6vw, 68px)/.9 var(--oal-display);
  letter-spacing: -.04em; color: var(--oal-deep);
  font-variant-numeric: lining-nums tabular-nums;
}

/* Status: brand badge */
.pr-status {
  height: 28px; padding: 0 10px;
  border: 0; border-radius: var(--oal-r-sm);
  background: var(--oal-mist); color: var(--oal-deep);
  font: 600 12px/1 var(--oal-display); letter-spacing: .06em; text-transform: uppercase;
}
.pr-pending {
  padding: 0 14px; height: 34px;
  border-radius: var(--oal-r-sm);
  background: #fff; color: var(--oal-deep);
  font: 600 13px/1 var(--oal-display); letter-spacing: .12em;
}

/* Address, place, water */
.pr-title {
  font-size: clamp(28px, 2.5vw, 38px); line-height: 1.12;
  letter-spacing: -.025em; font-variant-numeric: lining-nums;
}
.pr-place { font-size: 17px; line-height: 1.5; color: var(--oal-slate); margin-top: 10px; }
.pr-water {
  font: 600 12px/1.6 var(--oal-display); letter-spacing: .14em;
  color: var(--oal-ocean-ink);
}

/* Specs: number + short label */
.pr-specs { border-bottom-color: var(--oal-line); }
.pr-specs div { border-right-color: var(--oal-line); }
.pr-specs dt {
  font: 400 14px/1.3 var(--oal-body); letter-spacing: 0; text-transform: none;
  color: var(--oal-slate); opacity: 1; margin-bottom: 6px;
}
.pr-specs dd {
  font: 600 22px/1.15 var(--oal-display); letter-spacing: -.01em;
  color: var(--oal-deep); font-variant-numeric: lining-nums tabular-nums;
}
.pr-desc { max-width: 62ch; }

/* Price */
.pr-foot { border-top-color: var(--oal-line); }
.pr-price {
  font: 700 clamp(26px, 2.4vw, 34px)/1.1 var(--oal-display);
  letter-spacing: -.02em; color: var(--oal-deep);
  font-variant-numeric: lining-nums tabular-nums;
}
.pr-price.is-request { font-size: 20px; color: var(--oal-deep); }
.pr-price-label { color: var(--oal-aqua); }
.pr-call-num {
  font: 600 14px/1.3 var(--oal-display); letter-spacing: 0; text-transform: none;
  color: var(--oal-deep); opacity: 1; font-variant-numeric: tabular-nums;
}
.pr-call-num span { letter-spacing: 0; }

/* Deep Ocean bands */
.pr-feature, .pr-network { background: var(--oal-deep); }
.pr-feature .pr-label, .pr-network .pr-label, .pr-feature .pr-ref { color: var(--oal-aqua); }
.pr-feature .pr-title { color: #fff; font-size: clamp(34px, 3.4vw, 52px); }
.pr-feature .pr-place { color: var(--oal-aqua); opacity: 1; }
.pr-feature .pr-water { color: var(--oal-turquoise); }
.pr-feature .pr-specs { border-bottom-color: rgba(179, 227, 242, .28); }
.pr-feature .pr-specs div { border-right-color: rgba(179, 227, 242, .28); }
.pr-feature .pr-specs dt { color: var(--oal-aqua); opacity: 1; }
.pr-feature .pr-specs dd, .pr-feature .pr-price { color: #fff; }
.pr-feature .pr-desc { color: rgba(255, 255, 255, .88); }
.pr-feature .pr-foot { border-top-color: rgba(179, 227, 242, .28); }
.pr-feature .pr-call-btn { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.pr-feature .pr-call-btn:hover { background: #fff; color: var(--oal-deep); border-color: #fff; }
.pr-feature .pr-call-num { color: #fff; }
.pr-network-h { color: #fff; font-size: clamp(40px, 4.6vw, 68px); line-height: 1.04; }
.pr-network-lead { font: 500 22px/1.5 var(--oal-display); color: #fff; border-bottom-color: rgba(179, 227, 242, .28); }
.pr-network-sub { font: 600 13px/1.6 var(--oal-display); letter-spacing: .18em; color: var(--oal-turquoise); }
.pr-network .s-p { color: rgba(255, 255, 255, .88); }

.pr-private { border-top: 0; border-bottom: 0; }
.pr-private-h { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.08; }
.pr-private-cont { font-size: 16px; color: var(--oal-slate); opacity: 1; border-top-color: var(--oal-line); }
.pr-card { border-top: 1px solid var(--oal-deep); }
.pr-card-name { font-size: clamp(26px, 2.4vw, 34px); }
.pr-card-actions .btn-ghost:hover { background: var(--oal-mist); color: var(--oal-deep); }

/* Inquiry dialog */
.pr-dialog { border: 0; border-radius: var(--oal-r-md); box-shadow: var(--oal-shadow-2); }
.pr-dialog::backdrop { background: rgba(0, 30, 54, .62); }
.pr-dialog-close::before, .pr-dialog-close::after { background: var(--oal-deep); height: 1.5px; }
.pr-dialog-close:hover { background: var(--oal-mist); }
.pr-dialog-p { font-size: 17px; line-height: 1.6; color: var(--oal-slate); }
.pr-dialog .c-field input[readonly] { font: 600 17px/1.4 var(--oal-display); color: var(--oal-deep); background: var(--oal-cloud); }

/* =========================================================
   WATERFRONT
   ========================================================= */
.w-hero { padding-top: calc(var(--oal-nav-h) + 96px); }
.w-hero-h { max-width: 15ch; }
.w-intro { padding: 128px 0 136px; }
.w-intro-note { font-size: 14px; color: var(--oal-slate); opacity: 1; }
.w-persp { padding: 128px 0; border-top: 0; }
.w-persp-head { border-bottom-color: var(--oal-line); }
.w-theme { border-left-color: var(--oal-line); }
.w-theme-num {
  font: 500 40px/1 var(--oal-display); font-style: normal;
  letter-spacing: -.04em; color: var(--oal-ocean);
}
.w-theme h3 { font: 600 clamp(21px, 1.8vw, 25px)/1.25 var(--oal-display); letter-spacing: -.015em; }
.w-faq-inner { border-top-color: var(--oal-line); }
.w-faq-aside { top: calc(var(--oal-nav-h) + 40px); }
.w-acc { border-top-color: var(--oal-deep); }
.w-acc-item { border-bottom-color: var(--oal-line); }
.w-acc-btn { font: 600 clamp(18px, 1.5vw, 21px)/1.35 var(--oal-display); letter-spacing: -.01em; color: var(--oal-deep); }
.w-acc-btn:hover { color: var(--oal-ocean-ink); }
.w-acc-btn[aria-expanded="true"] .w-acc-q { font-style: normal; color: var(--oal-ocean-ink); }
.w-acc-icon { border: 1.5px solid var(--oal-line); }
.w-acc-icon::before, .w-acc-icon::after { background: var(--oal-deep); height: 1.5px; }
.w-acc-btn[aria-expanded="true"] .w-acc-icon { background: var(--oal-ocean); border-color: var(--oal-ocean); }
.w-acc-btn[aria-expanded="true"] .w-acc-icon::before { background: #fff; }
.w-acc-btn:focus-visible { outline: 2px solid var(--oal-ocean); }
.w-close, .ar-close { background: var(--oal-deep); }
.w-close .s-h, .ar-close .s-h { color: #fff; }
.w-close-p, .ar-close-p { color: var(--oal-aqua); }

/* =========================================================
   AREAS + AREA GUIDES
   ========================================================= */
.ar-hero { padding-top: calc(var(--oal-nav-h) + 56px); }
.ai-open { padding-top: calc(var(--oal-nav-h) + 56px); }
.ar-crumbs ol { font: 400 14px/1.4 var(--oal-body); color: var(--oal-slate); }
.ar-crumbs a { color: var(--oal-ocean-ink); opacity: 1; }
.ar-crumbs [aria-current="page"] { color: var(--oal-deep); }
.ar-hero-intro, .ai-intro { border-top-color: var(--oal-line); }
.ai-cities-h { border-top-color: var(--oal-line); font-size: clamp(28px, 2.8vw, 40px); }
.ai-card h3, .ar-card h3, .ar-life-item h3 {
  font: 600 clamp(21px, 1.9vw, 26px)/1.22 var(--oal-display); letter-spacing: -.015em; color: var(--oal-deep);
}
.ar-glance, .ar-water, .ai-cities { padding-bottom: 120px; }
.ar-hoods, .ar-life, .ai-close { border-top: 0; }
.ai-close .s-h { font-size: clamp(30px, 3.2vw, 46px); }
.ar-call { font-size: 15px; color: var(--oal-aqua); }
.ar-call-l { font: 600 11.5px/1.3 var(--oal-display); letter-spacing: .2em; color: var(--oal-turquoise); }
.ar-call a { color: #fff; border-bottom-color: rgba(255, 255, 255, .5); }

/* =========================================================
   NEW CONSTRUCTION
   ========================================================= */
.nc-hero { padding: calc(var(--oal-nav-h) + 88px) 0 72px; }
.nc-intro p:first-child { font-size: 18.5px; color: var(--oal-ink); }
.nc-p strong, .nc-intro strong, .nc-list strong { font-weight: 600; color: var(--oal-deep); }
.nc-sec { padding: 112px 0; }
.nc-cards { gap: 64px 48px; }
.nc-card-media { margin-bottom: 24px; }
.nc-card-h { font: 600 clamp(22px, 2vw, 28px)/1.2 var(--oal-display); letter-spacing: -.02em; color: var(--oal-deep); }
.nc-card-meta {
  font: 600 14px/1.5 var(--oal-display); letter-spacing: 0; text-transform: none;
  color: var(--oal-ocean-ink); opacity: 1;
  font-variant-numeric: lining-nums tabular-nums;
}

/* Comparison table */
.nc-table-wrap { border-radius: var(--oal-r-md); border: 1px solid var(--oal-line); background: #fff; }
.nc-table { font: 400 15px/1.5 var(--oal-body); color: var(--oal-ink); font-variant-numeric: lining-nums tabular-nums; }
.nc-table th, .nc-table td { border-bottom-color: var(--oal-line); padding: 16px 18px; }
.nc-table thead th {
  font: 600 13.5px/1.3 var(--oal-display); letter-spacing: .02em; text-transform: none;
  background: var(--oal-deep); color: #fff;
}
.nc-table tbody th { font: 600 14px/1.4 var(--oal-display); color: var(--oal-deep); background: var(--oal-cloud); }

/* Comparison cards (phones) */
.nc-cc { border: 1px solid var(--oal-line); border-radius: var(--oal-r-md); overflow: hidden; }
.nc-cc-h { font: 600 20px/1.25 var(--oal-display); letter-spacing: -.01em; background: var(--oal-deep); color: #fff; }
.nc-cc dl > div { border-bottom-color: var(--oal-line); }
.nc-cc dt { font: 400 14px/1.4 var(--oal-body); letter-spacing: 0; text-transform: none; color: var(--oal-slate); opacity: 1; }
.nc-cc dd { font: 600 15.5px/1.45 var(--oal-display); color: var(--oal-deep); font-variant-numeric: lining-nums tabular-nums; }

/* List + FAQ */
.nc-list li { border-top-color: var(--oal-line); }
.nc-list li:last-child { border-bottom-color: var(--oal-line); }
.nc-list li::before { width: 6px; height: 6px; border-radius: 50%; background: var(--oal-ocean); top: 31px; }
.nc-faq { border-top-color: var(--oal-deep); }
.nc-faq details { border-bottom-color: var(--oal-line); }
.nc-faq summary h3 { font: 600 clamp(17px, 1.5vw, 20px)/1.4 var(--oal-display); letter-spacing: -.01em; color: var(--oal-deep); }
.nc-faq summary::after { color: var(--oal-ocean-ink); font-weight: 400; }
.nc-faq summary:focus-visible { outline: 2px solid var(--oal-ocean); }

/* Closing band */
.nc-close { background: var(--oal-deep); }
.nc-close .nc-h2 { color: #fff; }
.nc-close .nc-p { color: rgba(255, 255, 255, .88); }
.nc-close .nc-p a { color: #fff; text-decoration-color: rgba(255, 255, 255, .6); }
.nc-close .nc-p a:hover { color: var(--oal-aqua); }
.nc-disclaimer { font: 400 13.5px/1.7 var(--oal-body); color: var(--oal-aqua); border-top-color: rgba(179, 227, 242, .28); }

/* =========================================================
   LEGAL + 404
   ========================================================= */
.lg-head { padding-top: calc(var(--oal-nav-h) + 88px); }
.lg-rule { background: var(--oal-line); }
.lg-content h2 { font: 600 24px/1.3 var(--oal-display); letter-spacing: -.02em; color: var(--oal-deep); }
.lg-content li::before { width: 6px; height: 6px; border-radius: 50%; background: var(--oal-ocean); top: 12px; left: -18px; }
.lg-content strong { color: var(--oal-deep); }
.lg-contact { border-top-color: var(--oal-line); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1100px) {
  .s-strategy-inner, .s-present-inner, .b-two, .b-look-inner,
  .a-intro-grid, .a-profile-inner { gap: 56px; }
}

@media (max-width: 860px) {
  .s-hero-copy, .s-strategy-inner, .s-present-inner, .s-prep-inner,
  .b-hero-inner, .b-two, .b-look-inner,
  .a-intro-inner, .a-profile-inner,
  .c-wrap, .pr-wrap, .w-wrap, .ar-wrap, .nc-wrap,
  .lg-head, .lg-body { padding-left: 20px; padding-right: 20px; }
  .s-contact-inner, .w-intro-inner, .w-close-inner, .ar-close-inner { padding-left: 20px; padding-right: 20px; }

  :root { --oal-title: clamp(36px, 10vw, 48px); --oal-h2: 32px; }
  .s-h { font-size: 32px; }
  .nc-h1 { font-size: clamp(30px, 8vw, 38px); }
  .lg-h1 { font-size: clamp(34px, 9vw, 42px); }

  .s-p, .s-guide-p, .ar-hero-intro, .ai-intro, .ai-card p, .ar-card p,
  .ar-life-item p, .w-theme p, .w-acc-panel p, .nc-p, .nc-intro p,
  .nc-list li, .nc-faq-a p, .nc-card-d, .pr-desc, .lg-content p, .lg-content li { font-size: 16px; }

  /* Sell / Buy heroes */
  .s-hero { padding-top: 48px; min-height: clamp(520px, calc(88vh - var(--oal-nav-h)), 820px); }
  .s-hero-h { font-size: clamp(34px, 9.4vw, 44px); }
  .s-hero-body { font-size: 16px; }
  .b-hero { padding-top: 0; min-height: 0; }
  .b-hero-scrim { background: none; }
  .b-hero-h { font-size: clamp(34px, 9.4vw, 44px); text-shadow: none; }
  .b-hero-lede, .b-hero .s-p { text-shadow: none; }

  .s-strategy, .s-present, .s-contact, .b-priorities, .b-look, .b-guide { padding: 80px 0; }
  .s-prep { padding: 80px 0; }
  .s-prep-p { font-size: 21px; }
  .s-contact-p, .w-close-p, .ar-close-p { font-size: 18px; }

  /* About */
  .a-intro { padding: calc(var(--oal-nav-h) + 56px) 0 72px; }
  .a-profile { padding: 80px 0; }
  .a-name { font-size: 38px; }
  .a-creds dd { font-size: 14.5px; letter-spacing: .04em; }

  /* Contact */
  .c-open { padding: calc(var(--oal-nav-h) + 56px) 0 72px; }
  .c-phone { font-size: 24px; }
  .c-inquiry { padding: 72px 0 80px; }

  /* Properties: 2 x 2 specs, large figures */
  .pr-hero { padding: calc(var(--oal-nav-h) + 56px) 0 64px; }
  .pr-title { font-size: 28px; }
  .pr-feature .pr-title { font-size: 34px; }
  .pr-specs { gap: 16px 0; }
  .pr-specs div:nth-child(odd) { padding-right: 16px; margin-right: 0; border-right: 1px solid var(--oal-line); }
  .pr-feature .pr-specs div:nth-child(odd) { border-right-color: rgba(179, 227, 242, .28); }
  .pr-specs div:nth-child(even) { padding-left: 16px; }
  .pr-specs dd { font-size: 21px; }
  .pr-specs dt { font-size: 14.5px; }
  .pr-price { font-size: 28px; }
  .pr-network-h { font-size: 42px; }
  .pr-network-lead { font-size: 20px; }

  /* Waterfront / Areas / NC / Legal */
  .w-hero, .ar-hero, .ai-open { padding-top: calc(var(--oal-nav-h) + 40px); }
  .w-intro, .w-persp { padding: 80px 0; }
  .nc-hero { padding: calc(var(--oal-nav-h) + 48px) 0 56px; }
  .nc-sec { padding: 72px 0; }
  .lg-head { padding-top: calc(var(--oal-nav-h) + 48px); }
}

@media (max-width: 560px) {
  .c-submit { min-height: 52px; }
  .c-method span { font-size: 14px; }
}
