/* Wheatland Estates — global styles */

/* Brand fonts (self-hosted) */
@font-face{font-family:'Erstoria';src:url('assets/fonts/Erstoria.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-MediumItalic.ttf') format('truetype');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}

:root{
  --pe-green-900:#014E44;
  --pe-green-700:#0A5F53;
  --pe-gold:#B8904B;
  --pe-cream:#FEF9E6;
  --pe-border:#EAE3D2;
  --pe-shadow-card:0 6px 24px rgba(1,58,51,.06);
  --pe-shadow-hover:0 18px 40px rgba(1,58,51,.12);
  --pe-radius-lg:18px;
  --pe-radius-xl:22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  background:#FEF9E6;
  color:#36352E;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
h1,h2,h3,h4,h5{
  font-family:'Montserrat',sans-serif;
  font-weight:800;
  margin:0;
  line-height:1.06;
  letter-spacing:-0.01em;
  color:#014E44;
}
.erstoria{font-family:'Erstoria',Georgia,serif;font-weight:400;letter-spacing:0}
.corm{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:600;letter-spacing:.01em}
p{margin:0}
button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}
input,select,textarea{font-family:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:#D8B777;color:#014E44}
:focus-visible{outline:2px solid #014E44;outline-offset:2px}
.tnum{font-variant-numeric:tabular-nums}

/* animations */
@keyframes pe-rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes pe-fade{from{opacity:0}to{opacity:1}}
@keyframes pe-drawer{from{transform:translateX(100%)}to{transform:translateX(0)}}
@keyframes pe-pop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes pe-aurora{
  0%{transform:translate(0,0) scale(1)}
  33%{transform:translate(6%,-4%) scale(1.12)}
  66%{transform:translate(-5%,5%) scale(.95)}
  100%{transform:translate(0,0) scale(1)}
}
@keyframes pe-float{0%,100%{transform:translate(0,0)}50%{transform:translate(0,-18px)}}
@keyframes pe-ken-burns{0%{transform:scale(1)}100%{transform:scale(1.08)}}
@keyframes pe-pulse-dot{
  0%,100%{box-shadow:0 0 0 0 rgba(62,122,78,.55)}
  70%{box-shadow:0 0 0 12px rgba(62,122,78,0)}
}
@keyframes pe-pulse-glow{
  0%,100%{filter:drop-shadow(0 0 0 rgba(184,144,75,0))}
  50%{filter:drop-shadow(0 0 18px rgba(184,144,75,.55))}
}
@keyframes pe-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pe-underline-grow{from{transform:scaleX(0);transform-origin:left center}to{transform:scaleX(1)}}
@keyframes pe-counter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* reusable atmospheric backgrounds */
.pe-atm{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.pe-atm__blob{position:absolute;border-radius:50%;filter:blur(48px);will-change:transform;animation:pe-aurora 22s ease-in-out infinite}
.pe-atm__grain{position:absolute;inset:0;background-image:radial-gradient(rgba(1,58,51,.07) 1px,transparent 1px);background-size:22px 22px;opacity:.85}
.pe-atm__grain--light{background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);opacity:.6}

/* Ken-Burns slow zoom on hero photos */
.pe-kb{overflow:hidden;border-radius:inherit}
.pe-kb>img{display:block;width:100%;height:100%;object-fit:cover;animation:pe-ken-burns 18s ease-in-out infinite alternate}

/* hover image scale wrapper */
.pe-img-zoom{overflow:hidden}
.pe-img-zoom>img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.pe-img-zoom:hover>img,.pe-hover-card:hover .pe-img-zoom>img{transform:scale(1.06)}

/* Text override cleared to empty: hide the element so its own pill/border
   chrome is not left floating. Edit mode re-shows it (see applyContentOverrides). */
.pe-blank{display:none !important}

/* decorative gold stroke under eyebrow */
.pe-stroke{display:inline-block;width:40px;height:2px;background:linear-gradient(90deg,#B8904B,transparent);margin-left:10px;vertical-align:middle;transform-origin:left center;animation:pe-underline-grow 1.1s cubic-bezier(.2,.7,.2,1) .15s both}

/* pulsing dot for "live" badges */
.pe-pulse-dot{animation:pe-pulse-dot 2.2s infinite}

/* marquee ticker */
.pe-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.pe-marquee__track{display:flex;gap:64px;width:max-content;animation:pe-marquee 38s linear infinite}
.pe-marquee:hover .pe-marquee__track{animation-play-state:paused}

/* shimmer / sheen on hover for premium cards */
.pe-shine{position:relative;overflow:hidden;isolation:isolate}
.pe-shine::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  transform:translateX(-120%);
  transition:transform .9s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.pe-shine:hover::after{transform:translateX(120%)}

.pe-anim-rise{animation:pe-rise .6s ease both}
.pe-anim-rise-slow{animation:pe-rise .7s ease both}
.pe-anim-fade{animation:pe-fade .3s ease}
.pe-anim-pop{animation:pe-pop .3s ease}

/* scroll reveal */
[data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);
}
[data-reveal].pe-in{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1!important;transform:none!important}
  *{animation:none!important;scroll-behavior:auto!important}
}

/* image placeholders */
.pe-img{
  position:relative;
  background:linear-gradient(135deg,#E5DECB 0%,#D6CDB1 100%);
  overflow:hidden;
}
.pe-img::before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 20% 30%,rgba(255,255,255,.25),transparent 35%),
    radial-gradient(circle at 80% 70%,rgba(1,58,51,.12),transparent 40%);
}
.pe-img-label{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:600;
  letter-spacing:.06em;
  color:#5A594E;
  text-transform:uppercase;
  padding:12px;
  text-align:center;
  z-index:1;
}

/* nav helpers */
[data-desktop-nav] button{white-space:nowrap}
[data-desktop-cta] a span{white-space:nowrap}

/* range slider tweaks */
input[type=range]{accent-color:#0A5F53;height:6px;-webkit-appearance:none;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:4px;background:#E5DFD0}
input[type=range]::-moz-range-track{height:6px;border-radius:4px;background:#E5DFD0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#0A5F53;margin-top:-6px;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#0A5F53;cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}

/* hover utilities (use class on element where defined) */
.pe-hover-card{transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}
.pe-hover-card:hover{box-shadow:0 20px 44px rgba(1,58,51,.14);transform:translateY(-4px)}
.pe-hover-lift{transition:transform .15s ease}
.pe-hover-lift:hover{transform:translateY(-3px)}
.pe-hover-btn-dark,
.pe-hover-btn-gold,
.pe-hover-btn-cream,
.pe-cta-phone,
[data-action="submit-contact"],
[data-action="reserve-next"],
[data-action="submit-reserve"],
[data-action="scroll-calc"],
[data-action="reserve-next-2"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.pe-hover-btn-dark{transition:background .2s ease}
.pe-hover-btn-dark:hover{background:#0A5F53}
.pe-hover-btn-gold{transition:background .2s ease}
.pe-hover-btn-gold:hover{background:#D6B05C}
.pe-hover-btn-cream{transition:background .2s ease}
.pe-hover-btn-cream:hover{background:#E7DFC8}
.pe-hover-lender{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pe-hover-lender:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(1,58,51,.12);border-color:#D8CFB8}

.pe-life-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
}
.pe-life-grid>*{flex:0 1 160px}
.pe-life-grid--edit>*{flex:1 1 190px;max-width:360px}

.pe-model-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:26px;
}
.pe-model-grid>.pe-hover-card{
  flex:1 1 300px;
  max-width:396px;
  min-width:0;
}

/* team section */
.pe-team-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:26px;
}
.pe-team-card{
  background:#fff;
  border:1px solid var(--pe-border);
  border-radius:var(--pe-radius-lg);
  overflow:hidden;
  box-shadow:var(--pe-shadow-card);
  transition:box-shadow .25s ease,transform .25s ease;
  display:flex;
  flex-direction:column;
}
.pe-team-card:hover{transform:translateY(-4px);box-shadow:var(--pe-shadow-hover)}
.pe-team-card__media{
  display:block;
  aspect-ratio:385/355;
  background:linear-gradient(135deg,var(--pe-gold) 0%,var(--pe-green-700) 55%,var(--pe-green-900) 100%);
  position:relative;
  overflow:hidden;
}
.pe-team-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.pe-team-card__overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(1,58,51,.35),transparent 50%);
  pointer-events:none;
}
.pe-team-card__media-initials{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-family:'Montserrat',sans-serif;
  font-weight:800;font-size:54px;
  color:rgba(244,239,225,.92);
  letter-spacing:-.02em;
  text-shadow:0 6px 18px rgba(20,42,29,.35);
}
.pe-team-card__body{padding:28px 26px 32px;display:flex;flex-direction:column;flex:1}
.pe-team-card__name{font-size:21px;color:var(--pe-green-900);margin:0;line-height:1.15}
.pe-team-card__title{display:block;font-size:13px;font-weight:600;color:#76766C;margin-top:6px;letter-spacing:.02em}
.pe-team-card__bio{font-size:14.5px;color:#54534A;margin-top:12px;line-height:1.6;flex:1}
.pe-team-card__cta{
  display:inline-block;align-self:flex-start;
  margin-top:14px;
  color:var(--pe-green-900);font-weight:700;font-size:14px;
  border-bottom:2px solid var(--pe-gold);
  padding-bottom:2px;
}
.pe-team-card__contact{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:14px;min-width:0}
.pe-team-card__contact a{color:var(--pe-green-700);font-weight:600;display:flex;align-items:flex-start;gap:8px;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}
.pe-team-card__contact a:hover{color:var(--pe-green-900)}
.pe-team-card__contact svg{flex-shrink:0;color:#9BB29F;margin-top:2px}

/* split pill badge */
.pe-pill-split{display:inline-flex;align-items:stretch;border-radius:100px;overflow:hidden;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pe-pill-split>span{padding:7px 14px;display:inline-flex;align-items:center;gap:6px}
.pe-pill-split>span:first-child{background:var(--pe-green-900);color:#F4EFE1}
.pe-pill-split>span:last-child{background:#E9F0E6;color:var(--pe-green-700)}

/* Full park overview hero (Jack-demo layout) */
.pe-park-overview{position:relative;background:#003F37;overflow:hidden}
.pe-park-overview__frame{max-height:min(56vh,620px);overflow:hidden}
.pe-park-overview__frame>img{width:100%;height:100%;max-height:min(56vh,620px);object-fit:cover;object-position:center 42%}
.pe-park-overview__badge{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:9px;background:rgba(1,58,51,.88);color:#B8904B;backdrop-filter:blur(8px);font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px;border-radius:100px;border:1px solid rgba(184,144,75,.25)}

/* ---- Model compare table ---- */
[data-compare-grid]{transition:box-shadow .25s ease;grid-template-columns:minmax(7rem,.8fr) repeat(var(--pe-compare-n,3),minmax(0,1fr))}
.pe-compare-col{transition:background .22s ease,box-shadow .22s ease}
.pe-compare-col:last-child{border-right:none!important}
.pe-compare-col:hover{background:#FAF7EF;box-shadow:inset 0 0 0 1px rgba(184,144,75,.22)}
.pe-compare-col:hover .pe-compare-row--head img{transform:scale(1.03)}
.pe-compare-row--head img{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.pe-compare-col a[href^="#/model"]:hover{color:#0A5F53;text-decoration:underline;text-underline-offset:3px}
.pe-compare-labels .pe-compare-row{transition:background .22s ease}
[data-compare-grid]:has(.pe-compare-col:hover) .pe-compare-labels .pe-compare-row{background:#F3EDE0}
/* align rows across all compare columns: shared row tracks via subgrid
   (each column has 8 rows: head, model, price, beds, baths, sqft, best-for, actions) */
[data-compare-grid]{grid-template-rows:repeat(8,auto)}
[data-compare-grid] > .pe-compare-labels,
[data-compare-grid] > .pe-compare-col{display:grid!important;grid-template-rows:subgrid;grid-row:1/-1}

/* ---- Model detail gallery + lightbox ---- */
.pe-model-gallery__main{position:relative;height:480px;border-radius:20px;box-shadow:0 24px 48px rgba(1,58,51,.18);overflow:hidden}
.pe-model-gallery__main img{width:100%;height:100%;object-fit:cover;display:block}
.pe-model-gallery__enlarge{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:7px;background:rgba(1,58,51,.82);color:#F4EFE1;border:1px solid rgba(244,239,225,.25);backdrop-filter:blur(6px);font-size:13px;font-weight:700;padding:9px 14px;border-radius:10px;cursor:pointer;transition:background .2s ease,transform .2s ease}
.pe-model-gallery__enlarge:hover{background:rgba(1,58,51,.94);transform:translateY(-1px)}
.pe-model-gallery__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.pe-model-gallery__thumb{position:relative;border:2px solid transparent;border-radius:12px;overflow:hidden;padding:0;cursor:pointer;background:#F1ECDD;transition:border-color .2s ease,box-shadow .2s ease}
.pe-model-gallery__thumb img{width:100%;height:110px;object-fit:cover;display:block}
.pe-model-gallery__thumb--active{border-color:#B8904B;box-shadow:0 0 0 2px rgba(184,144,75,.25)}
.pe-model-gallery__thumb:hover:not(.pe-model-gallery__thumb--active){border-color:rgba(184,144,75,.45)}
body.pe-lightbox-open{overflow:hidden}
.pe-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.pe-lightbox__backdrop{position:absolute;inset:0;background:rgba(1,40,35,.92);border:0;cursor:pointer}
.pe-lightbox__stage{position:relative;z-index:2;max-width:min(1200px,92vw);max-height:88vh;display:flex;align-items:center;justify-content:center}
.pe-lightbox__img{max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 24px 64px rgba(0,0,0,.45)}
.pe-lightbox__close{position:absolute;top:18px;right:18px;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(244,239,225,.25);background:rgba(1,58,51,.75);color:#F4EFE1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}
.pe-lightbox__close:hover{background:rgba(1,58,51,.95)}
.pe-lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid rgba(244,239,225,.25);background:rgba(1,58,51,.75);color:#F4EFE1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}
.pe-lightbox__nav:hover{background:rgba(1,58,51,.95)}
.pe-lightbox__nav--prev{left:18px}
.pe-lightbox__nav--next{right:18px}
.pe-lightbox__count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:3;color:#E7E0CE;font-size:14px;font-weight:700;letter-spacing:.06em;background:rgba(1,58,51,.7);padding:6px 14px;border-radius:100px}

/* responsive */
@media (max-width:1060px){
  [data-desktop-nav]{display:none!important}
  [data-desktop-cta]{display:none!important}
  [data-mobile-burger]{display:flex!important}
  [data-mobile-bar]{display:flex!important}
  [data-hero-grid],[data-loc-grid]{grid-template-columns:1fr!important;gap:36px!important}
  [data-model-grid],[data-why-grid],[data-footer-grid],[data-listing-grid]{grid-template-columns:1fr 1fr!important}
  [data-compare-grid]{grid-template-columns:minmax(5.5rem,.7fr) repeat(var(--pe-compare-n,3),minmax(0,1fr))!important}
  [data-fin-grid]{grid-template-columns:1fr!important}
  /* grid items default to min-width:auto and won't shrink below their content —
     force them to 0 so the stacked columns never exceed the screen width */
  [data-fin-left],[data-fin-right]{min-width:0!important;max-width:100%!important;overflow-x:clip}
  [data-fin-hero]{grid-template-columns:1fr!important;gap:32px!important;padding:56px 28px 64px!important}
  [data-fin-hero]>div{min-width:0}
  [data-fin-left]{position:static!important;top:auto!important;border-right:none!important;min-height:auto!important}
  [data-lender-cards]{grid-template-columns:1fr!important}
  main{padding-bottom:72px}
}
/* /map page — full-bleed 90/10 with always-visible CTA on the right */
body[data-route="map"] [data-mobile-bar]{display:none!important}
body[data-route="map"] main{padding-bottom:0!important}
body[data-route="map"] #app>.pe-anim-fade>section:first-child{padding-bottom:100px!important}
body[data-route="map"] #app>.pe-anim-fade>section:first-child img[src*="strip-ivory-02.svg"]{display:none!important}
body[data-route="map"] [data-map-layout]>div:first-child>#pe-community-map-embed{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important}

@media (max-width:1060px){
  [data-map-layout]{
    grid-template-columns:1fr!important;
    height:auto!important;
    min-height:auto!important;
  }
  [data-map-layout]>div:first-child{height:80vh;min-height:560px}
  [data-map-cta]{padding:28px 24px!important}
}

@media (max-width:900px){
  .pe-team-grid{
    grid-template-columns:none;
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:16px;
    padding-bottom:8px;
    -webkit-overflow-scrolling:touch;
  }
  .pe-team-card{flex:0 0 min(85vw,360px);scroll-snap-align:start}
}
@media (max-width:620px){
  [data-model-grid],[data-why-grid],[data-footer-grid],[data-listing-grid]{grid-template-columns:1fr!important}
  h1{font-size:40px!important}
  h2{font-size:30px!important}
  /* No side padding on the page wrapper — each section provides its own gutter,
     so the full-bleed hero and the content sections all line up at 18px. */
  [data-pad]{padding-left:0!important;padding-right:0!important}
  [data-pad] > section{padding-left:18px!important;padding-right:18px!important}
  [data-pad] > section section{padding-left:0!important;padding-right:0!important}
}

/* ---- Plot redesign helpers (home strip + life grid) ---- */
[data-strip4]>a{transition:background .25s ease}
[data-strip4]>a:hover{background:rgba(255,255,255,.04)}
[data-strip4]>a:hover *{color:#D8B777!important;stroke:#D8B777!important}
@media (max-width:980px){[data-life-grid]{grid-template-columns:repeat(3,1fr)!important;gap:22px 14px!important}}
@media (max-width:760px){[data-strip4]{grid-template-columns:repeat(2,1fr)!important}[data-strip4]>*{border-left:none!important;border-top:1px solid rgba(254,249,230,.12)!important}}
@media (max-width:520px){[data-life-grid]{grid-template-columns:repeat(2,1fr)!important}}

/* ---- Mobile polish: vertical rhythm, type scale, side padding ---- */
@media (max-width:600px){
  /* home hero: desktop uses ~250px/184px vertical padding — far too tall on phones */
  .pe-hero .pe-anim-rise{padding:120px 18px 116px!important}
  /* heading scale */
  h1{font-size:34px!important;line-height:1.08!important}
  h2{font-size:26px!important}
  h3{font-size:20px!important}
  /* financing: align hero, calculator and content sections at one 18px gutter */
  [data-fin-hero]{padding-left:18px!important;padding-right:18px!important}
  [data-fin-right] section{padding-left:18px!important;padding-right:18px!important}
  [data-fin-left]{padding:24px 18px 32px!important}
  /* stack financing card grids and 2-up form fields on phones */
  [data-fin-cards]{grid-template-columns:1fr!important}
  [data-form-grid]{grid-template-columns:1fr!important}
  /* the green tear-clearance below inner-page heroes is excessive on phones */
  .pe-anim-fade > section:first-child:not(.pe-hero){padding-bottom:96px!important}
  /* gallery thumb rows and 2-up grids breathe a bit less */
  [data-hero-grid],[data-loc-grid]{gap:28px!important}
  /* announcement + portal bars: smaller text so they don't crowd */
  #pe-header > div:first-child{font-size:11.5px!important;padding:8px 14px!important}
}
@media (max-width:400px){
  h1{font-size:29px!important}
  .pe-hero .pe-anim-rise{padding:104px 16px 100px!important}
}

/* Mobile-only guards for Core Web Vitals: prevent accidental horizontal
   overflow and layout shifts from embeds, long labels, and form controls. */
@media (max-width:620px){
  html,body{max-width:100%;overflow-x:hidden}
  #app,main,section,[data-pad],[data-fin-hero],[data-map-layout],[data-listing-grid],[data-model-grid],[data-why-grid],[data-footer-grid]{max-width:100%;overflow-wrap:anywhere}
  #app [style*="grid-template-columns"]>*{min-width:0}
  #app iframe{display:block;width:100%;max-width:100%;border:0}
  #app input,#app textarea,#app select,#app button{max-width:100%}
  #app a{overflow-wrap:anywhere}
}

/* ---- Header: transparent nav + big logo over hero on home (top); solid compact bar on scroll ---- */
#pe-header{box-shadow:0 6px 22px rgba(1,58,51,.22);transition:box-shadow .4s ease}
#pe-navwrap{background:#014E44;transition:background .4s ease}
#pe-navrow{
  /* --pe-logo-aspect is the ONLY value on this block that differs between the five
     communities: each wordmark has its own width-to-height ratio (Indian Springs is
     nearly square, Wheatland is over twice as wide as it is tall). The ladder below
     therefore sets a target logo WIDTH and derives the height from it, so the centre
     gutter — and with it the room left for the two nav groups — comes out the same
     on every site instead of drifting with the wordmark's shape. */
  --pe-logo-aspect:2.064;
  --pe-logo-w:74px;                /* compact bar: inner pages, and home once scrolled */
  --pe-logo-gutter:calc(var(--pe-logo-w) + 50px);
  min-height:66px;
  display:grid;
  /* minmax(0,…) so a wide nav group cannot stretch its own column and push the
     middle gutter off-centre — the logo is centred on the ROW, so an off-centre
     gutter is what lets a nav item slide under it. */
  grid-template-columns:minmax(0,1fr) var(--pe-logo-gutter) minmax(0,1fr);
  transition:grid-template-columns .45s cubic-bezier(.2,.7,.2,1);
}
#pe-navrow > [data-desktop-nav]{grid-column:1;justify-self:start}
#pe-navrow > [data-nav-right]{grid-column:3;justify-self:end}
/* Never let a nav item or CTA wrap: a wrapped label silently grows the row, which
   breaks the negative margin that pulls the home hero up behind it. */
#pe-navrow [data-desktop-nav] a,
#pe-navrow [data-desktop-nav] button{white-space:nowrap}
#pe-navlogo{height:calc(var(--pe-logo-w) / var(--pe-logo-aspect));margin:9px 0;transition:height .45s cubic-bezier(.2,.7,.2,1)}
/* home page, before scrolling: transparent bar, no shadow, oversized logo hanging over the hero */
body[data-route="home"]:not(.pe-scrolled) #pe-navwrap{background:transparent}
body[data-route="home"]:not(.pe-scrolled) #pe-header{box-shadow:none}
body[data-route="home"]:not(.pe-scrolled) #pe-navrow{--pe-logo-w:226px}
/* Nav links tighten slightly on narrower desktops so the two groups stay inside
   their columns rather than reaching for the logo gutter. */
@media (max-width:1440px){
  #pe-navrow [data-desktop-nav] a[data-nav]{padding-left:10px;padding-right:10px;font-size:14px}
  #pe-navrow [data-desktop-nav] a[data-nav] .pe-nav-underline{left:10px;right:10px}
  /* The oversized home-hero logo has to come down with the viewport too, or its
     gutter eats the space the nav groups need. */
  body[data-route="home"]:not(.pe-scrolled) #pe-navrow{--pe-logo-w:169px}
  /* Both header CTAs get compact padding so the right-hand group fits inside its
     column with room to spare, rather than creeping toward the logo.
     !important because both CTAs carry inline styles, which otherwise win. */
  #pe-navrow [data-desktop-nav] .pe-hover-btn-gold,
  #pe-navrow [data-desktop-nav] .pe-hover-btn-outline{
    font-size:13.5px!important;
    padding:9px 13px!important;
    margin-left:5px!important;
  }
}
/* Below this the row simply cannot hold both nav groups, the two CTAs and a
   centred logo. Because the logo is centred, each side column is capped at half
   the row minus the gutter — so the wider right-hand group runs out of space well
   before the raw totals say it should. Hand over to the burger rather than let
   anything overlap. */
@media (max-width:1200px){
  [data-desktop-nav]{display:none!important}
  [data-desktop-cta]{display:none!important}
  [data-mobile-burger]{display:flex!important}
  [data-mobile-bar]{display:flex!important}
}
/* pull the home hero up so it sits behind the (transparent) nav row */
.pe-home-wrap{margin-top:-83px;position:relative;z-index:1}
/* footer torn-edge divider shows on inner pages only, not home */
body[data-route="home"] .pe-footer-tear,
body[data-route="map"] .pe-footer-tear{display:none}
@media (max-width:920px){
  body[data-route="home"]:not(.pe-scrolled) #pe-navrow{--pe-logo-w:117px}
}

/* ---- Hero: fills the viewport below the sticky announcement/portal bars, so the
   whole aerial (sky -> road) is visible and the road sits just above the curve.
   --pe-ann-h (announcement + portal height) is measured in app.js; 72px fallback. ---- */
.pe-hero{min-height:calc(100vh - var(--pe-ann-h,72px));min-height:calc(100svh - var(--pe-ann-h,72px))}
.pe-hero-media{position:absolute;inset:0;z-index:0}
.pe-hero-fallback{z-index:0}
.pe-hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1;opacity:0;transition:opacity .85s ease;pointer-events:none}
.pe-hero-video.is-ready{opacity:1}
@media (prefers-reduced-motion: reduce){
  .pe-hero-video{display:none}
}
.pe-section-hidden-admin{outline:2px dashed rgba(184,144,75,.85);outline-offset:4px;opacity:.55;filter:grayscale(.15)}
.pe-section-hide-btn{position:absolute;top:12px;right:12px;z-index:40;background:#013A28;color:#E0BD6E;border:1px solid rgba(224,189,110,.55);font:700 12px/1.2 inherit;padding:8px 12px;border-radius:10px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.28)}
.pe-section-hide-btn:hover{background:#014E44}
.pe-section-hide-btn:disabled{opacity:.85;cursor:default}
body:not(.pe-edit-on) .pe-section-hide-btn{display:none}

/* ============ Inline content editor (admin) ============ */
#pe-edit-toolbar{position:fixed;right:18px;bottom:18px;z-index:300;display:flex;gap:8px;align-items:center;background:rgba(1,40,35,.92);backdrop-filter:blur(6px);padding:8px 10px;border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.32);border:1px solid rgba(233,199,126,.35)}
.pe-edit-btn{background:#E0BD6E;color:#013A28;font-weight:800;font-size:13.5px;border:none;padding:10px 16px;border-radius:10px;cursor:pointer;font-family:inherit}
.pe-edit-btn.is-on{background:#9ED8B0;color:#013A28}
.pe-edit-link{color:#FEF9E6;font-size:12.5px;font-weight:600;text-decoration:none;padding:0 6px;opacity:.85}
.pe-edit-link:hover{opacity:1;text-decoration:underline}

/* highlight editable elements only while editing */
body.pe-edit-on [data-edit]{outline:1.5px dashed rgba(184,144,75,.6);outline-offset:3px;cursor:pointer;transition:outline-color .15s,background .15s}
body.pe-edit-on [data-edit]:hover{outline:2px solid #B8904B;background:rgba(224,189,110,.10)}
body.pe-edit-on [data-edit-type="text"]:hover::after{content:"✎ double-click";position:absolute;font-size:10px;font-weight:700;background:#013A28;color:#E0BD6E;padding:2px 6px;border-radius:5px;transform:translateY(-130%);pointer-events:none}
body.pe-edit-on [data-edit-type="image"]:hover{filter:brightness(.85)}
[data-edit].pe-editing{outline:2px solid #2E9E6B!important;background:rgba(46,158,107,.10);cursor:text}

#pe-edit-popover{position:absolute;z-index:320;background:#fff;border:1px solid #E4DCC8;border-radius:12px;box-shadow:0 18px 50px rgba(1,58,51,.28);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:280px}
#pe-edit-popover label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:#4d5e54}
#pe-edit-popover input{padding:9px 11px;border:1px solid #d9d2c2;border-radius:8px;font-size:13px;font-family:inherit;color:#142218}
#pe-edit-popover input:focus{outline:none;border-color:#B8904B;box-shadow:0 0 0 3px rgba(184,144,75,.15)}
.pe-pop-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:2px}
.pe-pop-actions button{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;border:1px solid #d9d2c2;background:#fff;color:#36352E}
.pe-pop-save{background:#014E44!important;color:#FEF9E6!important;border-color:#014E44!important}

.pe-edit-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);z-index:330;background:#013A28;color:#FEF9E6;font-size:13.5px;font-weight:600;padding:11px 20px;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.pe-edit-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.pe-edit-toast.is-error{background:#b83a2e}

/* editable collections: add / remove controls */
.pe-list-add{display:inline-flex;align-items:center;gap:6px;margin-top:6px;background:#014E44;color:#FEF9E6;font-weight:700;font-size:14px;padding:11px 18px;border-radius:10px;cursor:pointer;border:none;font-family:inherit}
.pe-list-add:hover{background:#0A5F53}
.pe-list-del{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:50%;background:#b83a2e;color:#fff;font-size:17px;line-height:1;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.pe-list-del:hover{background:#9b3025}
body.pe-edit-on [data-list-edit]{outline:1.5px dashed rgba(184,144,75,.6);outline-offset:3px;cursor:text;transition:outline-color .15s,background .15s}
body.pe-edit-on [data-list-edit]:hover{outline:2px solid #B8904B;background:rgba(224,189,110,.10)}

/* icon editing: clickable icon box + picker popover */
.pe-icon-box{width:44px;height:44px;border-radius:11px;background:#E9F0E6;border:1.5px dashed #B8904B;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.pe-icon-box:hover{background:#dcebd6}
.pe-icon-picker{padding:12px}
.pe-icon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;max-width:260px}
.pe-icon-opt{width:42px;height:42px;border-radius:9px;background:#FAF7EF;border:1px solid #E4DCC8;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:all .15s}
.pe-icon-opt:hover{background:#fff;border-color:#B8904B;transform:translateY(-1px)}
.pe-icon-opt.is-sel{background:#E9F0E6;border-color:#0A5F53;box-shadow:0 0 0 2px rgba(10,95,83,.2)}

/* Quiet re-render: when the same route re-renders (data load, edit toggle),
   update in place without replaying entrance/reveal animations (prevents the
   page appearing to load several times during boot). */
body.pe-quiet-render .pe-anim-fade,
body.pe-quiet-render .pe-anim-rise,
body.pe-quiet-render .pe-anim-rise-slow,
body.pe-quiet-render .pe-anim-pop{animation:none!important}
body.pe-quiet-render [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}

/* list-item image upload button (e.g. partner logos) */
.pe-list-imgbtn{width:72px;height:48px;flex-shrink:0;border:1.5px dashed #B8904B;border-radius:9px;background:#FAF7EF;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;overflow:hidden}
.pe-list-imgbtn img{max-width:100%;max-height:100%;object-fit:contain}
.pe-list-imgbtn span{font-size:11px;font-weight:700;color:#B8904B}
.pe-list-imgbtn:hover{background:#fff;border-color:#014E44}

/* "Change background" affordance for behind-content hero images (edit mode only) */
.pe-bg-edit-btn{display:none}
body.pe-edit-on .pe-bg-edit-btn{display:inline-flex;align-items:center;gap:7px;position:absolute;bottom:46px;left:50%;transform:translateX(-50%);z-index:6;background:rgba(1,40,35,.86);color:#E0BD6E;font-weight:700;font-size:13px;padding:10px 18px;border-radius:10px;border:1px solid rgba(224,189,110,.5);cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.3);backdrop-filter:blur(4px)}
body.pe-edit-on .pe-bg-edit-btn:hover{background:rgba(1,40,35,.96);color:#fff}

/* ---- Mobile menu: burger ⇄ cross icon + green header when open ---- */
.pe-burger-close{display:none}
body.pe-mobile-open .pe-burger-open{display:none}
body.pe-mobile-open .pe-burger-close{display:block}
/* keep the nav bar solid green while the menu is open (even on the transparent home hero) */
body.pe-mobile-open #pe-navwrap{background:#014E44!important}
body.pe-mobile-open #pe-header{box-shadow:0 6px 22px rgba(1,58,51,.22)!important}

/* Mortgage estimator presets: 1 = full row; 2 = half/half; 3–4 wrap to 2 cols */
.pe-calc-presets{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  width:100%;
}
.pe-calc-presets[data-preset-n="2"],
.pe-calc-presets[data-preset-n="3"],
.pe-calc-presets[data-preset-n="4"]{
  grid-template-columns:1fr 1fr;
}
/* lone 3rd model spans full second row so the name stays readable */
.pe-calc-presets[data-preset-n="3"] .pe-calc-preset:last-child{
  grid-column:1 / -1;
}
.pe-calc-preset{
  background:#F1ECDD;
  border:1px solid #E5DFD0;
  border-radius:10px;
  padding:12px 10px;
  text-align:center;
  min-width:0;
  width:100%;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.pe-calc-preset[data-active="true"]{
  background:#E9F0E6;
  border-color:#014E44;
  box-shadow:inset 0 0 0 1px #014E44;
}
.pe-calc-preset__name{
  font-size:12.5px;
  color:#76766C;
  font-weight:600;
  line-height:1.25;
  text-align:center;
}
.pe-calc-preset[data-active="true"] .pe-calc-preset__name{color:#014E44}
.pe-calc-preset__price{
  font-weight:800;
  color:#014E44;
  font-size:14.5px;
  margin-top:4px;
  text-align:center;
}

/* Closing costs pay / roll toggle + cash-at-closing card */
.pe-calc-toggle{
  display:flex;
  gap:6px;
  margin-top:8px;
}
.pe-calc-toggle__btn{
  flex:1;
  border-radius:9px;
  padding:10px 8px;
  font-weight:700;
  font-size:12.5px;
  border:1px solid #E5DFD0;
  background:#F1ECDD;
  color:#46453C;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
  cursor:pointer;
}
.pe-calc-toggle__btn[data-active="true"]{
  background:#014E44;
  border-color:#014E44;
  color:#F4EFE1;
}
.pe-calc-toggle__hint{
  font-size:11.5px;
  color:#6A695E;
  line-height:1.45;
  margin-top:8px;
}
.pe-calc-cash{
  background:#FAF7EF;
  border:1px solid #EAE3D2;
  border-radius:14px;
  padding:16px 18px 8px;
}
.pe-calc-cash__title{
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#014E44;
  margin-bottom:4px;
}
.pe-calc-cash__row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid #EFE7D6;
  font-size:12.5px;
  color:#6A695E;
}
.pe-calc-cash__row:last-child{border-bottom:none}
.pe-calc-cash__row .tnum{
  font-weight:700;
  color:#014E44;
  font-size:13px;
  flex-shrink:0;
}
.pe-calc-cash__row--emphasis{
  color:#014E44;
  font-weight:700;
}
.pe-calc-cash__row--emphasis .tnum{
  font-size:15px;
  color:#014E44;
}
@keyframes pe-calc-flash-kf{
  0%{color:#B8904B}
  100%{color:inherit}
}
.pe-calc-flash{
  animation:pe-calc-flash-kf .7s ease;
}

/* ---- Models comparison: stacked cards on phones (table doesn't fit) ---- */
.pe-compare-cards{display:none}
@media (max-width:760px){
  [data-compare-grid]{display:none!important}
  .pe-compare-cards{display:grid;grid-template-columns:1fr;gap:18px}
}
.pe-compare-card{background:#fff;border:1px solid #EAE3D2;border-radius:18px;overflow:hidden;box-shadow:0 8px 28px rgba(1,58,51,.08)}
.pe-compare-card__img{display:block;height:190px;overflow:hidden}
.pe-compare-card__img img{width:100%;height:100%;object-fit:cover}
.pe-compare-card__body{padding:18px 18px 20px}
.pe-compare-card__name{display:block;font-size:22px;font-weight:800;color:#014E44;line-height:1.1}
.pe-compare-card__price{font-family:'Montserrat',sans-serif;font-weight:800;font-size:26px;color:#014E44;margin-top:4px}
.pe-compare-card__specs{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:16px}
.pe-compare-card__specs > div{display:flex;flex-direction:column;background:#FAF7EF;border:1px solid #EFE7D6;border-radius:10px;padding:9px 12px}
.pe-compare-card__specs span{font-size:11px;font-weight:700;letter-spacing:.04em;color:#9b9384;text-transform:uppercase}
.pe-compare-card__specs strong{font-size:15px;font-weight:700;color:#46453C;margin-top:2px}
.pe-compare-card__actions{display:flex;gap:10px;margin-top:18px}
.pe-compare-card__actions a{flex:1;display:flex;align-items:center;justify-content:center;gap:6px}

/* ---- About Us page ---- */
.pe-about-photo{
  background:#fff;
  padding:14px 14px 0;
  border-radius:4px;
  box-shadow:0 26px 60px rgba(1,58,51,.22);
  transform:rotate(-2.2deg);
  max-width:520px;
  width:100%;
  margin:0;
}
.pe-about-photo figcaption{font-size:16px;color:#6A695E;text-align:center;padding:14px 6px 20px}
.pe-about-story{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px}
.pe-about-card{
  background:transparent;
  border:2px solid #014E44;
  border-radius:18px;
  padding:28px 30px;
}
.pe-about-card h3{font-size:24px;color:#014E44;line-height:1.22}
.pe-about-card p{font-size:16px;color:#54534A;line-height:1.8;margin-top:12px}
/* ---- Lifestyle collage (About) --------------------------------------------
   Tight rectangle mosaic, per Rick/Cheline's second reference (2026-08-26) —
   an earlier version put the featured photo in a circle over the centre and it
   read as broken, covering the middle of two photos. No circle now: the
   featured photo is simply the dominant tile, so "pick the featured image" still
   means something. Slots are placed by explicit --sN class, never nth-child, so
   the featured figure's DOM position can change without re-flowing the mosaic.
   Three layouts (5/6/7 photos) keep the packing tight at every supported count;
   the small ragged corners are deliberate and match the reference. */
.pe-collage{
  --pe-collage-u: clamp(30px, 3.6vw, 54px);   /* one grid row */
  --pe-collage-gap: clamp(8px, 0.85vw, 12px);
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:var(--pe-collage-u);
  gap:var(--pe-collage-gap);
}
.pe-collage__tile{margin:0;position:relative;overflow:hidden;border-radius:14px;background:#EFE7CE}
.pe-collage__tile img{display:block;width:100%;height:100%;object-fit:cover}
/* Focal point: a hard-cropped mosaic decapitates people unless the admin can
   say where the subject sits. Defaults to centre. */
.pe-collage__tile--f-top img{object-position:50% 12%}
.pe-collage__tile--f-center img{object-position:50% 50%}
.pe-collage__tile--f-bottom img{object-position:50% 88%}

/* Slot geometry. Two rules, and both matter:
   1. Every layout PACKS THE GRID COMPLETELY — no ragged corners. The first pass
      left holes (s1 starting at col 2, s3 at row 2) and it read as broken
      alignment rather than style.
   2. No tile is an extreme letterbox. The first pass had 7x3 and 8x3 tiles at
      roughly 3:1, which cropped the subject out of the cyclists and reenactment
      photos. Everything here sits between 1.19:1 and 1.62:1, and the featured
      tile is 4x the area of its neighbours so it still reads as featured.
   Unit maths at a 1180px container (col 87.3px, gap 12px, u 51px):
      3 cols = 286px   4 cols = 385px   6 cols = 584px   8 cols = 782px
      3 rows = 177px   4 rows = 240px   6 rows = 366px   8 rows = 492px
   Keep spans square-ish in cols:rows and the aspect stays ~1.6:1. */
/* 7 photos = featured + 6. 12x12, fully packed. */
.pe-collage--n7 .pe-collage__tile--feat{grid-column:1/9;grid-row:1/9}
.pe-collage--n7 .pe-collage__tile--s1{grid-column:9/13;grid-row:1/5}
.pe-collage--n7 .pe-collage__tile--s2{grid-column:9/13;grid-row:5/9}
.pe-collage--n7 .pe-collage__tile--s3{grid-column:1/4;grid-row:9/13}
.pe-collage--n7 .pe-collage__tile--s4{grid-column:4/7;grid-row:9/13}
.pe-collage--n7 .pe-collage__tile--s5{grid-column:7/10;grid-row:9/13}
.pe-collage--n7 .pe-collage__tile--s6{grid-column:10/13;grid-row:9/13}
/* 6 photos = featured + 5. 12x12, fully packed. */
.pe-collage--n6 .pe-collage__tile--feat{grid-column:1/9;grid-row:1/9}
.pe-collage--n6 .pe-collage__tile--s1{grid-column:9/13;grid-row:1/5}
.pe-collage--n6 .pe-collage__tile--s2{grid-column:9/13;grid-row:5/9}
.pe-collage--n6 .pe-collage__tile--s3{grid-column:1/5;grid-row:9/13}
.pe-collage--n6 .pe-collage__tile--s4{grid-column:5/9;grid-row:9/13}
.pe-collage--n6 .pe-collage__tile--s5{grid-column:9/13;grid-row:9/13}
/* 5 photos = featured + 4. 12x6, fully packed. */
.pe-collage--n5 .pe-collage__tile--feat{grid-column:4/10;grid-row:1/7}
.pe-collage--n5 .pe-collage__tile--s1{grid-column:1/4;grid-row:1/4}
.pe-collage--n5 .pe-collage__tile--s2{grid-column:1/4;grid-row:4/7}
.pe-collage--n5 .pe-collage__tile--s3{grid-column:10/13;grid-row:1/4}
.pe-collage--n5 .pe-collage__tile--s4{grid-column:10/13;grid-row:4/7}

/* Phones/small tablets: a 12-column mosaic is unreadable below ~860px, so it
   becomes a simple 2-up with the featured photo full width on top. */
@media (max-width:860px){
  .pe-collage{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(100px,27vw,136px);gap:10px}
  .pe-collage .pe-collage__tile{grid-column:auto;grid-row:auto}
  .pe-collage .pe-collage__tile--feat{grid-column:1/3;grid-row:span 2}
}

.pe-about-why{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pe-about-why__item{
  display:flex;
  align-items:flex-start;
  gap:16px;
  background:rgba(254,249,230,.05);
  border:1px solid rgba(216,183,119,.22);
  border-radius:16px;
  padding:20px 22px;
}
.pe-about-why__ico{
  width:48px;height:48px;flex-shrink:0;
  border-radius:50%;
  background:rgba(216,183,119,.14);
  display:inline-flex;align-items:center;justify-content:center;
}
@media (max-width:860px){
  .pe-about-why{grid-template-columns:1fr}
  .pe-about-photo{transform:rotate(-1.4deg);max-width:560px}
}
@media (max-width:620px){
  .pe-about-story{grid-template-columns:1fr;gap:16px}
  .pe-about-card{padding:22px 20px}
  .pe-about-card h3{font-size:20px}
  .pe-about-card p{font-size:15.5px}
  .pe-about-photo{transform:none;padding:10px 10px 0}
  .pe-about-photo figcaption{font-size:14.5px;padding:12px 4px 14px}
  .pe-about-why__item{padding:16px;gap:13px}
  .pe-about-why__ico{width:42px;height:42px}
  .pe-about-why__item span:last-child{font-size:15.5px!important}
  [data-hide-key="about.hero"]{padding-top:54px!important;padding-bottom:112px!important}
  [data-hide-key="about.hero"] p{font-size:16.5px!important;line-height:1.62!important}
}

/* ---- Legal pages (Privacy Policy) --------------------------------------- */
.pe-legal{--pe-legal-top:calc(var(--pe-ann-h,77px) + 99px);position:relative;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:252px 1fr;gap:48px;align-items:start}
.pe-legal__toc{position:sticky;top:var(--pe-legal-top);background:#fff;border:1px solid #EAE3D2;border-radius:18px;padding:20px 18px}
.pe-legal__toctitle{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#B8904B;margin:0 0 12px;list-style:none}
.pe-legal__toctitle::-webkit-details-marker{display:none}
@media (min-width:961px){.pe-legal__toctitle{pointer-events:none}}
.pe-legal__tocnav{display:flex;flex-direction:column;gap:2px}
.pe-legal__tocitem{display:block;font-size:13.5px;line-height:1.5;color:#54534A;padding:7px 10px;border-radius:9px;cursor:pointer;transition:background .18s ease,color .18s ease}
.pe-legal__tocitem:hover{background:#F7F2E3;color:#014E44}
.pe-legal__body{background:#fff;border:1px solid #EAE3D2;border-radius:22px;padding:44px 46px}
.pe-legal__sec{scroll-margin-top:var(--pe-legal-top)}
.pe-legal__sec+.pe-legal__sec{margin-top:36px;padding-top:32px;border-top:1px solid #F1EBDB}
.pe-legal__h2{display:flex;gap:14px;align-items:baseline;font-size:25px;line-height:1.24;color:#014E44;letter-spacing:-.01em}
.pe-legal__num{flex-shrink:0;font-size:13px;font-weight:800;color:#B8904B}
.pe-legal__h3{font-size:17px;color:#014E44;margin-top:26px}
.pe-legal__body p{font-size:15.5px;line-height:1.8;color:#54534A;margin-top:14px}
.pe-legal__list{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.pe-legal__list li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.75;color:#54534A}
.pe-legal__list li::before{content:"";position:absolute;left:2px;top:10px;width:7px;height:7px;border-radius:50%;background:#B8904B}
.pe-legal__card{margin-top:40px;background:#FBF7EA;border:1px solid #EAE3D2;border-radius:18px;padding:26px 28px}
.pe-legal__card h3{font-size:17px;color:#014E44}
.pe-legal__card p{margin-top:10px!important}
.pe-legal__card-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.pe-legal__card-links a{font-size:14.5px;font-weight:700;color:#014E44;background:#fff;border:1px solid #E3DAC4;border-radius:100px;padding:10px 18px;transition:border-color .18s ease,color .18s ease}
.pe-legal__card-links a:hover{border-color:#B8904B;color:#B8904B}
@media (max-width:960px){
  .pe-legal{grid-template-columns:1fr;gap:24px}
  .pe-legal__toc{position:static;padding:0 16px}
  .pe-legal__toctitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:15px 0;cursor:pointer}
  .pe-legal__toctitle::after{content:"";width:8px;height:8px;flex:none;margin-right:3px;border-right:2px solid #B8904B;border-bottom:2px solid #B8904B;transform:rotate(45deg);transition:transform .2s ease}
  .pe-legal__toc[open] .pe-legal__toctitle::after{transform:rotate(-135deg)}
  .pe-legal__tocnav{flex-direction:row;flex-wrap:wrap;gap:8px;padding-bottom:16px}
  .pe-legal__tocitem{font-size:12.5px;padding:11px 14px;border:1px solid #EDE5D3;background:#FBF7EA;border-radius:100px}
  .pe-legal__body{padding:34px 26px;border-radius:18px}
}
@media (max-width:620px){
  .pe-legal__sec{scroll-margin-top:18px}
  .pe-legal__body{padding:26px 20px}
  .pe-legal__h2{font-size:21px!important;gap:10px;align-items:flex-start}
  .pe-legal__h3{font-size:16px!important}
  .pe-legal__card h3{font-size:16px!important}
  .pe-legal__body p,.pe-legal__list li{font-size:15px}
  .pe-legal__card{padding:22px 20px}
  .pe-legal__card-links a{width:100%;text-align:center;font-size:13.5px;padding:11px 12px;overflow-wrap:break-word}
}

/* ---- Lifestyle: FAQ accordion on the green band ---- */
.pe-about-faq{margin-top:52px;padding-top:44px;border-top:1px solid rgba(216,183,119,.28)}
.pe-about-faq__list{display:flex;flex-direction:column;gap:12px;max-width:880px;margin:0 auto}
.pe-faq-card{background:rgba(254,249,230,.07);border:1px solid rgba(216,183,119,.3);border-radius:16px;overflow:hidden;transition:background .2s ease,border-color .2s ease}
.pe-faq-card:hover{background:rgba(254,249,230,.11);border-color:rgba(216,183,119,.5)}
.pe-faq-card.is-open{background:rgba(254,249,230,.11);border-color:rgba(216,183,119,.55)}
.pe-faq-card__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;text-align:left;background:none;border:none;cursor:pointer}
.pe-faq-card__q{font-size:17px;font-weight:700;color:#FEF9E6;line-height:1.4}
.pe-faq-card__ico{width:28px;height:28px;flex-shrink:0;border-radius:8px;background:rgba(216,183,119,.18);color:#D8B777;display:flex;align-items:center;justify-content:center;transition:transform .25s ease}
.pe-faq-card.is-open .pe-faq-card__ico{transform:rotate(45deg)}
.pe-faq-card__a p{padding:0 22px 22px;font-size:15px;color:#C6D6C8;line-height:1.75;margin:0}

/* ---- Lifestyle: nearby attractions, two-column accordion ---- */
.pe-nearby{display:grid;grid-template-columns:1fr 1fr;gap:0 44px;align-items:start}
.pe-nearby--edit{grid-template-columns:1fr}
.pe-nearby__col{list-style:none;margin:0;padding:0}
.pe-nearby__item{border-bottom:1px solid #E3D9BF}
.pe-nearby__item:first-child{border-top:1px solid #E3D9BF}
.pe-nearby__h{margin:0;font-size:inherit;font-weight:inherit}
.pe-nearby__btn{width:100%;display:flex;align-items:center;gap:14px;padding:19px 4px;text-align:left;background:none;border:none;cursor:pointer;color:#014E44}
.pe-nearby__name{font-size:17px;font-weight:700;color:#014E44;line-height:1.35}
.pe-nearby__time{margin-left:auto;flex-shrink:0;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#B8904B;white-space:nowrap}
.pe-nearby__chev{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(1,78,68,.28);display:flex;align-items:center;justify-content:center;color:#014E44;transition:transform .25s ease,background .2s ease,border-color .2s ease}
.pe-nearby__btn:hover .pe-nearby__chev{background:#F1E7C8;border-color:#B8904B}
.pe-nearby__item.is-open .pe-nearby__chev{transform:rotate(180deg);background:#F1E7C8;border-color:#B8904B}
.pe-nearby__panel{display:none}
.pe-nearby__item.is-open .pe-nearby__panel{display:block}
.pe-nearby__panel p{margin:0;padding:0 40px 22px 4px;font-size:15.5px;color:#54534A;line-height:1.75}
.pe-nearby__item--edit{position:relative;border:1px solid #EAE3D2;border-radius:16px;background:#fff;padding:18px 20px;margin-bottom:12px}

/* ---- /faq page ---- */
.pe-faqp{position:relative;max-width:900px;margin:0 auto}
.pe-faqp__group{margin-bottom:46px}
.pe-faqp__grouph{display:flex;align-items:baseline;gap:14px;font-size:27px;color:#014E44;line-height:1.2;margin-bottom:20px}
.pe-faqp__num{font-size:14px;font-weight:800;color:#B8904B;letter-spacing:.08em}
.pe-faqp__list{display:flex;flex-direction:column;gap:12px}
.pe-faqp__item{background:#fff;border:1px solid #EAE3D2;border-radius:16px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.pe-faqp__item:hover{border-color:#DCCFA8}
.pe-faqp__item.is-open{border-color:#D6C48F;box-shadow:0 2px 10px rgba(1,58,51,.06)}
.pe-faqp__h{margin:0;font-size:inherit;font-weight:inherit}
.pe-faqp__btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 22px;text-align:left;background:none;border:none;cursor:pointer}
.pe-faqp__q{font-size:16.5px;font-weight:700;color:#014E44;line-height:1.45}
.pe-faqp__ico{width:28px;height:28px;flex-shrink:0;border-radius:8px;background:#F1ECDD;color:#014E44;display:flex;align-items:center;justify-content:center;transition:transform .25s ease}
.pe-faqp__item.is-open .pe-faqp__ico{transform:rotate(45deg)}
.pe-faqp__a{display:none}
.pe-faqp__item.is-open .pe-faqp__a{display:block}
.pe-faqp__a p{margin:0;padding:0 22px 22px;font-size:15.5px;color:#54534A;line-height:1.75}
/* /faq edit mode: flat editable cards replace the accordion */
.pe-faqp__edit{position:relative;background:#fff;border:1px solid #EAE3D2;border-radius:16px;padding:16px 18px}
.pe-faqp__ctl{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.pe-faqp__ctl button{width:26px;height:26px;border-radius:8px;border:1px solid #E0D7C0;background:#F7F2E4;color:#014E44;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;font-family:inherit}
.pe-faqp__ctl button:hover:not(:disabled){background:#EFE7D2}
.pe-faqp__ctl button:disabled{opacity:.3;cursor:default}
.pe-faqp__ctl select{flex:1;min-width:0;font-family:inherit;font-size:12.5px;color:#54534A;border:1px solid #E0D7C0;border-radius:8px;background:#F7F2E4;padding:5px 8px;cursor:pointer}
.pe-faqp__ctl .pe-faqp__del{background:#b83a2e;border-color:#b83a2e;color:#fff;font-size:16px;font-weight:700}
.pe-faqp__ctl .pe-faqp__del:hover:not(:disabled){background:#9b3025}
.pe-faqp__editq{font-size:16.5px;font-weight:700;color:#014E44;line-height:1.45}
.pe-faqp__edita{font-size:15.5px;color:#54534A;line-height:1.75;margin-top:8px}
.pe-faqp__grouph--edit{align-items:center;gap:10px}
.pe-faqp__groupdel{width:24px;height:24px;border-radius:50%;border:none;background:#b83a2e;color:#fff;font-size:15px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;font-family:inherit}
.pe-faqp__groupdel:hover{background:#9b3025}
.pe-faqp__groupadd{margin-top:8px}

@media (max-width:860px){
  .pe-nearby{grid-template-columns:1fr;gap:0}
  .pe-nearby__col + .pe-nearby__col .pe-nearby__item:first-child{border-top:none}
  .pe-about-faq{margin-top:40px;padding-top:34px}
  .pe-nearby__btn{padding:17px 2px;gap:11px;flex-wrap:wrap}
  .pe-nearby__name{font-size:16px;flex:1 1 auto}
  .pe-nearby__time{font-size:11.5px;margin-left:0;order:3;flex-basis:100%}
  .pe-nearby__chev{margin-left:auto}
  .pe-nearby__panel p{padding:0 4px 18px;font-size:15px}
  .pe-faq-card__btn,.pe-faqp__btn{padding:17px 18px}
  .pe-faq-card__q,.pe-faqp__q{font-size:16px}
  .pe-faq-card__a p,.pe-faqp__a p{padding:0 18px 18px}
  .pe-faqp__grouph{font-size:23px;gap:11px}
}

/* Pathway grid on the home page (Wheatland: buy / lease-to-own / pricing / pride) */
.pe-paths-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media (max-width:1024px){.pe-paths-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.pe-paths-grid{grid-template-columns:1fr}}


/* The mobile nav links carry an inline `display:flex`, which outranks the user-agent
   `[hidden]{display:none}` rule. applyModelsNavVisibility() sets el.hidden = true to
   gate the models product line, so without this the gated "Home Models" row stayed
   visible in the drawer. Applies to any hidden element for the same reason. */
[hidden] { display: none !important; }

/* Lender program highlights — small factual bullets under each lender's blurb. */
.pe-lender-points{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.pe-lender-points li{position:relative;padding-left:17px;font-size:13.5px;color:#6A695E;line-height:1.5}
.pe-lender-points li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:#B8904B}

/* ---- RV sites page (/rv-park) ---------------------------------------- */
.pe-rv-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px}
.pe-rv-card{flex:0 1 calc((100% - 40px)/3);background:#fff;border:1px solid #EAE3D2;border-radius:18px;padding:26px 24px}
.pe-rv-card__ico{width:48px;height:48px;border-radius:13px;background:#E9F0E6;display:inline-flex;align-items:center;justify-content:center}
.pe-rv-explore{display:grid;grid-template-columns:1fr 1fr;gap:20px 26px}
.pe-rv-explore__item{border-left:2px solid rgba(216,183,119,.5);padding-left:14px}
@media (max-width:1024px){.pe-rv-card{flex-basis:calc((100% - 20px)/2)}}
@media (max-width:760px){.pe-rv-card{flex-basis:100%}.pe-rv-explore{grid-template-columns:1fr}}

/* Footer bottom-bar legal group (Privacy), moved out of Get in Touch. */
.pe-footer-legal{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.pe-footer-legal a{color:#7E9282;transition:color .18s ease}
.pe-footer-legal a:hover{color:#E0BD6E}
@media (max-width:760px){.pe-footer-legal{width:100%;order:3}}
@media (prefers-reduced-motion:reduce){.pe-footer-legal a{transition:none}}

/* ---- Get Started: announcement CTA + modal (ported from Penn 2026-08-27) ----
   The CTA is a SIBLING of #pe-announcement-bar, never a child: server/seo.js
   rewrites that bar's innerHTML from CMS settings and would delete it. */
/* Header "Reserve My Home": the quiet twin of the gold Schedule a Tour CTA. */
.pe-hover-btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.pe-hover-btn-outline:hover{background:rgba(224,189,110,.14);border-color:#E0BD6E;color:#FBF4DD}

.pe-announce-cta{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(224,189,110,.16);
  color:#F3D9A4;
  border:1px solid rgba(224,189,110,.5);
  font-size:12.5px;font-weight:700;letter-spacing:.02em;
  padding:4px 12px;border-radius:100px;
}
.pe-announce-cta:hover{background:#E0BD6E;color:#003F37;border-color:#E0BD6E;transform:translateY(-1px)}
.pe-announce-cta svg{transition:transform .18s cubic-bezier(.2,.7,.2,1)}
.pe-announce-cta:hover svg{transform:translateX(2px)}

body.pe-modal-open{overflow:hidden}
.pe-modal{
  position:fixed;inset:0;z-index:120;
  background:rgba(1,30,26,.62);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:5vh 18px 24px;overflow-y:auto;
  animation:pe-fade .18s ease;
}
.pe-modal__panel{
  position:relative;width:100%;max-width:600px;
  background:#FEF9E6;border-radius:20px;
  padding:34px 34px 30px;
  box-shadow:0 30px 80px rgba(1,30,26,.4);
  animation:pe-pop .22s cubic-bezier(.2,.7,.2,1);
}
.pe-modal__x{
  position:absolute;top:14px;right:14px;
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#6A695E;background:transparent;
  transition:background .18s ease,color .18s ease;
}
.pe-modal__x:hover{background:#EFE8D9;color:#014E44}
@media (max-width:620px){
  .pe-modal{padding:0}
  .pe-modal__panel{max-width:none;min-height:100%;border-radius:0;padding:26px 20px 30px}
  .pe-modal__panel [data-form-grid]{grid-template-columns:1fr!important}
}

/* Footer Get in Touch CTAs — <button>s styled to sit flush with the <a> links
   beside them (see the note beside them in index.html for why they are buttons). */
.pe-footer-cta{background:none;border:0;padding:0;margin:0;font:inherit;font-size:14px;color:#A9BBAD;text-align:left;cursor:pointer;transition:color .18s ease}
.pe-footer-cta:hover{color:#E0BD6E}
@media (prefers-reduced-motion:reduce){.pe-footer-cta{transition:none}}
