/* Aeon Painting — larger, clearer page typography.
   Keeps the existing brand, photography and content while improving readability. */

:root {
  --aeon-reading-width: 72ch;
}

html {
  font-size: 18px;
  scroll-behavior: smooth;
}

body {
  font-size: 1rem !important;
  line-height: 1.7 !important;
  letter-spacing: 0.005em;
}

p,
li,
.section-head p,
.about-split p,
.feat-card p,
.why-card p,
.review-card p,
.step p,
.faq-a p,
.service-area p,
.footer-grid p,
.footer-grid ul a {
  font-size: 1rem !important;
  line-height: 1.7 !important;
}

.hero h1,
.page-hero h1 {
  font-size: clamp(3rem, 6vw, 5.25rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.035em !important;
}

.hero p.lede,
.page-hero p,
.hero-subtitle {
  font-size: clamp(1.15rem, 2vw, 1.4rem) !important;
  line-height: 1.55 !important;
}

.section-head h2,
.about-split h2,
.service-area h2,
.cta-band h2,
main section h2 {
  font-size: clamp(2.35rem, 4.4vw, 3.6rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.025em !important;
}

.feat-card h3,
.why-card h3,
.review-card h3,
.step h3,
.ba-info h3,
main section h3 {
  font-size: clamp(1.25rem, 2vw, 1.55rem) !important;
  line-height: 1.3 !important;
}

.eyebrow,
.pf-tag {
  font-size: 0.86rem !important;
  letter-spacing: 0.14em !important;
}

nav.links,
nav.links a,
.nav-phone,
.nav-text,
.nav-email {
  font-size: 0.98rem !important;
}

.btn,
button,
input,
select,
textarea,
label,
.faq-q {
  font-size: 1rem !important;
}

.btn,
button[type="submit"] {
  min-height: 52px;
  padding: 15px 28px !important;
}

.section-head,
.about-split > div,
.service-area > div {
  max-width: var(--aeon-reading-width);
}

@media (max-width: 900px) {
  html { font-size: 17px; }
  .wrap { padding-left: 22px !important; padding-right: 22px !important; }
  nav.links a { font-size: 1.08rem !important; }
}

@media (max-width: 560px) {
  html { font-size: 17px; }
  body { line-height: 1.65 !important; }

  .hero h1,
  .page-hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.45rem) !important;
    line-height: 1.04 !important;
  }

  .section-head h2,
  .about-split h2,
  .service-area h2,
  .cta-band h2,
  main section h2 {
    font-size: clamp(2rem, 9vw, 2.65rem) !important;
  }

  .hero p.lede,
  .page-hero p,
  .hero-subtitle {
    font-size: 1.12rem !important;
  }

  .btn,
  button[type="submit"] {
    width: 100%;
    justify-content: center;
  }

  .mobile-cta a {
    font-size: 0.9rem !important;
    line-height: 1.15 !important;
  }
}

/* Show project photography at its natural ratio instead of cropping it. */
.about-split .img-frame,
.ba-pair figure,
.g-item {
  aspect-ratio: auto !important;
  background: #f5f5f7;
}

.about-split .img-frame picture,
.ba-pair picture,
.g-item picture {
  display: block;
  width: 100%;
}

.about-split .img-frame img,
.ba-pair img,
.g-item img {
  display: block;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
}

.g-item:hover img {
  transform: none !important;
}

/* Homepage hero: show the complete portrait photo without cropping it. */
.home-page .hero {
  isolation: isolate;
  overflow: hidden;
  background: #17202c !important;
}

.home-page .hero::before,
.home-page .hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.home-page .hero::before {
  z-index: 0;
  inset: -28px;
  background: url("/assets/hero-house-aeon.webp") center / cover no-repeat;
  filter: blur(18px) brightness(0.58);
  transform: scale(1.04);
}

.home-page .hero::after {
  z-index: 1;
  background-image:
    linear-gradient(180deg, rgba(8, 12, 20, 0.28), rgba(8, 12, 20, 0.52)),
    url("/assets/hero-house-aeon.webp");
  background-position: center, center;
  background-size: cover, contain;
  background-repeat: no-repeat;
}

.home-page .hero-inner {
  position: relative;
  z-index: 2;
}
