/* Penn 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:#C9A058}
.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}

@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 80px!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 68px!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{min-height:66px}
#pe-navlogo{height:66px;margin:9px 0;transition:height .45s cubic-bezier(.2,.7,.2,1)}
#pe-navlogo.pe-logo-crop-fix{transform:scale(2);transform-origin:top center;margin-top:-18px;margin-bottom:-18px}
/* 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-navlogo{height:200px}
body[data-route="home"]:not(.pe-scrolled) #pe-navlogo.pe-logo-crop-fix{margin-top:-68px}
/* 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{display:none}
@media (max-width:920px){
  body[data-route="home"]:not(.pe-scrolled) #pe-navlogo{height:104px}
  body[data-route="home"]:not(.pe-scrolled) #pe-navlogo.pe-logo-crop-fix{margin-top:-32px}
}

/* ---- 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:460px;
  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:#fff;
  border:1px solid #EAE3D2;
  border-left:4px solid #B8904B;
  border-radius:18px;
  padding:28px 30px;
  box-shadow:0 10px 30px rgba(1,58,51,.06);
}
.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}
.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:520px}
}
@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}

@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}
}
