/* Public-site v21: a high-contrast architectural finish without fragile
   clipped bands or decorative collisions. */

:root {
  --public-ink: #10191f;
  --public-body: #34434c;
  --public-muted: #55656e;
  --public-red: #be1520;
  --public-red-dark: #830d15;
  --public-line: rgba(16,25,31,.16);
}

body.public-shell {
  color: var(--public-ink);
  background:
    radial-gradient(circle at 100% 0, rgba(190,21,32,.08), transparent 34rem),
    linear-gradient(135deg, #f8f7f2 0%, #f4f5f3 48%, #edf0ef 100%);
}

body.public-shell::selection { color: #fff; background: var(--public-red); }
body.public-shell :is(p, li, .muted, .small) { color: var(--public-body); }

.site-header {
  border-bottom: 1px solid rgba(16,25,31,.14);
  background: rgba(250,250,247,.92);
  box-shadow: 0 8px 28px rgba(16,25,31,.06);
}
.site-header__inner { min-height: 98px; }
.site-brand { width: 242px; height: 84px; }
.site-nav { color: #19262e; font-size: .9rem; font-weight: 760; }
.site-nav > a:not(.button):hover { color: var(--public-red); }
.site-nav > a:not(.button)::after { background: var(--public-red); }

.public-shell :is(.button, .btn) { border-radius: 12px 4px 12px 4px; font-weight: 800; }
.public-shell :is(.button--primary, .btn-primary, .btn-dark) {
  background: linear-gradient(135deg, #d52531, var(--public-red-dark));
  box-shadow: 0 13px 28px rgba(190,21,32,.25);
}
.public-shell :is(.button--primary, .btn-primary, .btn-dark):hover { background: linear-gradient(135deg, #e42f3b, #920c15); }
.public-shell :is(a, button, input, select, textarea):focus-visible { outline: 3px solid #e3333e; outline-offset: 3px; }

.public-shell .home-hero__copy > p,
.public-shell .section-heading > p,
.public-shell .process-intro p,
.public-shell .process-list p,
.public-shell .quote-form__hint { color: var(--public-body) !important; }
.public-shell.public-public-home .home-hero__copy > p {
  color: rgba(255,255,255,.96) !important;
  text-shadow: 0 2px 13px rgba(0,0,0,.82);
}
.public-shell.public-public-home .hero-trust strong,
.public-shell.public-public-home .hero-trust span {
  color: #fff !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.82);
}
.public-shell .service-card p { color: rgba(255,255,255,.91) !important; }
.public-shell .service-card__body > span { color: #ffc0c4; }
.public-shell .page-hero p,
.public-shell .hero--small p,
.public-shell .quote-hero__subtitle,
.public-shell .quote-hero__contact { color: rgba(255,255,255,.86) !important; }

.public-shell .home-hero { position: relative; }
.public-shell .home-hero::before {
  content: '';
  position: absolute;
  top: 116px;
  right: 0;
  width: min(30vw, 420px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(190,21,32,.68));
}
.public-shell .home-hero__media,
.public-shell .project-card,
.public-shell .service-card { box-shadow: 0 22px 48px rgba(16,25,31,.16); }
.public-shell .home-hero__media { border-radius: 8px 8px 44px 8px; }
.public-shell .service-card { border-radius: 12px 3px 12px 3px; isolation: isolate; }
.public-shell .service-card::after { background: linear-gradient(180deg, rgba(0,0,0,.03) 17%, rgba(4,8,10,.91)); }
.public-shell .project-card { border-radius: 14px 4px 14px 4px; }
.public-shell .project-card__caption strong { text-wrap: balance; }

.public-shell .review-card,
.public-shell .before-after-card,
.public-shell .quote-form,
.public-shell .card {
  border-color: rgba(16,25,31,.15);
  border-radius: 16px 5px 16px 5px;
  box-shadow: 0 18px 42px rgba(16,25,31,.075);
}
.public-shell .notice { color: #433100; border-radius: 12px; }
.public-shell .notice--success { color: #075f3b; }
.public-shell .notice--error { color: #7d1118; }
.public-shell :is(input, select, textarea) { color: #13242d !important; border-color: #7e969f !important; border-radius: 10px; }
.public-shell :is(input, select, textarea)::placeholder { color: #53646d; opacity: 1; }

.public-shell .site-footer { position: relative; overflow: hidden; }
.public-shell .site-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, transparent, #bd151c 20%, #e94a53 50%, #bd151c 80%, transparent); }

@media (max-width: 760px) {
  .site-header__inner { min-height: 78px; }
  .site-brand { width: 188px; height: 67px; }
  .public-shell .home-hero::before { display: none; }
  .public-shell .home-hero__media { border-radius: 8px 8px 30px 8px; }
  .public-shell :is(.button, .btn, input, select, textarea) { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/*
   Homepage photo treatment
   ------------------------
   The lakeside image is an ACS square-format project photo.  It must never be
   horizontally stretched just to fill a wide hero.  The quiet, enlarged
   backdrop fills the architectural canvas while the sharp centre plane keeps
   the actual craftsmanship at its real proportions.
*/
@media (min-width: 701px) {
  body.public-shell.public-public-home .home-hero {
    min-height: auto;
    padding-bottom: 38px;
    background: #101519;
  }
  body.public-shell.public-public-home .home-hero__grid {
    min-height: clamp(620px, 52vw, 760px);
    border-radius: 0 0 46px 0;
    box-shadow: 0 28px 70px rgba(7, 11, 14, .28);
  }
  body.public-shell.public-public-home .home-hero__media {
    background: #101519;
  }
  body.public-shell.public-public-home .home-hero__media::after {
    inset: -76px;
    opacity: .82;
    filter: blur(38px) saturate(.78) brightness(.58);
    transform: scale(1.15);
  }
  body.public-shell.public-public-home .home-hero__media::before {
    background:
      linear-gradient(90deg, rgba(5, 8, 10, .85) 0%, rgba(5, 8, 10, .57) 35%, rgba(5, 8, 10, .16) 64%, rgba(5, 8, 10, .22) 100%),
      linear-gradient(0deg, rgba(5, 8, 10, .63) 0%, rgba(5, 8, 10, .08) 47%, rgba(5, 8, 10, .18) 100%);
  }
  body.public-shell.public-public-home .home-hero__media img {
    position: absolute;
    z-index: 1;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    object-fit: cover;
    object-position: 50% 54%;
    transform: none !important;
    filter: saturate(1.02) contrast(1.035) brightness(1.01);
  }
  body.public-shell.public-public-home .home-hero__media::after {
    display: none;
  }
  body.public-shell.public-public-home .home-hero__media:hover img {
    transform: none !important;
  }
  body.public-shell.public-public-home .project-stamp {
    right: clamp(22px, 3vw, 42px);
    bottom: clamp(22px, 3vw, 38px);
    width: min(260px, 27vw);
  }
}

@media (max-width: 700px) {
  body.public-shell.public-public-home .home-hero__media img {
    transform: none !important;
    filter: saturate(1.02) contrast(1.035) brightness(1.01);
  }
}
