/*
Theme Name: Pet Guide Nest
Theme URI: https://example.com/pet-guide-nest
Author: Global Web Builders
Description: Lightweight, responsive blogging theme for Pet Guide Nest. Works on its own and with the free Elementor plugin (native containers and widgets). Includes homepage, blog, category, single post, search, page, 404 and contact form templates.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pet-guide-nest
Tags: blog, custom-menu, featured-images, translation-ready, two-columns
*/

/* ===== 1. Tokens ===== */
:root {
	--pgn-green: #0E4A32;
	--pgn-green-dark: #0A3826;
	--pgn-heading: #0E3B29;
	--pgn-brown: #8A4A1C;
	--pgn-ivory: #F7F3EA;
	--pgn-strip: #F3EEE3;
	--pgn-sage: #E6EADF;
	--pgn-text: #22302A;
	--pgn-muted: #46514B;
	--pgn-line: #E6E0D3;
	--pgn-focus: #C9852F;
	--pgn-serif: "Lora", Georgia, "Times New Roman", serif;
	--pgn-sans: "Mulish", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--pgn-wrap: 1200px;
	--pgn-pad: 40px;
	--pgn-radius: 6px;
}

@font-face { font-family: "Lora"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("assets/fonts/lora-latin-wght-normal.woff2") format("woff2"); }
@font-face { font-family: "Lora"; font-style: italic; font-weight: 400 700; font-display: swap; src: url("assets/fonts/lora-latin-wght-italic.woff2") format("woff2"); }
@font-face { font-family: "Mulish"; font-style: normal; font-weight: 200 1000; font-display: swap; src: url("assets/fonts/mulish-latin-wght-normal.woff2") format("woff2"); }

/* ===== 2. Base ===== */

/* Smooth scrolling for in-page links (#family, #reads, back-to-top), with room for the header. */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Back-to-top button. */
.pgn-totop { position: fixed; right: 22px; bottom: 22px; z-index: 90; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--pgn-green); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(14,59,41,.25); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
.pgn-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.pgn-totop:hover { background: var(--pgn-green-dark); }
.pgn-totop:focus-visible { outline: 3px solid var(--pgn-focus); outline-offset: 3px; }

/* Card images always fill their frame (no empty band under fallback photos). */
.pgn-card__media { position: relative; }
.pgn-card__media img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; display: block; }

/* ===== Motion: scroll reveal and gentle hover lift ===== */
.pgn-anim .pgn-reveal { opacity: 0; translate: 0 16px; transition: opacity .45s ease-out, translate .45s ease-out, transform .3s ease, box-shadow .3s ease; }
.pgn-anim .pgn-reveal.is-in { opacity: 1; translate: 0 0; }
/* Smooth scrolling: no hover repaints while the page is moving. */
html.pgn-scrolling body * { pointer-events: none !important; }
.pgn-card { transition: transform .3s ease; }
.pgn-card:hover { transform: translateY(-5px); }
.pgn-ov { transition: transform .35s ease, box-shadow .35s ease; }
.pgn-ov:hover { transform: translateY(-5px); box-shadow: 0 16px 32px rgba(14,59,41,.20); }
.pgn-card__media { transition: box-shadow .3s ease; }
.pgn-card:hover .pgn-card__media { box-shadow: 0 12px 26px rgba(14,59,41,.16); }
.pgn-btn, .elementor-button { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
.pgn-btn:hover, .elementor-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(14,59,41,.18); }
.pgn-link svg { transition: transform .2s ease; }
.pgn-link:hover svg { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) {
	.pgn-anim .pgn-reveal { opacity: 1; translate: none; transition: none; }
	.pgn-card:hover, .pgn-ov:hover, .pgn-btn:hover, .elementor-button:hover { transform: none; }
}

/* Post thumbnails: whole photo visible inside the fixed box (no crop, no stretch).
   A soft blurred copy fills any spare space so the box never looks empty. */
.pgn-card__media, .pgn-ov, .pgn-compact__img { position: relative; overflow: hidden; }
.pgn-fitbg { position: absolute; inset: -24px; z-index: 0; background-size: cover; background-position: center; filter: blur(18px) saturate(1.05) brightness(.9); pointer-events: none; }
.pgn-card__media img.pgn-fit, .pgn-ov img.pgn-fit, .pgn-compact__img img.pgn-fit, img.pgn-fit { position: absolute; inset: 0; z-index: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: contain !important; object-position: center; display: block; }
.pgn-ov:hover img.pgn-fit, .pgn-compact li:hover .pgn-compact__img img.pgn-fit { transform: none; }
/* Boxes match the 3:2 photos, so the full image fills the box edge to edge. */
.pgn-card__media, .pgn-ov, .pgn-ov--sm, .pgn-feat__big > .pgn-ov:first-child, .pgn-compact__img { aspect-ratio: 3 / 2 !important; height: auto !important; }

/* Homepage trust strip. */
.pgn-el-trust ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 36px; }
.pgn-el-trust li { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--pgn-text); }
.pgn-el-trust li::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--pgn-brown); flex: none; }

/* Homepage section headers: keep the "view all" link aligned. */
.pgn-el-sechead .elementor-heading-title { margin: 0; }

/* ===== Category slider ===== */
.pgn-cslider { position: relative; padding: 0 58px; }
.pgn-cslider__track { list-style: none; margin: 0; padding: 10px 6px 12px; display: flex; gap: 28px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
.pgn-cslider__track::-webkit-scrollbar { display: none; }
.pgn-cslider__item { flex: 0 0 calc((100% - 5 * 28px) / 6); scroll-snap-align: start; text-align: center; }
/* Snap only after the visitor touches the slider (snap at page load blocks Google's LCP measurement). */
.pgn-cslider__track.is-snap { scroll-snap-type: x mandatory; }
.pgn-cslider__link { display: block; color: var(--pgn-text); text-decoration: none; }
.pgn-cslider__img { display: block; width: 100%; max-width: 168px; aspect-ratio: 1; margin: 0 auto 14px; border-radius: 50%; overflow: hidden; background: var(--pgn-sage); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--pgn-line); transition: transform .3s ease, box-shadow .3s ease; }
.pgn-cslider__img img { width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 50%; display: block; }
.pgn-cslider__track { justify-content: flex-start; }
.pgn-cslider__item { display: flex; flex-direction: column; align-items: center; }
.pgn-cslider__link { width: 100%; text-align: center; }
a.pgn-cslider__link:hover .pgn-cslider__img, a.pgn-cslider__link:focus-visible .pgn-cslider__img { transform: translateY(-4px); box-shadow: 0 0 0 4px #fff, 0 0 0 6px var(--pgn-brown); }
a.pgn-cslider__link:focus-visible { outline: none; }
a.pgn-cslider__link:hover .pgn-cslider__name { color: var(--pgn-green); }
.pgn-cslider__name { display: block; font-family: var(--pgn-serif); font-weight: 700; font-size: 20px; line-height: 1.25; }
.pgn-cslider__count { display: block; margin-top: 4px; font-size: 14px; color: var(--pgn-muted); }
.pgn-cslider__link.is-soon { cursor: default; }
.pgn-cslider__link.is-soon .pgn-cslider__img { filter: saturate(.6); opacity: .85; }
.pgn-cslider__link.is-soon .pgn-cslider__count { color: var(--pgn-brown); font-weight: 700; }
.pgn-cslider__nav { position: absolute; top: 58px; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--pgn-brown); background: #fff; color: var(--pgn-brown); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s, color .2s, opacity .2s; z-index: 2; }
.pgn-cslider__nav:hover { background: var(--pgn-brown); color: #fff; }
.pgn-cslider__nav:focus-visible { outline: 3px solid var(--pgn-focus); outline-offset: 2px; }
.pgn-cslider__nav[disabled] { opacity: .3; cursor: default; background: #fff; color: var(--pgn-brown); }
.pgn-cslider__nav--prev { left: 0; }
.pgn-cslider__nav--prev svg { transform: rotate(180deg); }
.pgn-cslider__nav--next { right: 0; }
@media (max-width: 960px) { .pgn-cslider__item { flex-basis: calc((100% - 3 * 28px) / 4); } }
@media (max-width: 600px) {
	.pgn-cslider { padding: 0; }
	.pgn-cslider__nav { display: none; }
	.pgn-cslider__track { gap: 18px; padding-left: 2px; }
	.pgn-cslider__item { flex-basis: 38%; }
	.pgn-cslider__name { font-size: 17px; }
}

/* ===== Badges ===== */
.pgn-badge { display: inline-block; align-self: flex-start; background: var(--pgn-brown); color: #fff; font-family: var(--pgn-sans); font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; line-height: 1; padding: 6px 9px; border-radius: 4px; }
.pgn-badge--dark { background: var(--pgn-green); }

/* ===== Featured guides (overlay cards) ===== */
.pgn-feat { display: grid; gap: 18px; }
.pgn-feat__big { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pgn-feat__small { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pgn-ov { position: relative; display: block; overflow: hidden; border-radius: 8px; aspect-ratio: 5 / 4; background: var(--pgn-green); color: #fff; text-decoration: none; isolation: isolate; }
.pgn-ov--sm { aspect-ratio: 4 / 3; }
.pgn-ov img, .pgn-ov .pgn-card__ph { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: transform .5s ease; }
.pgn-ov::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8, 28, 19, 0) 30%, rgba(8, 28, 19, .88) 100%); z-index: 0; }
.pgn-ov:hover img { transform: scale(1.05); }
.pgn-ov:focus-visible { outline: 3px solid var(--pgn-focus); outline-offset: 3px; }
.pgn-ov__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.pgn-ov__title { font-family: var(--pgn-serif); font-weight: 700; font-size: 22px; line-height: 1.25; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.3); }
.pgn-ov--sm .pgn-ov__body { padding: 14px; gap: 6px; }
.pgn-ov--sm .pgn-ov__title { font-size: 16.5px; }
.pgn-ov__date { font-size: 13px; color: rgba(255,255,255,.88); }
.pgn-ov:hover .pgn-ov__title { text-decoration: none; color: #F3E3C7; }
@media (max-width: 960px) {
	.pgn-feat__big { grid-template-columns: 1fr 1fr; }
	.pgn-feat__big > :first-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
	.pgn-feat__small { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.pgn-feat__big { grid-template-columns: 1fr; }
	.pgn-feat__big > :first-child { aspect-ratio: 5 / 4; }
	.pgn-ov__title { font-size: 19px; }
	.pgn-ov--sm .pgn-ov__title { font-size: 14.5px; }
	.pgn-ov--sm .pgn-ov__date { display: none; }
}

/* ===== Loved by readers (compact list) ===== */
.pgn-compact { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px 30px; }
.pgn-compact li { display: grid; grid-template-columns: 128px 1fr; gap: 16px; align-items: start; }
.pgn-compact__img { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 6px; background: var(--pgn-sage); }
.pgn-compact__img img, .pgn-compact__img .pgn-card__ph { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: transform .4s ease; }
.pgn-compact__img .pgn-card__ph svg, .pgn-compact__img .pgn-card__ph span { display: none; }
.pgn-compact li:hover .pgn-compact__img img { transform: scale(1.05); }
.pgn-compact__title { margin: 0 0 8px; font-size: 17.5px; line-height: 1.3; }
.pgn-compact__title a { color: #1C2A23; text-decoration: none; }
.pgn-compact__title a:hover { color: var(--pgn-green); text-decoration: none; }
.pgn-compact__meta { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 13.5px; color: var(--pgn-muted); }
@media (max-width: 760px) { .pgn-compact { grid-template-columns: 1fr; } .pgn-compact li { grid-template-columns: 112px 1fr; } }
/* Loved by readers: tidy equal cards. */
.pgn-compact { gap: 18px 20px; }
.pgn-compact li { grid-template-columns: 132px 1fr; gap: 16px; align-items: center; padding: 12px; background: #fff; border: 1px solid var(--pgn-line); border-radius: 12px; transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
.pgn-compact li:hover { box-shadow: 0 12px 26px rgba(14,59,41,.12); border-color: transparent; transform: translateY(-3px); }
.pgn-compact__img { border-radius: 8px; }
.pgn-compact__img .pgn-fitbg { display: none; }
.pgn-compact__img img, .pgn-compact__img img.pgn-fit { object-fit: cover !important; width: 100% !important; height: 100% !important; }
.pgn-compact__meta { flex-direction: column; align-items: flex-start; gap: 3px; }
.pgn-compact__cat::after { content: none; }
.pgn-compact__title { margin: 0 0 8px; font-size: 16.5px; line-height: 1.32; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pgn-compact__meta { gap: 6px 8px; font-size: 13px; }
.pgn-compact__cat { color: var(--pgn-brown); font-weight: 800; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
.pgn-compact__cat::after { content: "\00B7"; margin-left: 8px; color: var(--pgn-muted); font-weight: 400; }
.pgn-el-aside .elementor-heading-title { margin: 0; }
.pgn-popcats li:last-child { border-bottom: 0; }
@media (max-width: 760px) { .pgn-compact li { grid-template-columns: 110px 1fr; } }
/* About section: square photo. */
.pgn-el-sq img { width: 100% !important; aspect-ratio: 1 / 1; height: auto !important; object-fit: cover; box-shadow: 0 18px 40px rgba(14,59,41,.15); }

/* ===== Popular categories ===== */
.pgn-popcats { list-style: none; margin: 0; padding: 0; }
.pgn-popcats li { border-bottom: 1px dashed var(--pgn-line); }
.pgn-popcats a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 2px; color: var(--pgn-text); text-decoration: none; font-weight: 700; }
.pgn-popcats a:hover { color: var(--pgn-green); }
.pgn-popcats__n { min-width: 34px; text-align: center; padding: 3px 9px; border-radius: 999px; background: var(--pgn-ivory); color: var(--pgn-brown); font-size: 13.5px; font-weight: 800; }
.pgn-el-aside { position: static; align-self: stretch !important; }
/* Popular categories box: same height as the Loved by readers column, all categories listed. */
.e-con:has(> .pgn-el-aside) , .e-con-inner:has(> .pgn-el-aside) { align-items: stretch !important; }
.pgn-el-aside .elementor-widget-shortcode { flex: 1 1 auto; display: flex; flex-direction: column; }
.pgn-el-aside .elementor-widget-shortcode > .elementor-widget-container, .pgn-el-aside .elementor-shortcode { flex: 1 1 auto; display: flex; flex-direction: column; }
.pgn-el-aside .pgn-popcats { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: space-between; margin: 0; }
.pgn-el-aside .pgn-popcats li a { padding-top: 5px !important; padding-bottom: 5px !important; font-size: 15px; }
.pgn-el-aside { padding-top: 22px !important; padding-bottom: 16px !important; }
.pgn-compact__cat::after { content: none !important; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--pgn-sans); font-size: 17px; line-height: 1.65; color: var(--pgn-text); background: #fff; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--pgn-green); }
a:hover { color: var(--pgn-brown); }
:focus-visible { outline: 3px solid var(--pgn-focus); outline-offset: 3px; border-radius: 4px; }
h1, h2, h3, h4 { font-family: var(--pgn-serif); color: var(--pgn-heading); line-height: 1.2; font-weight: 700; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; left: 8px; top: 8px; z-index: 100000; background: #fff; padding: 12px 18px; color: var(--pgn-green); font-weight: 700; }
.pgn-wrap { max-width: calc(var(--pgn-wrap) + var(--pgn-pad) * 2); margin: 0 auto; padding-left: var(--pgn-pad); padding-right: var(--pgn-pad); }
.pgn-eyebrow { margin: 0; font-size: 14px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pgn-green); }

/* Buttons & links */
.pgn-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 30px; background: var(--pgn-green); color: #fff; text-decoration: none; font-weight: 700; font-size: 17px; border-radius: var(--pgn-radius); border: 0; cursor: pointer; font-family: var(--pgn-sans); transition: background .2s; }
.pgn-btn:hover { background: var(--pgn-green-dark); color: #fff; }
.pgn-btn--light { background: #FBF7EE; color: var(--pgn-heading); padding: 0 44px; }
.pgn-btn--light:hover { background: #fff; color: var(--pgn-heading); }
.pgn-link { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; color: var(--pgn-green); text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; padding: 6px 0; }
.pgn-link svg { flex: none; }

/* ===== 3. Header ===== */
.pgn-strip { background: var(--pgn-strip); text-align: center; padding: 8px 20px; font-family: var(--pgn-serif); font-style: italic; font-weight: 600; font-size: 15px; }
.pgn-header { background: #fff; border-bottom: 1px solid #EEE9DE; position: relative; z-index: 50; }
.pgn-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 12px; padding-bottom: 12px; }
.pgn-logo img { height: 72px; width: auto; }
.pgn-nav { display: flex; align-items: center; gap: 8px; }
.pgn-menu, .pgn-menu ul { list-style: none; margin: 0; padding: 0; }
.pgn-menu { display: flex; align-items: center; gap: 26px; }
.pgn-menu > li { position: relative; }
.pgn-menu a { display: inline-flex; align-items: center; gap: 6px; padding: 12px 2px; color: var(--pgn-text); text-decoration: none; font-weight: 600; font-size: 16.5px; }
.pgn-menu > li > a { border-bottom: 2.5px solid transparent; }
.pgn-menu > li.current-menu-item > a, .pgn-menu > li.current-menu-ancestor > a, .pgn-menu > li.current-cat > a { color: var(--pgn-brown); border-bottom-color: var(--pgn-brown); }
.pgn-menu a:hover { color: var(--pgn-brown); }
.pgn-menu .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: rotate(45deg) translateY(-3px); margin-left: 2px; }
.pgn-menu .sub-menu { display: none; position: absolute; top: 100%; left: -16px; min-width: 260px; padding: 10px 0; background: #fff; border: 1px solid var(--pgn-line); border-radius: 10px; box-shadow: 0 12px 30px rgba(20,40,30,.10); }
.pgn-menu li:hover > .sub-menu, .pgn-menu li:focus-within > .sub-menu { display: block; }
.pgn-menu .sub-menu a { display: block; padding: 10px 20px; font-size: 15px; font-weight: 600; }
.pgn-menu .sub-menu a:hover { background: #F5F1E8; color: var(--pgn-green); }
.pgn-icon-btn { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; border-radius: 10px; color: var(--pgn-text); cursor: pointer; padding: 0; }
.pgn-icon-btn:hover { background: var(--pgn-ivory); }
.pgn-burger { display: none; border: 1px solid #D9D2C3; color: var(--pgn-green); }
.pgn-searchbar { border-top: 1px solid #EEE9DE; background: #FBF9F4; }
.pgn-searchbar[hidden] { display: none; }
.pgn-searchbar .pgn-wrap { padding-top: 14px; padding-bottom: 14px; }

/* Search form */
.pgn-searchform { display: flex; gap: 10px; align-items: center; width: 100%; }
.pgn-searchform input[type="search"] { flex: 1; min-width: 0; height: 48px; padding: 0 16px; border: 1px solid #CFC7B6; border-radius: 8px; font: inherit; font-size: 16px; background: #fff; color: var(--pgn-text); }
.pgn-searchform .pgn-btn { min-height: 48px; padding: 0 24px; font-size: 16px; }

/* ===== 4. Homepage ===== */
.pgn-hero { background: var(--pgn-ivory); }
.pgn-hero__grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: 40px; align-items: center; padding-top: 40px; padding-bottom: 44px; }
.pgn-hero__text { display: flex; flex-direction: column; gap: 20px; }
.pgn-hero h1 { font-size: clamp(36px, 4vw, 57px); line-height: 1.04; letter-spacing: -.015em; margin: 0; }
.pgn-hero h1 em { color: var(--pgn-brown); }
.pgn-hero h1 .pgn-leaf { position: absolute; width: 40px; height: 40px; margin: -30px 0 0 -8px; }
.pgn-hero__lead { font-size: 19px; color: #3F4A44; max-width: 470px; margin: 0; }
.pgn-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin-top: 4px; }
.pgn-hero__media { position: relative; }
.pgn-hero__media img { width: 100%; height: 470px; object-fit: cover; object-position: 50% 30%; border-radius: 50% 50% 18px 18px / 44% 44% 18px 18px; }
.pgn-hero__caption { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); margin: 0; padding: 8px 22px; background: #fff; border-radius: var(--pgn-radius); font-family: var(--pgn-serif); font-style: italic; font-weight: 600; font-size: 17px; white-space: nowrap; }

.pgn-family { padding-top: 56px; padding-bottom: 52px; }
.pgn-section-title { text-align: center; font-size: clamp(30px, 3.2vw, 46px); letter-spacing: -.01em; margin-bottom: 34px; }
.pgn-circles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; list-style: none; margin: 0; padding: 0; }
.pgn-circle { display: flex; flex-direction: column; align-items: center; gap: 12px; text-decoration: none; color: var(--pgn-text); }
.pgn-circle__img { width: 168px; max-width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; transition: box-shadow .2s; }
.pgn-circle__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.07); }
.pgn-circle:hover .pgn-circle__img { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--pgn-green); }
.pgn-circle__name { font-family: var(--pgn-serif); font-weight: 700; font-size: 22px; }
.pgn-pills { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 30px 0 0; padding: 0; }
.pgn-pill { display: flex; align-items: center; justify-content: center; min-height: 46px; height: 100%; padding: 8px 12px; border: 1.5px solid var(--pgn-brown); border-radius: 7px; color: var(--pgn-text); text-decoration: none; font-weight: 600; font-size: 15.5px; text-align: center; line-height: 1.25; transition: background .2s, color .2s; }
.pgn-pill:hover { background: var(--pgn-brown); color: #fff; }

.pgn-reads { background: var(--pgn-ivory); }
.pgn-reads .pgn-wrap { padding-top: 48px; padding-bottom: 60px; }
.pgn-reads__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.pgn-reads__head h2 { font-size: clamp(30px, 3.3vw, 48px); letter-spacing: -.01em; margin: 0; }
.pgn-tabs { display: flex; flex-wrap: wrap; gap: 4px 22px; list-style: none; margin: 12px 0 28px; padding: 0; }
.pgn-tabs a { display: inline-block; padding: 8px 2px 6px; color: #2F3A34; text-decoration: none; font-weight: 600; border-bottom: 2.5px solid transparent; }
.pgn-tabs a[aria-current="true"] { color: #1C2A23; font-weight: 800; border-bottom-color: var(--pgn-brown); }
.pgn-tabs a:hover { color: var(--pgn-brown); }

.pgn-banner { background: var(--pgn-green); position: relative; display: flex; min-height: 300px; overflow: hidden; }
.pgn-banner__text { position: relative; z-index: 2; width: 48%; padding: 44px 40px 44px max(40px, calc((100vw - 1280px) / 2)); display: flex; flex-direction: column; justify-content: center; gap: 12px; }
.pgn-banner h2 { color: #fff; font-size: clamp(30px, 3.3vw, 48px); line-height: 1.08; margin: 0; }
.pgn-banner p { color: #E7EFE9; font-size: 19px; margin: 0 0 8px; }
.pgn-banner__text .pgn-btn { align-self: flex-start; }
.pgn-banner__img { position: absolute; top: 0; right: 0; width: 58%; height: 100%; object-fit: cover; object-position: 35% 40%; clip-path: ellipse(100% 125% at 100% 50%); }

.pgn-about { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; align-items: center; max-width: 1180px; padding-top: 34px; padding-bottom: 38px; }
.pgn-about img { width: 100%; aspect-ratio: 2.7 / 1; object-fit: cover; border-radius: 8px; }
.pgn-about h2 { font-size: clamp(28px, 2.7vw, 40px); margin-bottom: 10px; }
.pgn-about p { font-size: 17.5px; color: #3F4A44; margin-bottom: 8px; }

/* ===== 5. Cards ===== */
.pgn-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 30px; }
.pgn-card { display: flex; flex-direction: column; gap: 14px; }
.pgn-card__media { display: block; border-radius: var(--pgn-radius); overflow: hidden; aspect-ratio: 2 / 1; background: var(--pgn-sage); }
.pgn-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.pgn-card:hover .pgn-card__media img { transform: scale(1.03); }
.pgn-card__ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; background: var(--pgn-green); color: #E7EFE9; font-family: var(--pgn-serif); font-weight: 700; font-size: 20px; }
.pgn-card__cat { margin: 0; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pgn-card__cat a { color: var(--pgn-green); text-decoration: none; }
.pgn-card__title { font-size: 24px; line-height: 1.22; margin: 0; }
.pgn-card__title a { color: #1C2A23; text-decoration: none; }
.pgn-card__title a:hover { color: var(--pgn-green); text-decoration: none; }
.pgn-card__excerpt { margin: 0; font-size: 16px; line-height: 1.55; color: var(--pgn-muted); }
/* Card colour hierarchy: brown category, deep green title, soft grey excerpt, brown Read More. */
.pgn-card__cat a { color: var(--pgn-brown); display: inline-flex; align-items: center; gap: 8px; }
.pgn-card__cat a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--pgn-brown); flex: none; }
.pgn-card__cat a:hover { color: var(--pgn-green); }
.pgn-card__title a { color: var(--pgn-heading); transition: color .2s ease; }
.pgn-card__title a:hover { color: var(--pgn-brown); }
.pgn-card__excerpt { color: #66706A; }
.pgn-card .pgn-link { color: var(--pgn-brown); text-decoration-color: rgba(138, 74, 28, .45); transition: color .2s ease, gap .2s ease; }
.pgn-card .pgn-link:hover { color: var(--pgn-green); text-decoration-color: var(--pgn-green); gap: 11px; }
.pgn-card .pgn-link { align-self: flex-start; font-size: 16px; }
.pgn-empty { padding: 34px; background: #fff; border: 1px dashed #CFC7B6; border-radius: 10px; text-align: center; }

/* ===== 6. Archive / page headers ===== */
.pgn-pagehead { background: var(--pgn-ivory); }
.pgn-pagehead .pgn-wrap { padding-top: 54px; padding-bottom: 44px; }
.pgn-pagehead h1 { font-size: clamp(34px, 4vw, 56px); letter-spacing: -.01em; margin: 6px 0 10px; }
.pgn-pagehead__desc { max-width: 720px; font-size: 18px; color: #3F4A44; margin: 0; }
.pgn-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 24px 0 0; padding: 0; }
.pgn-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border: 1.5px solid #D9CBB8; border-radius: 7px; color: var(--pgn-text); text-decoration: none; font-weight: 600; font-size: 15px; background: #fff; }
.pgn-chips a:hover, .pgn-chips a[aria-current="page"] { border-color: var(--pgn-brown); background: var(--pgn-brown); color: #fff; }
.pgn-main { padding-top: 48px; padding-bottom: 72px; }
.pgn-pagination { margin-top: 48px; }
.pgn-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pgn-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 14px; border: 1px solid #D9CBB8; border-radius: 8px; text-decoration: none; color: var(--pgn-text); font-weight: 700; }
.pgn-pagination .page-numbers.current { background: var(--pgn-green); border-color: var(--pgn-green); color: #fff; }
.pgn-pagination a.page-numbers:hover { border-color: var(--pgn-green); color: var(--pgn-green); }

/* ===== 7. Single post & pages ===== */
.pgn-article__head { max-width: 820px; margin: 0 auto; padding: 52px var(--pgn-pad) 26px; text-align: center; }
.pgn-article__head h1 { font-size: clamp(32px, 4vw, 52px); letter-spacing: -.01em; margin: 10px 0 16px; }
.pgn-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: 15px; color: var(--pgn-muted); margin: 0; }
.pgn-meta a { color: inherit; }
.pgn-article__media { max-width: 1100px; margin: 0 auto 10px; padding: 0 var(--pgn-pad); }
.pgn-article__media { text-align: center; max-width: 860px !important; }
.pgn-article__media img { display: block; width: auto; max-width: 100%; height: auto !important; max-height: none; margin: 0 auto; object-fit: contain; border-radius: 10px; }
.pgn-prose { max-width: 740px; margin: 0 auto; padding: 30px var(--pgn-pad) 20px; font-size: 18px; line-height: 1.75; }
.pgn-prose > * { margin-top: 0; }
.pgn-prose h2 { font-size: 31px; margin: 1.6em 0 .55em; }
.pgn-prose h3 { font-size: 24px; margin: 1.4em 0 .5em; }
.pgn-prose h4 { font-size: 20px; margin: 1.3em 0 .4em; }
.pgn-prose p { margin: 0 0 1.1em; }
.pgn-prose ul, .pgn-prose ol { margin: 0 0 1.3em; padding-left: 1.4em; }
.pgn-prose li { margin-bottom: .45em; }
.pgn-prose li::marker { color: var(--pgn-green); font-weight: 700; }
.pgn-prose a { text-underline-offset: 3px; }
.pgn-prose blockquote { margin: 1.5em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--pgn-brown); font-family: var(--pgn-serif); font-style: italic; font-size: 20px; color: var(--pgn-heading); }
.pgn-prose figure { margin: 1.6em 0; }
.pgn-prose figcaption { font-size: 14px; color: var(--pgn-muted); margin-top: 8px; text-align: center; }
.pgn-prose img { border-radius: 8px; }
.pgn-prose table, .pgn-prose .wp-block-table table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.pgn-prose .wp-block-table, .pgn-table-scroll { overflow-x: auto; margin: 1.4em 0; }
.pgn-prose th, .pgn-prose td { border: 1px solid var(--pgn-line); padding: 11px 14px; text-align: left; vertical-align: top; }
.pgn-prose thead th, .pgn-prose th { background: var(--pgn-ivory); font-weight: 800; color: var(--pgn-heading); }
.pgn-prose tbody tr:nth-child(even) td { background: #FCFBF8; }
.pgn-prose .rank-math-block, .pgn-prose .wp-block-rank-math-faq-block { margin: 1em 0 1.6em; }
.pgn-prose .rank-math-faq-item { border-bottom: 1px solid var(--pgn-line); padding: 6px 0 10px; }
.pgn-prose .rank-math-question { font-size: 20px; margin: .8em 0 .35em; }
.pgn-note { max-width: 740px; margin: 10px auto 0; padding: 0 var(--pgn-pad); }
.pgn-note__box { padding: 18px 22px; background: var(--pgn-ivory); border: 1px solid var(--pgn-line); border-radius: 10px; font-size: 15px; line-height: 1.6; color: #3F4A44; }
.pgn-note__box strong { color: var(--pgn-heading); }
.pgn-authorbox { max-width: 740px; margin: 26px auto 0; padding: 0 var(--pgn-pad); }
.pgn-authorbox__inner { display: flex; gap: 18px; align-items: flex-start; padding: 22px; border: 1px solid var(--pgn-line); border-radius: 10px; }
.pgn-authorbox__mark { flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--pgn-sage); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.pgn-authorbox__mark img { width: 58px; height: 58px; object-fit: contain; }
.pgn-authorbox__mark { background: #fff; box-shadow: 0 0 0 1px var(--pgn-line); }
.pgn-authorbox h2 { font-size: 20px; margin: 0 0 4px; }
.pgn-authorbox p { margin: 0; font-size: 15.5px; color: var(--pgn-muted); }
.pgn-tags { max-width: 740px; margin: 24px auto 0; padding: 0 var(--pgn-pad); }
.pgn-postnav { max-width: 740px; margin: 30px auto 0; padding: 0 var(--pgn-pad); }
.pgn-postnav .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pgn-postnav a { display: block; padding: 16px 18px; border: 1px solid var(--pgn-line); border-radius: 10px; text-decoration: none; color: var(--pgn-text); height: 100%; }
.pgn-postnav a:hover { border-color: var(--pgn-green); }
.pgn-postnav .nav-next { text-align: right; }
.pgn-postnav small { display: block; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--pgn-green); }
.pgn-postnav span.pgn-postnav__title { font-family: var(--pgn-serif); font-weight: 700; font-size: 17px; }
.pgn-related { background: #E9EEE4; margin-top: 64px; }
.pgn-authorbox__mark.pgn-authorbox__mark--photo { width: 80px !important; height: 80px !important; flex: 0 0 80px; padding: 0; overflow: hidden; border-radius: 50%; }
.pgn-authorbox__mark--photo img { width: 100% !important; height: 100% !important; max-width: none; border-radius: 50%; object-fit: cover; object-position: center; display: block; }
.pgn-authorhead { display: flex; gap: 28px; align-items: flex-start; text-align: left; max-width: 860px; margin: 16px auto 0; }
.pgn-authorhead__img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; box-shadow: 0 10px 24px rgba(14,59,41,.15); }
.pgn-authorhead__bio p { margin: 0 0 12px; }
.pgn-meetwriter { padding: 64px 0; background: #F7F3EA; }
.pgn-meetwriter.pgn-hometrust { background: #FFFFFF; }
.elementor .pgn-el-about, .pgn-el-about.e-con { background-color: #F7F3EA !important; background-image: none !important; }
.pgn-meetwriter .pgn-authorhead__img { width: 200px; height: 200px; }
.pgn-meetwriter h2 { margin: 4px 0 14px; }
@media (max-width: 640px) { .pgn-authorhead { flex-direction: column; align-items: center; text-align: center; } .pgn-authorhead__img, .pgn-meetwriter .pgn-authorhead__img { width: 140px; height: 140px; } }
.pgn-related .pgn-wrap { padding-top: 52px; padding-bottom: 60px; }
.pgn-related h2 { font-size: clamp(28px, 3vw, 40px); margin-bottom: 28px; }
.pgn-page .pgn-prose { padding-top: 40px; }

/* ===== Single post: hero band + two-column layout with sidebar ===== */
.pgn-shero { position: relative; overflow: hidden; background: var(--pgn-ivory); border-bottom: 1px solid var(--pgn-line); }
.pgn-shero::after { content: ""; position: absolute; right: -120px; top: -140px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(138,74,28,.10), transparent 68%); pointer-events: none; }
.pgn-shero__inner { position: relative; z-index: 1; padding-top: 34px; padding-bottom: 42px; }
.pgn-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 9px; font-size: 14px; color: #66706A; margin-bottom: 22px; }
.pgn-crumbs a { color: #46514B; text-decoration: none; font-weight: 600; }
.pgn-crumbs a:hover { color: var(--pgn-green); }
.pgn-crumbs__here { max-width: 460px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pgn-shero__cat { display: inline-block; padding: 6px 13px; border-radius: 999px; background: var(--pgn-green); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.pgn-shero__cat:hover { background: var(--pgn-brown); color: #fff; }
.pgn-shero h1 { max-width: 920px; font-size: clamp(32px, 4vw, 50px); line-height: 1.12; letter-spacing: -.01em; margin: 16px 0 14px; }
.pgn-shero__dek { max-width: 780px; margin: 0 0 22px; font-size: 19px; line-height: 1.6; color: var(--pgn-muted); }
.pgn-shero__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; font-size: 15px; color: var(--pgn-muted); }
.pgn-shero__by { display: inline-flex; align-items: center; gap: 9px; }
.pgn-shero__by img { width: 36px; height: 36px; border-radius: 50%; background: #fff; object-fit: contain; box-shadow: 0 0 0 1px var(--pgn-line); }
.pgn-shero__by strong { color: var(--pgn-heading); }
.pgn-slayout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 56px; align-items: start; padding-top: 44px; padding-bottom: 10px; }
.pgn-smain .pgn-article__media, .pgn-smain .pgn-prose, .pgn-smain .pgn-note, .pgn-smain .pgn-tags, .pgn-smain .pgn-authorbox, .pgn-smain .pgn-postnav { max-width: none !important; padding-left: 0; padding-right: 0; }
.pgn-smain .pgn-article__media { margin: 0; }
.pgn-smain .pgn-article__media img { width: 100%; border-radius: 14px; }
.pgn-smain .pgn-prose { padding-top: 28px; }
.pgn-single .pgn-related { margin-top: 60px; }
/* Sidebar widgets. */
.pgn-sidebar { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.pgn-widget { background: #fff; border: 1px solid var(--pgn-line); border-radius: 14px; padding: 22px; }
.pgn-widget__title { position: relative; margin: 0 0 14px; padding-bottom: 12px; font-size: 20px; border-bottom: 2px solid var(--pgn-ivory); }
.pgn-widget__title::after { content: ""; position: absolute; left: 0; bottom: -2px; width: 44px; height: 2px; background: var(--pgn-brown); }
.pgn-sidesearch { display: flex; border: 1px solid var(--pgn-line); border-radius: 10px; overflow: hidden; background: #FCFBF8; }
.pgn-sidesearch input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 12px 14px; font: inherit; font-size: 15px; color: var(--pgn-text); }
.pgn-sidesearch input:focus { outline: none; }
.pgn-sidesearch:focus-within { border-color: var(--pgn-green); box-shadow: 0 0 0 3px rgba(14,74,50,.12); }
.pgn-sidesearch button { flex: none; width: 50px; border: 0; background: var(--pgn-green); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.pgn-sidesearch button:hover { background: var(--pgn-green-dark); }
.pgn-sidecats { list-style: none; margin: 0; padding: 0; }
.pgn-sidecats a { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--pgn-line); color: var(--pgn-text); text-decoration: none; font-weight: 600; font-size: 15.5px; }
.pgn-sidecats li:last-child a { border-bottom: 0; }
.pgn-sidecats a span { transition: transform .25s ease; }
.pgn-sidecats a:hover { color: var(--pgn-green); }
.pgn-sidecats a:hover span { transform: translateX(4px); }
.pgn-sidecats em { font-style: normal; min-width: 30px; padding: 2px 8px; border-radius: 999px; background: #F5ECE2; color: var(--pgn-brown); font-size: 12.5px; font-weight: 800; text-align: center; }
.pgn-siderecent { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.pgn-siderecent li { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 12px; align-items: center; }
.pgn-siderecent__img { position: relative; display: block; width: 78px; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--pgn-sage); }
.pgn-siderecent__img .pgn-fitbg { display: none; }
.pgn-siderecent__img img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover !important; transition: transform .4s ease; }
.pgn-siderecent li:hover .pgn-siderecent__img img { transform: scale(1.06); }
.pgn-siderecent__img .pgn-card__ph { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--pgn-green); }
.pgn-siderecent__img .pgn-card__ph span { display: none; }
.pgn-siderecent__cat { display: block; margin-bottom: 2px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--pgn-brown); }
.pgn-siderecent__title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-family: var(--pgn-serif); font-weight: 700; font-size: 15.5px; line-height: 1.3; color: var(--pgn-heading); text-decoration: none; }
.pgn-siderecent__title:hover { color: var(--pgn-green); }
.pgn-siderecent time { display: block; margin-top: 3px; font-size: 12.5px; color: #66706A; }
.pgn-widget--about { background: var(--pgn-green); border-color: transparent; color: #DDE7DF; text-align: center; }
.pgn-widget--about img { width: 66px; height: 66px; padding: 4px; margin: 0 auto 10px; border-radius: 50%; background: #fff; object-fit: contain; display: block; }
.pgn-widget--about .pgn-widget__title { color: #fff; border-bottom-color: rgba(255,255,255,.15); }
.pgn-widget--about .pgn-widget__title::after { left: 50%; transform: translateX(-50%); background: #E3B07C; }
.pgn-widget--about p { margin: 0 0 12px; font-size: 15px; line-height: 1.55; }
.pgn-widget__link { color: #fff; font-weight: 800; text-underline-offset: 4px; }
.pgn-widget__link:hover { color: #E3B07C; }
@media (max-width: 1024px) { .pgn-slayout { grid-template-columns: minmax(0, 1fr); gap: 40px; } }
@media (max-width: 760px) { .pgn-shero__inner { padding-top: 24px; padding-bottom: 30px; } .pgn-crumbs__here { max-width: 220px; } .pgn-slayout { padding-top: 26px; } }

/* ===== Elementor single pages (About, Contact, legal) ===== */
.pgn-elp-hero, .e-con.pgn-elp-hero { position: relative; overflow: hidden !important; clip-path: inset(0); }
.pgn-elp-hero::before, .pgn-elp-hero::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; }
.pgn-elp-hero::before { width: 380px; height: 380px; right: -110px; top: -150px; background: radial-gradient(circle, rgba(138,74,28,.11), transparent 68%); }
.pgn-elp-hero::after { width: 420px; height: 420px; left: -150px; bottom: -220px; background: radial-gradient(circle, rgba(14,74,50,.10), transparent 68%); }
.pgn-elp-hero > * { position: relative; z-index: 1; }
.pgn-elp-sub { max-width: 680px; }
.pgn-elp-eyebrow .elementor-heading-title { margin: 0; }
.pgn-elp-card { box-shadow: 0 18px 44px rgba(14,59,41,.06); }
.pgn-elp-rich { width: 100%; }
.pgn-elp-rich h2 { font-family: var(--pgn-serif); color: var(--pgn-heading); font-size: 26px; line-height: 1.25; margin: 1.5em 0 .55em; padding-top: 1.1em; border-top: 1px solid var(--pgn-line); }
.pgn-elp-rich h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.pgn-elp-rich h3 { font-family: var(--pgn-serif); color: var(--pgn-heading); font-size: 20px; margin: 1.3em 0 .45em; }
.pgn-elp-rich p { margin: 0 0 1em; line-height: 1.75; }
.pgn-elp-rich ul, .pgn-elp-rich ol { margin: 0 0 1.2em; padding-left: 1.3em; line-height: 1.7; }
.pgn-elp-rich li { margin-bottom: .4em; }
.pgn-elp-rich li::marker { color: var(--pgn-green); }
.pgn-elp-rich a { color: var(--pgn-green); text-underline-offset: 3px; }
.pgn-elp-rich a:hover { color: var(--pgn-brown); }
.e-con.pgn-elp-grid4 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1024px) { .e-con.pgn-elp-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .e-con.pgn-elp-grid4 { grid-template-columns: minmax(0, 1fr); } }
.pgn-elp-box { height: 100%; transition: transform .3s ease, box-shadow .3s ease; }
.pgn-elp-box:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(14,59,41,.10); }
.pgn-elp-box .elementor-icon-box-title { margin-top: 0; }
.pgn-elp-box .elementor-icon-box-description { margin: 0; }
.pgn-elp-full { width: 100%; }
.pgn-elp-cta { position: relative; overflow: hidden !important; box-shadow: 0 22px 44px rgba(14,59,41,.18); }
.pgn-elp-cta::after { content: ""; position: absolute; right: -60px; top: -80px; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,255,255,.06); pointer-events: none; }
.pgn-elp-cta .elementor-heading-title, .pgn-elp-cta p { margin: 0; }
.pgn-elp-form .elementor-widget-shortcode { width: 100%; }

/* Elementor (free) helpers — set as "CSS Classes" on the generated homepage widgets */
.pgn-elementor-content { width: 100%; }
.pgn-elementor-content .pgn-tabs { margin-top: 12px; }
.pgn-el-arch img { width: 100%; height: 470px !important; object-fit: cover; object-position: 50% 30%; border-radius: 50% 50% 18px 18px / 44% 44% 18px 18px; }
/* Hero photo: clean full-bleed image, arch shape drawn by CSS. */
.pgn-el-arch img, .pgn-hero__media img { border-radius: 50% 50% 18px 18px / 38% 38% 18px 18px !important; object-position: 50% 0% !important; }
.e-con.pgn-hero__media { position: relative; }
.pgn-el-caption { position: absolute !important; left: 50%; bottom: 18px; transform: translateX(-50%); width: auto !important; max-width: 92%; }
.pgn-el-caption .elementor-heading-title { background: #fff; padding: 8px 22px; border-radius: 6px; white-space: nowrap; }
.pgn-el-circle .elementor-image-box-img { width: 168px !important; max-width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; margin-left: auto !important; margin-right: auto !important; }
.pgn-el-circle .elementor-image-box-img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.07); }
.pgn-el-textlink .elementor-button { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1.5px; }
.pgn-el-banner { overflow: hidden; }
.pgn-el-curve { clip-path: ellipse(100% 125% at 100% 50%); }
.pgn-el-banner__text { padding-left: max(40px, calc((100vw - 1200px) / 2)) !important; }
@media (max-width: 1024px) {
	.pgn-el-curve { clip-path: none; }
	.pgn-el-banner__text { padding-left: 40px !important; }
	.pgn-el-arch img { height: 380px !important; }
}
@media (max-width: 600px) {
	.pgn-el-arch img { height: 270px !important; }
	.pgn-el-banner__text { padding-left: 20px !important; }
	.pgn-el-caption .elementor-heading-title { white-space: normal; font-size: 14.5px !important; }
}

/* ===== 8. Contact form ===== */
.pgn-form { display: grid; gap: 18px; margin-top: 10px; }
.pgn-form label { display: block; font-weight: 700; font-size: 15.5px; margin-bottom: 6px; }
.pgn-form input[type="text"], .pgn-form input[type="email"], .pgn-form textarea { width: 100%; padding: 12px 14px; border: 1px solid #CFC7B6; border-radius: 8px; font: inherit; font-size: 16px; color: var(--pgn-text); background: #fff; }
.pgn-form textarea { min-height: 170px; resize: vertical; }
.pgn-form [aria-invalid="true"] { border-color: #B3261E; }
.pgn-form .pgn-field-error { color: #B3261E; font-size: 14px; margin: 6px 0 0; }
.pgn-form .pgn-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pgn-form .pgn-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.pgn-form .pgn-check input { width: 20px; height: 20px; margin-top: 3px; flex: none; }
.pgn-alert { padding: 16px 20px; border-radius: 10px; margin-bottom: 18px; font-size: 16px; }
.pgn-alert--ok { background: #E3F0E7; border: 1px solid #9CC7A9; color: #10432C; }
.pgn-alert--err { background: #FBE9E7; border: 1px solid #E5A79F; color: #7A1C14; }

/* ===== 9. Footer ===== */
.pgn-footer { background: #F7F3EA; color: var(--pgn-text); margin-top: 0; border-top: 1px solid var(--pgn-line); }
.pgn-footer .pgn-footer__brand, .pgn-footer .pgn-footer__bottom { border-color: #DDD3C0; }
.pgn-footer .pgn-wrap { padding-top: 26px; padding-bottom: 18px; }
.pgn-footer__grid { display: grid; grid-template-columns: minmax(0, 1.7fr) repeat(5, minmax(0, 1fr)); gap: 28px; padding-bottom: 18px; }
.pgn-footer__brand { padding-right: 28px; border-right: 1px solid #B9BFB0; }
.pgn-footer__brand img { height: 62px; width: auto; margin-bottom: 10px; }
.pgn-footer__brand p { font-size: 14px; line-height: 1.5; color: #3F4A44; max-width: 300px; margin: 0; }
.pgn-footer h2 { font-family: var(--pgn-sans); font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--pgn-text); margin: 0 0 8px; }
.pgn-footer ul { list-style: none; margin: 0; padding: 0; }
.pgn-footer li a { display: inline-block; padding: 4px 0; color: #2F3A34; text-decoration: none; font-size: 14.5px; line-height: 1.35; }
.pgn-footer li a:hover { color: var(--pgn-green); text-decoration: underline; }
.pgn-footer__bottom { display: flex; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid #B9BFB0; font-family: var(--pgn-serif); font-size: 14px; }
.pgn-footer__bottom p { margin: 0; }
.pgn-footer__bottom em { font-weight: 600; }

/* ===== 10. Responsive ===== */
@media (max-width: 1080px) {
	.pgn-menu { gap: 18px; }
	.pgn-menu a { font-size: 15.5px; }
}
@media (max-width: 960px) {
	:root { --pgn-pad: 28px; }
	.pgn-nav { display: none; }
	.pgn-burger { display: inline-flex; }
	.pgn-nav.is-open { display: block; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-top: 1px solid #EEE9DE; border-bottom: 1px solid #EEE9DE; padding: 8px var(--pgn-pad) 20px; max-height: calc(100vh - 120px); overflow-y: auto; box-shadow: 0 16px 30px rgba(20,40,30,.08); }
	.pgn-nav.is-open .pgn-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.pgn-nav.is-open .pgn-menu > li { border-bottom: 1px solid #F0EBE0; }
	.pgn-nav.is-open .pgn-menu a { padding: 13px 4px; width: 100%; }
	.pgn-nav.is-open .pgn-menu > li > a { border-bottom: 0; }
	.pgn-nav.is-open .pgn-menu .sub-menu { display: block; position: static; border: 0; box-shadow: none; padding: 0 0 10px 14px; min-width: 0; }
	.pgn-nav.is-open .pgn-menu .sub-menu a { padding: 9px 4px; }
	.pgn-nav.is-open .pgn-menu .menu-item-has-children > a::after { display: none; }
	.pgn-nav .pgn-search-toggle { display: none; }
	.pgn-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
	.pgn-hero__media img { height: 380px; }
	.pgn-circles { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }
	.pgn-pills { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pgn-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pgn-banner { flex-direction: column; }
	.pgn-banner__text { width: 100%; padding: 46px var(--pgn-pad); }
	.pgn-banner__img { position: relative; width: 100%; height: 300px; clip-path: none; }
	.pgn-about { grid-template-columns: minmax(0, 1fr); gap: 26px; }
	.pgn-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pgn-footer__brand { grid-column: 1 / -1; border-right: 0; padding-right: 0; }
}
@media (max-width: 600px) {
	:root { --pgn-pad: 20px; }
	body { font-size: 16.5px; }
	.pgn-logo img { height: 54px; }
	.pgn-hero__media img { height: 270px; }
	.pgn-hero__caption { font-size: 14.5px; padding: 7px 14px; bottom: 12px; }
	.pgn-hero h1 .pgn-leaf { width: 28px; height: 28px; margin: -20px 0 0 -6px; }
	.pgn-circles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pgn-circle__name { font-size: 19px; }
	.pgn-pills { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.pgn-grid { grid-template-columns: minmax(0, 1fr); }
	.pgn-reads__head { flex-direction: column; align-items: flex-start; }
	.pgn-prose { font-size: 17px; }
	.pgn-prose h2 { font-size: 26px; }
	.pgn-prose h3 { font-size: 21px; }
	.pgn-postnav .nav-links { grid-template-columns: 1fr; }
	.pgn-postnav .nav-next { text-align: left; }
	.pgn-searchform { flex-wrap: wrap; }
	.pgn-searchform .pgn-btn { width: 100%; }
	.pgn-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pgn-footer__bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
