/* Transcribed from finalized-with-images/css/Privacy Policy.css (John-approved set).
   Base body/heading/link rules stripped — theme.css owns those. */
/* ============================================================
   Pinestraw Place | Privacy Policy
   https://pinestrawplacesc.com/privacy-policy/
   Production stylesheet for Privacy Policy.html — extracted from the approved
   build, plus mobile breakpoints (Elementor defaults: 1024px / 767px).
   Class names pp-N are positional and match the class attributes in
   Privacy Policy.html one-to-one. Companion design/token reference lives in
   /css-style-guides/.
   ============================================================ */

/* ---------- Brand tokens (reference — values are inlined in the rules below) ---------- */
:root {
  --charcoal:#141915; --charcoal-deep:#101511; --pine:#2D5441; --pine-row:#27493A;
  --pine-border:#234135; --green:#3A6B52; --gold:#F7B51C; --cream:#FFFBE6;
  --sage:#C8E6D8; --sage-panel:#EAF3EC; --body-light:#F7F5F0; --ink:#2C2218;
  --text:#4A3F35; --muted:#7A6E65; --divider:#D8CFAF; --hairline:#EFE8D0;
}

/* Photo placeholder — replace each .pp-img-slot with the real <img>.
   data-image-slot names the photo; aria-label carries the intended alt text. */
.pp-img-slot { width:100%; height:100%; min-height:120px; background:linear-gradient(135deg,#1E2A22 0%,#2D5441 100%); }

/* ---------- Page rules ---------- */
.pp-1 { background:#141915; min-height:100vh }
.pp-2 { position:relative }
.pp-3 { position:relative; min-height:380px; display:flex; align-items:center }
.pp-4 { position:absolute; inset:0 }
.pp-5 { position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,22,22,0.82) 0%, rgba(28,28,28,0.6) 55%, rgba(22,22,22,0.92) 100%); pointer-events:none }
.pp-6 { position:relative; z-index:2; width:100%; max-width:1080px; margin:0 auto; padding:186px 48px 56px; pointer-events:none }
.pp-7 { font-size:12px; color:rgba(200,230,216,0.85); pointer-events:auto }
.pp-8 { color:rgba(200,230,216,0.9) }
.pp-8:hover { color:#F7B51C !important; }
.pp-9 { color:#F7B51C; padding:0 6px }
.pp-10 { color:#FFFBE6 }
.pp-11 { display:flex; align-items:center; gap:14px; font-size:12px; font-weight:700; letter-spacing:0.3em; text-transform:uppercase; color:#C8E6D8; margin-top:22px }
.pp-12 { width:44px; height:1px; background:#F7B51C }
.pp-13 { font-family:'Playfair Display', serif; font-size:52px; font-weight:700; line-height:1.05; color:#FFFBE6; margin:16px 0 0; letter-spacing:-0.015em; max-width:760px }
.pp-14 { font-size:16.5px; line-height:1.65; color:rgba(255,251,230,0.88); max-width:620px; margin:18px 0 0; text-wrap:pretty }
.pp-15 { background:#F7F5F0; padding:56px 48px 76px }
.pp-16 { max-width:820px; margin:0 auto }
.pp-17 { background:#EAF3EC; border-radius:10px; padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap }
.pp-18 { font-size:13px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:#2D5441 }
.pp-19 { font-size:13px; color:#3A4A40 }
.pp-20 { font-size:16px; line-height:1.75; color:#3A4A40; margin:32px 0 0; text-wrap:pretty }
.pp-21 { color:#2D5441; font-weight:600 }
.pp-22 { display:flex; align-items:baseline; gap:14px; margin-top:44px; padding-bottom:12px; border-bottom:2px solid #2D5441 }
.pp-23 { font-family:'Playfair Display', serif; font-size:20px; font-weight:700; color:#F7B51C; background:#2D5441; border-radius:6px; padding:4px 12px; flex:none }
.pp-24 { font-family:'Playfair Display', serif; font-size:26px; font-weight:700; color:#2D5441; margin:0 }
.pp-25 { font-size:14px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:#3A6B52; margin:26px 0 0 }
.pp-26 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:14px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:10px }
.pp-27 { color:#2D5441 }
.pp-28 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:20px 0 0 }
.pp-29 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:14px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:8px }
.pp-30 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:20px 0 0; text-wrap:pretty }
.pp-31 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:20px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:10px }
.pp-32 { font-size:15.5px; line-height:1.75; color:#3A4A40; margin:16px 0 0; text-wrap:pretty }
.pp-33 { background:#2D5441; border-radius:12px; padding:40px 44px; margin-top:52px }
.pp-34 { display:flex; align-items:baseline; gap:14px }
.pp-35 { font-family:'Playfair Display', serif; font-size:20px; font-weight:700; color:#2D5441; background:#F7B51C; border-radius:6px; padding:4px 12px; flex:none }
.pp-36 { font-family:'Playfair Display', serif; font-size:26px; font-weight:700; color:#FFFBE6; margin:0 }
.pp-37 { font-size:15px; line-height:1.7; color:#C8E6D8; margin:16px 0 0 }
.pp-38 { display:flex; gap:40px; flex-wrap:wrap; margin-top:22px }
.pp-39 { font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:#C8E6D8 }
.pp-40 { font-size:15px; line-height:1.7; color:#FFFBE6; margin:8px 0 0 }
.pp-41 { font-size:15px; line-height:1.7; margin:8px 0 0 }
.pp-42 { color:#F7B51C; font-weight:700 }
.pp-42:hover { color:#FFFBE6 !important; }
.pp-43 { font-size:13.5px; line-height:1.7; color:#C8E6D8; margin:6px 0 0 }
.pp-44 { display:inline-block; background:#F7B51C; color:#2D5441; font-size:15px; font-weight:700; padding:15px 32px; border-radius:6px; margin-top:26px }
.pp-44:hover { background:#FFFBE6 !important; color:#2D5441 !important; }

/* ---------- Tablet — 1024px and below ---------- */
@media (max-width: 1024px) {
  .pp-3 { min-height:296px; }
  .pp-13 { font-size:41px; }
}

/* ---------- Mobile — 767px and below ---------- */
@media (max-width: 767px) {
  .pp-3 { min-height:209px; }
  .pp-6 { padding:93px 20px 40px; }
  .pp-11 { flex-wrap:wrap; }
  .pp-13 { font-size:30px; }
  .pp-15 { padding:40px 20px 55px; }
  .pp-22 { flex-wrap:wrap; }
  .pp-24 { font-size:21px; }
  .pp-33 { padding:40px 20px; }
  .pp-34 { flex-wrap:wrap; }
  .pp-36 { font-size:21px; }
  .pp-38 { gap:24px; }
  .pp-44 { padding:15px 20px; }
  .pp-img-slot { min-height:96px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; }
}

/* ---------- Print ---------- */
@media print {
  body { background:#fff; }
}


/* Injected-image sizing (2026-08-16): the design sized .pp-img-slot as an
   empty div; a real <img> must fill the same box by CROPPING, not squeezing.
   Matches the live site's object-fit treatment. */
img.pp-img-slot { width: 100%; height: 100%; object-fit: cover; display: block; }

/* John 2026-08-16: legal pages carry no image — plain brand band */
.pp-2 { background:linear-gradient(135deg,#1E2A22 0%,#2D5441 100%); }
.pp-2 .pp-img-slot { display:none; }


/* John 2026-08-16: uniform hero height on every page except homepage */
.pp-3 { min-height:520px; height:auto; }
@media (max-width:1024px) { .pp-3 { min-height:406px; } }
@media (max-width:767px) { .pp-3 { min-height:286px; } }

/* John 2026-08-16: legal band is a flat brand-pine panel — no photo, no scrim */
.pp-3 { background:linear-gradient(135deg,#1E2A22 0%,#2D5441 100%); }
.pp-5 { background:none; }
