/* ============================================================
   Dahlonega Property Management — custom art direction
   "The Steward" — investment-grade, institutional calm.
   Spectral + Archivo. Deep petrol / graphite / bronze / bone.
   DISTINCT from dahlonegasbest (Fraunces + Work Sans, ivory/pine/gold)
   and achasta.co (Cinzel, dark luxury). v1 2026-07-01
   ============================================================ */
:root{
  --pm-petrol:#0f3538;
  --pm-petrol-2:#12454a;
  --pm-graphite:#161f20;
  --pm-bronze:#b5813f;
  --pm-bronze-2:#d3a765;
  --pm-bronze-ink:#7d571f; /* darker bronze for small text on LIGHT backgrounds (>=4.5:1) */
  --pm-bone:#f4f1ea;
  --pm-bone-2:#eae3d5;
  --pm-card:#fbf9f4;
  --pm-ink:#18211f;
  --pm-muted:#5b6866;
  --pm-line:rgba(24,33,31,.13);
  --pm-line-d:rgba(255,255,255,.16);
}

/* ---- Full-bleed on the home page (scrollbar-safe: no 100vw hack) ----
   TT2025 nests global padding twice (main + inner group), which squeezes the
   post-content column. On the front page we neutralize that padding so the
   content chain is genuinely full width, and .pm-scope is a plain width:100%. */
.pm-scope{ width:100%; max-width:100%; margin:0; overflow-x:clip; }
body.home .wp-block-post-title,
body.home .wp-block-post-content > .wp-block-spacer:first-child{ display:none !important; }
body.home main,
body.home main .has-global-padding,
body.home .wp-block-post-content{ padding-left:0 !important; padding-right:0 !important; max-width:none !important; }
body.home main .alignfull{ margin-left:0 !important; margin-right:0 !important; }
body.home .wp-block-post-content{ margin-block:0 !important; }

/* ---- Site-wide typographic identity (elevates interior pages too) ---- */
body.pm, .pm-scope{ background:var(--pm-bone); color:var(--pm-ink);
  font-family:"Archivo",system-ui,-apple-system,sans-serif; font-size:17px; line-height:1.7;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.pm h1,.pm h2,.pm h3,.pm h4,.pm .pm-display{ font-family:"Spectral",Georgia,serif;
  font-weight:500; letter-spacing:-.012em; color:var(--pm-ink); line-height:1.12; }
.pm .entry-content{ max-width:760px; margin-inline:auto; }
.pm .entry-content h2{ font-size:2rem; margin-top:2.4em; }
.pm a:not(.pm-btn){ color:var(--pm-petrol); text-underline-offset:3px; }
/* buttons own their color regardless of the generic link rule */
.pm a.pm-btn--gold{ color:#1a120a; }
.pm a.pm-btn--ghost{ color:#fff; }
.pm a.pm-btn--ghost:hover{ color:var(--pm-bronze-2); }
.pm a.pm-btn--dark{ color:#fff; }

/* ---- Shared atoms ---- */
.pm-scope *{ box-sizing:border-box; }
.pm-wrap{ max-width:1220px; margin-inline:auto; padding-inline:clamp(20px,5vw,64px); }
.pm-eyebrow{ font-family:"Archivo",sans-serif; font-weight:600; font-size:.72rem;
  letter-spacing:.26em; text-transform:uppercase; color:var(--pm-bronze-ink); margin:0; }
.pm-eyebrow--light{ color:var(--pm-bronze-2); }
.pm-rule{ height:1px; background:var(--pm-line); border:0; margin:0; }
.pm-num{ font-family:"Spectral",serif; font-style:italic; font-weight:400;
  color:var(--pm-bronze); line-height:1; }

/* ---- Buttons ---- */
.pm-btn{ display:inline-flex; align-items:center; gap:.6rem; cursor:pointer;
  font-family:"Archivo",sans-serif; font-weight:600; font-size:.98rem; letter-spacing:.01em;
  padding:1rem 1.7rem; border-radius:3px; text-decoration:none; transition:all .22s ease;
  border:1.5px solid transparent; }
.pm-btn svg{ width:18px; height:18px; }
.pm-btn--gold{ background:var(--pm-bronze); color:#1a120a; border-color:var(--pm-bronze); }
.pm-btn--gold:hover{ background:var(--pm-bronze-2); border-color:var(--pm-bronze-2);
  transform:translateY(-1px); box-shadow:0 10px 26px rgba(15,53,56,.22); }
.pm-btn--ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.pm-btn--ghost:hover{ border-color:var(--pm-bronze-2); color:var(--pm-bronze-2); }
.pm-btn--dark{ background:var(--pm-petrol); color:#fff; border-color:var(--pm-petrol); }
.pm-btn--dark:hover{ background:var(--pm-petrol-2); border-color:var(--pm-petrol-2);
  transform:translateY(-1px); box-shadow:0 10px 26px rgba(15,53,56,.2); }

/* ---- Scroll reveal (progressive enhancement: hidden ONLY when .pm-js is set by JS) ---- */
.pm-js .pm-rise{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.pm-js .pm-rise.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .pm-js .pm-rise{ opacity:1 !important; transform:none !important; transition:none; } }

/* ============================================================
   HERO — editorial split: petrol panel + photograph
   ============================================================ */
.pm-hero{ display:grid; grid-template-columns:1.02fr 1.18fr; min-height:92vh; background:var(--pm-petrol); }
.pm-hero__panel{ position:relative; display:flex; flex-direction:column; justify-content:center;
  color:#fff; padding:clamp(2.4rem,5vw,4.5rem) clamp(1.5rem,4.5vw,4.2rem); }
.pm-hero__panel::before{ content:""; position:absolute; left:0; top:clamp(2.4rem,5vw,4.5rem);
  bottom:clamp(2.4rem,5vw,4.5rem); width:3px; background:var(--pm-bronze); }
.pm-hero h1{ color:#fff; font-size:clamp(2.7rem,4.7vw,4.4rem); font-weight:500;
  margin:1.1rem 0 1.3rem; max-width:15ch; }
.pm-hero h1 em{ font-style:italic; color:var(--pm-bronze-2); }
.pm-hero__sub{ max-width:44ch; font-size:clamp(1.02rem,1.35vw,1.22rem);
  color:rgba(255,255,255,.86); line-height:1.65; margin:0 0 2rem; }
.pm-hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; }
.pm-hero__trust{ display:flex; flex-wrap:wrap; gap:1.4rem 2rem; margin-top:2.6rem;
  padding-top:1.7rem; border-top:1px solid var(--pm-line-d); }
.pm-hero__trust span{ display:flex; align-items:center; gap:.55rem; font-size:.83rem;
  letter-spacing:.02em; color:rgba(255,255,255,.8); }
.pm-hero__trust svg{ width:16px; height:16px; color:var(--pm-bronze-2); flex:none; }
.pm-hero__media{ position:relative; overflow:hidden; }
.pm-hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pm-hero__media::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(15,53,56,.5) 0%, rgba(15,53,56,.12) 26%, rgba(15,53,56,0) 55%); }

/* ============================================================
   INTRO / lead statement
   ============================================================ */
.pm-intro{ background:var(--pm-bone); padding:clamp(4rem,8vw,7rem) 0; }
.pm-intro__grid{ display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:end; }
.pm-lead{ font-family:"Spectral",serif; font-weight:400; font-size:clamp(1.55rem,2.9vw,2.5rem);
  line-height:1.28; max-width:20ch; margin:1.4rem 0 0; }
.pm-lead em{ font-style:italic; color:var(--pm-petrol); }
.pm-intro__body p{ margin:0 0 1.1rem; color:var(--pm-muted); font-size:1.04rem; }
.pm-intro__body p:last-child{ margin-bottom:0; }

/* ============================================================
   PROCESS — 3-step hands-off rail
   ============================================================ */
.pm-process{ background:var(--pm-bone-2); padding:clamp(4rem,8vw,7rem) 0; }
.pm-process__head{ max-width:34ch; margin-bottom:clamp(2.4rem,5vw,3.6rem); }
.pm-process__head h2{ font-size:clamp(2rem,3.4vw,3rem); margin:.8rem 0 0; }
.pm-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.4rem,3vw,2.6rem); position:relative; }
.pm-step{ position:relative; padding-top:2.2rem; }
.pm-step::before{ content:""; position:absolute; top:11px; left:0; right:-2.6rem; height:2px;
  background:linear-gradient(90deg,var(--pm-bronze) 0%, rgba(181,129,63,.25) 100%); }
.pm-step:last-child::before{ right:0; }
.pm-step__dot{ position:absolute; top:0; left:0; width:22px; height:22px; border-radius:50%;
  background:var(--pm-bone-2); border:2px solid var(--pm-bronze); }
.pm-step__num{ font-family:"Spectral",serif; font-style:italic; font-size:1.5rem; color:var(--pm-bronze-ink); }
.pm-step h3{ font-size:1.32rem; margin:.5rem 0 .6rem; }
.pm-step p{ margin:0; color:var(--pm-muted); font-size:.98rem; }

/* ============================================================
   SERVICES — bento
   ============================================================ */
.pm-services{ background:var(--pm-bone); padding:clamp(4rem,8vw,7rem) 0; }
.pm-services__head{ display:flex; justify-content:space-between; align-items:flex-end;
  gap:2rem; flex-wrap:wrap; margin-bottom:clamp(2rem,4vw,3rem); }
.pm-services__head h2{ font-size:clamp(2rem,3.4vw,3rem); margin:.7rem 0 0; max-width:16ch; }
.pm-services__head p{ margin:0; color:var(--pm-muted); max-width:38ch; }
.pm-bento{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; gap:clamp(1rem,1.6vw,1.4rem); }
.pm-card{ background:var(--pm-card); border:1px solid var(--pm-line); border-radius:6px;
  padding:1.8rem 1.7rem; display:flex; flex-direction:column; gap:.6rem;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.pm-card:hover{ transform:translateY(-3px); box-shadow:0 16px 34px rgba(15,53,56,.1); border-color:rgba(181,129,63,.5); }
.pm-card__ic{ width:38px; height:38px; color:var(--pm-petrol); }
.pm-card__ic svg{ width:100%; height:100%; stroke-width:1.4; }
.pm-card h3{ font-size:1.22rem; margin:.2rem 0 0; }
.pm-card p{ margin:0; color:var(--pm-muted); font-size:.95rem; }
.pm-card--wide{ grid-column:span 2; }
.pm-card--img{ padding:0; overflow:hidden; position:relative; min-height:220px; grid-row:span 2; }
.pm-card--img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pm-card--img figcaption{ position:absolute; left:0; right:0; bottom:0; z-index:2; color:#fff;
  padding:1.4rem 1.5rem; font-family:"Spectral",serif; font-size:1.12rem; line-height:1.3;
  background:linear-gradient(0deg, rgba(15,53,56,.82) 0%, rgba(15,53,56,0) 100%); }

/* ============================================================
   COMPARE — self-manage vs managed
   ============================================================ */
.pm-compare{ background:var(--pm-bone-2); padding:clamp(4rem,8vw,7rem) 0; }
.pm-compare__head{ text-align:center; max-width:40ch; margin:0 auto clamp(2.2rem,4vw,3.2rem); }
.pm-compare__head h2{ font-size:clamp(2rem,3.4vw,3rem); margin:.7rem 0 0; }
.pm-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.2rem,2.5vw,2rem); align-items:stretch; }
.pm-col{ border-radius:8px; padding:clamp(1.8rem,3vw,2.6rem); }
.pm-col--self{ background:var(--pm-card); border:1px solid var(--pm-line); }
.pm-col--managed{ background:var(--pm-petrol); color:#fff; box-shadow:0 24px 50px rgba(15,53,56,.24); }
.pm-col__tag{ font-family:"Archivo",sans-serif; font-weight:600; font-size:.72rem;
  letter-spacing:.24em; text-transform:uppercase; }
.pm-col--self .pm-col__tag{ color:var(--pm-muted); }
.pm-col--managed .pm-col__tag{ color:var(--pm-bronze-2); }
.pm-col h3{ font-size:1.6rem; margin:.5rem 0 1.3rem; }
.pm-col--managed h3{ color:#fff; }
.pm-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; }
.pm-list li{ display:flex; gap:.75rem; align-items:flex-start; font-size:.98rem; line-height:1.5; }
.pm-list li svg{ width:20px; height:20px; flex:none; margin-top:2px; }
.pm-col--self .pm-list li{ color:var(--pm-muted); }
.pm-col--self .pm-list li svg{ color:#b9563f; }
.pm-col--managed .pm-list li{ color:rgba(255,255,255,.92); }
.pm-col--managed .pm-list li svg{ color:var(--pm-bronze-2); }
.pm-col__cta{ margin-top:1.7rem; }

/* ============================================================
   LOCAL — dark pledge band w/ cabin image
   ============================================================ */
.pm-local{ background:var(--pm-graphite); color:#fff; }
.pm-local__grid{ display:grid; grid-template-columns:1.05fr 1fr; align-items:stretch; }
.pm-local__media{ position:relative; overflow:hidden; min-height:340px; }
.pm-local__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pm-local__body{ padding:clamp(3rem,6vw,6rem) clamp(1.5rem,5vw,5rem); }
.pm-local__body h2{ color:#fff; font-size:clamp(2rem,3.2vw,2.9rem); margin:.9rem 0 1.6rem; max-width:16ch; }
.pm-local__pts{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1.4rem; }
.pm-local__pts li{ display:grid; grid-template-columns:auto 1fr; gap:1rem; }
.pm-local__pts h3{ color:#fff; font-size:1.15rem; margin:0 0 .3rem; font-weight:500; }
.pm-local__pts p{ margin:0; color:rgba(255,255,255,.72); font-size:.96rem; }
.pm-local__pts .pm-num{ font-size:1.4rem; }

/* ============================================================
   FAQ
   ============================================================ */
.pm-faq{ background:var(--pm-bone); padding:clamp(4rem,8vw,7rem) 0; }
.pm-faq__grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.pm-faq__head h2{ font-size:clamp(2rem,3.4vw,3rem); margin:.7rem 0 1rem; }
.pm-faq__head p{ color:var(--pm-muted); margin:0; }
.pm-qa{ border-top:1px solid var(--pm-line); }
.pm-qa details{ padding:1.25rem 0; }
.pm-qa summary{ cursor:pointer; list-style:none; display:flex; justify-content:space-between;
  gap:1rem; align-items:center; font-family:"Spectral",serif; font-size:1.2rem; color:var(--pm-ink); }
.pm-qa summary::-webkit-details-marker{ display:none; }
.pm-qa summary .pm-qa__sign{ font-family:"Archivo",sans-serif; font-size:1.5rem; color:var(--pm-bronze);
  transition:transform .25s ease; flex:none; }
.pm-qa details[open] summary .pm-qa__sign{ transform:rotate(45deg); }
.pm-qa p{ margin:.9rem 0 0; color:var(--pm-muted); font-size:1rem; max-width:60ch; }

/* ============================================================
   FINAL CTA
   ============================================================ */
.pm-final{ background:var(--pm-petrol); color:#fff; padding:clamp(4rem,8vw,7rem) 0; text-align:center; }
.pm-final h2{ color:#fff; font-size:clamp(2.1rem,3.8vw,3.3rem); margin:1rem auto 1.1rem; max-width:20ch; }
.pm-final p{ max-width:52ch; margin:0 auto 2rem; color:rgba(255,255,255,.82); font-size:1.08rem; }
.pm-final__cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .pm-hero{ grid-template-columns:1fr; min-height:0; }
  .pm-hero__panel{ order:2; padding-block:clamp(2.4rem,7vw,3.4rem); }
  .pm-hero__media{ order:1; min-height:52vh; }
  .pm-hero__media img{ position:static; height:52vh; }
  .pm-intro__grid,.pm-faq__grid,.pm-local__grid,.pm-cols{ grid-template-columns:1fr; }
  .pm-local__media{ min-height:44vh; }
  .pm-steps{ grid-template-columns:1fr; gap:2.2rem; }
  .pm-step::before{ display:none; }
  .pm-bento{ grid-template-columns:repeat(2,1fr); }
  .pm-card--img{ grid-row:span 1; grid-column:span 2; min-height:260px; }
}
@media (max-width:560px){
  .pm-bento{ grid-template-columns:1fr; }
  .pm-card--wide,.pm-card--img{ grid-column:span 1; }
  .pm-hero__trust{ gap:.9rem 1.4rem; }
  .pm-btn{ width:100%; justify-content:center; }
  .pm-hero__cta .pm-btn{ width:100%; }
}

/* ============================================================
   GAP FIX — kill the theme's vertical global spacing above the
   hero on the home page (main margin-top + inner group padding-top)
   ============================================================ */
body.home main{ margin-top:0 !important; padding-top:0 !important; }
body.home main .has-global-padding{ padding-top:0 !important; }

/* ============================================================
   HEADER (custom template part)
   ============================================================ */
body.pm header.wp-block-template-part{ background:var(--pm-bone); border-bottom:1px solid var(--pm-line); padding:0 !important; margin:0 !important; }
.pm-head{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
  max-width:1220px; margin-inline:auto; padding:.85rem clamp(20px,5vw,64px); }
.pm-logo{ display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; }
.pm-logo__mark{ flex:none; display:block; }
.pm-logo__wm{ display:flex; flex-direction:column; line-height:1.05; }
.pm-logo__k{ font-family:"Archivo",sans-serif; font-weight:600; font-size:.6rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--pm-bronze); }
.pm-head .pm-logo__k{ color:var(--pm-bronze-ink); } /* header logo eyebrow on light bg needs >=4.5:1 */
.pm-logo__s{ font-family:"Spectral",serif; font-weight:500; font-size:1.14rem; color:var(--pm-ink); }
.pm-head__nav{ display:flex; align-items:center; gap:1.5rem; }
.pm-head__nav a{ font-family:"Archivo",sans-serif; font-weight:500; font-size:.95rem; color:var(--pm-ink);
  text-decoration:none; transition:color .2s ease; }
.pm-head__nav a:hover{ color:var(--pm-bronze); }
.pm-head__cta{ background:var(--pm-petrol); color:#fff !important; padding:.62rem 1.15rem; border-radius:3px;
  transition:background .2s ease, color .2s ease; }
.pm-head__cta:hover{ background:var(--pm-bronze); color:#1a120a !important; }

/* ============================================================
   FOOTER (custom template part) + mandated GPR anchor restyle
   ============================================================ */
body.pm footer.wp-block-template-part{ background:var(--pm-graphite); padding:0 !important; margin:0 !important; }
.pm-foot{ background:var(--pm-graphite); color:rgba(255,255,255,.82); padding-top:clamp(3rem,6vw,4.5rem); }
.pm-foot__grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr; gap:2.5rem; padding-bottom:2.6rem; }
.pm-foot__brand .pm-logo__s{ color:#fff; }
.pm-foot__brand p{ margin:1.1rem 0 0; max-width:40ch; color:rgba(255,255,255,.58); font-size:.94rem; line-height:1.65; }
.pm-foot__col h3{ color:#fff; font-family:"Archivo",sans-serif; font-size:.7rem; letter-spacing:.2em;
  text-transform:uppercase; margin:.2rem 0 1.1rem; font-weight:600; }
.pm-foot__col a{ display:block; color:rgba(255,255,255,.72) !important; text-decoration:none; margin-bottom:.65rem;
  font-size:.96rem; transition:color .2s ease; }
.pm-foot__col a:hover{ color:var(--pm-bronze-2) !important; }
.pm-foot__bar{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem;
  border-top:1px solid rgba(255,255,255,.12); padding-block:1.4rem; font-size:.82rem; color:rgba(255,255,255,.5); }
/* mandated GPR anchor line (mu-plugin) — reskin to live inside the dark footer */
body.pm .gpr-anchor{ background:var(--pm-graphite) !important; color:rgba(255,255,255,.6) !important;
  border-top:1px solid rgba(255,255,255,.12) !important; font-size:.85rem !important; }
body.pm .gpr-anchor a{ color:var(--pm-bronze-2) !important; }

@media (max-width:760px){
  .pm-foot__grid{ grid-template-columns:1fr; gap:1.9rem; }
  .pm-logo__s{ font-size:1.04rem; }
}
@media (max-width:430px){
  .pm-head__nav{ gap:.9rem; }
  .pm-head__nav a:not(.pm-head__cta){ display:none; }
}

/* ============================================================
   ============  ELEVATION LAYER (v2 "$20K" pass)  ============
   Cinematic hero, filmic grain, editorial quote break,
   crafted hover choreography, signature mountain motif.
   All motion gated behind .pm-js + prefers-reduced-motion.
   ============================================================ */
:root{
  --pm-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --pm-shadow-lg:0 24px 60px -18px rgba(15,53,56,.28);
  --pm-shadow-md:0 14px 34px -14px rgba(15,53,56,.22);
}

/* ---- filmic grain on dark surfaces (very subtle) ---- */
.pm-hero__panel, .pm-local, .pm-final, .pm-quote, .pm-col--managed{ position:relative; }
.pm-hero__panel::after, .pm-local::after, .pm-final::before, .pm-col--managed::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background-image:var(--pm-grain); background-size:180px; opacity:.05; mix-blend-mode:overlay; }
.pm-hero__panel > *, .pm-local__grid, .pm-final > *, .pm-col--managed > *{ position:relative; z-index:2; }

/* ---- HERO: gradient depth + ken-burns + gold seam + entrance ---- */
.pm-hero__panel{ background:
  radial-gradient(120% 90% at 0% 0%, rgba(18,69,74,.85) 0%, rgba(15,53,56,0) 60%),
  linear-gradient(180deg, #103a3e 0%, #0d3033 100%); }
.pm-hero__media::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:1px; z-index:3;
  background:linear-gradient(180deg, rgba(211,167,101,0), rgba(211,167,101,.6) 40%, rgba(211,167,101,0)); }
.pm-hero__media img{ transform:scale(1.06); transition:transform 1s ease; }
.pm-js .pm-hero__media img{ animation:pmKen 26s ease-in-out 1s infinite alternate; }
@keyframes pmKen{ from{ transform:scale(1.06); } to{ transform:scale(1.14) translateY(-1.5%); } }

@keyframes pmRise{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
.pm-js .pm-hero__panel > *{ opacity:0; animation:pmRise .8s cubic-bezier(.2,.7,.2,1) forwards; }
.pm-js .pm-hero__panel > *:nth-child(1){ animation-delay:.08s; }
.pm-js .pm-hero__panel > *:nth-child(2){ animation-delay:.16s; }
.pm-js .pm-hero__panel > *:nth-child(3){ animation-delay:.26s; }
.pm-js .pm-hero__panel > *:nth-child(4){ animation-delay:.36s; }
.pm-js .pm-hero__panel > *:nth-child(5){ animation-delay:.46s; }
.pm-hero__panel::before{ transform-origin:top; }
.pm-js .pm-hero__panel::before{ animation:pmBar 1s ease .1s both; }
@keyframes pmBar{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }

/* ---- signature: gold mountain-line motif ---- */
.pm-peaks{ display:block; width:96px; height:auto; margin:0 0 1.2rem; }
.pm-peaks path{ fill:none; stroke:var(--pm-bronze-2); stroke-width:1.4; opacity:.9; }

/* ---- INTRO: accent underline flourish ---- */
.pm-lead em{ position:relative; white-space:nowrap; }
.pm-lead em::after{ content:""; position:absolute; left:0; right:0; bottom:-.08em; height:2px;
  background:linear-gradient(90deg,var(--pm-bronze),rgba(181,129,63,0)); transform:scaleX(0); transform-origin:left; }
.pm-js .pm-intro__grid.is-in .pm-lead em::after{ animation:pmUnder .7s ease .4s forwards; }
@keyframes pmUnder{ to{ transform:scaleX(1); } }

/* ---- PROCESS: connector line draws in on reveal + step hover ---- */
.pm-step::before{ transform-origin:left; }
.pm-js .pm-step::before{ transform:scaleX(0); transition:transform .9s cubic-bezier(.2,.7,.2,1) .15s; }
.pm-js .pm-step.is-in::before{ transform:scaleX(1); }
.pm-step__dot{ transition:background .3s ease .5s, box-shadow .3s ease; }
.pm-js .pm-step.is-in .pm-step__dot{ background:var(--pm-bronze); box-shadow:0 0 0 5px rgba(181,129,63,.16); }

/* ---- SERVICES: crafted card + bento image zoom ---- */
.pm-card{ position:relative; overflow:hidden; box-shadow:0 1px 0 rgba(24,33,31,.03); }
.pm-card::after{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--pm-bronze);
  transition:width .35s cubic-bezier(.2,.7,.2,1); z-index:3; }
.pm-card:hover{ box-shadow:var(--pm-shadow-md); }
.pm-card:hover::after{ width:100%; }
.pm-card__ic{ transition:transform .35s ease, color .3s ease; }
.pm-card:hover .pm-card__ic{ transform:translateY(-2px); color:var(--pm-bronze-ink); }
.pm-card--img::after{ display:none; }
.pm-card--img img{ transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.pm-card--img:hover img{ transform:scale(1.06); }

/* ============================================================
   QUOTE BREAK (full-bleed editorial)
   ============================================================ */
.pm-quote{ overflow:hidden; min-height:clamp(420px,62vh,660px); display:flex; align-items:center; color:#fff; }
.pm-quote__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
  transform:scale(1.05); }
.pm-js .pm-quote__bg{ animation:pmKen 30s ease-in-out infinite alternate; }
.pm-quote::before{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(9,26,28,.9) 0%, rgba(11,38,40,.66) 46%, rgba(11,38,40,.22) 100%); }
.pm-quote__inner{ position:relative; z-index:2; padding-block:clamp(3rem,6vw,5rem); }
.pm-quote .pm-peaks{ margin-bottom:1.6rem; }
.pm-quote .pm-peaks path{ stroke:var(--pm-bronze-2); }
.pm-quote__text{ font-family:"Spectral",serif; font-weight:400; font-style:italic;
  font-size:clamp(1.7rem,3.7vw,3.1rem); line-height:1.26; max-width:24ch; margin:0 0 1.7rem; color:#fff; }
.pm-quote__cite{ display:flex; align-items:center; gap:.9rem; margin:0; color:rgba(255,255,255,.82); font-size:.98rem; }
.pm-quote__cite b{ font-family:"Archivo",sans-serif; font-weight:600; font-size:.72rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--pm-bronze-2); }
.pm-quote__cite span{ width:34px; height:1px; background:var(--pm-bronze-2); flex:none; }

/* ============================================================
   COMPARE: managed card glow + recommendation badge
   ============================================================ */
.pm-col--managed{ background:
  radial-gradient(120% 80% at 100% 0%, rgba(18,69,74,.9) 0%, rgba(15,53,56,0) 55%),
  linear-gradient(160deg,#12454a 0%,#0e3336 100%);
  box-shadow:var(--pm-shadow-lg); }
.pm-col--managed::before{ content:""; position:absolute; inset:0; border-radius:8px;
  border:1px solid rgba(211,167,101,.28); pointer-events:none; z-index:2; }
.pm-badge{ position:absolute; top:-.85rem; right:1.6rem; z-index:3;
  background:var(--pm-bronze); color:#1a120a; font-family:"Archivo",sans-serif; font-weight:700;
  font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; padding:.42rem .85rem; border-radius:100px;
  box-shadow:0 8px 20px rgba(15,53,56,.3); }
.pm-col{ transition:transform .3s ease; }
.pm-col--managed:hover{ transform:translateY(-3px); }

/* ---- LOCAL: gradient depth + framed image ---- */
.pm-local{ background:
  radial-gradient(90% 120% at 100% 0%, rgba(30,44,46,.9) 0%, rgba(22,31,32,0) 60%), var(--pm-graphite); }
.pm-local__media::after{ content:""; position:absolute; inset:14px; border:1px solid rgba(211,167,101,.4);
  z-index:2; pointer-events:none; }
.pm-local__media img{ transition:transform 1s ease; }
.pm-js .pm-local__media img{ animation:pmKen 32s ease-in-out infinite alternate; }

/* ---- FAQ: crafted rows ---- */
.pm-qa details{ transition:background .25s ease; padding-inline:.2rem; border-radius:6px; }
.pm-qa summary{ padding-block:.2rem; }
.pm-qa details[open]{ background:rgba(181,129,63,.05); }
.pm-qa summary:hover{ color:var(--pm-bronze-ink); }

/* ---- FINAL CTA: gradient depth + gold glow ---- */
.pm-final{ background:
  radial-gradient(70% 130% at 50% 0%, rgba(18,69,74,.9) 0%, rgba(15,53,56,0) 60%),
  linear-gradient(180deg,#103a3e,#0c2c2f); position:relative; }
.pm-final h2{ position:relative; }
.pm-final h2::after{ content:""; display:block; width:60px; height:2px; margin:1.3rem auto 0;
  background:linear-gradient(90deg,rgba(181,129,63,0),var(--pm-bronze-2),rgba(181,129,63,0)); }

/* ---- MICRO-INTERACTIONS ---- */
.pm-head__nav a:not(.pm-head__cta){ position:relative; }
.pm-head__nav a:not(.pm-head__cta)::after{ content:""; position:absolute; left:0; right:0; bottom:-4px; height:1.5px;
  background:var(--pm-bronze); transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.pm-head__nav a:not(.pm-head__cta):hover::after{ transform:scaleX(1); transform-origin:left; }
.pm-btn svg{ transition:transform .25s ease; }
.pm-btn--gold:hover svg{ transform:translateX(4px); }
.pm-btn--gold{ background-image:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0)); }

/* ---- section rhythm: a touch more air on the marquee sections ---- */
.pm-services{ padding-block:clamp(4.5rem,9vw,8rem); }
.pm-compare{ padding-block:clamp(4.5rem,9vw,8rem); }

/* ============================================================
   REDUCED MOTION + RESPONSIVE GUARDS
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  .pm-js .pm-hero__media img, .pm-js .pm-quote__bg, .pm-js .pm-local__media img{ animation:none; transform:scale(1.04); }
  .pm-js .pm-hero__panel > *{ opacity:1; animation:none; }
  .pm-js .pm-hero__panel::before{ animation:none; transform:none; }
  .pm-js .pm-step::before{ transition:none; transform:scaleX(1); }
  .pm-js .pm-step.is-in .pm-step__dot{ transition:none; }
  .pm-lead em::after{ transform:scaleX(1); animation:none; }
}
@media (max-width:960px){
  .pm-local__media::after{ inset:10px; }
  .pm-quote{ min-height:52vh; }
  .pm-quote__text{ max-width:100%; }
}
