/*
Theme Name: Primrose Dayhome
Theme URI: https://primrosedahome.com/
Author: Primrose Dayhome
Description: A warm, child-friendly, single-page WordPress theme for Primrose Dayhome in Livingston, Calgary. Includes editable dayhome settings, programs, schedule, FAQs, gallery, caregiver profile, inquiries, and enrollment details without requiring a page builder.
Version: 1.3.0
Requires at least: 6.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: primrose-dayhome
Tags: custom-logo, featured-images, one-column, accessibility-ready, responsive-layout
*/

:root {
  --pr-primary: #7d5bd6;
  --pr-secondary: #f28da8;
  --pr-accent: #f6c95d;
  --pr-teal: #49bfc4;
  --pr-green: #78c998;
  --pr-ink: #263238;
  --pr-muted: #667085;
  --pr-sky: #edf7ff;
  --pr-cream: #fff9ea;
  --pr-blush: #fff1f5;
  --pr-lilac: #f4efff;
  --pr-white: #fff;
  --pr-border: rgba(70, 62, 95, .12);
  --pr-shadow: 0 18px 50px rgba(69, 62, 91, .11);
  --pr-radius-xl: 34px;
  --pr-radius-lg: 24px;
  --pr-radius-md: 18px;
  --pr-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
  margin: 0;
  color: var(--pr-ink);
  background: #fffdf8;
  font-family: "Trebuchet MS", "Avenir Next", Avenir, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.pr-modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.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 {
  background: #fff; clip: auto !important; clip-path: none; color: #111; display: block; font-size: 14px; height: auto;
  left: 8px; padding: 12px 16px; top: 8px; width: auto; z-index: 100000; border-radius: 10px;
}

.pr-container { width: min(calc(100% - 40px), var(--pr-max)); margin-inline: auto; position: relative; }
.pr-section { position: relative; padding: 104px 0; overflow: hidden; }
.pr-section-head { text-align: center; max-width: 760px; margin: 0 auto 48px; position: relative; z-index: 2; }
.pr-eyebrow { display: inline-flex; align-items: center; gap: 8px; color: var(--pr-primary); font-weight: 800; letter-spacing: .13em; text-transform: uppercase; font-size: .78rem; }
.pr-eyebrow::before, .pr-eyebrow::after { content: ""; width: 22px; height: 2px; background: currentColor; opacity: .35; border-radius: 99px; }
h1, h2, h3, h4 { line-height: 1.12; margin: 0 0 .65em; letter-spacing: -.025em; }
h1 { font-size: clamp(3rem, 6vw, 5.6rem); }
h2 { font-size: clamp(2.25rem, 4.7vw, 4.1rem); }
h3 { font-size: clamp(1.18rem, 2vw, 1.45rem); }
p { margin: 0 0 1em; }
.pr-lead { color: var(--pr-muted); font-size: clamp(1.05rem, 2vw, 1.22rem); }

/* Header */
.pr-site-header {
  position: sticky; top: 0; z-index: 1000; background: rgba(255, 250, 251, .92); backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--pr-border); transition: box-shadow .25s ease, background .25s ease;
}
.pr-site-header.is-scrolled { box-shadow: 0 12px 30px rgba(55, 45, 78, .08); background: rgba(255,255,255,.96); }
.pr-nav-wrap { min-height: 98px; display: flex; align-items: center; gap: 28px; }
.pr-brand { display: inline-flex; align-items: center; gap: 12px; margin-right: auto; min-width: 210px; }
.pr-brand img { max-height: 54px; width: auto; }
/* The Primrose logo is naturally taller than a standard wordmark. Give it more
   visual presence in the header without enlarging the footer logo. */
.pr-site-header .pr-brand img { max-height: 82px; width: auto; }
.pr-brand-mark {
  width: 47px; height: 47px; border-radius: 50%; display: grid; place-items: center; flex: 0 0 47px;
  background: radial-gradient(circle at 50% 50%, var(--pr-accent) 0 17%, transparent 18%),
              conic-gradient(from 0deg, #f6a6bc, #f7cf6e, #8bd8a7, #8bd7e6, #b7a0f5, #f6a6bc);
  box-shadow: inset 0 0 0 8px rgba(255,255,255,.78), 0 7px 20px rgba(91,72,116,.13);
}
.pr-brand-text { display: flex; flex-direction: column; line-height: 1; }
.pr-brand-text strong { font-size: 1.18rem; color: #57407a; }
.pr-brand-text span { margin-top: 5px; font-size: .78rem; color: var(--pr-green); font-weight: 800; letter-spacing: .05em; }
.pr-nav { display: flex; align-items: center; gap: 4px; }
.pr-nav ul { list-style: none; display: flex; align-items: center; gap: 2px; padding: 0; margin: 0; }
.pr-nav a { display: block; padding: 12px 11px; border-radius: 999px; font-weight: 700; color: #494156; font-size: .94rem; }
.pr-nav a:hover, .pr-nav a.is-active { color: var(--pr-primary); background: var(--pr-lilac); }
.pr-contact-top { border: 0; background: linear-gradient(135deg, var(--pr-primary), #9d7ff1); color: #fff; border-radius: 999px; padding: 12px 20px; font-weight: 800; box-shadow: 0 10px 22px rgba(125,91,214,.25); }
.pr-menu-toggle { display: none; border: 0; background: var(--pr-lilac); width: 46px; height: 46px; border-radius: 14px; align-items: center; justify-content: center; }
.pr-menu-toggle span, .pr-menu-toggle::before, .pr-menu-toggle::after { content: ""; width: 22px; height: 2px; background: #4c405c; border-radius: 2px; display: block; transition: .2s; }
.pr-menu-toggle span { margin: 5px 0; }

/* Hero */
.pr-hero { min-height: calc(100vh - 98px); display: flex; align-items: center; padding: 70px 0 88px; background: linear-gradient(180deg, #eef8ff 0%, #fff9ea 90%); overflow: hidden; position: relative; }
.pr-hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: 56px; align-items: center; position: relative; z-index: 3; }
.pr-hero-copy { max-width: 670px; }
.pr-status-pill { display: inline-flex; align-items: center; gap: 9px; padding: 9px 14px; background: rgba(255,255,255,.83); border: 1px solid rgba(125,91,214,.13); border-radius: 999px; box-shadow: 0 7px 20px rgba(56,52,77,.07); font-weight: 800; color: var(--pr-primary); margin-bottom: 22px; }
.pr-status-dot { width: 9px; height: 9px; border-radius: 50%; background: #54c78b; box-shadow: 0 0 0 5px rgba(84,199,139,.13); }
.pr-hero-kicker { color: #2996a5; font-weight: 900; margin-bottom: 10px; }
.pr-hero h1 { color: #332845; }
.pr-hero h1 .pr-highlight { color: var(--pr-primary); position: relative; display: inline-block; }
.pr-hero h1 .pr-highlight::after { content: ""; position: absolute; left: 3%; right: 2%; bottom: .03em; height: .18em; background: var(--pr-accent); opacity: .45; border-radius: 99px; z-index: -1; transform: rotate(-1.5deg); }
.pr-tagline { font-size: clamp(1.25rem, 2vw, 1.55rem); color: #586070; font-weight: 800; margin-bottom: 16px; }
.pr-hero-desc { color: #5f6472; font-size: 1.08rem; max-width: 620px; }
.pr-facts { display: flex; flex-wrap: wrap; gap: 11px; margin: 28px 0 30px; }
.pr-fact { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.9); border: 1px solid rgba(68,63,80,.09); border-radius: 999px; padding: 11px 15px; box-shadow: 0 7px 18px rgba(59,52,80,.07); font-weight: 800; color: #4e5261; }
.pr-fact:nth-child(1) { background: #e8f9ff; }
.pr-fact:nth-child(2) { background: #fff3cf; }
.pr-fact:nth-child(3) { background: #ffe8ef; }
.pr-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 42px; }
.pr-btn { border: 0; min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px 27px; border-radius: 18px; font-weight: 900; font-size: 1rem; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.pr-btn:hover { transform: translateY(-3px); }
.pr-btn-primary { background: linear-gradient(135deg, var(--pr-primary), #9d75f0); color: #fff; box-shadow: 0 15px 30px rgba(125,91,214,.3); }
.pr-btn-primary:hover { box-shadow: 0 20px 34px rgba(125,91,214,.36); }
.pr-btn-secondary { background: rgba(255,255,255,.95); color: #493d5b; border: 1px solid rgba(125,91,214,.16); box-shadow: 0 12px 26px rgba(55,51,72,.09); }
.pr-btn-secondary:hover { background: #fff; box-shadow: 0 17px 30px rgba(55,51,72,.12); }
.pr-btn-green { background: linear-gradient(135deg, #4ebd7c, #2faa6b); color: #fff; box-shadow: 0 12px 24px rgba(49,169,108,.2); }
.pr-hero-photo-wrap { position: relative; min-height: 560px; }
.pr-hero-photo { position: absolute; inset: 28px 0 36px 38px; border-radius: 38% 24% 31% 18% / 24% 34% 24% 36%; overflow: hidden; box-shadow: 0 32px 70px rgba(65, 57, 91, .22); border: 9px solid rgba(255,255,255,.86); transform: rotate(1.2deg); background: #ddd; }
.pr-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.pr-hero-slider { position: relative; width: 100%; height: 100%; overflow: hidden; }
.pr-hero-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.045); transition: opacity .75s ease, transform 1.2s ease; pointer-events: none; }
.pr-hero-slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.pr-hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.pr-slider-arrow { position: absolute; z-index: 4; top: 50%; transform: translateY(-50%); width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; background: rgba(255,255,255,.88); color: #4b3f5a; box-shadow: 0 9px 22px rgba(45,39,58,.17); font-size: 1.8rem; line-height: 1; display: grid; place-items: center; opacity: .78; transition: opacity .2s ease, transform .2s ease; }
.pr-slider-arrow:hover { opacity: 1; transform: translateY(-50%) scale(1.06); }
.pr-slider-prev { left: 14px; }
.pr-slider-next { right: 14px; }
.pr-slider-dots { position: absolute; z-index: 4; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 7px; padding: 7px 10px; border-radius: 999px; background: rgba(255,255,255,.72); backdrop-filter: blur(8px); box-shadow: 0 7px 20px rgba(45,39,58,.12); }
.pr-slider-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(75,63,90,.25); transition: width .2s ease, background .2s ease; }
.pr-slider-dot.is-active { width: 22px; border-radius: 999px; background: var(--pr-primary); }

.pr-floating-card { position: absolute; z-index: 5; background: rgba(255,255,255,.93); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.9); border-radius: 19px; padding: 13px 16px; box-shadow: 0 15px 32px rgba(60,52,81,.12); font-weight: 900; }
.pr-floating-card span { display: block; color: var(--pr-muted); font-size: .72rem; font-weight: 700; margin-top: 2px; }
.pr-float-one { left: 0; bottom: 72px; color: #229e6c; transform: rotate(-2deg); }
.pr-float-two { right: -12px; top: 74px; color: #865fd2; transform: rotate(2deg); }

/* Decorative playground */
.pr-sun { position: absolute; width: 190px; height: 190px; border-radius: 50%; right: 5%; top: -58px; background: radial-gradient(circle at 38% 38%, #fff5b9 0, #ffd56d 56%, #f4ba3d 100%); box-shadow: 0 0 42px rgba(246,201,93,.45); opacity: .9; }
.pr-cloud { position: absolute; width: 102px; height: 35px; background: rgba(255,255,255,.9); border-radius: 999px; }
.pr-cloud::before, .pr-cloud::after { content: ""; position: absolute; background: inherit; border-radius: 50%; }
.pr-cloud::before { width: 46px; height: 46px; left: 17px; top: -20px; }
.pr-cloud::after { width: 58px; height: 58px; right: 8px; top: -29px; }
.pr-cloud-one { left: 5%; top: 12%; transform: scale(.72); }
.pr-cloud-two { right: 2%; bottom: 18%; transform: scale(1.08); }
.pr-doodle { position: absolute; z-index: 1; font-weight: 1000; opacity: .45; user-select: none; pointer-events: none; filter: drop-shadow(0 4px 0 rgba(70,65,85,.08)); }
.pr-doodle-letter { color: var(--pr-primary); font-size: 52px; transform: rotate(-12deg); }
.pr-doodle-star { color: var(--pr-accent); font-size: 48px; }
.pr-doodle-num { color: var(--pr-secondary); font-size: 46px; transform: rotate(9deg); }
.pr-doodle-shape { width: 50px; height: 50px; border: 5px solid var(--pr-teal); transform: rotate(18deg); opacity: .25; }

/* Animated child-friendly hero shapes */
.pr-hero-playground { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.pr-play-shape { position:absolute; display:grid; place-items:center; width:46px; height:46px; opacity:.42; pointer-events:none; user-select:none; font-weight:1000; line-height:1; filter:drop-shadow(0 7px 3px rgba(73,61,93,.08)); animation:pr-gentle-fall 6.8s ease-in-out var(--delay,0s) infinite alternate; }
.pr-shape-letter { color:#8d6be5; font-size:46px; }
.pr-shape-number { color:#f38fa8; font-size:44px; }
.pr-shape-star { color:#f4bf3f; font-size:44px; }
.pr-shape-flower { color:#ef86a8; font-size:38px; }
.pr-shape-diamond { color:#68c8d0; font-size:31px; }
.pr-shape-plus { color:#68c8d0; font-size:48px; }
.pr-shape-small { transform:scale(.72); opacity:.30; }
.pr-shape-square { width:34px; height:34px; border:7px solid rgba(125,91,214,.55); border-radius:8px; background:rgba(255,255,255,.22); }
.pr-shape-ring { width:39px; height:39px; border:8px solid rgba(242,141,168,.58); border-radius:50%; }
.pr-shape-dot { width:31px; height:31px; border-radius:50%; background:linear-gradient(135deg,#f6c95d,#f39c78); box-shadow:inset 0 0 0 7px rgba(255,255,255,.45),0 8px 18px rgba(246,201,93,.22); }
.pr-shape-triangle { width:0; height:0; border-left:24px solid transparent; border-right:24px solid transparent; border-bottom:42px solid rgba(73,191,196,.52); filter:drop-shadow(0 7px 3px rgba(73,61,93,.08)); }
@keyframes pr-gentle-fall {
  0% { transform:translate3d(-3px,-16px,0) rotate(var(--tilt,0deg)) scale(.94); }
  52% { transform:translate3d(9px,8px,0) rotate(calc(var(--tilt,0deg) + 8deg)) scale(1.03); }
  100% { transform:translate3d(-5px,27px,0) rotate(calc(var(--tilt,0deg) - 5deg)) scale(.98); }
}


/* Hero explorer / quick links */
.pr-hero-explore { position: relative; padding-top: 1px; }
.pr-explore-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.pr-explore-heading > span { color: #40344f; font-size: 1.08rem; font-weight: 950; }
.pr-explore-heading small { color: #7a7583; font-size: .78rem; font-weight: 700; text-align: right; }
.pr-quicklinks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pr-quick-card { min-height: 126px; border-radius: 24px; padding: 20px 18px; display: grid; grid-template-columns: 48px 1fr 34px; gap: 13px; align-items: center; position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.78); box-shadow: 0 14px 30px rgba(70,60,90,.11); transition: transform .22s ease, box-shadow .22s ease; isolation: isolate; }
.pr-quick-card:hover { transform: translateY(-6px) rotate(-.25deg); box-shadow: 0 21px 38px rgba(70,60,90,.16); }
.pr-quick-card::before { content: ""; position: absolute; width: 112px; height: 112px; right: -36px; bottom: -50px; border-radius: 50%; background: rgba(255,255,255,.32); z-index: -1; }
.pr-quick-card::after { content: ""; position: absolute; width: 54px; height: 54px; left: -22px; top: -24px; border-radius: 50%; background: rgba(255,255,255,.2); z-index: -1; }
.pr-quick-icon { width: 48px; height: 48px; border-radius: 16px; display: grid !important; place-items: center; margin: 0 !important; background: rgba(255,255,255,.86); color: #4b3f5a !important; font-size: 1.22rem !important; font-weight: 950; box-shadow: 0 8px 18px rgba(70,60,90,.09); }
.pr-quick-card strong { font-size: 1.02rem; line-height: 1.15; display: block; color: #2f2937; }
.pr-quick-card div > span { color: rgba(38,50,56,.69); font-size: .79rem; line-height: 1.42; display: block; margin-top: 6px; }
.pr-quick-arrow { width: 32px; height: 32px; border-radius: 50%; display: grid !important; place-items: center; margin: 0 !important; background: rgba(255,255,255,.72); color: #42364f !important; font-size: 1rem !important; font-weight: 950; transition: transform .2s ease, background .2s ease; }
.pr-quick-card:hover .pr-quick-arrow { transform: translateX(3px); background: #fff; }
.pr-q1 { background: linear-gradient(135deg, #ffb8ca, #ffd3dd); }
.pr-q2 { background: linear-gradient(135deg, #99e5ef, #c3f2f6); }
.pr-q3 { background: linear-gradient(135deg, #acebc7, #d4f6e2); }
.pr-q4 { background: linear-gradient(135deg, #ffc98d, #ffe0b6); }

/* About */
.pr-about { background: linear-gradient(180deg, var(--pr-blush), #fffdf8); }
.pr-about-card { background: rgba(255,255,255,.78); border: 1px solid rgba(255,255,255,.95); border-radius: var(--pr-radius-xl); padding: 54px; box-shadow: var(--pr-shadow); display: grid; grid-template-columns: .72fr 1.28fr; gap: 62px; align-items: center; position: relative; z-index: 2; }
.pr-caregiver-photo { max-width: 390px; margin-inline: auto; padding: 13px; border-radius: 40px 40px 120px 40px; background: linear-gradient(135deg, #f6b2c5, #c9b6f6, #9ee3e8); box-shadow: 0 20px 50px rgba(89,69,104,.15); }
.pr-caregiver-photo-inner { border-radius: 30px 30px 110px 30px; overflow: hidden; aspect-ratio: 4/5; background: #fff; display: grid; place-items: center; }
.pr-caregiver-photo img { width: 100%; height: 100%; object-fit: cover; }
.pr-caregiver-placeholder { width: 100%; height: 100%; display: grid; place-items: center; text-align: center; padding: 30px; color: #786a89; background: linear-gradient(160deg, #fff, #f6f0ff); }
.pr-caregiver-placeholder .flower { font-size: 82px; line-height: 1; }
.pr-role { color: #cb536f; font-weight: 900; margin-top: -8px; margin-bottom: 22px; }
.pr-about-copy { color: #5f6472; }
.pr-philosophy { margin-top: 22px; padding: 18px 20px; background: #fffaf0; border-left: 5px solid var(--pr-accent); border-radius: 0 16px 16px 0; color: #5a5e68; }
.pr-trust-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 26px; }
.pr-trust { background: #fff; border: 1px solid var(--pr-border); border-radius: 17px; padding: 15px; display: flex; gap: 12px; align-items: flex-start; }
.pr-trust-icon { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--pr-lilac); color: var(--pr-primary); flex: 0 0 38px; font-weight: 1000; }
.pr-trust strong { display: block; font-size: .92rem; }
.pr-trust small { display: block; color: var(--pr-muted); margin-top: 3px; }

/* Programs */
.pr-programs { background: linear-gradient(180deg, #eef8ff 0%, #fff9e8 100%); }
.pr-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; position: relative; z-index: 2; }
.pr-program-card { background: rgba(255,255,255,.78); border: 1px solid rgba(255,255,255,.95); border-radius: var(--pr-radius-lg); padding: 27px; min-height: 218px; box-shadow: 0 13px 30px rgba(55,61,80,.07); transition: transform .22s ease, box-shadow .22s ease; }
.pr-program-card:hover { transform: translateY(-5px) rotate(-.25deg); box-shadow: 0 20px 40px rgba(55,61,80,.11); }
.pr-program-icon { width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; font-size: 1.45rem; font-weight: 1000; margin-bottom: 20px; background: var(--card-tint, #f3ebff); color: var(--card-color, var(--pr-primary)); }
.pr-program-card p { color: var(--pr-muted); font-size: .95rem; }

/* Schedule */
.pr-schedule { background: linear-gradient(180deg, #fffdf7, #eff9ff); }
.pr-schedule-panel { max-width: 900px; margin: auto; background: rgba(255,255,255,.82); border: 1px solid #fff; border-radius: var(--pr-radius-xl); padding: 34px; box-shadow: var(--pr-shadow); position: relative; z-index: 2; }
.pr-schedule-list { list-style: none; padding: 0; margin: 0; position: relative; }
.pr-schedule-list::before { content: ""; position: absolute; left: 108px; top: 18px; bottom: 18px; width: 3px; border-radius: 9px; background: linear-gradient(var(--pr-teal), var(--pr-primary), var(--pr-secondary)); opacity: .25; }
.pr-schedule-item { display: grid; grid-template-columns: 90px 1fr; gap: 32px; align-items: start; margin-bottom: 13px; position: relative; }
.pr-schedule-time { color: #22966b; font-weight: 1000; padding-top: 17px; text-align: right; }
.pr-schedule-entry { background: #fff; border: 1px solid var(--pr-border); border-radius: 18px; padding: 15px 18px; position: relative; box-shadow: 0 8px 17px rgba(70,65,82,.04); }
.pr-schedule-entry::before { content: ""; position: absolute; left: -24px; top: 22px; width: 12px; height: 12px; background: #fff; border: 4px solid var(--pr-teal); border-radius: 50%; }
.pr-schedule-entry strong { display: block; }
.pr-schedule-entry span { display: block; color: var(--pr-muted); font-size: .9rem; margin-top: 3px; }
.pr-schedule-note { text-align: center; color: var(--pr-muted); font-size: .88rem; margin-top: 18px; }

/* Enrollment */
.pr-enroll { background: linear-gradient(180deg, #fff4f7, #fff9e9); }
.pr-enroll-panel { background: rgba(255,255,255,.83); border: 1px solid #fff; border-radius: var(--pr-radius-xl); padding: 58px; box-shadow: var(--pr-shadow); position: relative; z-index: 2; }
.pr-enroll-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin: 36px 0 28px; }
.pr-stat { background: #fff; border: 1px solid var(--pr-border); border-radius: 21px; padding: 23px 17px; text-align: center; box-shadow: 0 10px 22px rgba(63,58,79,.05); }
.pr-stat-icon { width: 47px; height: 47px; margin: 0 auto 12px; border-radius: 50%; display: grid; place-items: center; background: var(--pr-lilac); font-weight: 1000; color: var(--pr-primary); }
.pr-stat small { display: block; text-transform: uppercase; letter-spacing: .08em; color: var(--pr-muted); font-weight: 800; font-size: .7rem; }
.pr-stat strong { display: block; margin-top: 7px; color: #4d425d; font-size: 1.12rem; }
.pr-subsidy { max-width: 600px; margin: 0 auto 24px; text-align: center; background: #edf9f0; border: 1px solid rgba(73,178,114,.2); border-radius: 18px; padding: 14px 18px; color: #286c45; font-weight: 800; }
.pr-enroll-cta { text-align: center; }
.pr-enroll-cta p { color: var(--pr-muted); }

/* Gallery */
.pr-gallery { background: #fffdf8; }
.pr-gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; position: relative; z-index: 2; }
.pr-gallery-item { border-radius: 22px; overflow: hidden; min-height: 250px; position: relative; background: #eee; box-shadow: 0 14px 34px rgba(55,51,70,.09); }
.pr-gallery-item:nth-child(6n+1), .pr-gallery-item:nth-child(6n+4) { grid-column: span 7; }
.pr-gallery-item:nth-child(6n+2), .pr-gallery-item:nth-child(6n+3) { grid-column: span 5; }
.pr-gallery-item:nth-child(6n+5), .pr-gallery-item:nth-child(6n+6) { grid-column: span 6; }
.pr-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.pr-gallery-item:hover img { transform: scale(1.035); }
.pr-gallery-caption { position: absolute; left: 14px; bottom: 14px; right: 14px; padding: 10px 13px; border-radius: 14px; background: rgba(255,255,255,.87); backdrop-filter: blur(9px); font-weight: 800; font-size: .88rem; color: #443b51; }

/* FAQ */
.pr-faq { background: linear-gradient(180deg, #eef8ff, #fff8e8); }
.pr-faq-list { max-width: 860px; margin: auto; position: relative; z-index: 2; }
.pr-faq-item { background: rgba(255,255,255,.84); border: 1px solid rgba(255,255,255,.96); border-radius: 18px; margin: 12px 0; box-shadow: 0 10px 24px rgba(64,59,78,.06); overflow: hidden; }
.pr-faq-question { width: 100%; border: 0; background: transparent; padding: 20px 22px; font-weight: 900; color: var(--pr-ink); display: flex; align-items: center; justify-content: space-between; text-align: left; }
.pr-faq-plus { width: 31px; height: 31px; border-radius: 50%; background: var(--pr-lilac); color: var(--pr-primary); display: grid; place-items: center; flex: 0 0 31px; transition: transform .22s; font-size: 1.18rem; }
.pr-faq-item.is-open .pr-faq-plus { transform: rotate(45deg); }
.pr-faq-answer { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .25s ease; }
.pr-faq-answer > div { overflow: hidden; }
.pr-faq-answer p { padding: 0 22px 20px; margin: 0; color: var(--pr-muted); }
.pr-faq-item.is-open .pr-faq-answer { grid-template-rows: 1fr; }

/* Footer */
.pr-footer { background: linear-gradient(135deg, #fbf0f4, #f5f1ff); padding: 64px 0 24px; border-top: 1px solid var(--pr-border); }
.pr-footer-grid { display: grid; grid-template-columns: 1.15fr 1fr .9fr; gap: 54px; align-items: start; }
.pr-footer p { color: var(--pr-muted); }
.pr-footer h3 { font-size: .9rem; text-transform: uppercase; letter-spacing: .1em; }
.pr-footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.pr-footer-links a { padding: 9px 12px; border-radius: 999px; text-align: center; background: rgba(255,255,255,.72); font-size: .88rem; font-weight: 800; }
.pr-footer-hours { background: rgba(255,255,255,.72); border-radius: 19px; padding: 19px; border: 1px solid #fff; }
.pr-contact-icons { margin: 38px 0 28px; padding: 28px 0; border-top: 1px solid var(--pr-border); border-bottom: 1px solid var(--pr-border); display: flex; justify-content: center; flex-wrap: wrap; gap: 20px; }
.pr-contact-icon { min-width: 72px; text-align: center; font-size: .76rem; color: var(--pr-muted); font-weight: 800; }
.pr-contact-icon b { width: 46px; height: 46px; margin: 0 auto 7px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--pr-primary); box-shadow: 0 8px 17px rgba(68,61,81,.08); font-size: 1.1rem; }
.pr-copyright { display: flex; justify-content: space-between; gap: 20px; color: var(--pr-muted); font-size: .84rem; }

/* Contact modal */
.pr-modal { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; padding: 12px; background: rgba(42,37,53,.55); backdrop-filter: blur(8px); }
.pr-modal.is-open { display: flex; }
.pr-modal-dialog { width: min(1080px, 100%); max-height: calc(100dvh - 24px); overflow: hidden; background: #fff; border-radius: 28px; padding: clamp(20px,2.5vw,30px); box-shadow: 0 35px 90px rgba(34,29,44,.3); position: relative; }
.pr-modal-close { position: absolute; right: 18px; top: 18px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #f4f1f7; font-size: 1.35rem; z-index: 3; }
.pr-modal-dialog > h2 { padding-right: 52px; margin-bottom: 5px !important; }
.pr-modal-lead { font-size: 1rem; margin-bottom: 10px; padding-right: 50px; }
.pr-contact-details { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 12px 0; clear: both; }
.pr-contact-card { background: #faf9fc; border: 1px solid var(--pr-border); border-radius: 15px; padding: 12px 13px; min-height: 72px; }
.pr-contact-card small { display: block; color: var(--pr-muted); font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 900; }
.pr-contact-card strong { display: block; margin-top: 3px; color: #4f4364; word-break: break-word; font-size:.87rem; line-height:1.35; }
.pr-whatsapp-row { margin: 10px 0 12px; }
.pr-whatsapp-row .pr-btn { min-height:44px; padding:10px 18px; }
.pr-contact-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 12px; margin-top: 10px; }
.pr-field { display: flex; flex-direction: column; gap: 4px; }
.pr-field-full { grid-column: 1 / -1; }
.pr-field label { font-weight: 800; font-size: .77rem; }
.pr-field input, .pr-field textarea, .pr-field select { width: 100%; border: 1px solid #ddd8e5; background: #fff; border-radius: 11px; padding: 9px 11px; outline: none; min-height: 42px; }
.pr-field input:focus, .pr-field textarea:focus, .pr-field select:focus { border-color: var(--pr-primary); box-shadow: 0 0 0 4px rgba(125,91,214,.1); }
.pr-field textarea { min-height: 74px; max-height: 88px; resize: vertical; }
.pr-submit-row { display:grid; grid-template-columns:minmax(180px,260px) 1fr; align-items:center; gap:14px; }
.pr-submit-row .pr-btn { width:100%; min-height:46px; }
.pr-form-note { font-size: .69rem; color: var(--pr-muted); line-height:1.35; }
.pr-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.pr-notice { padding: 13px 16px; border-radius: 14px; margin: 0 0 20px; font-weight: 800; }
.pr-notice-success { background: #e9f8ef; color: #267047; }
.pr-notice-error { background: #fff0f2; color: #a8354e; }

/* Generic pages */
.pr-page { padding: 90px 0; min-height: 60vh; }
.pr-page-content { max-width: 850px; margin: auto; background: #fff; border: 1px solid var(--pr-border); border-radius: 24px; padding: 40px; box-shadow: var(--pr-shadow); }
.pr-page-content a { color: var(--pr-primary); text-decoration: underline; }

/* Responsive */
@media (max-width: 1050px) {
  .pr-nav a { padding-inline: 8px; font-size: .88rem; }
  .pr-hero-grid { gap: 30px; }
  .pr-hero-photo-wrap { min-height: 500px; }
  .pr-about-card { grid-template-columns: .8fr 1.2fr; gap: 36px; padding: 40px; }
  .pr-card-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 860px) {
  .pr-nav-wrap { min-height: 88px; }
  .pr-site-header .pr-brand img { max-height: 72px; }
  .pr-menu-toggle { display: block; }
  .pr-contact-top { display: none; }
  .pr-nav { position: absolute; left: 20px; right: 20px; top: calc(100% + 10px); background: rgba(255,255,255,.98); padding: 13px; border-radius: 20px; box-shadow: 0 20px 50px rgba(50,45,64,.18); border: 1px solid var(--pr-border); display: none; }
  .pr-nav.is-open { display: block; }
  .pr-nav ul { display: grid; grid-template-columns: repeat(2,1fr); gap: 4px; }
  .pr-nav a { padding: 11px 13px; }
  .pr-hero { min-height: auto; padding-top: 55px; }
  .pr-hero-grid { grid-template-columns: 1fr; }
  .pr-hero-photo-wrap { min-height: 500px; max-width: 660px; width: 100%; margin-inline: auto; }
  .pr-quicklinks { grid-template-columns: repeat(2,1fr); }
  .pr-quick-card { min-height: 118px; }
  .pr-about-card { grid-template-columns: 1fr; }
  .pr-caregiver-photo { max-width: 360px; }
  .pr-enroll-grid { grid-template-columns: repeat(2,1fr); }
  .pr-footer-grid { grid-template-columns: 1fr 1fr; }
  .pr-contact-details { grid-template-columns: repeat(2,1fr); }
  .pr-contact-form { grid-template-columns: repeat(2,1fr); }
  .pr-footer-grid > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .pr-container { width: min(calc(100% - 26px), var(--pr-max)); }
  .pr-section { padding: 78px 0; }
  .pr-nav-wrap { min-height: 76px; }
  .pr-site-header .pr-brand img { max-height: 62px; }
  .pr-brand { min-width: auto; }
  .pr-brand-text strong { font-size: 1rem; }
  .pr-brand-text span { font-size: .67rem; }
  .pr-brand-mark { width: 42px; height: 42px; flex-basis: 42px; }
  .pr-hero { padding-top: 44px; }
  .pr-hero-photo-wrap { min-height: 390px; }
  .pr-hero-photo { inset: 18px 4px 26px 18px; border-width: 6px; }
  .pr-float-one { bottom: 28px; }
  .pr-float-two { top: 38px; right: -2px; }
  .pr-actions { gap: 11px; margin-bottom: 34px; }
  .pr-actions .pr-btn { flex: 1 1 100%; width: 100%; }
  .pr-explore-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .pr-explore-heading small { text-align: left; }
  .pr-quicklinks { grid-template-columns: 1fr; }
  .pr-quick-card { min-height: 108px; border-radius: 21px; }
  .pr-about-card, .pr-enroll-panel, .pr-modal-dialog { padding: 26px 20px; border-radius: 24px; }
  .pr-modal-dialog { max-height: calc(100dvh - 16px); overflow:auto; }
  .pr-trust-grid, .pr-card-grid, .pr-enroll-grid, .pr-contact-details, .pr-contact-form, .pr-footer-grid { grid-template-columns: 1fr; }
  .pr-submit-row { grid-template-columns:1fr; }
  .pr-footer-grid > :last-child { grid-column: auto; }
  .pr-schedule-panel { padding: 20px 14px; }
  .pr-schedule-list::before { left: 73px; }
  .pr-schedule-item { grid-template-columns: 58px 1fr; gap: 28px; }
  .pr-schedule-time { font-size: .75rem; padding-top: 17px; }
  .pr-schedule-entry::before { left: -22px; }
  .pr-gallery-grid { display: grid; grid-template-columns: 1fr; }
  .pr-gallery-item, .pr-gallery-item:nth-child(n) { grid-column: auto; min-height: 230px; }
  .pr-copyright { flex-direction: column; text-align: center; }
  .pr-contact-icons { gap: 12px; }
  .pr-contact-icon { min-width: 60px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
