/* ==========================================================================
   Pind Portraits — section styles.
   Every section is a Pind widget that renders its own <section class="pp-section pp-*">,
   so the selectors below do not depend on Elementor's wrapper markup.
   Brand tokens (:root --pp-*) are printed by inc/customizer.php; defaults here are a fallback.
   ========================================================================== */
:root {
  --pp-cream: #EFE3CC; --pp-sand: #E6DCC6; --pp-brown: #2E2317; --pp-ink: #33291C; --pp-body: #4A3E2E;
  --pp-tan: #8A6A4A; --pp-paper: #FBF3E2; --pp-btn-text: #F1E7D4; --pp-tab: #E8DCC4; --pp-hover: #C2A176; --pp-shade: #23160C;
  --pp-brown-rgb: 46,35,23; --pp-paper-rgb: 251,243,226; --pp-shade-rgb: 35,22,12; --pp-tab-rgb: 232,220,196;
  --pp-serif: "Cormorant", Georgia, serif; --pp-script: "Italianno", cursive; --pp-gurmukhi: "Baloo Paaji 2", "Noto Serif Gurmukhi", serif;
  --pp-display-weight: 300; --pp-body-weight: 400; --pp-display-tracking: .12em; --pp-display-case: uppercase; --pp-scale: 1;
  --pp-hair: .4; --pp-radius: 0px; --pp-logo-h: 74px;
  --pp-rv-dur: 1.1s; --pp-rv-dist: 36px; --pp-rv-ease: cubic-bezier(.22,.61,.36,1); --pp-rv-stagger: .12s; --pp-rv-delay: 0s;
}
body { background: var(--pp-cream); }
.pp-section { position: relative; box-sizing: border-box; background: var(--sec-bg, transparent); font-family: var(--pp-serif); color: var(--pp-body); border-radius: 0; }
.pp-section *, .pp-section *::before, .pp-section *::after, .pp-header, .pp-header * { box-sizing: border-box; }
.pp-section img, .pp-header img { display: block; max-width: 100%; height: auto; border-radius: var(--pp-radius); }
.pp-section figure { margin: 0; }
.pp-section a, .pp-header a { text-decoration: none; }
.pp-header a:hover, .pp-header a:focus { text-decoration: none; }
.pp-con--section, .e-con.pp-con { padding: 0 !important; --gap: 0; --row-gap: 0; --column-gap: 0; }
.e-con.pp-con > .elementor-widget, .e-con.pp-con > .e-con-inner > .elementor-widget { width: 100% !important; margin: 0 !important; }
.pp-section .elementor-widget-container { width: 100%; }

/* shared type */
.pp-display { font-family: var(--pp-serif); font-weight: var(--pp-display-weight); text-transform: var(--pp-display-case); letter-spacing: var(--pp-display-tracking); line-height: 1.14; color: var(--pp-brown); margin: 0; }
.pp-body { font-family: var(--pp-serif); font-weight: var(--pp-body-weight); font-size: calc(clamp(17px, 1.3vw, 20px) * var(--pp-scale)); line-height: 1.85; color: var(--pp-body); margin: 0; }
.pp-verse { font-family: var(--pp-gurmukhi); font-weight: 400; margin: 0; }
.pp-script { font-family: var(--pp-script); font-style: normal; font-weight: 400; font-size: 1.5em; line-height: .9; text-transform: none; letter-spacing: .01em; }

/* outline button (Story, Boli) */
.pp-btn { --btn: var(--pp-brown); --btn-hover: var(--pp-brown); --btn-hover-text: var(--pp-btn-text);
  display: inline-block; white-space: nowrap; padding: 15px 36px; background: none; border: 1px solid var(--btn); border-radius: var(--pp-radius); color: var(--btn);
  font-family: var(--pp-serif); font-weight: 400; font-size: calc(15px * var(--pp-scale)); letter-spacing: .18em; text-transform: uppercase; line-height: 1.2; cursor: pointer; transition: background .3s, color .3s, border-color .3s; }
.pp-btn:hover, .pp-btn:focus-visible { background: var(--btn-hover); border-color: var(--btn-hover); color: var(--btn-hover-text); outline: 0; }
.pp-btn--sm { padding: 14px 32px; font-size: calc(14px * var(--pp-scale)); letter-spacing: .2em; }

/* ==========================================================================
   1. HERO
   ========================================================================== */
.pp-hero { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; overflow: hidden; background: var(--pp-brown); color: var(--pp-paper); }
.pp-slider { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: var(--pp-brown); --pp-shade-top: .4; --pp-shade-bot: .72; --pp-bright: .88; --pp-sat: .95; --pp-dur: 2.9s; --pp-int: 7s; --pp-zoom: 1.1; }
.pp-slider::after { content: ""; position: absolute; inset: 0; z-index: 30; pointer-events: none;
  background: linear-gradient(180deg, rgba(var(--pp-shade-rgb), var(--pp-shade-top)) 0%, rgba(var(--pp-shade-rgb), calc(var(--pp-shade-top) * .55)) 35%, rgba(var(--pp-shade-rgb), var(--pp-shade-bot)) 100%); }
.pp-slide-item { position: absolute; inset: 0; overflow: hidden; }
.pp-slide-item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 30%; border-radius: 0; filter: brightness(var(--pp-bright)) saturate(var(--pp-sat)); }
.pp-slider-count { position: absolute; right: clamp(20px, 5vw, 64px); bottom: 28px; z-index: 31; font-family: var(--pp-serif); font-size: 13px; letter-spacing: .28em; color: rgba(var(--pp-paper-rgb), .85); }
.pp-slider-arrow { position: absolute; top: 50%; z-index: 32; transform: translateY(-50%); width: 44px; height: 44px; background: none; border: 1px solid rgba(var(--pp-paper-rgb), .6); border-radius: 0; color: var(--pp-paper); font-family: var(--pp-serif); font-size: 18px; cursor: pointer; opacity: .75; transition: opacity .3s, background .3s; }
.pp-slider-arrow:hover { opacity: 1; background: rgba(255,255,255,.12); }
.pp-slider-prev { left: clamp(14px, 3vw, 40px); } .pp-slider-next { right: clamp(14px, 3vw, 40px); }

/* -- effects: crossfade (+zoom) -- */
.pp-slider[data-effect="fade"] .pp-slide-item, .pp-slider[data-effect="fade-zoom"] .pp-slide-item, .pp-slider[data-effect="kenburns"] .pp-slide-item, .pp-slider[data-effect="blur"] .pp-slide-item, .pp-slider[data-effect="zoom-out"] .pp-slide-item { opacity: 0; transition: opacity var(--pp-dur) ease-in-out; }
.pp-slider[data-effect="fade"] .is-prev, .pp-slider[data-effect="fade-zoom"] .is-prev, .pp-slider[data-effect="kenburns"] .is-prev, .pp-slider[data-effect="blur"] .is-prev, .pp-slider[data-effect="zoom-out"] .is-prev { opacity: 1; z-index: 1; transition: none; }
.pp-slider[data-effect="fade"] .is-active, .pp-slider[data-effect="fade-zoom"] .is-active, .pp-slider[data-effect="kenburns"] .is-active, .pp-slider[data-effect="blur"] .is-active, .pp-slider[data-effect="zoom-out"] .is-active { opacity: 1; z-index: 2; }
.pp-slider[data-effect="fade-zoom"] .pp-slide-item img { transform: scale(1); transition: none; }
.pp-slider[data-effect="fade-zoom"] .is-active img { transform: scale(var(--pp-zoom)); transition: transform calc(var(--pp-int) + var(--pp-dur)) linear; }
.pp-slider[data-effect="fade-zoom"] .is-prev img { transform: scale(var(--pp-zoom)); }
/* -- ken burns: pan alternates direction per slide -- */
.pp-slider[data-effect="kenburns"] .pp-slide-item { --kb-x: 2.5%; --kb-y: -1.5%; }
.pp-slider[data-effect="kenburns"] .pp-slide-item:nth-child(even) { --kb-x: -2.5%; --kb-y: 1.5%; }
.pp-slider[data-effect="kenburns"] .pp-slide-item img { transform: scale(1.02) translate(0,0); transition: none; }
.pp-slider[data-effect="kenburns"] .is-active img, .pp-slider[data-effect="kenburns"] .is-prev img { transform: scale(var(--pp-zoom)) translate(var(--kb-x), var(--kb-y)); }
.pp-slider[data-effect="kenburns"] .is-active img { transition: transform calc(var(--pp-int) + var(--pp-dur)) linear; }
/* -- blur crossfade -- */
.pp-slider[data-effect="blur"] .pp-slide-item img { filter: brightness(var(--pp-bright)) saturate(var(--pp-sat)) blur(14px); transform: scale(1.06); transition: filter var(--pp-dur) ease, transform var(--pp-dur) ease; }
.pp-slider[data-effect="blur"] .is-active img, .pp-slider[data-effect="blur"] .is-prev img { filter: brightness(var(--pp-bright)) saturate(var(--pp-sat)) blur(0); transform: scale(1); }
/* -- zoom-out reveal -- */
.pp-slider[data-effect="zoom-out"] .pp-slide-item img { transform: scale(var(--pp-zoom)); transition: transform var(--pp-dur) cubic-bezier(.22,.61,.36,1); }
.pp-slider[data-effect="zoom-out"] .is-active img, .pp-slider[data-effect="zoom-out"] .is-prev img { transform: scale(1); }
/* -- slide / slide-up -- */
.pp-slider[data-effect="slide"] .pp-slide-item { transform: translateX(100%); }
.pp-slider[data-effect="slide"] .is-active { transform: translateX(0); z-index: 2; transition: transform var(--pp-dur) cubic-bezier(.65,0,.35,1); }
.pp-slider[data-effect="slide"] .is-prev { transform: translateX(-100%); z-index: 1; transition: transform var(--pp-dur) cubic-bezier(.65,0,.35,1); }
.pp-slider[data-effect="slide-up"] .pp-slide-item { transform: translateY(100%); }
.pp-slider[data-effect="slide-up"] .is-active { transform: translateY(0); z-index: 2; transition: transform var(--pp-dur) cubic-bezier(.65,0,.35,1); }
.pp-slider[data-effect="slide-up"] .is-prev { transform: translateY(-18%); z-index: 1; transition: transform var(--pp-dur) cubic-bezier(.65,0,.35,1); }
/* -- curtain -- */
.pp-slider[data-effect="curtain"] .pp-slide-item { clip-path: inset(0 0 0 100%); }
.pp-slider[data-effect="curtain"] .is-prev { clip-path: inset(0); z-index: 1; }
.pp-slider[data-effect="curtain"] .is-active { clip-path: inset(0); z-index: 2; transition: clip-path var(--pp-dur) cubic-bezier(.77,0,.18,1); }
/* -- album page turn (the prototype's behaviour) -- */
.pp-slider[data-effect="page-turn"] { perspective: 2200px; perspective-origin: 0% 50%; }
.pp-slider[data-effect="page-turn"] .pp-slide-item { transform-origin: left center; backface-visibility: hidden; border-left: 1px solid rgba(var(--pp-paper-rgb), .55); box-shadow: -14px 0 30px rgba(0,0,0,.4);
  transform: translateX(calc(var(--pos) * 22px)) scale(calc(1 - var(--pos) * .015)); z-index: calc(10 - var(--pos)); transition: transform var(--pp-dur) cubic-bezier(.42,0,.25,1); }
.pp-slider[data-effect="page-turn"] .is-prev { transform: rotateY(-104deg) rotateZ(-2.5deg) translateZ(24px); z-index: 20; }
.pp-slider .pp-snap { transition: none !important; }

/* nav */
.pp-nav { position: relative; z-index: 40; display: flex; align-items: center; justify-content: space-between; padding: 24px clamp(20px, 5vw, 64px); }
.pp-brand { display: flex; align-items: center; gap: 16px; padding: 10px 22px 10px 14px; color: inherit; }
.pp-brand.has-glow { background: radial-gradient(ellipse at center, rgba(var(--pp-shade-rgb), .34) 0%, rgba(var(--pp-shade-rgb), .16) 62%, rgba(var(--pp-shade-rgb), 0) 82%); }
.pp-section .pp-logo, .pp-header .pp-logo { height: var(--pp-logo-h); width: auto; max-width: none; border-radius: 0; filter: drop-shadow(0 2px 6px rgba(0,0,0,.4)); }
.pp-wordmark { display: flex; flex-direction: column; gap: 5px; }
.pp-wm-name { white-space: nowrap; font-family: var(--pp-serif); font-weight: 400; font-size: calc(26px * var(--pp-scale)); letter-spacing: .26em; text-transform: uppercase; color: var(--pp-paper); line-height: 1; }
.pp-wm-sub { white-space: nowrap; font-family: var(--pp-serif); font-weight: 400; font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: rgba(var(--pp-paper-rgb), .8); line-height: 1; }
.pp-menu-btn { --btn: rgba(255,255,255,.7); width: 44px; height: 44px; padding: 0; display: flex; align-items: center; justify-content: center; background: none; border: 1px solid var(--btn); border-radius: 0; color: #fff; cursor: pointer; transition: background .3s; }
.pp-menu-btn:hover, .pp-menu-btn:focus-visible { background: rgba(255,255,255,.12); outline: 0; }
.pp-hero-content { position: relative; z-index: 40; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; text-align: center; padding: 48px clamp(20px, 6vw, 80px); }
.pp-hero--center .pp-hero-content { justify-content: center; }
.pp-hero-title { font-family: var(--pp-serif); font-weight: var(--pp-display-weight); letter-spacing: var(--pp-display-tracking); text-transform: var(--pp-display-case); font-size: calc(clamp(42px, 6.5vw, 88px) * var(--pp-scale)); line-height: 1.1; color: var(--pp-paper); margin: 0; }

/* ---- site header (separate from the hero) ---- */
.pp-header { --hdr-bg: transparent; position: relative; z-index: 60; width: 100%; background: var(--hdr-bg); color: var(--pp-paper); font-family: var(--pp-serif); transition: background .4s, box-shadow .4s; }
.pp-header .pp-nav { padding: 24px clamp(20px, 5vw, 64px); }
.pp-header--overlay { position: absolute; top: 0; left: 0; right: 0; }
.pp-header--solid { --hdr-bg: var(--pp-brown); }
.pp-header--cream { --hdr-bg: var(--pp-cream); color: var(--pp-brown); }
.pp-header--cream .pp-wm-name, .pp-header--cream .pp-inline-menu a { color: var(--pp-brown); }
.pp-header--cream .pp-wm-sub { color: rgba(var(--pp-brown-rgb), .7); }
.pp-header--cream .pp-menu-btn { --btn: rgba(var(--pp-brown-rgb), .6); color: var(--pp-brown); }
.pp-header--cream .pp-menu-btn:hover { background: rgba(var(--pp-brown-rgb), .08); }
.pp-header--cream .pp-logo { filter: none; }
.pp-header.is-sticky { position: fixed; top: 0; left: 0; right: 0; }
.pp-header.is-sticky.is-scrolled { --hdr-bg: var(--pp-brown); box-shadow: 0 6px 24px rgba(0,0,0,.18); }
.pp-header.is-sticky.is-scrolled .pp-nav { padding-top: 12px; padding-bottom: 12px; }
.pp-header.is-sticky.is-scrolled .pp-logo { height: calc(var(--pp-logo-h) * .7); }
.pp-header.is-sticky.is-scrolled .pp-brand.has-glow { background: none; }
.admin-bar .pp-header.is-sticky, .admin-bar .pp-header--overlay { top: 32px; }
@media (max-width: 782px) { .admin-bar .pp-header.is-sticky, .admin-bar .pp-header--overlay { top: 46px; } }
body.pp-header-overlay .pp-hero .pp-hero-spacer { height: calc(var(--pp-logo-h) + 68px); }
.pp-nav-right { display: flex; align-items: center; gap: 18px; }
.pp-inline-menu { display: none; }
.pp-header.has-inline .pp-inline-menu { display: block; }
.pp-inline-menu ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 34px; }
.pp-inline-menu a { white-space: nowrap; font-family: var(--pp-serif); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; color: var(--pp-paper); text-decoration: none; transition: color .3s; }
.pp-inline-menu a:hover { color: var(--pp-hover); }
.pp-btn--nav { --btn: rgba(var(--pp-paper-rgb), .75); --btn-hover: var(--pp-paper); --btn-hover-text: var(--pp-brown); color: var(--pp-paper); padding: 12px 22px; font-size: 13px; }
.pp-header--cream .pp-btn--nav { --btn: var(--pp-brown); --btn-hover: var(--pp-brown); --btn-hover-text: var(--pp-btn-text); color: var(--pp-brown); }
@media (max-width: 860px) { .pp-header.has-inline .pp-inline-menu, .pp-btn--nav { display: none; } }
/* header widget placed in Elementor */
.pp-headerbar { padding: 0; }
.pp-headerbar--overlay { height: 0; overflow: visible; }
.pp-headerbar .pp-header--widget.pp-header--overlay { position: absolute; }
/* hide Astra's own header/footer when the Pind ones are on */
.pp-no-astra-header #masthead .ast-main-header-wrap, .pp-no-astra-header #masthead .ast-above-header-wrap, .pp-no-astra-header #masthead .ast-below-header-wrap, .pp-no-astra-header .ast-mobile-header-wrap { display: none !important; }
.pp-no-astra-footer #colophon .site-footer-wrap, .pp-no-astra-footer .site-footer .ast-builder-grid-row-container, .pp-no-astra-footer .site-footer .site-primary-footer-wrap, .pp-no-astra-footer .site-footer .site-above-footer-wrap, .pp-no-astra-footer .site-footer .site-below-footer-wrap { display: none !important; }
.pp-credit--site { margin: 0; padding: 14px; background: var(--pp-sand); }
/* Astra content wrappers must not pad or constrain the sections */
body:has(.pp-section) #content .ast-container, body:has(.pp-section) #primary, body:has(.pp-section) .site-content, body:has(.pp-section) .entry-content { max-width: none; padding-left: 0; padding-right: 0; margin: 0; }
body:has(.pp-section) #content > .ast-container { width: 100%; }
body:has(.pp-section) .ast-single-post .entry-header, body:has(.pp-section) .entry-header { display: none; }

/* overlay menu */
.pp-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(var(--pp-brown-rgb), .97); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 40px; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.pp-overlay.is-open { opacity: 1; visibility: visible; }
.pp-overlay ul { list-style: none; margin: 0; padding: 0; text-align: center; display: flex; flex-direction: column; gap: 22px; }
.pp-overlay li { transform: translateY(14px); opacity: 0; transition: transform .6s var(--pp-rv-ease), opacity .6s; }
.pp-overlay.is-open li { transform: none; opacity: 1; }
.pp-overlay.is-open li:nth-child(2) { transition-delay: .06s; } .pp-overlay.is-open li:nth-child(3) { transition-delay: .12s; } .pp-overlay.is-open li:nth-child(4) { transition-delay: .18s; } .pp-overlay.is-open li:nth-child(5) { transition-delay: .24s; } .pp-overlay.is-open li:nth-child(n+6) { transition-delay: .3s; }
.pp-overlay a { font-family: var(--pp-serif); font-weight: var(--pp-display-weight); font-size: calc(clamp(26px, 3.4vw, 44px) * var(--pp-scale)); letter-spacing: .14em; text-transform: uppercase; color: var(--pp-paper); text-decoration: none; transition: color .3s; }
.pp-overlay a:hover, .pp-overlay a:focus-visible { color: var(--pp-hover); outline: 0; }
.pp-overlay-handle { font-family: var(--pp-script) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: clamp(28px, 3vw, 40px) !important; color: var(--pp-tan) !important; }
.pp-overlay-close { position: absolute; top: 28px; right: clamp(20px, 5vw, 64px); width: 44px; height: 44px; background: none; border: 1px solid rgba(var(--pp-paper-rgb), .6); border-radius: 0; color: var(--pp-paper); font-size: 26px; line-height: 1; cursor: pointer; }
body.pp-menu-open { overflow: hidden; }

/* ==========================================================================
   2. STORY
   ========================================================================== */
.pp-story { --hair: rgba(var(--pp-brown-rgb), var(--pp-hair)); --overlap: 48px; background: var(--sec-bg, var(--pp-cream)); padding: clamp(56px, 8vw, 112px) clamp(20px, 6vw, 96px) clamp(80px, 9vw, 130px); }
.pp-story-top { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1.4fr); gap: clamp(28px, 4vw, 56px); align-items: end; }
.pp-story-copy { display: flex; flex-direction: column; align-items: flex-start; }
.pp-story-title { letter-spacing: .14em; font-size: calc(clamp(30px, 3.8vw, 56px) * var(--pp-scale)); max-width: 26ch; }
.pp-story-text { margin-top: 26px; max-width: 46ch; }
.pp-story-copy .pp-btn { margin-top: clamp(36px, 5vw, 60px); }
.pp-story-pair { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
.pp-est { position: absolute; right: 6px; bottom: 0; z-index: 3; writing-mode: vertical-rl; font-family: var(--pp-serif); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: rgba(var(--pp-brown-rgb), .55); }
.pp-tall { position: relative; z-index: 1; }
.pp-tall::before { content: ""; position: absolute; left: -20px; top: -20px; right: 26px; bottom: 26px; border: 1px solid var(--hair); pointer-events: none; z-index: -1; }
.pp-tall img { width: 100%; aspect-ratio: 3 / 4.5; object-fit: cover; }
.pp-pair-script { position: absolute; left: 4%; bottom: -46px; z-index: 4; font-family: var(--pp-script); font-size: calc(clamp(44px, 5vw, 76px) * var(--pp-scale)); color: var(--pp-tan); line-height: 1; pointer-events: none; }
.pp-section .pp-short { position: relative; z-index: 2; margin-top: clamp(64px, 10vw, 150px); margin-left: calc(var(--overlap) * -1); box-shadow: -14px -14px 0 0 var(--sec-bg, var(--pp-cream)); }
.pp-short img { width: 100%; aspect-ratio: 3 / 3.5; object-fit: cover; }

/* ==========================================================================
   3. SETS
   ========================================================================== */
.pp-sets { background: var(--sec-bg, var(--pp-brown)); padding: clamp(48px, 7vw, 96px) clamp(20px, 5vw, 72px); }
.pp-sets-grid { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); column-gap: clamp(20px, 3vw, 44px); row-gap: clamp(40px, 5vw, 72px); }
.pp-set-card { position: relative; padding: 20px 34px 0 0; }
.pp-set-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.pp-set-link { display: block; }
.pp-set-cap { position: absolute; right: 0; top: 0; z-index: 2; writing-mode: vertical-rl; white-space: nowrap; background: var(--pp-brown); border: 1px solid rgba(var(--pp-tab-rgb), .6); padding: 26px 12px 30px; font-family: var(--pp-serif); font-weight: var(--pp-display-weight); text-transform: uppercase; letter-spacing: .26em; font-size: calc(clamp(13px, 1.1vw, 16px) * var(--pp-scale)); color: var(--pp-tab); }

/* ==========================================================================
   4. SUHAG BAND
   ========================================================================== */
.pp-suhag { --shade: .5; --align: left; min-height: clamp(420px, 52vw, 640px); display: flex; align-items: center; justify-content: var(--align); overflow: hidden; background: var(--sec-bg, var(--pp-brown)); padding: clamp(40px, 6vw, 80px) clamp(20px, 6vw, 80px); }
.pp-suhag-bg { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
.pp-suhag.has-parallax .pp-suhag-bg { inset: -12% 0; height: 124%; will-change: transform; }
.pp-suhag::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(var(--pp-shade-rgb), var(--shade)) 0%, rgba(var(--pp-shade-rgb), calc(var(--shade) * .7)) 50%, rgba(var(--pp-shade-rgb), calc(var(--shade) * 1.2)) 100%); }
.pp-suhag-verse { position: relative; z-index: 2; text-align: var(--align); font-size: calc(clamp(20px, 2vw, 30px) * var(--pp-scale)); line-height: 2; color: var(--pp-paper); text-shadow: 0 2px 14px rgba(0,0,0,.6); max-width: 24ch; text-wrap: pretty; }

/* ==========================================================================
   5. BOLI
   ========================================================================== */
.pp-boli { --hair: rgba(var(--pp-brown-rgb), .55); background: var(--sec-bg, var(--pp-sand)); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
.pp-boli-copy { padding: clamp(48px, 7vw, 104px) clamp(24px, 5vw, 80px); border-right: 1px solid var(--hair); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.pp-boli.is-flipped .pp-boli-copy { order: 2; border-right: 0; border-left: 1px solid var(--hair); }
.pp-boli-verse { font-size: calc(clamp(17px, 1.6vw, 24px) * var(--pp-scale)); line-height: 2.1; color: var(--pp-ink); }
.pp-boli-copy .pp-btn { margin-top: clamp(28px, 4vw, 44px); }
.pp-boli-door { padding: clamp(28px, 4vw, 56px) clamp(20px, 4vw, 56px) 0; display: flex; align-items: flex-end; }
.pp-frame { position: relative; width: 100%; padding: 18px; }
.pp-frame.has-brackets::before, .pp-frame.has-brackets::after { content: ""; position: absolute; width: 58px; height: 58px; pointer-events: none; }
.pp-frame.has-brackets::before { left: 0; top: 0; border-left: 1px solid var(--hair); border-top: 1px solid var(--hair); }
.pp-frame.has-brackets::after { right: 0; bottom: 0; border-right: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.pp-frame img { width: 100%; aspect-ratio: 3 / 4.1; object-fit: cover; }

/* ==========================================================================
   6. KIND WORDS
   ========================================================================== */
.pp-words { --dash: rgba(var(--pp-brown-rgb), .3); background: var(--sec-bg, var(--pp-cream)); padding: clamp(64px, 9vw, 130px) clamp(20px, 6vw, 88px); display: flex; flex-direction: column; align-items: center; text-align: center; }
.pp-kw-head { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pp-kw-title { font-family: var(--pp-script); font-weight: 400; font-size: calc(clamp(38px, 4.4vw, 64px) * var(--pp-scale)); line-height: 1; letter-spacing: .01em; color: var(--pp-brown); margin: 0; text-transform: none; }
.pp-kw-sub { font-family: var(--pp-serif); font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var(--pp-tan); margin: 0; }
.pp-kw-list { max-width: 62ch; display: flex; flex-direction: column; align-items: center; }
.pp-kw-item { display: none; flex-direction: column; align-items: center; padding-top: clamp(30px, 4.5vw, 58px); }
.pp-kw-item.is-active { display: flex; }
.pp-kw-list[data-effect="rise"] .pp-kw-item.is-active { animation: ppRise .9s ease; }
.pp-kw-list[data-effect="fade"] .pp-kw-item.is-active { animation: ppFadeIn .9s ease; }
.pp-kw-list[data-effect="blur"] .pp-kw-item.is-active { animation: ppBlurIn 1s ease; }
@keyframes ppRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes ppFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes ppBlurIn { from { opacity: 0; filter: blur(8px); } to { opacity: 1; filter: blur(0); } }
.pp-kw-item blockquote { margin: 0; padding: 0; border: 0; background: none; font-family: var(--pp-serif); font-style: italic; font-weight: 400; font-size: calc(clamp(21px, 2.3vw, 34px) * var(--pp-scale)); line-height: 1.62; color: var(--pp-ink); text-wrap: pretty; quotes: none; }
.pp-kw-item blockquote::before, .pp-kw-item blockquote::after { content: none; }
.pp-kw-who { margin-top: clamp(24px, 3.5vw, 40px); display: flex; flex-direction: column; align-items: center; gap: 6px; }
.pp-kw-name { font-family: var(--pp-serif); text-transform: uppercase; letter-spacing: .24em; font-size: 12px; color: var(--pp-brown); }
.pp-kw-place { font-family: var(--pp-serif); font-style: italic; font-size: 13px; color: var(--pp-tan); }
.pp-dots { display: flex; justify-content: center; gap: 14px; margin-top: clamp(34px, 5vw, 56px); }
.pp-dots button { width: 30px; height: 1px; min-height: 0; padding: 0; border: 0; border-radius: 0; background: var(--dash); cursor: pointer; transition: background .3s; }
.pp-dots button:hover, .pp-dots button.is-active { background: rgba(var(--pp-brown-rgb), .8); }

/* ==========================================================================
   7. FOUR PHOTOS
   ========================================================================== */
.pp-four { background: var(--sec-bg, var(--pp-cream)); padding: clamp(48px, 7vw, 100px) clamp(20px, 6vw, 88px); }
.pp-four-grid { --cols: 4; --offset: 48px; --gap: 18px; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: var(--gap); align-items: start; }
.pp-four-grid img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.pp-four-grid figure:nth-child(even) { margin-top: var(--offset); }

/* ==========================================================================
   8. CONTACT
   ========================================================================== */
.pp-contact { background: var(--sec-bg, var(--pp-sand)); padding: clamp(52px, 7vw, 100px) clamp(20px, 6vw, 88px) 0; }
.pp-contact-top { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: end; padding-bottom: clamp(40px, 5vw, 68px); }
.pp-contact-title { letter-spacing: .08em; font-size: calc(clamp(28px, 3.4vw, 50px) * var(--pp-scale)); max-width: 18ch; }
.pp-contact-text { margin-top: 20px; font-size: calc(clamp(16px, 1.25vw, 19px) * var(--pp-scale)); line-height: 1.8; max-width: 40ch; }
.pp-contact-details { margin: 18px 0 0; font-family: var(--pp-serif); font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--pp-tan); line-height: 2; }
.pp-form { --line: rgba(var(--pp-brown-rgb), .5); --ph: rgba(var(--pp-brown-rgb), .55); --sb: var(--pp-brown); --sb-text: var(--pp-btn-text); --sb-hover: var(--pp-body); display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
.pp-hp { position: absolute !important; left: -9999px !important; }
.pp-form .half { grid-column: span 1; }
.pp-form .wide, .pp-form textarea { grid-column: 1 / -1; }
.pp-form input, .pp-form textarea { width: 100%; background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 14px 2px; font-family: var(--pp-serif); font-size: 15px; letter-spacing: .1em; color: var(--pp-brown); box-shadow: none; transition: border-color .3s; }
.pp-form textarea { resize: vertical; min-height: 70px; }
.pp-form input::placeholder, .pp-form textarea::placeholder { color: var(--ph); text-transform: uppercase; letter-spacing: .16em; font-size: 13px; opacity: 1; }
.pp-form input:focus, .pp-form textarea:focus { outline: 0; border-bottom-color: var(--pp-brown); box-shadow: none; }
.pp-form input[type="date"] { color: var(--ph); text-transform: uppercase; letter-spacing: .16em; font-size: 13px; }
.pp-form button { grid-column: 1 / -1; justify-self: start; margin-top: 12px; padding: 15px 38px; background: var(--sb); border: 1px solid var(--sb); border-radius: var(--pp-radius); color: var(--sb-text); font-family: var(--pp-serif); font-size: 14px; letter-spacing: .22em; text-transform: uppercase; cursor: pointer; transition: background .3s, border-color .3s; }
.pp-form button:hover, .pp-form button:focus-visible { background: var(--sb-hover); border-color: var(--sb-hover); outline: 0; }
.pp-form-note { grid-column: 1 / -1; margin: 6px 0 0; font-family: var(--pp-serif); font-style: italic; font-size: 16px; color: var(--pp-tan); }
.pp-form-note.is-error { color: #8A3A2A; }
.pp-strip { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; }
.pp-strip img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 0; }
.pp-handle { position: absolute; left: 50%; top: -20px; transform: translateX(-50%); z-index: 3; background: var(--sec-bg, var(--pp-sand)); padding: 8px 26px 12px; font-family: var(--pp-script); font-size: calc(clamp(28px, 3vw, 44px) * var(--pp-scale)); line-height: 1; color: var(--pp-brown); white-space: nowrap; text-decoration: none; }
.pp-credit { margin: 0; padding: 14px 0 16px; text-align: center; font-family: var(--pp-serif); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: rgba(var(--pp-brown-rgb), .55); background: var(--sec-bg, var(--pp-sand)); }

/* ==========================================================================
   SECTION ENTRANCE TRANSITIONS
   JS adds .pp-rv + .pp-rv--<effect> to each section (or its inner pieces when staggered) and .is-in when visible.
   ========================================================================== */
.pp-rv { transition: opacity var(--pp-rv-dur) var(--pp-rv-ease), transform var(--pp-rv-dur) var(--pp-rv-ease), filter var(--pp-rv-dur) var(--pp-rv-ease), clip-path var(--pp-rv-dur) var(--pp-rv-ease); transition-delay: var(--pp-rv-delay, 0s); will-change: opacity, transform; }
.pp-rv--fade, .pp-rv--fade-up, .pp-rv--fade-down, .pp-rv--slide-left, .pp-rv--slide-right, .pp-rv--scale, .pp-rv--blur { opacity: 0; }
.pp-rv--fade-up { transform: translateY(var(--pp-rv-dist)); }
.pp-rv--fade-down { transform: translateY(calc(var(--pp-rv-dist) * -1)); }
.pp-rv--slide-left { transform: translateX(calc(var(--pp-rv-dist) * 1.6)); }
.pp-rv--slide-right { transform: translateX(calc(var(--pp-rv-dist) * -1.6)); }
.pp-rv--scale { transform: scale(.94); }
.pp-rv--blur { filter: blur(10px); }
.pp-rv--reveal { clip-path: inset(0 0 100% 0); }
.pp-rv.is-in { opacity: 1; transform: none; filter: none; }
.pp-rv--reveal.is-in { clip-path: inset(-40%); }
.pp-rv--reveal.pp-rv--done { clip-path: none; }
.pp-rv.is-in.pp-rv--done { will-change: auto; transition-delay: 0s; }
/* the hero never hides itself; only its nav/title pieces move */
.pp-hero.pp-rv { opacity: 1; transform: none; filter: none; clip-path: none; }
/* while editing in Elementor everything is visible */
.elementor-editor-active .pp-rv, .pp-reveal-none .pp-rv { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; transition: none !important; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) { .pp-sets-grid { --cols: 2; } }
@media (max-width: 860px) {
  .pp-story-top, .pp-boli, .pp-contact-top { grid-template-columns: 1fr; }
  .pp-boli-copy { border-right: 0; border-bottom: 1px solid var(--hair); }
  .pp-boli.is-flipped .pp-boli-copy { border-left: 0; }
  .pp-strip { grid-template-columns: repeat(3, 1fr); }
  .pp-story-pair { margin-top: 20px; }
}
@media (max-width: 700px) { .pp-four-grid { --cols: 2; } }
@media (max-width: 560px) {
  .pp-sets-grid { --cols: 1; }
  .pp-wm-name { font-size: 18px; } .pp-section .pp-logo, .pp-header .pp-logo { height: calc(var(--pp-logo-h) * .72); } .pp-brand { gap: 10px; padding: 8px 14px 8px 8px; }
  .pp-form { grid-template-columns: 1fr; } .pp-form .half { grid-column: 1 / -1; }
  .pp-story-pair { grid-template-columns: 1fr 1fr; } .pp-story { --overlap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.pp-force-motion) .pp-rv, body:not(.pp-force-motion) .pp-slide-item, body:not(.pp-force-motion) .pp-slide-item img, body:not(.pp-force-motion) .pp-overlay li { transition: none !important; animation: none !important; opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  body:not(.pp-force-motion) .pp-slider .pp-slide-item:not(.is-active) { display: none; }
}
