@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
	--pp-ivory: #fffcf7;
	--pp-cream: #fff0d5;
	--pp-teal: #263d42;
	--pp-slate: #697778;
	--pp-pink: #e91e83;
	--pp-pink-hover: #c9156e;
	--pp-gold: #eacb81;
	--pp-white: #fff;
	--pp-border: #e7e5df;
	--pp-dark: #142c30;
	--pp-content: 1200px;
}

html { scroll-behavior: smooth; }
body { background: var(--pp-ivory); color: var(--pp-teal); font-family: 'DM Sans', Arial, sans-serif; font-size: 16px; line-height: 1.7; }
body, button, input, select, textarea { font-family: 'DM Sans', Arial, sans-serif; }
h1, h2, h3, h4, h5, h6,
.elementor-heading-title { color: var(--pp-teal); font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 600; letter-spacing: -.025em; line-height: 1.08; }
h1, .elementor h1 { font-size: clamp(2.75rem, 5.3vw, 5.1rem); }
h2, .elementor h2 { font-size: clamp(2.25rem, 4vw, 3.75rem); }
h3, .elementor h3 { font-size: clamp(1.65rem, 2.7vw, 2.25rem); }
p, .elementor-widget-text-editor { color: var(--pp-slate); }
a { color: var(--pp-pink); transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
a:hover, a:focus-visible { color: var(--pp-pink-hover); }
/* Keyboard focus gets a clean gold ring; mouse/touch clicks get none of the
   browser's default dotted outline (which also warps into an odd oval on
   pill-shaped elements like the nav links and the round logo/social icons). */
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: 3px solid var(--pp-gold); outline-offset: 3px; }

/* Astra header and the existing WordPress navigation. */
#masthead, .ast-primary-header-bar, .main-header-bar { background: var(--pp-ivory); border-bottom: 1px solid rgba(38, 61, 66, .09); }
#masthead { position: sticky !important; top: 0; z-index: 1000; }
body.admin-bar #masthead { top: 32px; }
.ast-primary-header-bar { min-height: 88px; padding-inline: clamp(20px, 3vw, 46px); }
.main-header-menu > .menu-item > .menu-link {
	display: inline-flex; align-items: center; align-self: center; line-height: 1.3;
	color: var(--pp-teal); font-size: 14px; font-weight: 600; letter-spacing: .01em;
	padding: 10px 16px; margin-inline: 1px; border-radius: 999px;
	transition: background-color .25s ease, color .25s ease;
}
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .menu-item.current-menu-item > .menu-link { color: var(--pp-pink); background-color: rgba(233, 30, 131, .1); }
.main-header-menu > .menu-item > .menu-link:focus { outline: none; }
.main-header-menu > .menu-item > .menu-link:focus-visible {
	outline: none; color: var(--pp-pink); background-color: rgba(233, 30, 131, .1);
	box-shadow: 0 0 0 3px rgba(233, 30, 131, .35);
}
.main-header-menu > .menu-item.pp-nav-cta > .menu-link { background: var(--pp-pink); border-radius: 999px; color: #fff; margin-inline-start: 8px; padding: 11px 21px; }
.main-header-menu > .menu-item.pp-nav-cta > .menu-link:hover { background: var(--pp-pink-hover); color: #fff; transform: translateY(-1px); }

/* Logo: crop the square artwork into a clean medallion instead of a hard-edged square. */
.custom-logo-link { display: inline-flex; border-radius: 50%; }
.custom-logo-link img, .custom-logo {
	width: 60px !important; height: 60px !important; object-fit: cover;
	border-radius: 50% !important; box-shadow: 0 4px 14px rgba(38, 61, 66, .22);
	transition: transform .25s ease, box-shadow .25s ease;
}
.custom-logo-link:hover img { transform: scale(1.05); box-shadow: 0 6px 18px rgba(38, 61, 66, .3); }
.custom-logo-link:focus { outline: none; }
.custom-logo-link:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(233, 30, 131, .35); }

/* Header social icons: the theme's default brand-colored icons read as near-invisible
   pastel marks on the new light header; give them one consistent, visible treatment. */
.ast-header-social-wrap { margin-inline-start: 10px; }
.ast-header-social-wrap .ast-builder-social-element,
.ast-header-social-wrap .ast-builder-social-element svg,
.ast-header-social-wrap .ast-builder-social-element path { color: var(--pp-teal) !important; fill: var(--pp-teal) !important; }
.ast-header-social-wrap .ast-builder-social-element {
	width: 34px !important; height: 34px !important; margin-inline: 4px !important;
	background-color: rgba(38, 61, 66, .06) !important; border-radius: 50% !important;
	opacity: 1 !important; transition: background-color .25s ease, color .25s ease, transform .2s ease;
}
.ast-header-social-wrap .ast-builder-social-element:hover,
.ast-header-social-wrap .ast-builder-social-element:hover svg,
.ast-header-social-wrap .ast-builder-social-element:hover path { color: #fff !important; fill: #fff !important; }
.ast-header-social-wrap .ast-builder-social-element:hover { background-color: var(--pp-pink) !important; transform: translateY(-2px); }
.ast-header-social-wrap .ast-builder-social-element:focus { outline: none; }
.ast-header-social-wrap .ast-builder-social-element:focus-visible {
	outline: none; box-shadow: 0 0 0 3px rgba(233, 30, 131, .35);
}
.ast-mobile-popup-drawer .menu-link { color: var(--pp-teal); font-weight: 600; }

/* WP admin bar is taller on small screens (WP core switches to 46px below 782px);
   keep the sticky header's resume offset in sync so there is no gap or overlap. */
@media screen and (max-width: 782px) {
	body.admin-bar #masthead { top: 46px; }
}

/* Shared Elementor rhythm, color, surfaces and controls. */
.elementor-section-wrap, .elementor .e-con { box-sizing: border-box; }
.elementor .e-con { scroll-margin-top: 100px; }
.elementor .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor .elementor-divider-separator { border-color: var(--pp-gold) !important; }
.elementor-widget-button .elementor-button,
.elementor a.elementor-button,
.ast-button, input[type='submit'] {
	background: var(--pp-pink); border: 1px solid var(--pp-pink); border-radius: 999px;
	box-shadow: 0 8px 22px rgba(201, 21, 110, .14); color: #fff; font-weight: 700;
	letter-spacing: .01em; padding: 15px 26px; transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.elementor-widget-button .elementor-button:hover,
.elementor a.elementor-button:hover,
.ast-button:hover, input[type='submit']:hover { background: var(--pp-pink-hover); border-color: var(--pp-pink-hover); box-shadow: 0 12px 26px rgba(201, 21, 110, .2); color: #fff; transform: translateY(-2px); }
.elementor .elementor-widget-icon-box .elementor-icon,
.elementor .elementor-widget-icon .elementor-icon { color: var(--pp-pink); }
.elementor .elementor-widget-icon-box .elementor-icon svg,
.elementor .elementor-widget-icon .elementor-icon svg { fill: currentColor; }
.elementor .elementor-widget-image img { border-radius: 20px; }
.elementor .elementor-accordion .elementor-tab-title { border-color: var(--pp-border); color: var(--pp-teal); font-weight: 600; }
.elementor .elementor-accordion .elementor-tab-content { border-color: var(--pp-border); color: var(--pp-slate); }

/* Homepage: retain the existing hero and photography, with a softer editorial wash. */
.elementor-element-pphero01 { background-color: var(--pp-ivory) !important; color: var(--pp-teal); isolation: isolate; overflow: hidden; position: relative; }
.elementor-element-pphero01::before { background: linear-gradient(90deg, rgba(255,252,247,.98) 0%, rgba(255,252,247,.94) 43%, rgba(255,252,247,.38) 74%, rgba(255,252,247,.04) 100%); content: ''; inset: 0; pointer-events: none; position: absolute; z-index: 0; }
.elementor-element-pphero01 { min-height: min(690px, calc(100vh - 82px)); padding: clamp(68px, 8vw, 108px) max(28px, calc((100vw - var(--pp-content)) / 2)) !important; }
.elementor-540 .elementor-element.elementor-element-pphero01::before { background-color: transparent !important; background-image: linear-gradient(90deg, rgba(255,252,247,.98) 0%, rgba(255,252,247,.95) 42%, rgba(255,252,247,.5) 69%, rgba(255,252,247,.02) 100%) !important; }
.elementor-element-pphero01 .elementor-heading-title { color: var(--pp-teal); font-size: clamp(3.4rem, 6.4vw, 5.5rem); }
.elementor-element-pph0004 .elementor-heading-title { color: var(--pp-pink); font-style: italic; }
.elementor-element-pphero01 .elementor-widget-text-editor { max-width: 560px; }
.elementor-element-pphero01 .elementor-widget-text-editor p { color: var(--pp-slate); font-size: clamp(1rem, 1.25vw, 1.125rem); }
.elementor-element-pphero01 .elementor-divider-separator { width: 48px; }

/* Replace the old full pink bands with the shared ivory and cream palette. */
.elementor-element-ppw0001,
.elementor-element-ppr0001,
.elementor-element-f5c239d,
.elementor-element-d56d843 { background-color: var(--pp-cream) !important; }
.elementor-element-ppb0001,
.elementor-element-pps0001,
.elementor-element-551eb1e,
.elementor-element-776ac0e { background-color: var(--pp-ivory) !important; }
.elementor-element-ppb0003,
.elementor-element-ppb0012 { background-color: var(--pp-dark) !important; border-radius: 22px; }
.elementor-element-ppb0003 .elementor-heading-title,
.elementor-element-ppb0012 .elementor-heading-title { color: var(--pp-ivory); }
.elementor-element-ppb0003 .elementor-heading-title::first-letter,
.elementor-element-ppb0012 .elementor-heading-title::first-letter { color: var(--pp-gold); }
.elementor-element-ppw0001 .elementor-element-ppw010,
.elementor-element-ppw0001 .elementor-element-ppw011,
.elementor-element-ppw0001 .elementor-element-ppw012,
.elementor-element-ppw0001 .elementor-element-ppw013,
.elementor-element-ppr0001 .elementor-element-ppr010,
.elementor-element-ppr0001 .elementor-element-ppr011,
.elementor-element-ppr0001 .elementor-element-ppr012 { background: var(--pp-white); border: 1px solid var(--pp-border); border-radius: 18px; box-shadow: 0 8px 28px rgba(38,61,66,.045); padding: 24px; }
.elementor-element-ppw0001 .elementor-widget-icon-box .elementor-icon-box-title,
.elementor-element-ppr0001 .elementor-widget-icon-box .elementor-icon-box-title { color: var(--pp-teal); }
.elementor-element-ppr0001 .elementor-widget-star-rating { display: none; }

/* Contrast fixes: several widgets still carry text colors tuned for the old
   dark/pink section backgrounds; now that those sections sit on ivory/cream,
   the inherited widget-level colors win on specificity and read as invisible. */
.elementor-element-pph0003 .elementor-heading-title { color: var(--pp-teal) !important; }
.elementor-element-ppw0001 .elementor-heading-title,
.elementor-element-ppr0001 .elementor-heading-title { color: var(--pp-teal) !important; }
.elementor-element-pph0010 .elementor-button {
	background-color: transparent !important; color: var(--pp-teal) !important;
	border-color: var(--pp-teal) !important; fill: var(--pp-teal) !important;
}
.elementor-element-pph0010 .elementor-button:hover,
.elementor-element-pph0010 .elementor-button:focus {
	background-color: var(--pp-teal) !important; color: #fff !important;
	border-color: var(--pp-teal) !important; fill: #fff !important;
}
.elementor-element-pph0010 .elementor-button:hover svg,
.elementor-element-pph0010 .elementor-button:focus svg { fill: #fff !important; }

/* All pages: contained widths and forms. */
.elementor .elementor-widget-form .elementor-field-group { margin-bottom: 18px; }
.elementor .elementor-field-textual { background: #fff; border: 1px solid var(--pp-border); border-radius: 10px; color: var(--pp-teal); min-height: 48px; padding: 12px 14px; }
.elementor .elementor-field-textual:focus { border-color: var(--pp-pink); box-shadow: 0 0 0 3px rgba(233,30,131,.1); }
#colophon, .site-footer, .elementor-location-footer { background: var(--pp-dark); color: rgba(255,252,247,.82); }
#colophon .elementor-element-ppf0001 { background-color: var(--pp-dark) !important; color: rgba(255,252,247,.82); }
#colophon .elementor-element-ppf0001 p,
#colophon .elementor-element-ppf0001 .elementor-icon-list-text,
#colophon .elementor-element-ppf0001 .elementor-social-icon { color: rgba(255,252,247,.82); }
#colophon .elementor-element-ppf0001 .elementor-heading-title { color: var(--pp-ivory); }
#colophon h1, #colophon h2, #colophon h3, #colophon h4, #colophon .elementor-heading-title,
.elementor-location-footer h1, .elementor-location-footer h2, .elementor-location-footer h3 { color: var(--pp-ivory); }
#colophon a, .elementor-location-footer a { color: var(--pp-ivory); }
#colophon a:hover, .elementor-location-footer a:hover { color: var(--pp-gold); }
.ast-footer-copyright { color: rgba(255,252,247,.7); }

/* Dynamic event cards use current published Events Calendar records. */
.pp-events { margin: 0 auto; max-width: var(--pp-content); padding: clamp(44px, 6vw, 76px) 0; }
.pp-events__intro { margin: 0 auto 32px; max-width: 720px; text-align: center; }
.pp-events__intro h2 { color: var(--pp-teal); margin: 0; }
.pp-eyebrow, .pp-event-card__status { color: var(--pp-pink); font: 700 11px/1.4 'DM Sans', Arial, sans-serif; letter-spacing: .16em; margin: 0 0 12px; text-transform: uppercase; }
.pp-events__grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.pp-event-card { background: var(--pp-white); border: 1px solid var(--pp-border); border-radius: 20px; box-shadow: 0 10px 32px rgba(38,61,66,.06); overflow: hidden; }
.pp-event-card__image { display: block; height: 220px; overflow: hidden; }
.pp-event-card__image img { display: block; height: 100%; object-fit: cover; transition: transform .35s ease; width: 100%; }
.pp-event-card:hover .pp-event-card__image img { transform: scale(1.035); }
.pp-event-card__body { align-items: flex-start; display: flex; gap: 18px; padding: 24px; }
.pp-event-card__date { align-items: center; background: var(--pp-cream); border-radius: 14px; color: var(--pp-teal); display: flex; flex: 0 0 72px; flex-direction: column; line-height: 1.2; margin: 0; padding: 11px 6px; }
.pp-event-card__date span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.pp-event-card__date strong { font: 600 34px/1 'Cormorant Garamond', Georgia, serif; margin: 4px 0; }
.pp-event-card__content { min-width: 0; }
.pp-event-card__content h3 { font-size: clamp(1.55rem, 2.4vw, 2rem); margin: 0 0 9px; }
.pp-event-card__content h3 a { color: var(--pp-teal); text-decoration: none; }
.pp-event-card__content h3 a:hover { color: var(--pp-pink); }
.pp-event-card__content > p:not(.pp-event-card__status) { margin: 0 0 12px; }
.pp-event-card__details { color: var(--pp-slate); font-size: 14px; list-style: none; margin: 0 0 18px; padding: 0; }
.pp-event-card__details li + li { margin-top: 4px; }
.pp-event-card__cta { color: var(--pp-pink); display: inline-flex; font-weight: 700; gap: 8px; text-decoration: none; }
.pp-event-card__cta:hover { color: var(--pp-pink-hover); gap: 12px; }
.pp-events__empty { background: var(--pp-white); border: 1px solid var(--pp-border); border-radius: 20px; margin-inline: auto; max-width: 760px; padding: clamp(28px, 5vw, 48px); text-align: center; }
.pp-events__empty h3 { color: var(--pp-teal); margin: 0 0 10px; }
.pp-events__empty p { margin: 0 auto 20px; max-width: 560px; }

@media (max-width: 1024px) {
	.ast-primary-header-bar { min-height: 74px; }
	.elementor-element-pphero01 { min-height: 580px; padding-inline: 28px !important; }
	.elementor-540 .elementor-element.elementor-element-pphero01::before { background-image: linear-gradient(90deg, rgba(255,252,247,.98) 0%, rgba(255,252,247,.92) 56%, rgba(255,252,247,.22) 100%) !important; }
}
@media (max-width: 767px) {
	body { font-size: 16px; }
	#masthead { position: relative; top: auto; }
	body.admin-bar #masthead { top: auto; }
	.ast-primary-header-bar { min-height: 68px; padding-inline: 14px; }
	.ast-header-break-point .ast-mobile-menu-trigger-minimal { color: var(--pp-teal); }
	.elementor-element-pphero01 { min-height: 0; padding: 52px 22px 34px !important; }
	.elementor-540 .elementor-element.elementor-element-pphero01::before { background-image: linear-gradient(180deg, rgba(255,252,247,.96) 0%, rgba(255,252,247,.95) 68%, rgba(255,252,247,.18) 100%) !important; }
	.elementor-element-pphero01 .elementor-heading-title { font-size: clamp(2.65rem, 11vw, 3.35rem); }
	.elementor-element-pphero01 .elementor-widget-text-editor p { font-size: 16px; }
	.elementor .e-con { scroll-margin-top: 76px; }
	.pp-events { padding: 42px 4px; }
	.pp-events__intro { margin-bottom: 24px; text-align: left; }
	.pp-events__grid { grid-template-columns: minmax(0, 1fr); }
	.pp-event-card__body { gap: 13px; padding: 19px; }
	.pp-event-card__date { flex-basis: 62px; }
	.pp-event-card__date strong { font-size: 30px; }
	.pp-event-card__image { height: 190px; }
}
@media (max-width: 360px) {
	.pp-event-card__body { padding: 16px 13px; }
	.pp-event-card__date { flex-basis: 54px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
