/* Penn Estates — global styles */

/* Brand fonts (self-hosted).
   WOFF2, split latin / latin-ext by unicode-range so a visitor only downloads the
   glyphs the page actually uses — the site copy is ASCII, so latin-ext is declared
   but never fetched. The .ttf is kept as a second src purely as a fallback for any
   browser without WOFF2 support; every current browser takes the woff2 and the ttf
   is never requested. Was 9 raw TrueType faces, 881 KB on the wire for one page
   load; the same page now pulls ~181 KB. */
@font-face{font-family:'Erstoria';src:url('assets/fonts/Erstoria.latin-ext.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Erstoria';src:url('assets/fonts/Erstoria.latin.woff2') format('woff2'),url('assets/fonts/Erstoria.ttf') format('truetype');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Regular.latin-ext.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Regular.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Italic.latin-ext.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Italic.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-Italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Medium.latin-ext.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Medium.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-MediumItalic.latin-ext.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-MediumItalic.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-MediumItalic.ttf') format('truetype');font-weight:500;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-SemiBold.latin-ext.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-SemiBold.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-SemiBold.ttf') format('truetype');font-weight:600;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Bold.latin-ext.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Bold.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-ExtraBold.latin-ext.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-ExtraBold.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-ExtraBold.ttf') format('truetype');font-weight:800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Black.latin-ext.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap;unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Montserrat';src:url('assets/fonts/Montserrat-Black.latin.woff2') format('woff2'),url('assets/fonts/Montserrat-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

: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}
/* A two-tone ring: the pale core reads on the dark green bands and the dark
   halo reads on cream. A single dark-green outline was invisible on every
   control sitting on a green ground — which is most of the CTAs. */
:focus-visible{outline:2px solid #FBF4DD;outline-offset:2px;box-shadow:0 0 0 4px rgba(1,40,35,.65)}
.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}

/* ---------------------------------------------------------------------------
   Button hover states, site-wide.
   Rick, 2026-08-20: "I would also add some hover state animation for the buttons
   across the site." Individual classes above already colour-shift specific
   buttons; this adds the shared lift + shadow to every button-shaped control so
   nothing is left flat. Applied broadly by selector rather than by hand-tagging
   each element, so new buttons inherit it automatically.
   --------------------------------------------------------------------------- */
.pe-hover-btn-dark,
.pe-hover-btn-gold,
.pe-hover-btn-cream,
.pe-hover-btn-outline,
.pe-cta-phone,
.pe-announce-cta,
[data-action="submit-contact"],
[data-action="submit-reserve"],
[data-action="submit-get-started"],
[data-action="reserve-next"],
[data-action="reserve-next-2"],
[data-action="scroll-calc"],
[data-action="open-get-started"]{
  transition:transform .18s cubic-bezier(.2,.7,.2,1),
             box-shadow .18s cubic-bezier(.2,.7,.2,1),
             background .2s ease,
             border-color .2s ease,
             color .2s ease;
  will-change:transform;
}
.pe-hover-btn-dark:hover,
.pe-hover-btn-gold:hover,
.pe-hover-btn-cream:hover,
.pe-hover-btn-outline:hover,
.pe-cta-phone:hover,
[data-action="submit-contact"]:hover,
[data-action="submit-reserve"]:hover,
[data-action="submit-get-started"]:hover,
[data-action="reserve-next"]:hover,
[data-action="reserve-next-2"]:hover,
[data-action="scroll-calc"]:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px rgba(1,58,51,.18);
}
/* Pressing should feel like pressing, not like a second hover. */
.pe-hover-btn-dark:active,
.pe-hover-btn-gold:active,
.pe-hover-btn-cream:active,
.pe-hover-btn-outline:active,
.pe-cta-phone:active,
.pe-announce-cta:active,
[data-action="submit-contact"]:active,
[data-action="submit-reserve"]:active,
[data-action="submit-get-started"]:active,
[data-action="reserve-next"]:active,
[data-action="reserve-next-2"]:active,
[data-action="scroll-calc"]:active,
[data-action="open-get-started"]:active{
  transform:translateY(0);
  box-shadow:0 3px 10px rgba(1,58,51,.16);
}
/* Outline CTA in the sticky header ("Reserve My Home"). */
.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}

/* Announcement-bar CTA ("Get Started"). */
.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)}

@media (prefers-reduced-motion: reduce){
  .pe-hover-btn-dark,.pe-hover-btn-gold,.pe-hover-btn-cream,.pe-hover-btn-outline,
  .pe-cta-phone,.pe-announce-cta,[data-action]{transition:background .2s ease,color .2s ease!important}
  .pe-hover-btn-dark:hover,.pe-hover-btn-gold:hover,.pe-hover-btn-cream:hover,
  .pe-hover-btn-outline:hover,.pe-cta-phone:hover,.pe-announce-cta:hover,
  [data-action]:hover{transform:none!important}
}

/* ---------------------------------------------------------------------------
   Get Started / Reserve My Home modal
   --------------------------------------------------------------------------- */
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}
}

.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}
/* With the drawer open the bottom action bar sat ON TOP of the last two menu
   items, so tapping "Financing" or "Contact" hit the bar instead. Same
   treatment the map route already uses. */
body.pe-mobile-open [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){
  /* overflow-x:hidden on BODY makes it a scroll container, which silently
     breaks position:sticky for everything inside it — the header scrolled off
     on every phone and never came back. The root element alone is enough:
     its overflow propagates to the viewport without creating that container. */
  html{max-width:100%;overflow-x:hidden}
  body{max-width:100%}
  #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:1.132;
  --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 gallery — one wide lead tile beside a 2x2 grid of supporting tiles. */
.pe-about-gallery{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:auto auto;gap:16px}
.pe-about-gallery__tile{margin:0}
.pe-about-gallery__tile--wide{grid-row:span 2}
.pe-about-gallery__tile--wide img{height:340px!important}
.pe-about-gallery figcaption{font-size:14.5px;color:#6A695E;padding:9px 2px 0;line-height:1.45}

/* ---- 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}
  .pe-about-gallery{grid-template-columns:1fr 1fr}
  .pe-about-gallery__tile--wide{grid-row:auto;grid-column:span 2}
  .pe-about-gallery__tile--wide img{height:260px!important}
}
@media (max-width:620px){
  .pe-about-story{grid-template-columns:1fr;gap:16px}
  .pe-about-gallery{grid-template-columns:1fr;gap:14px}
  .pe-about-gallery__tile--wide{grid-column:auto}
  .pe-about-gallery__tile--wide img{height:220px!important}
  .pe-about-gallery__tile img{height:190px!important}
  .pe-about-gallery figcaption{font-size:13.5px}
  .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}
}

/* 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 CTAs (Get Started / Reserve My Home) — <button> elements styled to sit
   flush with the plain <a> links beside them in the Get in Touch column. */
.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}}

/* Footer bottom-bar legal group (Privacy / Terms), 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}}

/* applyRvNavVisibility() sets .hidden on these when the RV park is not publicly
   enabled, but the link carries an inline style="display:flex", and an inline
   style beats the UA's [hidden]{display:none}. So the RV Park item stayed in the
   mobile menu and tapping it dropped the visitor back on the homepage — the site
   advertised a feature that does not exist. */
[data-rv-nav][hidden], [data-nav="rv"][hidden] { display: none !important; }
