/* THE PROPERTY PORTFOLIO / OPEN HOUSE!
   Mid-century property-sign graphics with architectural precision.
   Theme-only CSS. Shared Billboard structural and typography contracts preserved.
*/

body.billboard-theme-real-estate {
  background-color: #10364c;
  background-image:
    radial-gradient(circle at 50% -5%, rgb(255 202 74 / 28%), transparent 38%),
    repeating-linear-gradient(135deg, rgb(255 255 255 / 7%) 0 3px, transparent 3px 84px),
    repeating-linear-gradient(45deg, transparent 0 116px, rgb(242 182 70 / 19%) 117px 121px, transparent 122px 238px),
    linear-gradient(115deg, #092c41 0%, #15516a 52%, #0e3046 100%);
  background-attachment: fixed;
  background-size: auto, auto, auto, cover;
}

body.billboard-theme-real-estate .billboard-page {
  --billboard-surface: #fff1cf;
  --billboard-surface-strong: #fffdf2;
  --billboard-surface-soft: #ffe0a0;
  --billboard-text: #183b4a;
  --billboard-muted-text: #485b5c;
  --billboard-heading: #123d56;
  --billboard-link: #126474;
  --billboard-purple: #c83e30;
  --billboard-border: #d9583a;
  --billboard-shadow: 0 21px 40px rgb(3 24 35 / 33%);
  --billboard-flair-border: #d9583a;
  --billboard-flair-background: none;
  max-width: 1120px;
}

body.billboard-theme-real-estate .billboard-card {
  position: relative;
  margin-bottom: 34px;
  border: 5px solid #ffe8ac;
  border-radius: 8px;
  background-color: #fff1cf;
  box-shadow: 8px 10px 0 #092b3f, 0 20px 35px rgb(0 18 28 / 29%);
}

body.billboard-theme-real-estate .billboard-card::after {
  pointer-events: none;
  opacity: 0.65;
}

body.billboard-theme-real-estate .billboard-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(34px, 6vw, 70px);
  border: 8px solid #fff9e9;
  border-top: 20px solid #e84c37;
  border-bottom: 16px solid #e84c37;
  border-radius: 5px;
  background:
    radial-gradient(ellipse 66% 85% at 50% 48%, #fff9ea 0 63%, transparent 64%),
    repeating-linear-gradient(90deg, #f8cb56 0 43px, #f7e6b6 43px 86px),
    #fff3d7;
  box-shadow: inset 0 0 0 5px #194e61, inset 0 0 0 12px #fff8e3;
  text-align: center;
}

body.billboard-theme-real-estate .billboard-hero > * {
  position: relative;
  z-index: 2;
}

body.billboard-theme-real-estate .billboard-logo-frame {
  width: min(470px, 100%);
  min-height: 0;
  margin: 0 auto 18px;
  padding: clamp(10px, 2vw, 19px);
  border: 4px solid #17485a;
  border-radius: 5px;
  background: #fffdf2;
  box-shadow: 6px 7px 0 #f1b839;
}

body.billboard-theme-real-estate .billboard-logo {
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
}

body.billboard-theme-real-estate .billboard-kicker.billboard-managed-by {
  max-width: 720px;
  margin: 0 auto 18px;
  color: #16495a;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

body.billboard-theme-real-estate .billboard-hero h1 {
  max-width: 850px;
  margin: 0 auto;
  color: #12394e;
  font-size: clamp(2.5rem, 5.5vw, 4.8rem);
  letter-spacing: -0.05em;
  line-height: 0.99;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 3px 4px 0 #f5c24d, 6px 7px 0 rgb(208 65 44 / 45%);
}

body.billboard-theme-real-estate .billboard-category {
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  margin-top: 22px;
  padding: 10px 23px;
  border: 4px solid #17485a;
  border-radius: 4px;
  background: #f8bf42;
  color: #12394e;
  font-size: 0.95rem;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 5px 5px 0 #db5037;
}

body.billboard-theme-real-estate .billboard-summary {
  max-width: 750px;
  margin: 22px auto;
  font-size: clamp(1.06rem, 2vw, 1.27rem);
  line-height: 1.66;
  text-align: center;
}

body.billboard-theme-real-estate .billboard-actions {
  justify-content: center;
  gap: 12px;
}

body.billboard-theme-real-estate .billboard-button,
body.billboard-theme-real-estate .billboard-link {
  background: #fffaf0;
  color: #16465c !important;
  border: 3px solid #17485a;
  border-radius: 4px;
  box-shadow: 4px 5px 0 #f5be41;
}

body.billboard-theme-real-estate .billboard-button {
  background: #d94732;
  color: #fffdf4 !important;
  border: 3px solid #103d54;
  border-radius: 4px;
  box-shadow: 4px 5px 0 #103d54;
}

body.billboard-theme-real-estate .billboard-link {
  background: white;
  color: #2c6277 !important;
  border: 2px solid #2c6277;
  border-color: #dfd3bf;
}

body.billboard-theme-real-estate .billboard-button:hover,
body.billboard-theme-real-estate .billboard-button:focus-visible {
  filter: brightness(1.17);
}

body.billboard-theme-real-estate .billboard-link:hover,
body.billboard-theme-real-estate .billboard-link:focus-visible {
  background: #fff0cc;
}

body.billboard-theme-real-estate .billboard-section-label,
body.billboard-theme-real-estate .community-feedback-heading .billboard-section-label {
  font-weight: 900;
  letter-spacing: 0.16em;
  text-align: center;
  text-transform: uppercase;
}

body.billboard-theme-real-estate .billboard-details h2,
body.billboard-theme-real-estate .billboard-community h2,
body.billboard-theme-real-estate .community-feedback-heading h2 {
  text-align: center;
  letter-spacing: -0.035em;
  color: #163d53;
  text-shadow: 2px 2px 0 #f5c44b;
}

body.billboard-theme-real-estate .billboard-details {
  padding: clamp(25px, 4vw, 48px);
  border: 4px solid #f6d28b;
  border-top: 15px solid #dd4835;
  background:
    repeating-linear-gradient(90deg, transparent 0 52px, rgb(33 96 114 / 8%) 53px 55px),
    #fff1cf;
}

body.billboard-theme-real-estate .billboard-detail-grid {
  gap: 14px;
}

body.billboard-theme-real-estate .billboard-detail-item {
  padding: 20px;
  border: 2px solid #206176;
  border-left: 8px solid #db4932;
  border-bottom: 7px solid #f0bd43;
  border-radius: 4px;
  background: #fffdf4;
  box-shadow: 5px 5px 0 rgb(18 67 84 / 17%);
}

body.billboard-theme-real-estate .billboard-detail-item h3 {
  font-size: .81rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.billboard-theme-real-estate .billboard-page .billboard-hours-panel .billboard-hours-list {
  gap: 8px;
}

body.billboard-theme-real-estate .billboard-page .billboard-hours-panel .billboard-hours-row {
  border: 2px solid #206176;
  border-left: 7px solid #d94732;
  background: #fff6df;
}

body.billboard-theme-real-estate .billboard-media-showcase {
  padding: clamp(22px, 4vw, 45px);
  border: 8px solid #f0be42;
  border-top: 17px solid #da4834;
  background:
    repeating-linear-gradient(135deg, transparent 0 70px, rgb(255 255 255 / 10%) 71px 75px, transparent 76px 140px),
    linear-gradient(135deg, #0b354c, #14617a);
}

body.billboard-theme-real-estate .billboard-media-showcase h2 {
  color: #f7f3e9;
}

body.billboard-theme-real-estate .billboard-media-showcase .billboard-section-label {
  color: #ffcf61;
}

body.billboard-theme-real-estate .billboard-media-carousel {
  border: 3px solid #89a2ad;
  background: #1b4355;
}

body.billboard-theme-real-estate .billboard-media-image-link {
  background: #1b4355;
}

body.billboard-theme-real-estate .billboard-media-showcase .billboard-media-content {
  background: white;
  color: #263f4c;
}

body.billboard-theme-real-estate .billboard-featured-publication,
body.billboard-theme-real-estate .billboard-published-feed {
  border-top: 14px solid #d94732;
  background: #fff1d2;
}

body.billboard-theme-real-estate .billboard-publication-placeholder {
  min-height: 0;
  border: 2px dashed #89a2ad;
  background: white;
}

body.billboard-theme-real-estate .billboard-published-feed .billboard-media-grid,
body.billboard-theme-real-estate .billboard-around-town .billboard-media-grid {
  gap: 20px;
}

body.billboard-theme-real-estate .billboard-snap-card {
  border: 3px solid #17485a;
  background: #fffdf4;
  box-shadow: 6px 7px 0 rgb(14 64 80 / 21%);
  border-radius: 5px;
  border-bottom: 9px solid #e14a34;
}

body.billboard-theme-real-estate .billboard-snap-card:hover {
  box-shadow: 0 14px 28px rgb(0 0 0 / 19%);
}

body.billboard-theme-real-estate .billboard-snap-card:focus-within {
  outline-color: #2c6277;
}

body.billboard-theme-real-estate .billboard-snap-card .billboard-media-content {
  background: white;
  border-top: 4px solid #d0bba3;
}

body.billboard-theme-real-estate .billboard-feature-art {
  background-color: #e9edea;
}

body.billboard-theme-real-estate .billboard-around-town {
  border-top: 14px solid #f0be42;
  background: #f8e3b5;
}

body.billboard-theme-real-estate .billboard-around-town .billboard-media-content {
  background: white;
}

body.billboard-theme-real-estate .billboard-published-comments {
  border-top: 13px solid #e34c35;
  background: #fff2d2;
}

body.billboard-theme-real-estate .billboard-community-postcard {
  --postcard-paper-start: #fff8e4;
  --postcard-paper-end: #ffe1a4;
  --postcard-ink: #173e50;
  --postcard-accent: #d74732;
  --postcard-stamp-bg: #f3be42;
  --postcard-stamp-ink: #134759;
  --postcard-rule: #de583c;
  border: 3px solid #d84b34;
  border-radius: 5px;
}

body.billboard-theme-real-estate .billboard-page .community-feedback {
  border: 7px solid #f0be42;
  border-top: 15px solid #d94732;
  border-radius: 6px;
  background:
    repeating-linear-gradient(90deg, transparent 0 45px, rgb(36 78 98 / 7%) 46px 47px),
    #fff2d3;
}

body.billboard-page-active.billboard-theme-real-estate .billboard-page {
  --billboard-past-frame: #17485a;
  --billboard-past-accent: #f2bd42;
  --billboard-past-paper: #fff4d8;
  --billboard-past-status-bg: #d94732;
  --billboard-past-status-text: #fff;
}

body.billboard-theme-real-estate .billboard-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 18px;
  border: 3px solid rgb(22 76 95 / 26%);
  background:
    linear-gradient(125deg, transparent 0 11%, rgb(220 72 52 / 17%) 11.2% 12.2%, transparent 12.4% 87%, rgb(220 72 52 / 17%) 87.2% 88.2%, transparent 88.4%),
    linear-gradient(0deg, transparent 0 13%, rgb(22 76 95 / 12%) 13.1% 13.5%, transparent 13.6% 86.4%, rgb(22 76 95 / 12%) 86.5% 86.9%, transparent 87%);
  pointer-events: none;
}

body.billboard-theme-real-estate .billboard-hero .billboard-kicker,
body.billboard-theme-real-estate .billboard-hero .billboard-summary {
  color: #184559;
}

body.billboard-theme-real-estate .billboard-hero .billboard-category {
  background: #f8bf42;
  color: #143d53;
  border: 4px solid #18475c;
}

body.billboard-theme-real-estate .billboard-section-label {
  color: #c83e30;
}

body.billboard-theme-real-estate .billboard-published-comment {
  border: 2px solid #14536b;
  border-left: 9px solid #d94833;
  border-bottom: 5px solid #f3bf43;
  border-radius: 5px;
  background: #fffaf0;
}

@media (width <= 640px) {
  body.billboard-theme-real-estate .billboard-card {
    margin-bottom: 20px;
  }

  body.billboard-theme-real-estate .billboard-hero {
    padding: 26px 18px;
  }

  body.billboard-theme-real-estate .billboard-hero::before {
    inset: 11px;
  }

  body.billboard-theme-real-estate .billboard-logo-frame {
    width: min(100%, 380px);
  }

  body.billboard-theme-real-estate .billboard-actions {
    flex-direction: column;
    align-items: stretch;
  }

  body.billboard-theme-real-estate .billboard-button,
  body.billboard-theme-real-estate .billboard-link {
    width: 100%;
  }

  body.billboard-theme-real-estate .billboard-detail-item {
    padding: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.billboard-theme-real-estate .billboard-snap-card {
    transition: none;
  }
}

body.billboard-theme-real-estate .billboard-hero .billboard-managed-by-link {
  color: #103b53;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-color: #dc4a32;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

body.billboard-theme-real-estate .billboard-hero .billboard-managed-by-link:hover,
body.billboard-theme-real-estate .billboard-hero .billboard-managed-by-link:focus-visible {
  color: #b72d20;
  text-decoration-color: #b72d20;
}
