
/* ==========================================================
   PRUITT REALTY — FINAL SITEWIDE POLISH
   ========================================================== */

:root{
  --motion-fast:180ms;
  --motion-standard:420ms;
  --motion-slow:650ms;
}

/* Consistent section rhythm */
main > section{
  scroll-margin-top:112px;
}
main > section:not(.hero):not(.refined-hero):not(.properties-hero):not(.build-hero):not(.simple-page-hero):not(.property-master-hero){
  padding-top:clamp(48px,5vw,68px);
  padding-bottom:clamp(48px,5vw,68px);
}

/* Refined hover motion */
.btn,
.phone-btn,
.property-link,
.section-link,
.homesite-card a,
.nav a{
  transition:
    transform var(--motion-fast) ease,
    background-color var(--motion-fast) ease,
    color var(--motion-fast) ease,
    border-color var(--motion-fast) ease,
    box-shadow var(--motion-fast) ease,
    opacity var(--motion-fast) ease;
}
.btn:hover,
.phone-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 9px 20px rgba(62,34,23,.13);
}
.btn:active,
.phone-btn:active{
  transform:translateY(0);
}

.property-card,
.property-listing-card,
.home-card,
.interior-card,
.gallery-card,
.homesite-card,
.about-value,
.build-value,
.value,
.process-step,
.contact-card{
  transition:
    transform var(--motion-standard) cubic-bezier(.2,.7,.2,1),
    box-shadow var(--motion-standard) cubic-bezier(.2,.7,.2,1),
    border-color var(--motion-standard) ease;
}
.property-card:hover,
.property-listing-card:hover,
.home-card:hover,
.interior-card:hover,
.gallery-card:hover,
.homesite-card:hover,
.about-value:hover,
.build-value:hover,
.value:hover,
.process-step:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 34px rgba(62,34,23,.11);
}

/* Consistent image treatment */
img{
  max-width:100%;
}
.property-card img,
.property-listing-image img,
.home-card img,
.interior-card img,
.gallery-card img,
.about-story-image,
.story-image,
.single-home-image,
.property-builder-image,
.build-intro-image,
.custom-home-single-image{
  transition:transform var(--motion-slow) cubic-bezier(.2,.7,.2,1);
}
.property-card:hover img,
.property-listing-card:hover img,
.home-card:hover img,
.interior-card:hover img,
.gallery-card:hover img{
  transform:scale(1.025);
}

/* Unified slideshow behavior and controls */
.property-master-slide,
.uniform-slide,
.slide,
.carousel-slide{
  transition:opacity 450ms ease!important;
}
.property-master-controls button,
.uniform-slideshow-controls button,
.slider-controls button,
.slideshow-controls button,
.carousel-controls button{
  transition:
    transform var(--motion-fast) ease,
    background-color var(--motion-fast) ease,
    border-color var(--motion-fast) ease;
}
.property-master-controls button:hover,
.uniform-slideshow-controls button:hover,
.slider-controls button:hover,
.slideshow-controls button:hover,
.carousel-controls button:hover{
  transform:scale(1.06);
  background:#4b171c!important;
}

/* Tasteful scroll reveal */
.reveal-on-scroll{
  opacity:0;
  transform:translateY(22px);
  transition:
    opacity 700ms cubic-bezier(.2,.7,.2,1),
    transform 700ms cubic-bezier(.2,.7,.2,1);
  will-change:opacity,transform;
}
.reveal-on-scroll.is-visible{
  opacity:1;
  transform:none;
}

/* Accessibility and keyboard focus */
:focus-visible{
  outline:3px solid rgba(189,145,72,.72);
  outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .reveal-on-scroll{
    opacity:1!important;
    transform:none!important;
  }
}

/* Tablet pass */
@media(max-width:1024px){
  .container{
    width:min(92%,1180px);
  }
  .header-inner{
    gap:18px;
  }
  .wordmark strong{
    font-size:clamp(24px,3vw,34px);
  }
  .property-master-inner,
  .uniform-property-hero-inner{
    width:min(92%,1180px)!important;
  }
}

/* Mobile navigation and spacing pass */
@media(max-width:760px){
  .site-header{
    position:relative;
  }
  .header-inner{
    min-height:88px;
    flex-wrap:wrap;
  }
  .brand{
    max-width:74%;
  }
  .brand-logo{
    width:58px!important;
    height:auto!important;
  }
  .wordmark strong{
    font-size:22px!important;
    white-space:nowrap;
  }
  .limited-row b{
    font-size:9px!important;
  }
  .menu-btn{
    display:block!important;
    margin-left:auto;
  }
  .nav{
    order:4;
    width:100%;
    display:none!important;
    flex-direction:column;
    align-items:stretch;
    gap:0!important;
    padding:10px 0 16px;
  }
  .nav.open{
    display:flex!important;
  }
  .nav a{
    padding:12px 4px!important;
    border-bottom:1px solid rgba(122,32,41,.10);
  }
  .phone-btn{
    display:none!important;
  }
  main > section:not(.hero):not(.refined-hero):not(.properties-hero):not(.build-hero):not(.simple-page-hero):not(.property-master-hero){
    padding-top:42px;
    padding-bottom:42px;
  }
  h1{
    overflow-wrap:break-word;
  }
  .btn{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
}

/* Small phones */
@media(max-width:480px){
  .container{
    width:min(91%,680px);
  }
  .brand{
    max-width:82%;
  }
  .wordmark strong{
    font-size:19px!important;
  }
  .brand-logo{
    width:50px!important;
  }
  .property-master-caption,
  .uniform-slide-caption{
    max-width:62%!important;
  }
  .minimal-footer{
    padding:18px 12px!important;
  }
  .minimal-footer p{
    font-size:12px!important;
  }
}


/* ==========================================================
   RESTORE APPROVED COMPACT MAROON CTA PROPORTIONS
   Keeps all final polish, SEO, motion, and responsive work.
   ========================================================== */

/* Exclude final CTA bands from the global section padding rule */
main > section.cta,
main > section.contact-cta,
main > section.properties-cta,
main > section.build-contact{
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Homepage */
.contact-cta-inner{
  min-height:188px!important;
  padding-top:30px!important;
  padding-bottom:30px!important;
  gap:54px!important;
}
.contact-cta-copy h2{
  margin-bottom:6px!important;
}
.contact-cta-details{
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Properties page */
.properties-cta-inner{
  min-height:150px!important;
  padding-top:28px!important;
  padding-bottom:28px!important;
  gap:52px!important;
}

/* Build Your Home page */
.build-contact-inner{
  min-height:180px!important;
  padding-top:30px!important;
  padding-bottom:30px!important;
  gap:56px!important;
}

/* Property detail pages and any generic CTA bands */
.cta .container,
.contact-cta .container,
.properties-cta .container,
.build-contact .container{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Keep the closing areas visually compact on tablets and phones */
@media(max-width:850px){
  .contact-cta-inner,
  .properties-cta-inner,
  .build-contact-inner{
    min-height:0!important;
    padding-top:28px!important;
    padding-bottom:28px!important;
    gap:24px!important;
  }
}

@media(max-width:600px){
  .contact-cta-inner,
  .properties-cta-inner,
  .build-contact-inner{
    padding-top:24px!important;
    padding-bottom:24px!important;
  }
}


/* ==========================================================
   CORRECT OVERSIZED MAROON BANDS
   Restores the approved compact homepage journey strip and CTAs.
   ========================================================== */

/* The global section-spacing rule must not apply to branded maroon bands. */
main > section.journey-band,
main > section.cta,
main > section.contact-cta,
main > section.properties-cta,
main > section.build-contact{
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Homepage three-step strip */
.journey-band{
  min-height:0!important;
}
.journey-grid{
  min-height:0!important;
}
.journey-item{
  min-height:118px!important;
  padding-top:22px!important;
  padding-bottom:22px!important;
  margin:0!important;
}
.journey-item h3{
  margin-top:0!important;
  margin-bottom:4px!important;
}
.journey-item p{
  margin:0!important;
}

/* Homepage final CTA */
.contact-cta-inner{
  min-height:164px!important;
  padding-top:24px!important;
  padding-bottom:24px!important;
}

/* Properties final CTA */
.properties-cta-inner{
  min-height:138px!important;
  padding-top:23px!important;
  padding-bottom:23px!important;
}

/* Build Your Home final CTA */
.build-contact-inner{
  min-height:154px!important;
  padding-top:24px!important;
  padding-bottom:24px!important;
}

/* Mobile remains compact */
@media(max-width:850px){
  .journey-item{
    min-height:104px!important;
    padding-top:18px!important;
    padding-bottom:18px!important;
  }
  .contact-cta-inner,
  .properties-cta-inner,
  .build-contact-inner{
    min-height:0!important;
    padding-top:22px!important;
    padding-bottom:22px!important;
  }
}


/* ==========================================================
   FINAL COMPACT SPACING + TYPOGRAPHY CORRECTIONS
   ========================================================== */

/* Homepage headline: restore the smaller, approved scale */
.refined-hero h1,
.hero.refined-hero h1{
  font-size:clamp(38px,3.7vw,54px)!important;
  line-height:1.02!important;
}
.refined-hero h1 span{
  font-size:.50em!important;
  margin-top:7px!important;
}
.refined-hero .hero-copy{
  max-width:490px!important;
}
.hero-support{
  font-size:15px!important;
}

/* Properties hero headline: smaller and less dominant */
.properties-hero h1{
  font-size:clamp(38px,3.8vw,54px)!important;
  line-height:1.03!important;
}
.properties-hero-copy{
  max-width:525px!important;
}

/* Compact Properties intro, statistics, filters, and listing lead-in */
.collection-intro{
  padding-top:34px!important;
  padding-bottom:30px!important;
}
.collection-intro-grid{
  gap:42px!important;
}
.collection-intro h2{
  font-size:clamp(31px,3vw,39px)!important;
  margin-top:6px!important;
  margin-bottom:12px!important;
}
.collection-stat{
  padding-top:12px!important;
  padding-bottom:12px!important;
}
.collection-stat strong{
  font-size:23px!important;
}
.property-tools-inner{
  min-height:54px!important;
}
.properties-collection{
  padding-top:36px!important;
  padding-bottom:52px!important;
}
.collection-heading{
  margin-bottom:22px!important;
}

/* Every individual property page: eliminate oversized gaps between sections */
main#main-content > section.container,
main.main-content > section.container,
main > section.container[id]{
  padding-top:42px!important;
  padding-bottom:42px!important;
  margin-top:0!important;
  margin-bottom:0!important;
  min-height:0!important;
}

/* Heading should begin near the section, not float in empty space */
main#main-content > section.container > .section-heading,
main.main-content > section.container > .section-heading,
main > section.container[id] > .section-heading{
  margin-top:0!important;
  margin-bottom:24px!important;
}
.section-heading{
  margin-top:0!important;
}
.section-heading h2{
  font-size:clamp(31px,3.2vw,40px)!important;
  line-height:1.08!important;
  margin-top:0!important;
  margin-bottom:8px!important;
}
.section-heading p{
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Compact gallery/map/school/inquiry transitions */
#photos,
#gallery,
#photography,
#topography,
#land,
#maps,
#schools,
#documents,
#details,
#highlights,
#inquire{
  padding-top:42px!important;
  padding-bottom:42px!important;
  min-height:0!important;
}
#photos + section,
#gallery + section,
#photography + section,
#topography + section,
#land + section,
#maps + section,
#schools + section,
#documents + section,
#details + section,
#highlights + section{
  margin-top:0!important;
}

/* Remove inherited blank vertical blocks */
.content{
  padding-top:42px!important;
  padding-bottom:42px!important;
}
.gallery-layout,
.land-grid,
.school-grid,
.inquiry-grid{
  margin-top:0!important;
}

/* Compact branded maroon areas */
.journey-item{
  min-height:104px!important;
  padding-top:18px!important;
  padding-bottom:18px!important;
}
.contact-cta-inner{
  min-height:154px!important;
  padding-top:22px!important;
  padding-bottom:22px!important;
}
.properties-cta-inner{
  min-height:132px!important;
  padding-top:20px!important;
  padding-bottom:20px!important;
}
.build-contact-inner{
  min-height:146px!important;
  padding-top:22px!important;
  padding-bottom:22px!important;
}

/* Tablet */
@media(max-width:900px){
  .collection-intro{
    padding-top:30px!important;
    padding-bottom:28px!important;
  }
  main#main-content > section.container,
  main.main-content > section.container,
  main > section.container[id],
  #photos,#gallery,#photography,#topography,#land,#maps,
  #schools,#documents,#details,#highlights,#inquire{
    padding-top:36px!important;
    padding-bottom:36px!important;
  }
}

/* Phones */
@media(max-width:650px){
  .refined-hero h1,
  .hero.refined-hero h1,
  .properties-hero h1{
    font-size:38px!important;
  }
  .collection-intro{
    padding-top:26px!important;
    padding-bottom:24px!important;
  }
  .property-tools-inner{
    min-height:0!important;
    padding-top:14px!important;
    padding-bottom:14px!important;
  }
  .properties-collection{
    padding-top:30px!important;
  }
  main#main-content > section.container,
  main.main-content > section.container,
  main > section.container[id],
  #photos,#gallery,#photography,#topography,#land,#maps,
  #schools,#documents,#details,#highlights,#inquire{
    padding-top:30px!important;
    padding-bottom:30px!important;
  }
  .section-heading{
    margin-bottom:20px!important;
  }
}
