﻿/* ============================================================================
   PLANNED GIVING - TEMPLATE custom.css
   White-label design system (loads AFTER the vendor base CSS).
   ----------------------------------------------------------------------------
   HOW TO RE-BRAND FOR A NEW CLIENT
   You only edit ONE block: "1. CLIENT CONFIG" below.
     * Colors   -> set --brand-* to the brand palette.
     * Fonts    -> set --font-heading / --font-body / --font-button.
     * Sizing   -> set --font-base + the fluid scale knobs (--fluid-min/max).
   Everything else (the whole file) reads from these variables, so changing a
   handful of values restyles the entire site. Type sizes scale fluidly with the
   viewport via clamp(), so you almost never need per-breakpoint font overrides.

   FILE MAP
     1.  CLIENT CONFIG ............ edit-me block (colors, fonts, sizing)
     2.  DERIVED TOKENS .......... palette, spacing, radius, shadow, z, FLUID TYPE
     3.  Reset & base
     4.  Typography
     5.  Layout
     6.  Header / logo
     7.  Side navigation  (+ working CSS-only mobile menu)
     8.  Buttons
     9.  Cards
     10. Carousel
     11. Gift-planning sections (ways of giving, society, tip, plan-a-gift)
     12. Interactive content (how-it-works, benefits, related topics)
     13. Forms & calculators
     14. Tables
     15. Gift diagram / video popup
     16. Next steps
     17. Bequest form link
     18. Alerts
     19. FAQ
     20. Contact & footer
     21. Utilities
     22. Sidebar callouts (#vgitgfy, #vggep)
     23. Plan-a-Gift modal
     24. Gift-plan card grids
     25. Compare gift plans
     26. Homepage redesigned sections
     27. Accessibility, reduced motion, print
     28. Responsive fine-tuning
   ============================================================================ */


@import url("https://fonts.googleapis.com/css2?family=Prata&family=Roboto:ital,wght@0,400;0,500;0,700;1,400&family=Roboto+Slab:wght@400;500;600;700&display=swap");

/* ============================================================================
   1. CLIENT CONFIG - *** THE ONLY BLOCK YOU EDIT PER CLIENT ***
   ============================================================================ */
:root {
  /* -- 1a. Brand colors ---------------------------------------------------- */
  --brand-primary:        #006990;   /* primary teal                          */
  --brand-primary-dark:   #004f6d;   /* hover/active teal                     */
  --brand-primary-light:  #d8edf4;   /* pale teal tint                        */
  --brand-secondary:      #8f0e2b;   /* CTA burgundy accent                   */
  --brand-secondary-dark: #6f0a21;   /* hover/active burgundy                 */

  /* On-brand text colors for filled buttons/areas.
     Set to the color that is readable ON each brand color above. */
  --on-primary:   #ffffff;           /* white text on the primary teal fill   */
  --on-secondary: #ffffff;           /* white text on burgundy fills          */

  /* -- 1b. Fonts (families) ------------------------------------------------ */
  /* Load the actual font files in the page <head> (Typekit/Google/etc.).
     Here you only name them. Keep web-safe fallbacks last. */
  --font-heading: "Prata", Georgia, "Times New Roman", serif;
  --font-body:    "Roboto", Arial, Helvetica, sans-serif;
  --font-button:  "Roboto Slab", "Roboto", Arial, Helvetica, sans-serif;

  /* -- 1c. Type sizing knobs ---------------------------------------------- */
  /* Base body size (everything scales relative to this). */
  --font-base: 1rem;                   /* 16px body text                        */

  /* Fluid scaling window: text grows between these viewport widths.
     Below --fluid-min-vw it stays at the small size; above --fluid-max-vw it
     stays at the large size. Tune once; the whole scale follows. */
  --fluid-min-vw: 22rem;             /* 352px  */
  --fluid-max-vw: 80rem;             /* 1280px */

  /* Heading weight + letter-spacing (clients with display fonts often want
     400 here; text-heavy serif/sans clients want 600-700). */
  --heading-weight: 600;
  --heading-tracking: 0;
  --heading-line: 1.25;

  /* -- 1d. Layout knobs ---------------------------------------------------- */
  --container-max: 1280px;
  --sidebar-width: 280px;

  /* -- 1e. Copy panels ----------------------------------------------------
     Surfaces behind the body sections on article/gift pages (How it works,
     Benefits, Next steps, Related topics, etc.). Default is FLAT - copy sits
     directly on the page, which most nonprofits prefer. To give a client the
     old boxed look, just set these four:
        --panel-bg:    #fff;
        --panel-border: 1px solid var(--border-light);
        --panel-shadow: var(--shadow-sm);
        --panel-pad:    var(--space-8);
     -------------------------------------------------------------------- */
  --panel-bg:     transparent;
  --panel-border: 0;
  --panel-shadow: none;
  --panel-pad:    0;
  --panel-radius: var(--radius-lg);

  /* Hairline used to separate flat list rows. */
  --rule: 1px solid var(--border-light);
}

.lplannerlogo {background-color:var(--brand-primary)!important; padding:10px 20px; border-radius:5px!important;
}
/* ============================================================================
   2. DERIVED TOKENS - you normally don't touch these
   ============================================================================ */
:root {
  /* -- Neutral palette -- */
  --slate-50:#f8fafc;  --slate-100:#f1f5f9; --slate-200:#e2e8f0; --slate-300:#cbd5e1;
  --slate-400:#94a3b8; --slate-500:#64748b; --slate-600:#475569; --slate-700:#334155;
  --slate-800:#1e293b; --slate-900:#0f172a;

  --blue-50:#eff6ff;  --blue-100:#dbeafe; --blue-200:#bfdbfe;
  --blue-500:#3b82f6; --blue-600:#2563eb; --blue-700:#1d4ed8;
  --green-50:#f0fdf4; --green-100:#dcfce7; --green-200:#bbf7d0;
  --green-500:#22c55e; --green-600:#16a34a;
  --amber-50:#fffbeb; --amber-100:#fef3c7; --amber-200:#fde68a; --amber-300:#fcd34d;
  --amber-400:#fbbf24; --amber-500:#f59e0b; --amber-600:#d97706;
  --red-50:#fef2f2;   --red-100:#fee2e2;  --red-200:#fecaca;
  --red-500:#ef4444;  --red-600:#dc2626;

  /* -- Semantic surfaces & text -- */
  --bg-primary:#ffffff; --bg-secondary:#f8fafc; --bg-tertiary:#f1f5f9;
  --bg-elevated:#ffffff; --bg-subtle:#f8fafc; --bg-muted:#e2e8f0;
  --text-primary:#000000; --text-secondary:#54595f; --text-tertiary:#6c7378;
  --text-inverse:#ffffff; --text-muted:#8a9499;
  --border-light:#e2e8f0; --border-default:#cbd5e1; --border-strong:#94a3b8;

  /* -- Functional -- */
  --success:var(--green-600); --warning:var(--amber-600);
  --error:var(--red-600);     --info:var(--blue-600);
  --success-bg:var(--green-50); --warning-bg:var(--amber-50);
  --error-bg:var(--red-50);     --info-bg:var(--blue-50);

  /* -- Shadows -- */
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);

  /* -- FLUID TYPE SCALE ---------------------------------------------------
     Each step is clamp(min, fluid, max). The fluid term is built from the
     config window (--fluid-min-vw/--fluid-max-vw) so all sizes grow together
     and stay readable on phones without manual @media overrides.
     ----------------------------------------------------------------------- */
  --fluid-range: calc(var(--fluid-max-vw) - var(--fluid-min-vw));

  --text-xs:   clamp(0.75rem,  calc(0.72rem + 0.15vw), 0.8125rem);
  --text-sm:   clamp(0.8125rem, calc(0.79rem + 0.18vw), 0.9375rem);
  --text-base: clamp(0.9375rem, calc(0.89rem + 0.30vw), var(--font-base));
  --text-lg:   clamp(1.0625rem, calc(0.99rem + 0.40vw), 1.1875rem);
  --text-xl:   clamp(1.1875rem, calc(1.08rem + 0.55vw), 1.375rem);
  --text-2xl:  clamp(1.375rem,  calc(1.20rem + 0.85vw), 1.75rem);
  --text-3xl:  clamp(1.875rem,  calc(1.55rem + 1.00vw), 2rem);
  --text-4xl:  clamp(2.25rem,   calc(1.55rem + 2.50vw), 3.5rem);
  --text-5xl:  clamp(2.25rem,   calc(1.65rem + 3.00vw), 3.5rem);
  --text-6xl:  clamp(2.75rem,   calc(1.95rem + 4.00vw), 4.5rem);

  /* -- Spacing -- */
  --space-px:1px; --space-0:0;
  --space-1:0.25rem; --space-2:0.5rem; --space-3:0.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-7:1.75rem; --space-8:2rem;
  --space-9:2.25rem; --space-10:2.5rem; --space-11:2.75rem; --space-12:3rem;
  --space-14:3.5rem; --space-16:4rem; --space-20:5rem; --space-24:6rem;
  --space-28:7rem; --space-32:8rem;

  /* -- Radius -- */
  --radius-none:0; --radius-sm:0.125rem; --radius-md:0.375rem; --radius-lg:0.5rem;
  --radius-xl:0.75rem; --radius-2xl:1rem; --radius-3xl:1.5rem; --radius-full:9999px;

  /* -- Layout -- */
  --container-lg:1024px; --container-md:768px; --container-sm:640px;
  --sidebar-width-sm:240px;

  /* -- Easing -- */
  --ease-linear:cubic-bezier(0,0,1,1);
  --ease-in:cubic-bezier(0.4,0,1,1);
  --ease-out:cubic-bezier(0,0,0.2,1);
  --ease-in-out:cubic-bezier(0.4,0,0.2,1);

  /* -- Z-index -- */
  --z-0:0; --z-10:10; --z-20:20; --z-30:30; --z-40:40; --z-50:50;
  --z-dropdown:1000; --z-sticky:1100; --z-overlay:1200; --z-modal:1300;
  --z-popover:1400; --z-tooltip:1500;

  /* -- Back-compat aliases: older rules referenced these variables directly.
        They now point at the brand tokens so there is ONE source of truth. -- */
  --compat-black:#000000; --compat-white:#ffffff;
  --compat-primary:var(--brand-primary);
  --compat-secondary:var(--brand-secondary);
  --compat-secondary-dark:var(--brand-secondary-dark);
  --compat-text:#000000; --compat-muted:#3f4d5f; --compat-border:rgba(0,0,0,0.18);
  --compat-font-body:var(--font-body);
  --compat-font-button:var(--font-button);
}


/* ============================================================================
   3. RESET & BASE
   ============================================================================ */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }

html {
  font-size:16px;
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

/* Apply our fonts to the Planned Giving content only, so the surrounding
   header/footer chrome keeps its native typography. */
.pg-content-wrapper,
.pg-body,
#vgbody {
  font-family:var(--font-body);
  font-size:var(--text-base);
  line-height:1.7;
  color:var(--text-primary);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img { max-width:100%; height:auto; image-rendering:-webkit-optimize-contrast; }


/* ============================================================================
   4. TYPOGRAPHY  (scoped to PG content)
   ============================================================================ */
.pg-content-wrapper h1, .pg-content-wrapper h2, .pg-content-wrapper h3,
.pg-content-wrapper h4, .pg-content-wrapper h5, .pg-content-wrapper h6,
.pg-page-title, .pg-section-title {
  font-family:var(--font-heading);
  font-weight:var(--heading-weight);
  line-height:var(--heading-line);
  letter-spacing:var(--heading-tracking);
  color:var(--text-primary);
  margin:0 0 var(--space-4);
}

.pg-content-wrapper h1, .pg-page-title {
  font-size:var(--text-4xl);
  margin-bottom:var(--space-6);
}
.pg-content-wrapper h1::after, .pg-page-title::after {
  content:none;
  display:none;
}
.pg-content-wrapper h2, .pg-section-title { font-size:var(--text-3xl); }
.pg-content-wrapper h3 { font-size:var(--text-2xl); }
.pg-content-wrapper h4 { font-size:var(--text-xl); }
.pg-content-wrapper h5 { font-size:var(--text-lg); }
.pg-content-wrapper h6 { font-size:var(--text-base); }

.pg-content-wrapper p {
  margin-bottom:var(--space-4);
  color:var(--text-secondary);
  line-height:1.7;
}
.pg-lede {
  font-size:var(--text-lg); line-height:1.8;
  color:var(--text-secondary); font-weight:400;
  margin-bottom:var(--space-8);
}
.pg-content-wrapper a {
  color:var(--brand-secondary);
  text-decoration:none;
  transition:color 200ms var(--ease-in-out);
}
.pg-content-wrapper a:hover { color:var(--brand-secondary-dark); text-decoration:underline; }
.pg-content-wrapper strong, .pg-content-wrapper b { font-weight:700; color:var(--text-primary); }
.pg-content-wrapper small { font-size:var(--text-sm); color:var(--text-tertiary); }


/* ============================================================================
   5. LAYOUT
   ============================================================================ */
.pg-container {
  width:100%; max-width:var(--container-max);
  margin:0 auto; padding:0 var(--space-6);
}
.pg-container-sm { max-width:var(--container-sm); }
.pg-container-md { max-width:var(--container-md); }
.pg-container-lg { max-width:var(--container-lg); }

.pg-section    { padding:var(--space-16) 0; }
.pg-section-sm { padding:var(--space-12) 0; }
.pg-section-lg { padding:var(--space-20) 0; }

.pg-columns { display:grid; gap:var(--space-8); align-items:start; }
@media (min-width:1024px) {
  .pg-columns { grid-template-columns:var(--sidebar-width) 1fr; }
}


/* ============================================================================
   6. HEADER / LOGO  (PG include only; client chrome is untouched)
   ============================================================================ */
.pg-header {
  background:rgba(255,255,255,0.95);
  border-bottom:1px solid var(--border-light);
  top:0; z-index:var(--z-sticky);
  backdrop-filter:blur(8px) saturate(180%);
}
.pg-header .pg-container { padding-top:var(--space-4); padding-bottom:var(--space-4); }
.pg-logo { max-height:56px; width:auto; filter:drop-shadow(0 2px 4px rgba(0,0,0,0.1)); }
.pg-logo-link { display:inline-block; transition:transform 200ms var(--ease-out); }
.pg-logo-link:hover { transform:scale(1.05); text-decoration:none; }


/* ============================================================================
   7. SIDE NAVIGATION  (single consolidated system)
   - Vendor markup: ul.pg-side-nav > li > ul > li(.pg-has-sub-nav)
     > a + span.pg-has-icon(svg) + ul(submenu)
   - Submenu open/close adds .pg-sub-nav-open (handled by vendor scripts.js).
   - Arrow = the vendor SVG icon, rotated 90deg when open.
   - Mobile menu = CSS-only (see 7c). Overrides target vendor base.css so
     !important is intentional here.
   ============================================================================ */

/* -- 7a. Container & links -- */
.pg-side-nav,
.pg-side-nav ul { list-style:none !important; margin:0 !important; padding:0 !important; }
.pg-side-nav li { position:relative; box-sizing:border-box; list-style:none !important; margin:0 !important; padding:0 !important; }
.pg-side-nav li::before,
.pg-side-nav li::after,
.pg-side-nav li::marker { content:none !important; display:none !important; }

.pg-side-nav {
  --nav-accent:      var(--brand-primary);
  --nav-accent-2:    var(--brand-secondary);
  --nav-text:        #000;
  --nav-muted:       #303030;
  --nav-border:      rgba(0,0,0,0.18);
  --nav-hover:       color-mix(in srgb, var(--brand-primary) 18%, transparent);
  background:#fff !important;
  border:1px solid var(--nav-border) !important;
  border-radius:var(--radius-lg) !important;
  box-shadow:var(--shadow-sm) !important;
  overflow:hidden !important;
  padding:var(--space-2) !important;
  font-family:var(--font-body) !important;
}
.pg-side-nav > li > ul { margin:0 !important; padding:0 !important; }
.pg-side-nav > li > ul > li + li { margin-top:2px !important; }

.pg-side-nav a {
  display:block !important; width:100%;
  border-radius:var(--radius-md) !important;
  color:var(--nav-text) !important;
  font-size:var(--text-sm) !important; line-height:1.35 !important;
  text-decoration:none !important;
  transition:background-color 160ms var(--ease-out), color 160ms var(--ease-out), box-shadow 160ms var(--ease-out) !important;
}
.pg-side-nav a::before { display:none !important; }
.pg-side-nav > li > ul > li > a,
.pg-side-nav > li > ul > li.pg-has-sub-nav > a { padding:10px 38px 10px 12px !important; font-weight:700 !important; }
.pg-side-nav a:hover,
.pg-side-nav a:focus { background:var(--nav-hover) !important; color:#000 !important; text-decoration:none !important; }
.pg-side-nav a:focus-visible { outline:none !important; box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 45%, transparent) !important; }

/* current page */
.pg-side-nav > li > ul > li.pg-current > a,
.pg-side-nav ul ul .pg-current > a { background:var(--brand-primary) !important; color:var(--on-primary) !important; }
/* Current item sits on the red fill -> its dropdown arrow uses on-primary too. */
.pg-side-nav .pg-current > .pg-has-icon { color:var(--on-primary) !important; }

/* nested submenus */
.pg-side-nav ul ul {
  margin:4px 0 8px 12px !important; padding-left:12px !important;
  border-left:2px solid var(--nav-border) !important; display:none;
}
.pg-side-nav .pg-sub-nav-open > ul { display:block; animation:pgSlideDown 200ms var(--ease-out); }
.pg-side-nav ul ul a { padding:7px 10px !important; color:var(--nav-muted) !important; font-size:var(--text-sm) !important; font-weight:500 !important; }
.pg-side-nav ul ul ul { margin-left:8px !important; padding-left:10px !important; }
.pg-side-nav ul:empty { display:none !important; }

@keyframes pgSlideDown { from { opacity:0; max-height:0; } to { opacity:1; max-height:600px; } }

/* -- 7b. Submenu arrow = vendor SVG icon, rotated when open -- */
.pg-side-nav .pg-has-sub-nav > a { padding-right:46px !important; }
.pg-side-nav .pg-has-sub-nav > .pg-has-icon {
  position:absolute !important; top:0 !important; right:8px !important; left:auto !important; bottom:0 !important;
  z-index:3 !important; display:flex !important; align-items:center !important; justify-content:center !important;
  width:36px !important; min-width:36px !important; height:auto !important; min-height:0 !important;
  padding:0 !important; margin:0 !important; color:#000 !important; cursor:pointer !important; pointer-events:auto !important;
}
.pg-side-nav .pg-has-sub-nav > .pg-has-icon::before,
.pg-side-nav .pg-has-sub-nav > .pg-has-icon::after { content:none !important; display:none !important; }
.pg-side-nav .pg-has-sub-nav > .pg-has-icon svg {
  position:static !important; top:auto !important; bottom:auto !important;
  display:block !important; width:18px !important; height:18px !important; flex:0 0 18px !important;
  fill:currentColor !important; transform:rotate(0deg) !important; transform-origin:50% 50% !important;
  transition:transform 160ms var(--ease-out), color 160ms var(--ease-out) !important;
}
.pg-side-nav .pg-has-sub-nav:hover > .pg-has-icon,
.pg-side-nav .pg-has-sub-nav > .pg-has-icon:hover { color:var(--brand-secondary) !important; }
.pg-side-nav .pg-sub-nav-open > .pg-has-icon svg,
.pg-side-nav .pg-current.pg-sub-nav-open > .pg-has-icon svg { transform:rotate(90deg) !important; }
.pg-side-nav ul ul .pg-has-sub-nav > a { padding-right:40px !important; }
.pg-side-nav ul ul .pg-has-sub-nav > .pg-has-icon { right:4px !important; width:32px !important; min-width:32px !important; height:auto !important; min-height:0 !important; }
.pg-side-nav ul ul .pg-has-sub-nav > .pg-has-icon svg { width:15px !important; height:15px !important; flex-basis:15px !important; }
/* Open parents also contain their expanded submenu inside the same <li>, so a
   full-height icon would drop the arrow into the middle of the dropdown. Cap the
   icon to the parent ROW height so the arrow stays on the parent's own line. */
.pg-side-nav .pg-sub-nav-open > .pg-has-icon { bottom:auto !important; height:40px !important; }
.pg-side-nav ul ul .pg-sub-nav-open > .pg-has-icon { height:34px !important; }

/* -- 7c. MOBILE MENU --------------------------------------------------------
   The vendor nav already ships a "Menu" toggle button INSIDE the nav:
       <ul class="pg-side-nav">
         <li>
           <button id="pg-menu-toggle" ...>Menu</button>   <-- toggle
           <ul> ...all the nav items... </ul>              <-- the menu
         </li>
       </ul>
   IMPORTANT - open state is the class `.pg-mobile-nav-open` on <body>.
   This is the SAME class the vendor base CSS already uses, so one script drives
   both. The script (pg-menu.js / template) toggles that class on click. A
   <button> can't toggle anything with CSS alone, so the script is required;
   without it the menu stays collapsed and the button does nothing.
     * Desktop (>=1025px): hide the Menu button, always show the items.
     * Mobile (<=1024px): show the Menu bar; the items (the button's next-
       sibling <ul>) collapse via max-height and expand when body has
       .pg-mobile-nav-open. */

/* Desktop: the Menu button is not needed. */
#pg-menu-toggle { display:none; }

@media (max-width:1024px) {
  /* Render the vendor toggle as a branded Menu bar (override the vendor's
     off-screen / plain-grey styling and its 768px breakpoint). */
  #pg-menu-toggle {
    position:static !important; left:auto !important; top:auto !important;
    width:100% !important; height:auto !important; overflow:visible !important; clip:auto !important;
    display:flex !important; align-items:center; gap:0.55rem;
    padding:13px 16px !important; margin:0 0 var(--space-2) !important; cursor:pointer; text-align:left;
    background:var(--brand-primary) !important; color:var(--on-primary) !important;
    border:1px solid var(--brand-primary) !important; border-radius:var(--radius-md) !important;
    font-family:var(--font-button); font-size:var(--text-lg); font-weight:400; letter-spacing:0.02em;
    -webkit-appearance:none; appearance:none;
  }
  #pg-menu-toggle::before { content:"\2630"; font-size:1.15em; line-height:1; }
  body.pg-mobile-nav-open #pg-menu-toggle::before,
  #pg-menu-toggle[aria-expanded="true"]::before { content:"\2715"; }
  #pg-menu-toggle:focus-visible { outline:3px solid var(--brand-secondary); outline-offset:2px; }

  /* The current vendor script changes aria-expanded but does not add the old
     body class. Use that real state and open the links as a mobile pop-out. */
  #pg-menu-toggle + ul {
    position:absolute !important;
    top:calc(100% + 0.5rem) !important;
    right:0 !important;
    left:0 !important;
    z-index:var(--z-dropdown) !important;
    width:100% !important;
    max-height:0 !important;
    overflow:hidden !important;
    padding:0 !important;
    background:#fff !important;
    border:1px solid var(--border-default) !important;
    border-radius:var(--radius-lg) !important;
    box-shadow:var(--shadow-xl) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(-0.5rem) !important;
    transition:max-height 280ms var(--ease-out), opacity 180ms var(--ease-out),
               transform 180ms var(--ease-out), visibility 0s linear 280ms !important;
  }
  body.pg-mobile-nav-open #pg-menu-toggle + ul,
  #pg-menu-toggle[aria-expanded="true"] + ul {
    max-height:min(70vh, 42rem) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    padding:var(--space-2) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
    transition:max-height 280ms var(--ease-out), opacity 180ms var(--ease-out),
               transform 180ms var(--ease-out), visibility 0s !important;
    overscroll-behavior:contain;
  }

  .pg-side-nav {
    margin-bottom:var(--space-6) !important;
    position:relative !important;
    overflow:visible !important;
    z-index:var(--z-dropdown) !important;
  }
}


/* ============================================================================
   8. BUTTONS
   ============================================================================ */
.pg-button {
  display:inline-flex; align-items:center; justify-content:center;
  padding:var(--space-3) var(--space-6);
  background:var(--brand-primary); color:var(--on-primary);
  border:2px solid var(--brand-primary); border-radius:var(--radius-full);
  font-family:var(--font-button); font-weight:600; font-size:var(--text-sm);
  letter-spacing:0.025em; cursor:pointer; text-decoration:none;
  position:relative; overflow:hidden;
  transition:background-color 250ms var(--ease-out), color 250ms var(--ease-out),
             border-color 250ms var(--ease-out), box-shadow 250ms var(--ease-out),
             transform 250ms var(--ease-out);
}
.pg-button:hover {
  background:var(--brand-secondary); border-color:var(--brand-secondary);
  color:var(--on-secondary) !important;
  transform:translateY(-2px); box-shadow:var(--shadow-lg); text-decoration:none;
}
.pg-button span { margin-left:var(--space-2); transition:transform 250ms var(--ease-out); display:inline-block; }
.pg-button:hover span { transform:translateX(4px); }

.pg-button-outline { background:transparent; color:var(--brand-primary); }
.pg-button-outline:hover { background:var(--brand-primary); color:var(--on-primary) !important; }

.pg-button-ghost { background:transparent; color:var(--text-secondary); border-color:transparent; }
.pg-button-ghost:hover { background:var(--bg-tertiary); color:var(--text-primary); border-color:var(--border-default); transform:none; box-shadow:none; }

.pg-button-sm { padding:var(--space-2) var(--space-4); font-size:var(--text-xs); }
.pg-button-lg { padding:var(--space-4) var(--space-8); font-size:var(--text-base); }

button, input[type="submit"], .pg-button { cursor:pointer; }
button:disabled, input[type="submit"]:disabled, .pg-button:disabled { opacity:0.6; cursor:not-allowed; }


/* ============================================================================
   9. CARDS
   ============================================================================ */
.pg-page-card {
  background:var(--bg-primary); border:1px solid var(--border-light);
  border-radius:var(--radius-2xl); padding:var(--space-6);
  display:flex; flex-direction:column; height:100%;
  position:relative; overflow:hidden; text-decoration:none; color:inherit;
  transition:transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out), border-color 300ms var(--ease-out);
}
.pg-page-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--brand-primary); transform:scaleX(0); transform-origin:left;
  transition:transform 300ms var(--ease-out);
}
.pg-page-card:hover {
  transform:translateY(-6px); box-shadow:var(--shadow-xl);
  border-color:var(--brand-primary); text-decoration:none; color:#000;
}
.pg-page-card:hover::before { transform:scaleX(1); }
.pg-page-card-title { font-size:var(--text-xl); font-weight:600; margin-bottom:var(--space-3); color:var(--text-primary); }
.pg-page-card p { color:var(--text-secondary); }
.pg-page-card-outer { display:grid; gap:var(--space-6); margin:var(--space-8) 0; }
@media (min-width:768px) {
  .pg-page-card-outer { grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); }
}
.pg-page-card-cols { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.pg-page-cards-sm .pg-page-card-outer { grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); }
.pg-page-cards-lg .pg-page-card-outer { grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); }


/* ============================================================================
   10. CAROUSEL
   ============================================================================ */
.banner-carousel {
  position:relative;
  width:100%;
  min-height:clamp(320px, 42vw, 520px);
  height:clamp(320px, 42vw, 520px);
  border-radius:var(--radius-3xl);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:var(--bg-tertiary);
  isolation:isolate;
}
.banner-carousel .slides {
  display:flex;
  height:100%;
  width:100%;
  transition:transform 500ms var(--ease-in-out);
}
.banner-carousel .slides,
.banner-carousel .slides > *,
.banner-carousel .slide {
  min-height:100%;
}
.banner-carousel .slide {
  position:relative;
  flex:0 0 100%;
  width:100%;
  height:100%;
  min-height:100%;
  display:flex;
  align-items:flex-end;
  padding:clamp(28px, 5vw, 64px);
  overflow:hidden;
  color:var(--text-inverse);
  isolation:isolate;
}
.banner-carousel .slide::after {
  content:none !important;
  display:none !important;
  background:none !important;
}
.banner-carousel img,
.banner-carousel picture,
.banner-carousel .slide-image,
.banner-carousel .banner-image,
.banner-carousel .carousel-image {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
}
.banner-carousel .slide > div:has(img),
.banner-carousel .slide > figure:has(img),
.banner-carousel .slide > a:has(img),
.banner-carousel .slide > picture {
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}
.banner-carousel picture img,
.banner-carousel .slide-image img,
.banner-carousel .banner-image img,
.banner-carousel .carousel-image img,
.banner-carousel .slide > img,
.banner-carousel .slide > div:has(img) img,
.banner-carousel .slide > figure:has(img) img,
.banner-carousel .slide > a:has(img) img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}
.banner-carousel .caption,
.banner-carousel .slide-caption,
.banner-carousel .banner-caption,
.banner-carousel .carousel-caption,
.banner-carousel .slide-content,
.banner-carousel .banner-content,
.banner-carousel .carousel-content,
.banner-carousel .slide-text,
.banner-carousel .banner-text,
.banner-carousel .carousel-text {
  position:absolute;
  left:clamp(28px, 5vw, 64px);
  right:clamp(28px, 5vw, 64px);
  bottom:clamp(30px, 5vw, 68px);
  z-index:3;
  max-width:min(620px, 72%);
  color:var(--text-inverse);
  text-shadow:0 2px 18px rgba(0,0,0,0.42);
}
.banner-carousel > .caption,
.banner-carousel > .slide-caption,
.banner-carousel > .banner-caption,
.banner-carousel > .carousel-caption,
.banner-carousel > .slide-content,
.banner-carousel > .banner-content,
.banner-carousel > .carousel-content,
.banner-carousel > .slide-text,
.banner-carousel > .banner-text,
.banner-carousel > .carousel-text,
.banner-carousel .slides + .caption,
.banner-carousel .slides + .slide-caption,
.banner-carousel .slides + .banner-caption,
.banner-carousel .slides + .carousel-caption,
.banner-carousel .slides + .slide-content,
.banner-carousel .slides + .banner-content,
.banner-carousel .slides + .carousel-content,
.banner-carousel .slides + .slide-text,
.banner-carousel .slides + .banner-text,
.banner-carousel .slides + .carousel-text,
.banner-carousel .slide > div:not(:has(img)):not(.controls):not(.carousel-controls):not(.slider-controls):not(.banner-controls):not(.dots):not(.carousel-dots):not(.slider-dots):not(.indicators):not(.pager),
.banner-carousel .slide > section:not(:has(img)),
.banner-carousel .slide > article:not(:has(img)),
.banner-carousel .slide > header:not(:has(img)),
.banner-carousel .slide > p {
  position:absolute;
  left:clamp(28px, 5vw, 64px);
  right:clamp(28px, 5vw, 64px);
  bottom:clamp(30px, 5vw, 68px);
  z-index:3;
  max-width:min(620px, 72%);
  color:var(--text-inverse);
  text-shadow:0 2px 18px rgba(0,0,0,0.42);
}
.banner-carousel > .caption,
.banner-carousel > .slide-caption,
.banner-carousel > .banner-caption,
.banner-carousel > .carousel-caption,
.banner-carousel > .slide-content,
.banner-carousel > .banner-content,
.banner-carousel > .carousel-content,
.banner-carousel > .slide-text,
.banner-carousel > .banner-text,
.banner-carousel > .carousel-text,
.banner-carousel .slides + .caption,
.banner-carousel .slides + .slide-caption,
.banner-carousel .slides + .banner-caption,
.banner-carousel .slides + .carousel-caption,
.banner-carousel .slides + .slide-content,
.banner-carousel .slides + .banner-content,
.banner-carousel .slides + .carousel-content,
.banner-carousel .slides + .slide-text,
.banner-carousel .slides + .banner-text,
.banner-carousel .slides + .carousel-text {
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.banner-carousel .caption *,
.banner-carousel .slide-caption *,
.banner-carousel .banner-caption *,
.banner-carousel .carousel-caption *,
.banner-carousel .slide-content *,
.banner-carousel .banner-content *,
.banner-carousel .carousel-content *,
.banner-carousel .slide-text *,
.banner-carousel .banner-text *,
.banner-carousel .carousel-text * {
  color:inherit;
}
.banner-carousel .slide h1,
.banner-carousel .slide h2,
.banner-carousel .slide h3,
.banner-carousel > .caption h1,
.banner-carousel > .caption h2,
.banner-carousel > .caption h3,
.banner-carousel > .slide-caption h1,
.banner-carousel > .slide-caption h2,
.banner-carousel > .slide-caption h3,
.banner-carousel > .banner-caption h1,
.banner-carousel > .banner-caption h2,
.banner-carousel > .banner-caption h3,
.banner-carousel > .carousel-caption h1,
.banner-carousel > .carousel-caption h2,
.banner-carousel > .carousel-caption h3,
.banner-carousel .slides + .caption h1,
.banner-carousel .slides + .caption h2,
.banner-carousel .slides + .caption h3,
.banner-carousel .slides + .slide-caption h1,
.banner-carousel .slides + .slide-caption h2,
.banner-carousel .slides + .slide-caption h3,
.banner-carousel .slides + .banner-caption h1,
.banner-carousel .slides + .banner-caption h2,
.banner-carousel .slides + .banner-caption h3,
.banner-carousel .slides + .carousel-caption h1,
.banner-carousel .slides + .carousel-caption h2,
.banner-carousel .slides + .carousel-caption h3,
.banner-carousel .slide .headline,
.banner-carousel .slide .title {
  margin:0;
  color:var(--text-inverse);
  font-family:var(--font-body);
  font-size:clamp(2rem, 4vw, 3.5rem);
  font-weight:700;
  line-height:1.18;
  text-shadow:0 3px 22px rgba(0,0,0,0.5);
}
.banner-carousel .arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  background:var(--brand-primary); color:var(--on-primary);
  border:2px solid color-mix(in srgb, var(--brand-primary) 82%, var(--text-inverse));
  width:54px; height:54px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  font-size:var(--text-lg); box-shadow:var(--shadow-md); z-index:var(--z-20);
  transition:all 200ms var(--ease-out);
}
.banner-carousel .arrow:hover { background:var(--brand-primary-dark); color:var(--on-primary); border-color:var(--brand-primary-dark); transform:translateY(-50%) scale(1.08); }
.banner-carousel .prev { left:var(--space-5); }
.banner-carousel .next { right:var(--space-5); }
.banner-carousel .controls,
.banner-carousel .carousel-controls,
.banner-carousel .slider-controls,
.banner-carousel .banner-controls,
.banner-carousel .dots,
.banner-carousel .carousel-dots,
.banner-carousel .slider-dots,
.banner-carousel .indicators,
.banner-carousel .pager {
  position:absolute;
  right:clamp(24px, 4vw, 48px);
  bottom:clamp(24px, 3.5vw, 42px);
  z-index:var(--z-20);
}
.banner-carousel .controls,
.banner-carousel .carousel-controls,
.banner-carousel .slider-controls,
.banner-carousel .banner-controls {
  display:flex;
  align-items:center;
  gap:var(--space-2);
  padding:var(--space-2);
  border-radius:var(--radius-full);
  background:rgba(15,23,42,0.58);
  backdrop-filter:blur(8px);
}
.banner-carousel .dots,
.banner-carousel .carousel-dots,
.banner-carousel .slider-dots,
.banner-carousel .indicators,
.banner-carousel .pager {
  display:flex;
  align-items:center;
  gap:var(--space-2);
}
.banner-carousel .controls button,
.banner-carousel .carousel-controls button,
.banner-carousel .slider-controls button,
.banner-carousel .banner-controls button,
.banner-carousel .dots button,
.banner-carousel .carousel-dots button,
.banner-carousel .slider-dots button,
.banner-carousel .indicators button,
.banner-carousel .pager button {
  width:28px;
  height:28px;
  border:0;
  border-radius:var(--radius-md);
  background:var(--brand-primary);
  color:var(--on-primary);
  box-shadow:none;
}
.banner-carousel .controls button[aria-current="true"],
.banner-carousel .controls button.active,
.banner-carousel .carousel-controls button[aria-current="true"],
.banner-carousel .carousel-controls button.active,
.banner-carousel .slider-controls button[aria-current="true"],
.banner-carousel .slider-controls button.active,
.banner-carousel .banner-controls button[aria-current="true"],
.banner-carousel .banner-controls button.active,
.banner-carousel .dots button[aria-current="true"],
.banner-carousel .dots button.active,
.banner-carousel .carousel-dots button[aria-current="true"],
.banner-carousel .carousel-dots button.active,
.banner-carousel .slider-dots button[aria-current="true"],
.banner-carousel .slider-dots button.active,
.banner-carousel .indicators button[aria-current="true"],
.banner-carousel .indicators button.active,
.banner-carousel .pager button[aria-current="true"],
.banner-carousel .pager button.active {
  background:var(--text-inverse);
  color:var(--brand-primary);
}
@media (max-width: 768px) {
  .banner-carousel {
    height:clamp(300px, 70vw, 430px);
    min-height:clamp(300px, 70vw, 430px);
    border-radius:var(--radius-2xl);
  }
  .banner-carousel .slide {
    padding:var(--space-8) var(--space-5) var(--space-10);
  }
  .banner-carousel .caption,
  .banner-carousel .slide-caption,
  .banner-carousel .banner-caption,
  .banner-carousel .carousel-caption,
  .banner-carousel .slide-content,
  .banner-carousel .banner-content,
  .banner-carousel .carousel-content,
  .banner-carousel .slide-text,
  .banner-carousel .banner-text,
  .banner-carousel .carousel-text,
  .banner-carousel > .caption,
  .banner-carousel > .slide-caption,
  .banner-carousel > .banner-caption,
  .banner-carousel > .carousel-caption,
  .banner-carousel > .slide-content,
  .banner-carousel > .banner-content,
  .banner-carousel > .carousel-content,
  .banner-carousel > .slide-text,
  .banner-carousel > .banner-text,
  .banner-carousel > .carousel-text,
  .banner-carousel .slides + .caption,
  .banner-carousel .slides + .slide-caption,
  .banner-carousel .slides + .banner-caption,
  .banner-carousel .slides + .carousel-caption,
  .banner-carousel .slides + .slide-content,
  .banner-carousel .slides + .banner-content,
  .banner-carousel .slides + .carousel-content,
  .banner-carousel .slides + .slide-text,
  .banner-carousel .slides + .banner-text,
  .banner-carousel .slides + .carousel-text,
  .banner-carousel .slide > div:not(:has(img)):not(.controls):not(.carousel-controls):not(.slider-controls):not(.banner-controls):not(.dots):not(.carousel-dots):not(.slider-dots):not(.indicators):not(.pager),
  .banner-carousel .slide > section:not(:has(img)),
  .banner-carousel .slide > article:not(:has(img)),
  .banner-carousel .slide > header:not(:has(img)),
  .banner-carousel .slide > p {
    max-width:100%;
    left:var(--space-5);
    right:var(--space-5);
    bottom:var(--space-10);
  }
  .banner-carousel .slide h1,
  .banner-carousel .slide h2,
  .banner-carousel .slide h3,
  .banner-carousel .slide .headline,
  .banner-carousel .slide .title {
    font-size:clamp(1.75rem, 8vw, 2.65rem);
  }
  .banner-carousel .arrow {
    width:46px;
    height:46px;
  }
  .banner-carousel .prev { left:var(--space-3); }
  .banner-carousel .next { right:var(--space-3); }
  .banner-carousel .controls,
  .banner-carousel .carousel-controls,
  .banner-carousel .slider-controls,
  .banner-carousel .banner-controls,
  .banner-carousel .dots,
  .banner-carousel .carousel-dots,
  .banner-carousel .slider-dots,
  .banner-carousel .indicators,
  .banner-carousel .pager {
    right:var(--space-4);
    bottom:var(--space-4);
  }
}


/* ============================================================================
   11. GIFT-PLANNING SECTIONS
   ============================================================================ */
/* -- Ways of Giving cards -- */
.pg-has-ways-of-giving { background:var(--bg-primary); padding:var(--space-20) 0; position:relative; overflow:hidden; }
.pg-has-ways-of-giving::before {
  content:''; position:absolute; top:-50%; right:-25%; width:50%; height:200%;
  background:radial-gradient(circle, var(--bg-tertiary), transparent);
  border-radius:50%; opacity:0.5; filter:blur(100px);
}
.pg-has-ways-of-giving .pg-section-title { text-align:center; margin-bottom:var(--space-12); font-size:var(--text-4xl); }
.pg-has-ways-of-giving .pg-card {
  background:var(--bg-primary); border-radius:var(--radius-2xl); overflow:hidden;
  display:flex; flex-direction:column; height:100%; text-decoration:none; color:inherit;
  box-shadow:var(--shadow-sm); border:1px solid var(--border-light);
  transition:transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out);
}
.pg-has-ways-of-giving .pg-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-xl); text-decoration:none; color:inherit; }
.pg-has-ways-of-giving .pg-card-image { height:200px; overflow:hidden; position:relative; }
.pg-has-ways-of-giving .pg-card-image::after {
  content:none !important;
  display:none !important;
  background:none !important;
}
.pg-has-ways-of-giving .pg-card-image img { width:100%; height:100%; object-fit:cover; transition:transform 500ms var(--ease-out); }
.pg-has-ways-of-giving .pg-card:hover img { transform:scale(1.1); }
.pg-has-ways-of-giving .pg-card-content { padding:var(--space-6); flex:1; }
.pg-has-ways-of-giving .pg-strong { font-size:var(--text-xl); font-weight:600; color:var(--text-primary); margin-bottom:var(--space-2); display:block; }

/* -- Legacy Society -- */
.pg-has-society { background:var(--bg-tertiary); padding:var(--space-16) 0; border-radius:var(--radius-3xl); margin:var(--space-8) 0; }
.pg-society-inner { display:grid; gap:var(--space-12); align-items:center; }
@media (min-width:1024px) { .pg-society-inner { grid-template-columns:1fr 1fr; } }
.pg-society-img { width:100%; max-width:500px; border-radius:var(--radius-2xl); box-shadow:var(--shadow-lg); transition:transform 300ms var(--ease-out); }
.pg-society-img:hover { transform:rotate(-2deg) scale(1.02); }

/* -- Tip of the Week -- */
.pg-has-tip-of-the-week {
  background:var(--bg-primary); border:2px solid var(--border-light);
  border-radius:var(--radius-2xl); padding:var(--space-8); margin:var(--space-8) 0;
  position:relative; overflow:hidden;
}
.pg-has-tip-of-the-week::before {
  content:''; position:absolute; top:-50%; right:-20%; width:400px; height:400px;
  background:radial-gradient(circle, var(--warning-bg), transparent); opacity:0.3;
}
.pg-has-tip-of-the-week .pg-section-title { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-6); }
.pg-has-tip-of-the-week .fa-lightbulb { font-size:var(--text-2xl); color:var(--warning); filter:drop-shadow(0 0 10px rgba(217,119,6,0.3)); }
.pg-has-tip-of-the-week .readmoretip { margin-top:var(--space-4); }

/* -- Plan-a-Gift CTA band -- */
.pg-has-pag {
  background:var(--brand-primary); color:var(--on-primary);
  padding:var(--space-8); border-radius:var(--radius-3xl); margin:var(--space-8) 0;
  position:relative; overflow:hidden;
}
.pg-has-pag::before {
  content:''; position:absolute; top:-50%; left:-30%; width:60%; height:200%;
  background:rgba(255,255,255,0.1); transform:rotate(45deg);
}
.pg-has-pag .pg-section-title span { background:transparent; padding:0 var(--space-6); }
.pg-has-pag .pg-columns { display:grid; gap:var(--space-8); align-items:center; margin-top:var(--space-6); }
@media (min-width:768px) { .pg-has-pag .pg-columns { grid-template-columns:auto 1fr; } }
.pg-has-pag a {
  display:inline-block; background:var(--brand-secondary); color:var(--on-secondary);
  padding:var(--space-3) var(--space-6); border-radius:var(--radius-full); font-weight:600;
  box-shadow:var(--shadow-md); text-decoration:none; transition:transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out), background-color 200ms var(--ease-out);
}
.pg-has-pag a:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); text-decoration:none; background:var(--brand-secondary-dark); }
.pg-has-pag .fa-gift { font-size:var(--text-4xl); animation:pgFloat 3s ease-in-out infinite; }
@keyframes pgFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
.pg-plan-a-gift-copy { font-size:var(--text-lg); line-height:1.7; margin-bottom:var(--space-6); }


/* ============================================================================
   12. INTERACTIVE CONTENT BLOCKS  (gift/article pages)
   FLAT BY DEFAULT - copy sits on the page, no shadowed boxes. Surfaces are
   driven by the --panel-* tokens (section 1e) so a client can opt into boxes.
   ============================================================================ */
/* Shared section shell (flat unless a client sets the panel tokens). */
#vghowworks, #vgbenefits, #vgnext, .pg-important-related-topics {
  background:var(--panel-bg);
  border:var(--panel-border);
  border-radius:var(--panel-radius);
  box-shadow:var(--panel-shadow);
  padding:var(--panel-pad);
  margin:var(--space-10) 0;
}
/* Shared section heading: simple brand typography. */
#vghowworks h2, #vgbenefits h2, #vgnext h2, .pg-important-related-topics h2 {
  color:var(--text-primary);
  font-family:var(--font-heading);
  font-size:var(--text-2xl);
  margin:0 0 var(--space-6);
}
#vghowworks h2::after, #vgbenefits h2::after, #vgnext h2::after,
.pg-important-related-topics h2::after {
  content:none;
  display:none;
}

/* -- How it works: numbered steps on hairline rows (no cards) --
   NOTE: the step text is mixed inline content (text + links), so we use an
   absolutely-positioned number + left padding rather than grid. A grid would
   scatter each text node / link into its own cell and break the sentence. */
#vghowworks ul { list-style:none !important; counter-reset:step; margin:0; padding:0; }
#vghowworks li {
  display:block; list-style:none !important; counter-increment:step;
  position:relative;
  padding:var(--space-5) 0 var(--space-5) calc(34px + var(--space-4));
  color:var(--text-secondary); line-height:1.7; font-size:var(--text-base);
  border-top:var(--rule);
}
#vghowworks li:first-child { border-top:0; }
#vghowworks li::before {
  content:counter(step);
  position:absolute; left:0; top:var(--space-5);
  width:34px; height:34px; border-radius:50%;
  background:var(--brand-primary); color:var(--on-primary);
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:var(--text-base);
}
#vghowworks li p, #vghowworks li div { margin:0; }

/* -- Benefits: clean checkmark list (no cards, no native bullet) -- */
#vgbenefits ul { list-style:none !important; list-style-type:none !important; margin:0; padding:0; }
#vgbenefits li {
  display:block; list-style:none !important;       /* kill vendor disc marker */
  position:relative; padding:var(--space-2) 0 var(--space-2) var(--space-9);
  color:var(--text-secondary); line-height:1.7;
}
#vgbenefits li::before {
  content:''; position:absolute; left:0; top:var(--space-2);
  width:24px; height:24px; border-radius:50%;
  background:color-mix(in srgb, var(--success) 14%, transparent); color:var(--success);
  display:block;
}
#vgbenefits li::after {
  content:''; position:absolute; left:8px; top:calc(var(--space-2) + 5px);
  width:6px; height:10px;
  border:solid var(--success);
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}

/* -- Related topics: clean linked list with hairline rows (no boxes) -- */
.pg-important-related-topics ul { list-style:none !important; list-style-type:none !important; margin:0; padding:0; }
.pg-important-related-topics li { display:block; list-style:none !important; border-top:var(--rule); }
.pg-important-related-topics li:first-child { border-top:0; }
.pg-important-related-topics a {
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-3);
  padding:var(--space-4) 0;
  color:var(--text-primary); font-weight:600; font-size:var(--text-base); line-height:1.5;
  text-decoration:none;
  transition:color 160ms var(--ease-out), padding-left 160ms var(--ease-out);
}
.pg-important-related-topics a::after {
  content:'\2192'; flex-shrink:0; color:var(--brand-secondary); font-weight:700;
  transition:transform 160ms var(--ease-out);
}
.pg-important-related-topics a:hover { color:var(--brand-secondary); padding-left:var(--space-2); }
.pg-important-related-topics a:hover::after { transform:translateX(4px); }
.pg-important-related-topics a[href$=".doc"]::after,
.pg-important-related-topics a[href$=".pdf"]::after { content:'\2193'; }


/* ============================================================================
   13. FORMS & CALCULATORS
   ============================================================================ */
#vgcom {
  background:var(--bg-primary); padding:var(--space-8); border-radius:var(--radius-2xl);
  box-shadow:var(--shadow-sm); border:1px solid var(--border-light); margin:var(--space-8) 0;
}
#vgcom h2 { color:var(--text-primary); border-bottom:2px solid var(--border-light); padding-bottom:var(--space-4); margin-bottom:var(--space-6); font-size:var(--text-2xl); }
#vgcom section { margin-bottom:var(--space-6); }
#vgcom label {
  display:block; padding:var(--space-4); background:var(--bg-tertiary); border-radius:var(--radius-lg);
  margin-bottom:var(--space-3); cursor:pointer; border:2px solid transparent; position:relative;
  transition:border-color 200ms var(--ease-out), background-color 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}
#vgcom label:hover { border-color:var(--brand-primary); background:var(--bg-primary); box-shadow:var(--shadow-sm); }
#vgcom input[type="checkbox"] { position:absolute; opacity:0; cursor:pointer; height:0; width:0; }
#vgcom input[type="checkbox"]:checked + label { border-color:var(--brand-primary); background:var(--bg-primary); box-shadow:var(--shadow-md); }
#vgcom label p { margin:0 0 var(--space-2) 0; font-size:var(--text-base); line-height:1.5; color:var(--text-secondary); }
#vgcom label p span { display:block; font-weight:600; font-size:var(--text-lg); color:var(--text-primary); margin-bottom:var(--space-1); }
#vgcom .checkmark { position:absolute; top:var(--space-4); right:var(--space-4); height:20px; width:20px; background-color:var(--bg-muted); border-radius:var(--radius-sm); transition:background-color 200ms var(--ease-out); }
#vgcom .checkmark:after { content:""; position:absolute; display:none; left:7px; top:3px; width:5px; height:10px; border:solid var(--text-inverse); border-width:0 3px 3px 0; transform:rotate(45deg); }
#vgcom input[type="checkbox"]:checked ~ .checkmark { background-color:var(--brand-primary); }
#vgcom input[type="checkbox"]:checked ~ .checkmark:after { display:block; }
#vgcom input[type="submit"] {
  background:var(--brand-primary); color:var(--on-primary); border:none;
  padding:var(--space-3) var(--space-8); border-radius:var(--radius-full); font-weight:600;
  cursor:pointer; float:right; font-size:var(--text-base);
  transition:background-color 300ms var(--ease-out), transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out);
}
#vgcom input[type="submit"]:hover { background:var(--brand-secondary); color:var(--on-secondary); transform:translateY(-2px); box-shadow:var(--shadow-md); }

/* generic form elements */
.pg-form-group { margin-bottom:var(--space-4); }
.pg-form-label { display:block; margin-bottom:var(--space-2); font-weight:500; color:var(--text-primary); }
.pg-form-input { width:100%; padding:var(--space-3); border:1px solid var(--border-default); border-radius:var(--radius-md); font-size:var(--text-base); transition:border-color 200ms var(--ease-out); }
.pg-form-input:focus { outline:none; border-color:var(--brand-primary); box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 18%, transparent); }
.pg-form-textarea { min-height:120px; resize:vertical; }


/* ============================================================================
   14. TABLES
   ============================================================================ */
#vggoals {
  width:100%; background:var(--bg-primary); border-radius:var(--radius-2xl); overflow:hidden;
  box-shadow:var(--shadow-sm); border:1px solid var(--border-light); margin:var(--space-8) 0;
}
#vggoals thead { background:var(--brand-primary); }
#vggoals thead p strong { color:var(--on-primary) !important; }
#vggoals th { padding:var(--space-4) var(--space-6); font-weight:600; text-align:left; color:var(--on-primary); font-size:var(--text-sm); text-transform:uppercase; letter-spacing:0.05em; }
#vggoals td { padding:var(--space-4) var(--space-6); border-bottom:1px solid var(--border-light); color:var(--text-secondary); vertical-align:top; }
#vggoals tbody tr { transition:background-color 200ms var(--ease-out); }
#vggoals tbody tr:hover { background:var(--bg-tertiary); }
#vggoals tbody tr:last-child td { border-bottom:none; }
#vggoals a { color:var(--brand-secondary); font-weight:500; }
#vggoals a:hover { color:var(--brand-secondary-dark); }
@media (max-width:768px) {
  #vggoals thead { display:none; }
  #vggoals tr { display:block; margin-bottom:var(--space-4); background:var(--bg-primary); border-radius:var(--radius-lg); padding:var(--space-4); box-shadow:var(--shadow-sm); border:1px solid var(--border-light); }
  #vggoals td { display:block; text-align:left; padding:var(--space-2) 0 var(--space-2) 50%; border:none; position:relative; }
  #vggoals td::before { content:attr(data-label); position:absolute; left:0; top:var(--space-2); font-weight:600; color:var(--text-primary); width:45%; }
}


/* ============================================================================
   15. GIFT DIAGRAM
   ============================================================================ */
#vggiftdiag { text-align:center; margin:0 auto; }
.vggiftdiag_logo { margin:var(--space-4) auto 0; width:100px; padding:5px; transition:opacity 500ms var(--ease-out); }
.pg-gift-diagram-end .vggiftdiag_logo { opacity:1; }
#vgdiagram { margin:0 auto; }
.giftvideo { margin:0 auto; }
body .bg-card { background-color:#fff !important; }


/* ============================================================================
   16. NEXT STEPS
   ============================================================================ */
/* Flat: section shell + heading inherit the shared rules in section 12. */
#vgnext { background:var(--panel-bg); border:var(--panel-border); border-radius:var(--panel-radius); box-shadow:var(--panel-shadow); padding:var(--panel-pad); margin:var(--space-10) 0; }
#vgnext ul { display:grid; gap:var(--space-3); list-style:none !important; list-style-type:none !important; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); margin:0; padding:0; }
#vgnext li {
  position:relative; display:block; list-style:none !important; padding:var(--space-4) var(--space-5);
  border:var(--rule); border-radius:var(--radius-md);
  transition:border-color 160ms var(--ease-out), background-color 160ms var(--ease-out);
}
#vgnext li::marker { content:none !important; display:none !important; }
#vgnext li::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--brand-primary); border-radius:var(--radius-full) 0 0 var(--radius-full);
  opacity:0; transition:opacity 160ms var(--ease-out);
}
#vgnext li:hover { border-color:var(--brand-primary); background:color-mix(in srgb, var(--brand-primary) 6%, transparent); }
#vgnext li:hover::before { opacity:1; }
#vgnext a { color:var(--text-primary); font-weight:600; text-decoration:none; }
.vgicon { display:none !important; }


/* ============================================================================
   17. BEQUEST FORM LINK
   ============================================================================ */
/* Block flow (NOT flex): this box mixes an icon with inline text + links.
   Flex turned each word/link into its own item and wrapped "click here"
   onto two lines. Float the icon and let the sentence flow normally. */
.vgbequestformlink {
  display:block; overflow:hidden;
  padding:var(--space-4) var(--space-5);
  background:transparent; border:0; border-left:4px solid var(--brand-primary);
  border-radius:0; box-shadow:none; font-size:var(--text-base);
  line-height:1.7; color:var(--text-secondary); margin:var(--space-6) 0;
}
.vgbequestformlink img { float:left; max-width:44px; height:auto; margin:2px var(--space-4) var(--space-2) 0; }
.vgbequestformlink a { display:inline; color:var(--brand-secondary); font-weight:600; text-decoration:underline; transition:color 200ms var(--ease-out); }
.vgbequestformlink a:hover { color:var(--brand-secondary-dark); }
@media (max-width:768px) {
  .vgbequestformlink { padding:var(--space-4); }
  .vgbequestformlink img { max-width:40px; }
}


/* ============================================================================
   18. ALERTS
   ============================================================================ */
.pg-alert { padding:var(--space-4); border-radius:var(--radius-lg); margin-bottom:var(--space-4); border:1px solid; }
.pg-alert-info    { background:var(--info-bg);    border-color:var(--blue-200);  color:var(--info); }
.pg-alert-success { background:var(--success-bg); border-color:var(--green-200); color:var(--success); }
.pg-alert-warning { background:var(--warning-bg); border-color:var(--amber-200); color:var(--warning); }
.pg-alert-error   { background:var(--error-bg);   border-color:var(--red-200);   color:var(--error); }
.pg-alert-accent  { background:var(--bg-primary); border:2px solid var(--brand-primary); color:var(--text-primary); }
.pg-alert a { color:inherit; font-weight:600; text-decoration:none; display:flex; align-items:center; gap:var(--space-3); transition:opacity 200ms var(--ease-out); }
.pg-alert a:hover { opacity:0.8; text-decoration:none; }


/* ============================================================================
   19. FAQ
   ============================================================================ */
#vgsubqa { margin:var(--space-8) 0; }
#vgsubqa > p {
  padding:var(--space-4) var(--space-4) var(--space-4) var(--space-12);
  background:var(--bg-tertiary); border-radius:var(--radius-lg); margin-bottom:var(--space-2);
  cursor:pointer; font-weight:600; color:var(--text-primary); position:relative;
  transition:background-color 200ms var(--ease-out);
}
#vgsubqa > p:hover { background:var(--bg-primary); box-shadow:var(--shadow-sm); }
.vgslide { max-height:0; overflow:hidden; transition:max-height 300ms var(--ease-in-out); background:var(--bg-primary); border-radius:var(--radius-lg); margin-bottom:var(--space-4); }
.pg-faq-open + .vgslide { max-height:1000px; transition:max-height 400ms var(--ease-in-out); }
#vgsubqa .vgslide p, #vgsubqa .vgslide ul { margin:var(--space-4); color:var(--text-secondary); }
.pg-faq-toggle img { float:left; padding-right:10px; }


/* ============================================================================
   20. CONTACT & FOOTER
   ============================================================================ */
.pg-has-contact { background:var(--bg-tertiary); padding:var(--space-16) 0; }
.pg-contact { margin-top:var(--space-6); }
.pg-contacts { display:grid; gap:var(--space-8); margin-top:var(--space-8); }
@media (min-width:768px) { .pg-contacts { grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); } }
.pg-contact-item { background:var(--bg-primary); padding:var(--space-6); border-radius:var(--radius-xl); box-shadow:var(--shadow-sm); border:1px solid var(--border-light); }
.pg-contact-item.pg-has-img { display:flex; gap:var(--space-4); align-items:flex-start; }
.pg-contact-item .pg-img-wrap { width:120px; height:120px; border-radius:var(--radius-lg); overflow:hidden; flex-shrink:0; }
.pg-contact-item .pg-img-wrap img { width:100%; height:100%; object-fit:cover; }
.pg-contact-item ul { list-style:none; padding:0; margin:0; font-size:var(--text-sm); }
.pg-contact-item ul li { margin-bottom:var(--space-2); line-height:1.4; }
.pg-contact-item ul li.pg-contact-name { font-weight:600; font-size:var(--text-base); color:var(--text-primary); margin-bottom:var(--space-3); }
@media (max-width:768px) {
  .pg-contact-item.pg-has-img { flex-direction:column; text-align:center; }
  .pg-contact-item .pg-img-wrap { align-self:center; }
}

.pg-is-footer { background:var(--brand-primary); color:var(--text-inverse); padding:var(--space-8) 0; text-align:center; font-size:var(--text-sm); }
.pg-is-footer a, .pg-is-footer p { color:#fff !important; }
.pg-is-footer a { text-decoration:underline; }
.pg-footer_proupgrade { max-width:var(--container-lg); margin:0 auto; padding:0 var(--space-4); }


/* ============================================================================
   21. UTILITIES
   ============================================================================ */
.pg-sr-only, .hideOffScreen {
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0,0,0,0); border:0;
}
.pg-text-align-center { text-align:center; }
.pg-text-align-left { text-align:left; }
.pg-text-align-right { text-align:right; }
.pg-nowrap { white-space:nowrap; }

.pg-has-line-beside { position:relative; display:flex; align-items:center; justify-content:center; }
.pg-has-line-beside::before, .pg-has-line-beside::after {  }
.pg-has-line-beside span { padding:0 var(--space-8); font-weight:600; background:var(--bg-primary); }

.pg-has-background-color { padding:var(--space-16) 0; }
.pg-has-primary-background-color { background:var(--brand-primary); color:var(--on-primary); }
.pg-has-secondary-background-color { background-color:var(--bg-secondary); }
.pg-has-light-grey-background-color { background-color:var(--bg-tertiary); }
.pg-has-white-background-color { background-color:var(--bg-primary); }
.pg-has-primary-color { color:var(--text-primary); }
.pg-has-white-color { color:var(--text-inverse); }
.pg-has-dark-grey-color { color:var(--text-primary); }

.pg-mb-0 { margin-bottom:0; } .pg-mb-2 { margin-bottom:var(--space-2); } .pg-mb-4 { margin-bottom:var(--space-4); }
.pg-mb-6 { margin-bottom:var(--space-6); } .pg-mb-8 { margin-bottom:var(--space-8); }
.pg-mt-0 { margin-top:0; } .pg-mt-2 { margin-top:var(--space-2); } .pg-mt-4 { margin-top:var(--space-4); }
.pg-mt-6 { margin-top:var(--space-6); } .pg-mt-8 { margin-top:var(--space-8); }
.pg-p-0 { padding:0; } .pg-p-2 { padding:var(--space-2); } .pg-p-4 { padding:var(--space-4); }
.pg-p-6 { padding:var(--space-6); } .pg-p-8 { padding:var(--space-8); }

.vg-clearfix::after { content:""; display:table; clear:both; }

/* fade-in helper */
@keyframes pgFadeInUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.pg-fade-in { animation:pgFadeInUp 0.6s var(--ease-out) forwards; }
@keyframes pgSpin { to { transform:rotate(360deg); } }
.pg-loading { position:relative; pointer-events:none; }
.pg-loading::after { content:''; position:absolute; top:50%; left:50%; width:20px; height:20px; margin:-10px 0 0 -10px; border:2px solid var(--border-light); border-top-color:var(--brand-primary); border-radius:50%; animation:pgSpin 1s linear infinite; }

/* legacy vendor cleanup */
 
#vgbody ol { list-style:inherit !important; margin-left:20px; }
#vgbody ul { list-style-type:disc !important; }
body #vgbody #vgWPW input, body #vgbody #vgWPW textarea { border:1px solid #ccc; }


/* ============================================================================
   22. SIDEBAR CALLOUTS  (#vgitgfy "in this guide", #vggep estate-plan nav)
   ============================================================================ */
#vgitgfy {
  float:right; width:360px; max-width:42%;
  margin:0 0 1.5rem 1.5rem; padding:1rem 1.25rem;
  background:#fff; background-image:linear-gradient(180deg, rgba(2,38,88,0.04), rgba(0,46,109,0.02));
  border:1px solid rgba(2,38,88,0.15); border-radius:10px;
  box-shadow:0 6px 20px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.06);
  box-sizing:border-box; position:relative;
}
@media (min-width:1025px) { #vgitgfy {   } }
#vgitgfy::before {
  content:""; position:absolute; left:0; top:12px; bottom:12px; width:4px; border-radius:4px;
  background-image:linear-gradient(180deg, var(--brand-primary), var(--brand-secondary)); opacity:0.9;
}
#vgitgfy h2 { margin:0 0 0.5rem 0; font-size:var(--text-xl); line-height:1.2; color:#022658; letter-spacing:0.2px; }
#vgitgfy > p { margin:0 0 0.75rem 0; color:#12324f; font-size:var(--text-base); }
#vgitgfy li { position:relative; padding:0.4rem 0 0.4rem 1.5rem; margin:0; color:#2a3b4f; font-size:var(--text-base); line-height:1.45; border-bottom:1px dashed rgba(2,38,88,0.15); }
#vgitgfy li:last-child { border-bottom:none; }
#vgitgfy a:focus, #vgitgfy button:focus, #vgitgfy li:focus-within { box-shadow:inset 0 0 0 2px rgba(76,156,217,0.35); border-radius:6px; }
@media (max-width:1024px) { #vgitgfy { float:none; width:100%; max-width:100%; margin:1rem 0; } }

#vggep {
  float:right; width:280px; background:#fff; border:1px solid #ddd; border-radius:8px;
  padding:16px; margin:0 0 20px 20px; box-shadow:0 2px 6px rgba(0,0,0,0.05);
}
#vggep .title { font-size:var(--text-lg); font-weight:700; margin-bottom:12px; color:var(--brand-secondary); border-bottom:2px solid var(--brand-secondary); padding-bottom:4px; }
#vggep a { display:block; padding:8px 12px; margin-bottom:6px; border-radius:6px; text-decoration:none; font-size:var(--text-sm); font-weight:500; color:#333; background:#f9f9f9; transition:all 0.2s ease; }
#vggep a strong { margin-right:6px; color:var(--brand-secondary); }
#vggep a:hover, #vggep a:focus { background:var(--brand-secondary); color:#fff; outline:none; }
#vggep a:hover strong, #vggep a:focus strong { color:#fff; }
#vggep a.selected { background:var(--brand-secondary); color:#fff; font-weight:600; }
#vggep a.selected strong { color:#fff; }
#vggep a.lite { background:transparent; color:var(--brand-secondary); font-size:var(--text-sm); font-weight:500; border:1px dashed #bbb; padding:6px 10px; }
#vggep a.lite:hover, #vggep a.lite:focus { background:#eef5fa; color:var(--brand-secondary); border-color:var(--brand-secondary); }
@media (max-width:1024px) { #vggep { float:none; width:100%; margin:1rem 0; } }


/* ============================================================================
   23. PLAN-A-GIFT MODAL  (#vg_planagift_v2 + #blanket overlay)
   Vendor popup; overrides target vendor inline styles -> !important needed.
   ============================================================================ */
body #blanket[style*="display:block"],
body #blanket[style*="display: block"] {
  position:fixed !important; inset:0 !important; display:block !important;
  width:100vw !important; height:100vh !important;
  background:rgba(15,23,42,0.58) !important; z-index:900 !important;
}
body #vg_planagift_v2,
body #vg_planagift_v2 * { font-family:var(--font-body) !important; }
body #vg_planagift_v2[style*="display:block"],
body #vg_planagift_v2[style*="display: block"] {
  box-sizing:border-box !important; left:50% !important;
  width:calc(100vw - 48px) !important; max-width:760px !important; min-width:0 !important;
  max-height:calc(100vh - 48px) !important; padding:30px !important;
  overflow-x:hidden !important; overflow-y:auto !important;
  background:#fff !important; border:1px solid var(--compat-border) !important;
  box-shadow:0 24px 60px rgba(15,23,42,0.28) !important; z-index:901 !important; color:#000 !important;
}
body #vg_planagift_v2 #vgpag,
body #vg_planagift_v2 fieldset { box-sizing:border-box !important; width:100% !important; max-width:100% !important; min-width:0 !important; padding:0 !important; background:transparent !important; overflow:visible !important; }
body #vg_planagift_v2 #vgpag_close { display:block !important; opacity:1 !important; z-index:902 !important; }
body #vg_planagift_v2 legend { box-sizing:border-box !important; float:none !important; width:100% !important; max-width:100% !important; margin:0 0 24px !important; padding:0 !important; color:#111827 !important; line-height:1.2 !important; white-space:normal !important; }
body #vg_planagift_v2 legend strong {
  box-sizing:border-box !important; display:block !important; width:100% !important; max-width:calc(100% - 54px) !important;
  margin:0 0 16px !important; padding:0 0 13px !important; border-bottom:3px solid var(--brand-primary) !important;
  color:#000 !important; font-family:var(--font-body) !important; font-size:clamp(1.75rem, 1.4rem + 1.6vw, 2.125rem) !important;
  font-weight:400 !important; line-height:1.2 !important; overflow-wrap:anywhere !important;
}
body #vg_planagift_v2 legend em { box-sizing:border-box !important; display:block !important; width:100% !important; max-width:100% !important; color:#000 !important; font-family:var(--font-body) !important; font-size:clamp(1.375rem, 1.2rem + 0.8vw, 1.5rem) !important; font-style:normal !important; font-weight:400 !important; line-height:1.28 !important; overflow-wrap:break-word !important; }
body #vg_planagift_v2 p, body #vg_planagift_v2 label { color:#000 !important; font-family:var(--font-body) !important; font-size:clamp(1rem, 0.95rem + 0.3vw, 1.09375rem) !important; font-weight:400 !important; line-height:1.8 !important; max-width:100% !important; overflow-wrap:break-word !important; }
body #vg_planagift_v2 p { margin:22px 0 0 !important; }
body #vg_planagift_v2 a { color:var(--brand-secondary) !important; text-decoration-color:currentColor !important; max-width:100% !important; overflow-wrap:break-word !important; }
body #vg_planagift_v2 input[type="radio"] { accent-color:var(--brand-secondary) !important; }
body #vg_planagift_v2 .vgpag_footer { display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:10px !important; position:static !important; width:100% !important; margin:28px 0 0 !important; padding:0 !important; }
body #vg_planagift_v2 #vgpagback,
body #vg_planagift_v2 #vgpagnext {
  box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:auto !important; max-width:100% !important; min-width:108px !important; min-height:58px !important;
  padding:16px 36px !important; background:var(--brand-primary) !important; border:1px solid var(--brand-primary) !important;
  border-radius:var(--radius-md) !important; box-shadow:none !important; color:var(--on-primary) !important;
  cursor:pointer !important; font-family:var(--font-button) !important; font-size:var(--text-lg) !important;
  font-weight:400 !important; letter-spacing:0.02em !important; line-height:1 !important; text-align:center !important;
  text-transform:none !important; white-space:normal !important;
  transition:background-color 160ms ease, border-color 160ms ease !important;
}
body #vg_planagift_v2 #vgpagback:hover, body #vg_planagift_v2 #vgpagback:focus,
body #vg_planagift_v2 #vgpagnext:hover, body #vg_planagift_v2 #vgpagnext:focus {
  background:var(--brand-secondary) !important; border-color:var(--brand-secondary) !important; color:var(--on-secondary) !important;
}
body #vg_planagift_v2 #vgpagback:focus-visible, body #vg_planagift_v2 #vgpagnext:focus-visible {
  box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 45%, transparent) !important;
}
@media (max-width:640px) {
  body #vg_planagift_v2[style*="display:block"],
  body #vg_planagift_v2[style*="display: block"] {
    left:14px !important; right:14px !important; width:auto !important; max-width:calc(100vw - 28px) !important;
    max-height:calc(100vh - 28px) !important; padding:22px !important; transform:none !important;
  }
  body #vg_planagift_v2 #vgpagback, body #vg_planagift_v2 #vgpagnext { min-height:52px !important; padding:14px 28px !important; font-size:var(--text-base) !important; }
}


/* ============================================================================
   24. GIFT-PLAN CARD GRIDS
   Shared card language for .pg-gift-plans and .pg-page-card-cols grids
   (gift lists, footer tools, "Explore More"). Overrides vendor base.css.
   ============================================================================ */
.pg-gift-plans .pg-page-card-outer,
.pg-page-card-outer.pg-page-card-cols {
  display:grid !important; gap:22px !important; margin:34px 0 !important;
}
.pg-gift-plans .pg-page-card-outer { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
.pg-page-card-outer.pg-page-card-cols { grid-template-columns:repeat(auto-fit, minmax(min(100%, 260px), 1fr)) !important; }
.pg-gift-plans .pg-page-card-outer > article,
.pg-page-card-outer.pg-page-card-cols > article,
.pg-page-card-outer.pg-page-card-cols > .pg-page-card { min-width:0 !important; }

.pg-gift-plans .pg-page-card,
.pg-page-card-outer.pg-page-card-cols > .pg-page-card,
.pg-page-card-outer.pg-page-card-cols > article > .pg-page-card {
  box-sizing:border-box !important; display:flex !important; flex-direction:column !important;
  min-height:185px !important; height:100% !important; padding:26px !important;
  background:#fff !important; border:1px solid rgba(0,0,0,0.16) !important; border-top:5px solid var(--brand-primary) !important;
  border-radius:var(--radius-md) !important; box-shadow:none !important; color:#000 !important;
  font-family:var(--font-body) !important; text-align:left !important; text-decoration:none !important; transform:none !important;
  transition:border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}
.pg-gift-plans .pg-page-card::before,
.pg-page-card-outer.pg-page-card-cols .pg-page-card::before,
.pg-gift-plans .pg-page-card .pg-button::before,
.pg-page-card-outer.pg-page-card-cols .pg-page-card .pg-button::before { display:none !important; }
.pg-gift-plans .pg-page-card:hover, .pg-gift-plans .pg-page-card:focus,
.pg-page-card-outer.pg-page-card-cols > .pg-page-card:hover,
.pg-page-card-outer.pg-page-card-cols > .pg-page-card:focus,
.pg-page-card-outer.pg-page-card-cols > article > .pg-page-card:hover,
.pg-page-card-outer.pg-page-card-cols > article > .pg-page-card:focus {
  border-color:var(--brand-secondary) !important; border-top-color:var(--brand-secondary) !important;
  box-shadow:0 10px 24px rgba(0,0,0,0.10) !important; color:#000 !important; outline:none !important;
  text-decoration:none !important; transform:translateY(-2px) !important;
}
.pg-gift-plans .pg-page-card:focus-visible { box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-primary) 45%, transparent), 0 10px 24px rgba(0,0,0,0.10) !important; }
.pg-gift-plans .pg-page-card-title,
.pg-page-card-outer.pg-page-card-cols .pg-page-card-title {
  margin:0 0 14px !important; color:#000 !important; font-family:var(--font-heading) !important;
  font-size:var(--text-2xl) !important; font-weight:400 !important; line-height:1.28 !important; text-align:left !important; text-decoration:none !important;
}
.pg-gift-plans .pg-page-card p,
.pg-page-card-outer.pg-page-card-cols .pg-page-card p {
  margin:0 !important; color:#000 !important; font-family:var(--font-body) !important;
  font-size:var(--text-base) !important; font-weight:400 !important; line-height:1.58 !important; text-align:left !important; text-decoration:none !important;
}
.pg-gift-plans .pg-page-card .pg-button,
.pg-page-card-outer.pg-page-card-cols .pg-page-card .pg-button {
  box-sizing:border-box !important; display:inline-flex !important; align-items:center !important; justify-content:center !important;
  gap:12px !important; width:fit-content !important; max-width:100% !important; min-height:52px !important;
  margin:auto 0 0 !important; padding:15px 34px !important; background:var(--brand-primary) !important;
  border:1px solid var(--brand-primary) !important; border-radius:var(--radius-md) !important; box-shadow:none !important;
  color:var(--on-primary) !important; font-family:var(--font-button) !important; font-size:var(--text-lg) !important;
  font-weight:400 !important; line-height:1 !important; letter-spacing:0.02em !important; text-align:center !important; text-decoration:none !important;
  transition:background-color 160ms ease, border-color 160ms ease, color 160ms ease !important;
}
.pg-gift-plans .pg-page-card .pg-button span { display:inline-block !important; margin:0 !important; color:currentColor !important; transition:transform 160ms ease !important; }
.pg-gift-plans .pg-page-card:hover .pg-button, .pg-gift-plans .pg-page-card:focus .pg-button,
.pg-page-card-outer.pg-page-card-cols .pg-page-card:hover .pg-button,
.pg-page-card-outer.pg-page-card-cols .pg-page-card:focus .pg-button {
  background:var(--brand-secondary) !important; border-color:var(--brand-secondary) !important; color:var(--on-secondary) !important;
}
.pg-gift-plans .pg-page-card:hover .pg-button span, .pg-gift-plans .pg-page-card:focus .pg-button span { transform:translateX(3px) !important; }
.pg-gift-plans .pg-page-card *,
.pg-page-card-outer.pg-page-card-cols .pg-page-card * { text-decoration:none !important; }

.pg-section-title.pg-text-align-center {
  color:#000 !important; font-family:var(--font-heading) !important; font-size:var(--text-3xl) !important;
  font-weight:400 !important; line-height:1.24 !important; text-align:center !important;
}
@media (max-width:900px) { .pg-gift-plans .pg-page-card-outer { grid-template-columns:1fr !important; } }
@media (max-width:640px) {
  .pg-gift-plans .pg-page-card-outer, .pg-page-card-outer.pg-page-card-cols { gap:16px !important; margin:28px 0 !important; }
  .pg-gift-plans .pg-page-card,
  .pg-page-card-outer.pg-page-card-cols > .pg-page-card,
  .pg-page-card-outer.pg-page-card-cols > article > .pg-page-card { min-height:0 !important; padding:22px !important; }
  .pg-gift-plans .pg-page-card .pg-button,
  .pg-page-card-outer.pg-page-card-cols .pg-page-card .pg-button { width:100% !important; }
}


/* ============================================================================
   25. COMPARE GIFT PLANS  (#vgcom picker + #vgcomo results table)
   ============================================================================ */
#vgcom { display:block !important; width:100% !important; max-width:100% !important; margin:28px 0 0 !important; }
#vgcom > input[type="submit"] {
  float:none !important; position:sticky !important; top:16px !important; z-index:5 !important; display:block !important;
  width:fit-content !important; min-height:58px !important; margin:0 0 28px auto !important; padding:16px 38px !important;
  background:var(--brand-secondary) !important; border:1px solid var(--brand-secondary) !important; border-radius:var(--radius-md) !important;
  color:var(--on-secondary) !important; cursor:pointer !important; font-family:var(--font-button) !important; font-size:var(--text-lg) !important;
  font-weight:400 !important; letter-spacing:0.02em !important;
}
#vgcom section { margin:0 0 34px !important; padding:0 !important; }
#vgcom section > h2 { margin:0 0 16px !important; padding:0 0 12px !important; border-bottom:3px solid var(--brand-primary) !important; color:#000 !important; font-family:var(--font-heading) !important; font-size:var(--text-2xl) !important; font-weight:400 !important; line-height:1.28 !important; }
#vgcom section > div { margin:0 0 10px !important; }
#vgcom section > div > label {
  box-sizing:border-box !important; display:grid !important; grid-template-columns:minmax(0, 1fr) 34px !important;
  align-items:center !important; gap:18px !important; width:100% !important; min-height:76px !important; padding:18px 20px !important;
  background:#fff !important; border:1px solid rgba(0,0,0,0.16) !important; border-left:5px solid var(--brand-primary) !important;
  border-radius:var(--radius-md) !important; color:#000 !important; cursor:pointer !important;
  transition:border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
}
#vgcom section > div > label:hover, #vgcom section > div > label:focus-within { border-color:var(--brand-secondary) !important; border-left-color:var(--brand-secondary) !important; box-shadow:0 8px 18px rgba(0,0,0,0.08) !important; transform:translateY(-1px) !important; }
#vgcom section > div > label p { margin:0 !important; color:#000 !important; font-family:var(--font-body) !important; font-size:var(--text-base) !important; line-height:1.55 !important; }
#vgcom section > div > label p > span { display:block !important; margin-bottom:4px !important; color:#000 !important; font-size:var(--text-lg) !important; font-weight:400 !important; line-height:1.3 !important; }
#vgcom section > div > label > span { position:relative !important; display:flex !important; align-items:center !important; justify-content:center !important; width:28px !important; height:28px !important; }
#vgcom input[type="checkbox"] { position:relative !important; z-index:2 !important; width:24px !important; height:24px !important; margin:0 !important; accent-color:var(--brand-secondary) !important; cursor:pointer !important; }

#vgcomo { width:100% !important; border-collapse:separate !important; border-spacing:0 !important; margin:28px 0 !important; overflow:hidden !important; border:1px solid rgba(0,0,0,0.16) !important; border-radius:var(--radius-md) !important; background:#fff !important; }
#vgcomo th, #vgcomo td { padding:14px 16px !important; border-bottom:1px solid rgba(0,0,0,0.12) !important; color:#000 !important; font-family:var(--font-body) !important; font-size:var(--text-sm) !important; line-height:1.45 !important; vertical-align:middle !important; }
#vgcomo thead th, #vgcomo thead td, #vgcomo .vgsection td { background:var(--brand-primary) !important; color:var(--on-primary) !important; }
#vgcomo a { color:var(--brand-secondary) !important; text-decoration:none !important; }
#vgcomo .pg-has-checkmark img { width:18px !important; height:18px !important; }
@media (max-width:760px) {
  #vgcom > input[type="submit"] { position:static !important; width:100% !important; margin-bottom:20px !important; }
  #vgcom section > div > label { grid-template-columns:minmax(0, 1fr) 28px !important; gap:12px !important; padding:16px !important; }
  #vgcomo { display:block !important; overflow-x:auto !important; }
}


/* ============================================================================
   26. GIFT DIAGRAM / VIDEO POPUP  (#blankets overlay + #popped lightbox)
   ============================================================================ */
body.overlay-open { overflow:hidden !important; }
#vgbody #blankets { box-sizing:border-box !important; inset:0 !important; width:100vw !important; height:100vh !important; background:rgba(0,0,0,0.58) !important; z-index:9000 !important; }
#vgbody #blankets[style*="display: block"], #vgbody #blankets[style*="display:block"] { display:flex !important; align-items:center !important; justify-content:center !important; padding:24px !important; }
#vgbody #popped {
  box-sizing:border-box !important; top:50% !important; left:50% !important; width:min(900px, calc(100vw - 48px)) !important;
  max-width:900px !important; margin:0 !important; padding:18px !important; background:#fff !important;
  border:1px solid rgba(0,0,0,0.14) !important; border-radius:var(--radius-md) !important;
  box-shadow:0 24px 70px rgba(0,0,0,0.32) !important; transform:translate(-50%, -50%) !important; z-index:9001 !important;
}
#vgbody #popped[style*="display: block"], #vgbody #popped[style*="display:block"] { display:block !important; }
#vgbody #popped #popped_close { position:static !important; display:block !important; height:0 !important; }
#vgbody #close_popped {
  position:absolute !important; top:-18px !important; right:-18px !important; box-sizing:border-box !important;
  width:44px !important; height:44px !important; max-width:none !important; max-height:none !important; padding:7px !important;
  background:#fff !important; border:2px solid #000 !important; border-radius:50% !important;
  box-shadow:0 8px 18px rgba(0,0,0,0.28) !important; cursor:pointer !important; object-fit:contain !important; z-index:2 !important;
}
#vgbody #close_popped:hover, #vgbody #close_popped:focus { background:var(--brand-primary) !important; }
#vgbody #popped iframe, #vgbody #popped video {
  display:block !important; width:100% !important; max-width:100% !important; aspect-ratio:16 / 9 !important;
  height:auto !important; min-height:0 !important; margin:0 !important; background:#fff !important; border:0 !important; border-radius:4px !important;
}
@media (max-width:760px) {
  #vgbody #blankets[style*="display: block"], #vgbody #blankets[style*="display:block"] { padding:14px !important; }
  #vgbody #popped { width:calc(100vw - 28px) !important; padding:12px !important; }
  #vgbody #close_popped { top:-14px !important; right:-10px !important; width:38px !important; height:38px !important; padding:6px !important; }
}


/* ============================================================================
   27. HOMEPAGE REDESIGNED SECTIONS
   ============================================================================ */
/* -- Society (modern) -- */
.society-section-modern { background:linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); padding:var(--space-20) 0; position:relative; overflow:hidden; }
.society-section-modern::before { content:''; position:absolute; top:-50%; right:-30%; width:60%; height:150%; background:radial-gradient(circle, rgba(255,255,255,0.4), transparent); pointer-events:none; }
.society-content-wrapper { display:grid; gap:var(--space-12); align-items:center; position:relative; z-index:2; }
@media (min-width:1024px) { .society-content-wrapper { grid-template-columns:1fr 1fr; } }
.society-text-content { order:2; }
@media (min-width:1024px) { .society-text-content { order:1; } }
.society-heading { font-size:var(--text-4xl); font-weight:var(--heading-weight); color:var(--text-primary); margin-bottom:var(--space-6); line-height:1.2; }
.society-description { font-size:var(--text-lg); color:var(--text-secondary); line-height:1.8; margin-bottom:var(--space-8); }
.society-cta-button {
  display:inline-flex; align-items:center; gap:var(--space-3); padding:var(--space-4) var(--space-8);
  background:var(--brand-primary); color:var(--on-primary); border-radius:var(--radius-full); font-weight:600; text-decoration:none;
  box-shadow:var(--shadow-md); transition:transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out), background-color 300ms var(--ease-out), color 300ms var(--ease-out);
}
.society-cta-button:hover { transform:translateY(-2px); box-shadow:var(--shadow-xl); background:var(--brand-secondary); color:var(--on-secondary); text-decoration:none; }
.society-cta-button span { transition:transform 300ms var(--ease-out); }
.society-cta-button:hover span { transform:translateX(4px); }
.society-image-wrapper { order:1; position:relative; }
@media (min-width:1024px) { .society-image-wrapper { order:2; } }
.society-image-container { position:relative; border-radius:var(--radius-3xl); overflow:hidden; box-shadow:var(--shadow-2xl); transform:rotate(3deg); transition:transform 400ms var(--ease-out); }
.society-image-container:hover { transform:rotate(0deg) scale(1.02); }
.society-image-container img { width:100%; height:auto; display:block; }
.society-image-overlay { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(to top, rgba(0,0,0,0.7), transparent); padding:var(--space-8) var(--space-6) var(--space-6); color:#fff; }
.society-image-overlay h3 { font-size:var(--text-xl); font-weight:600; margin:0; color:#fff; }

/* -- Tip (modern) -- */
.tip-section-modern { background:#fff; padding:var(--space-16) 0; }
.tip-container { max-width:900px; margin:0 auto; text-align:center; }
.tip-header { display:inline-flex; align-items:center; gap:var(--space-3); background:var(--amber-50); padding:var(--space-3) var(--space-6); border-radius:var(--radius-full); margin-bottom:var(--space-8); }
.tip-icon { width:32px; height:32px; background:var(--amber-500); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:var(--text-lg); }
.tip-header h2 { font-size:var(--text-2xl); font-weight:600; color:var(--text-primary); margin:0; }
.tip-content-box { background:linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%); border:2px solid var(--amber-200); border-radius:var(--radius-2xl); padding:var(--space-10); position:relative; overflow:hidden; }
.tip-main-content { position:relative; z-index:2; font-size:var(--text-lg); line-height:1.8; color:var(--text-secondary); }
.tip-links-section { margin-top:var(--space-8); padding-top:var(--space-8); border-top:2px dashed var(--amber-300); }
.tip-links-grid { display:flex; flex-wrap:wrap; gap:var(--space-3); justify-content:center; }
.tip-link-item { display:inline-flex; align-items:center; gap:var(--space-2); padding:var(--space-3) var(--space-5); background:#fff; border:2px solid var(--amber-400); border-radius:var(--radius-lg); color:var(--text-primary); font-weight:500; text-decoration:none; white-space:nowrap; transition:all 200ms var(--ease-out); }
.tip-link-item:hover { background:var(--amber-500); border-color:var(--amber-600); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md); text-decoration:none; }
.tip-link-item::after { content:'\2192'; transition:transform 200ms var(--ease-out); }
.tip-link-item:hover::after { transform:translateX(3px); }

/* -- Planning (modern) -- */
.planning-section-modern { background:var(--slate-50); padding:var(--space-20) 0; }
.planning-header { text-align:center; margin-bottom:var(--space-12); }
.planning-header h2 { font-size:var(--text-4xl); font-weight:var(--heading-weight); color:var(--text-primary); margin-bottom:var(--space-4); }
.planning-header p { font-size:var(--text-lg); color:var(--text-secondary); max-width:600px; margin:0 auto; line-height:1.6; }
.planning-cards-grid { display:grid; gap:var(--space-8); margin-top:var(--space-12); }
@media (min-width:768px) { .planning-cards-grid { grid-template-columns:repeat(3, 1fr); } }
.planning-card { background:#fff; border-radius:var(--radius-2xl); overflow:hidden; text-decoration:none; color:inherit; display:flex; flex-direction:column; height:100%; position:relative; border:1px solid var(--border-light); transition:transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out); }
.planning-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--brand-primary); transform:scaleX(0); transform-origin:left; transition:transform 300ms var(--ease-out); }
.planning-card:hover { transform:translateY(-8px); box-shadow:var(--shadow-2xl); text-decoration:none; }
.planning-card:hover::before { transform:scaleX(1); }
.planning-card-icon { padding:var(--space-8) var(--space-6) 0; font-size:48px; display:flex; align-items:center; justify-content:center; }
.planning-card-content { padding:var(--space-6); flex:1; display:flex; flex-direction:column; }
.planning-card h3 { font-size:var(--text-xl); font-weight:600; color:var(--text-primary); margin-bottom:var(--space-3); }
.planning-card p { color:var(--text-secondary); line-height:1.6; flex:1; }
.planning-card-arrow { margin-top:var(--space-4); color:var(--brand-secondary); font-weight:600; display:flex; align-items:center; gap:var(--space-2); }
.planning-card:hover .planning-card-arrow { gap:var(--space-3); }

/* -- Contact (modern) -- */
.contact-section-modern { background:linear-gradient(180deg, #fff 0%, var(--slate-50) 100%); padding:var(--space-20) 0; position:relative; }
.contact-header { text-align:center; margin-bottom:var(--space-12); }
.contact-header h2 { font-size:var(--text-4xl); font-weight:var(--heading-weight); color:var(--text-primary); margin-bottom:var(--space-4); }
.contact-header p { font-size:var(--text-lg); color:var(--text-secondary); max-width:600px; margin:0 auto; }
.contact-cards-wrapper { display:grid; gap:var(--space-8); margin-top:var(--space-8); }
@media (min-width:768px) { .contact-cards-wrapper { grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); } }
.contact-card { background:#fff; border:1px solid var(--border-light); border-radius:var(--radius-2xl); padding:var(--space-8); position:relative; overflow:hidden; transition:transform 300ms var(--ease-out), border-color 300ms var(--ease-out); }
.contact-card::before { content:''; position:absolute; inset:-2px; background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary)); border-radius:var(--radius-2xl); opacity:0; transition:opacity 300ms var(--ease-out); z-index:-1; }
.contact-card:hover { transform:translateY(-4px); border-color:transparent; }
.contact-card:hover::before { opacity:1; }
.contact-card-inner { position:relative; background:#fff; border-radius:calc(var(--radius-2xl) - 2px); padding:var(--space-8); margin:calc(-1 * var(--space-8)); z-index:1; display:flex; gap:var(--space-6); align-items:flex-start; }
.contact-avatar { width:100px; height:100px; border-radius:var(--radius-2xl); overflow:hidden; flex-shrink:0; box-shadow:var(--shadow-md); }
.contact-avatar img { width:100%; height:100%; object-fit:cover; }
.contact-info { flex:1; }
.contact-name { font-size:var(--text-xl); font-weight:700; color:var(--text-primary); margin-bottom:var(--space-2); }
.contact-title { font-size:var(--text-sm); color:var(--brand-secondary); font-weight:500; margin-bottom:var(--space-4); }
.contact-details { display:flex; flex-direction:column; gap:var(--space-2); }
.contact-detail-item { display:flex; align-items:center; gap:var(--space-3); font-size:var(--text-sm); color:var(--text-secondary); }
.contact-detail-icon { width:20px; height:20px; background:var(--slate-100); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:12px; }
.contact-detail-item a { color:var(--text-secondary); text-decoration:none; transition:color 200ms var(--ease-out); }
.contact-detail-item a:hover { color:var(--brand-secondary); }
@media (max-width:768px) {
  .society-heading, .planning-header h2, .contact-header h2 { font-size:var(--text-3xl); }
  .society-image-container { transform:none; }
  .tip-content-box { padding:var(--space-6); }
  .planning-card-icon { font-size:36px; padding:var(--space-6) var(--space-4) 0; }
  .contact-card-inner { flex-direction:column; text-align:center; }
  .contact-avatar { margin:0 auto; }
  .contact-details { align-items:center; }
}


/* ============================================================================
   ARTICLE BODY LINKS  (brand color, underlined - excludes buttons)
   ============================================================================ */
/* NOTE on inline text flow: links in copy used to render as blocks (breaking
   sentences mid-line). The cause was flex/grid on their CONTAINERS - a flex/
   grid parent "blockifies" child links regardless of any display rule on the
   link itself. The fix is upstream: #vghowworks li, #vgbenefits li and
   .vgbequestformlink are now display:block (see sections 12 & 17), so links
   flow inline normally. No per-link display override is needed here. */
#vgbody.pg-article p a:not(.pg-button):not(.pg-button-item),
#vgbody.pg-article li a:not(.pg-button):not(.pg-button-item),
#vgbody.pg-article dd a:not(.pg-button):not(.pg-button-item),
#vgbody.pg-article blockquote a:not(.pg-button):not(.pg-button-item),
#vghowworks a, .pg-important-related-topics a {
  color:var(--brand-secondary) !important; text-decoration:underline !important;
  text-decoration-color:currentColor !important; text-underline-offset:3px !important; text-decoration-thickness:1.5px !important;
}
#vgbody.pg-article p a:not(.pg-button):not(.pg-button-item):hover,
#vgbody.pg-article li a:not(.pg-button):not(.pg-button-item):hover,
#vgbody.pg-article dd a:not(.pg-button):not(.pg-button-item):hover,
#vgbody.pg-article blockquote a:not(.pg-button):not(.pg-button-item):hover,
#vghowworks a:hover, .pg-important-related-topics a:hover {
  color:var(--brand-secondary-dark) !important; text-decoration-color:currentColor !important;
}
#vgbody.pg-article p a:not(.pg-button):not(.pg-button-item):focus-visible,
#vghowworks a:focus-visible, .pg-important-related-topics a:focus-visible {
  border-radius:3px !important; outline:2px solid var(--brand-secondary) !important; outline-offset:3px !important;
}


/* ============================================================================
   28. ACCESSIBILITY, MOTION & PRINT
   ============================================================================ */
*:focus { outline:2px solid var(--brand-primary); outline-offset:2px; }
*:focus:not(:focus-visible) { outline:none; }
.pg-skip-link { position:absolute; top:-40px; left:0; background:var(--brand-primary); color:var(--on-primary); padding:var(--space-2) var(--space-4); text-decoration:none; border-radius:var(--radius-md); z-index:var(--z-tooltip); }
.pg-skip-link:focus { top:var(--space-2); left:var(--space-2); }

@media (prefers-contrast:high) {
  :root { --border-light:var(--border-strong); --text-secondary:var(--text-primary); }
  #vghowworks li, .pg-important-related-topics, .pg-important-related-topics li { border-color:var(--text-primary); }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
  #vghowworks li:hover, .pg-important-related-topics li:hover { transform:none; }
}

@media print {
  .pg-header, .pg-side-nav, .pg-mobile-menu-toggle, .pg-pre-footer, .pg-is-footer,
  .vgprinthide, .banner-carousel .arrow { display:none !important; }
  .pg-content-wrapper, .pg-body, #vgbody { font-size:12pt; line-height:1.5; color:#000; background:#fff; }
  .pg-main-content { max-width:100%; margin:0; padding:0; }
  .pg-page-card { border:1px solid #ccc; break-inside:avoid; }
  a { color:#000; text-decoration:underline; }
  a[href^="http"]:after { content:" (" attr(href) ")"; }
}


/* ============================================================================
   29. RESPONSIVE FINE-TUNING
   (Type scales fluidly via clamp(), so only structural tweaks remain.)
   ============================================================================ */
@media (max-width:1024px) {
  .pg-columns { grid-template-columns:1fr; }
  .pg-has-intro .pg-columns { display:block; }
  .pg-has-intro .pg-is-3 { margin-bottom:var(--space-6); order:1; }
  .pg-has-intro .pg-is-9 { order:2; }
}
@media (max-width:768px) {
  .pg-container { padding:0 var(--space-4); }
  .pg-section { padding:var(--space-12) 0; }
  .pg-page-card { padding:var(--space-4); }
  .pg-has-pag .pg-columns { grid-template-columns:1fr; text-align:center; gap:var(--space-4); }
  .pg-society-inner { grid-template-columns:1fr; text-align:center; }
}
@media (max-width:480px) {
  .pg-page-card-outer { grid-template-columns:1fr; }
  #vgnext ul { grid-template-columns:1fr; }
  .pg-has-ways-of-giving .pg-columns { grid-template-columns:1fr; }
}


/* ============================================================================
   30. FIXED-HEADER OFFSET  (inner pages)
   The surrounding site header is position:fixed (~90px tall). The site
   runtime that normally pads the body below it was dropped on the VPS, so inner
   pages slid up under the header and clipped the page title. Push the inner-page
   main section clear of the header.
     * Inner pages start with  .pg-section.pg-has-main-content  -> offset them.
     * Homepage starts with  .pg-has-main-content  (no .pg-section) -> left as-is.
   --pg-header-offset is set to the exact header height by the menu script
   (pg-menu.js / template); the px values below are safe fallbacks if that
   script isn't loaded.
   ============================================================================ */
html { scroll-padding-top: calc(var(--pg-header-offset, 96px) + var(--space-2)); }

.pg-content-wrapper > .pg-section.pg-has-main-content {
  padding-top: calc(var(--pg-header-offset, 96px) + var(--space-6));
}
@media (max-width:1024px) {
  .pg-content-wrapper > .pg-section.pg-has-main-content {
    padding-top: calc(var(--pg-header-offset, 84px) + var(--space-5));
  }
}

/* ============================================================================
   31. GIFT DIAGRAM / ICON CLEANUP
   ============================================================================ */
.vggiftdiag_logo { width:200px !important; }

html body .icon-info2-custom:before,
html body .icon-apply-custom:before,
html body .icon-location-custom:before {
  display:none !important;
}

/* ============================================================================
   32. HOMEPAGE BANNER OVERRIDES
   Matches the live markup:
   .pg-banner > .pg-banner__viewport > .pg-banner__track > .pg-banner__slide
   Forces the image to cover the full banner and places caption text over it.
   ============================================================================ */
.pg-banner {
  position:relative !important;
  width:100% !important;
  height:clamp(320px, 42vw, 520px) !important;
  min-height:clamp(320px, 42vw, 520px) !important;
  border-radius:var(--radius-3xl) !important;
  overflow:hidden !important;
  background:var(--bg-tertiary) !important;
  box-shadow:var(--shadow-lg) !important;
  isolation:isolate !important;
}

.pg-banner__viewport,
.pg-banner__track,
.pg-banner__slide,
.pg-banner__link {
  height:100% !important;
  min-height:100% !important;
}

.pg-banner__viewport {
  position:relative !important;
  width:100% !important;
  overflow:hidden !important;
  border-radius:inherit !important;
}

.pg-banner__track {
  display:flex !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}

.pg-banner__slide {
  position:relative !important;
  flex:0 0 100% !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:var(--bg-tertiary) !important;
}

.pg-banner__slide[hidden] {
  display:none !important;
}

.pg-banner__link {
  position:relative !important;
  display:block !important;
  width:100% !important;
  overflow:hidden !important;
  color:var(--text-inverse) !important;
  text-decoration:none !important;
}

.pg-banner__link::after {
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.56) 0%, rgba(0,0,0,0.30) 44%, rgba(0,0,0,0.06) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0.16) 48%, rgba(0,0,0,0.70) 100%) !important;
}

.pg-banner__img {
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover !important;
  object-position:center center !important;
}

.pg-banner__caption {
  position:absolute !important;
  z-index:2 !important;
  display:block !important;
  max-width:min(640px, 72%) !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  color:var(--text-inverse) !important;
  text-shadow:0 3px 22px rgba(0,0,0,0.55) !important;
}

.pg-banner__caption-text {
  display:block !important;
  color:var(--text-inverse) !important;
  font-family:var(--font-body) !important;
  font-size:clamp(2rem, 4vw, 3.5rem) !important;
  font-weight:700 !important;
  line-height:1.18 !important;
}

.pg-banner__caption.pg-pos-bottom,
.pg-banner__caption:not(.pg-pos-top) {
  bottom:clamp(30px, 5vw, 68px) !important;
}

.pg-banner__caption.pg-pos-top {
  top:clamp(30px, 5vw, 68px) !important;
}

.pg-banner__caption.pg-pos-left {
  left:clamp(32px, 5vw, 72px) !important;
  right:auto !important;
  text-align:left !important;
}

.pg-banner__caption.pg-pos-right {
  left:clamp(32px, 5vw, 72px) !important;
  right:clamp(32px, 5vw, 72px) !important;
  text-align:left !important;
}

.pg-banner__caption.pg-pos-center {
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  text-align:center !important;
}

.pg-banner__arrow {
  position:absolute !important;
  top:50% !important;
  z-index:3 !important;
  width:54px !important;
  height:54px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:2px solid color-mix(in srgb, var(--brand-primary) 82%, var(--text-inverse)) !important;
  border-radius:var(--radius-full) !important;
  background:var(--brand-primary) !important;
  color:var(--on-primary) !important;
  box-shadow:var(--shadow-md) !important;
  cursor:pointer !important;
  transform:translateY(-50%) !important;
}

.pg-banner__arrow:hover,
.pg-banner__arrow:focus-visible {
  background:var(--brand-primary-dark) !important;
  border-color:var(--brand-primary-dark) !important;
  color:var(--on-primary) !important;
}

.pg-banner__arrow svg {
  width:28px !important;
  height:28px !important;
}

.pg-banner__arrow--prev { left:var(--space-5) !important; }
.pg-banner__arrow--next { right:var(--space-5) !important; }

.pg-banner__controls {
  position:absolute !important;
  right:clamp(24px, 4vw, 48px) !important;
  bottom:clamp(24px, 3.5vw, 42px) !important;
  z-index:4 !important;
  display:flex !important;
  align-items:center !important;
  gap:var(--space-2) !important;
  padding:var(--space-2) !important;
  border-radius:var(--radius-full) !important;
  background:rgba(15,23,42,0.58) !important;
  backdrop-filter:blur(8px) !important;
}

.pg-banner__toggle,
.pg-banner__dot {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:var(--radius-md) !important;
  background:var(--brand-primary) !important;
  color:var(--on-primary) !important;
  cursor:pointer !important;
}

.pg-banner__toggle {
  width:34px !important;
  height:34px !important;
  border-radius:var(--radius-full) !important;
}

.pg-banner__toggle svg {
  width:18px !important;
  height:18px !important;
  fill:currentColor !important;
}

.pg-banner__dots {
  display:flex !important;
  align-items:center !important;
  gap:var(--space-2) !important;
}

.pg-banner__dot {
  width:28px !important;
  height:28px !important;
}

.pg-banner__dot::before {
  content:"" !important;
  width:10px !important;
  height:10px !important;
  border-radius:var(--radius-full) !important;
  background:color-mix(in srgb, var(--text-inverse) 65%, transparent) !important;
}

.pg-banner__dot[aria-current="true"]::before {
  background:var(--text-inverse) !important;
}

@media (max-width:768px) {
  .pg-banner {
    height:clamp(300px, 72vw, 430px) !important;
    min-height:clamp(300px, 72vw, 430px) !important;
    border-radius:var(--radius-2xl) !important;
  }

  .pg-banner__caption {
    left:var(--space-5) !important;
    right:var(--space-5) !important;
    bottom:var(--space-10) !important;
    max-width:none !important;
  }

  .pg-banner__caption-text {
    font-size:clamp(1.75rem, 8vw, 2.65rem) !important;
  }

  .pg-banner__arrow {
    width:46px !important;
    height:46px !important;
  }

  .pg-banner__arrow--prev { left:var(--space-3) !important; }
  .pg-banner__arrow--next { right:var(--space-3) !important; }

  .pg-banner__controls {
    right:var(--space-4) !important;
    bottom:var(--space-4) !important;
  }
}



/* ============================================================================
   33. FINAL BRAND OVERRIDES
   ============================================================================ */
:root {
  --bg-secondary: #f5f8f9;
  --bg-tertiary:  #eaf4f7;
  --bg-muted:     #d8edf4;
  --bg-dark:      #004f6d;
  --text-primary: #000000;
  --text-secondary: #54595f;
  --text-tertiary: #6c7378;
  --border-light: #d7e4e8;
  --border-default: #bed2d9;
  --border-strong: #8aa8b1;
  --link-color: var(--brand-primary);
  --link-hover: var(--brand-secondary);
  --accent-fill: var(--brand-secondary);
  --accent-fill-hover: var(--brand-secondary-dark);
  --accent-tint: var(--brand-primary-light);
}

.pg-content-wrapper,
.pg-body,
#vgbody {
  color: var(--text-primary) !important;
  font-family: var(--font-body) !important;
  line-height: 1.6 !important;
}

.pg-content-wrapper h1,
.pg-page-title {
  color: var(--brand-primary) !important;
  font-family: var(--font-heading) !important;
  font-size: clamp(2rem, 5vw, 3.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.pg-content-wrapper h2,
.pg-section-title {
  font-size: clamp(1.5rem, 2.5vw, 2.5rem) !important;
}

.pg-content-wrapper h3 {
  font-size: clamp(1.25rem, 3vw, 1.5rem) !important;
}

.pg-content-wrapper h2,
.pg-content-wrapper h3,
.pg-content-wrapper h4,
.pg-content-wrapper h5,
.pg-content-wrapper h6,
.pg-section-title,
#vghowworks h2,
#vgbenefits h2,
#vgnext h2,
.pg-important-related-topics h2,
.pg-page-card-title,
.pg-gift-plans .pg-page-card-title,
.pg-page-card-outer.pg-page-card-cols .pg-page-card-title {
  color: var(--brand-primary) !important;
  font-family: var(--font-heading) !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
}

.pg-content-wrapper h1 strong,
.pg-content-wrapper h2 strong,
.pg-content-wrapper h3 strong {
  display: block;
  font-weight: 700;
}

.pg-content-wrapper h1::after,
.pg-page-title::after,
#vghowworks h2::after,
#vgbenefits h2::after,
#vgnext h2::after,
.pg-important-related-topics h2::after {
  content: none !important;
  display: none !important;
}

.pg-content-wrapper p,
.pg-content-wrapper li,
#vgbody p,
#vgbody li {
  color: var(--text-secondary);
  font-family: var(--font-body) !important;
  line-height: 1.5;
}

.pg-content-wrapper a:not(.pg-button):not(.pg-button-item),
#vgbody a:not(.pg-button):not(.pg-button-item) {
  color: var(--link-color);
  font-weight: 700;
}

.pg-content-wrapper a:not(.pg-button):not(.pg-button-item):hover,
#vgbody a:not(.pg-button):not(.pg-button-item):hover {
  color: var(--link-hover);
}

.pg-button,
.pg-button-item,
.pg-content-wrapper .button,
.pg-content-wrapper .btn,
#vgbody input[type="submit"],
body #vg_planagift_v2 .vgsumbitbutton input[type="submit"] {
  background: var(--accent-fill) !important;
  border: 1px solid var(--accent-fill) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-sm) !important;
  color: var(--on-secondary) !important;
  font-family: var(--font-button) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

.pg-button:hover,
.pg-button-item:hover,
.pg-content-wrapper .button:hover,
.pg-content-wrapper .btn:hover,
#vgbody input[type="submit"]:hover,
body #vg_planagift_v2 .vgsumbitbutton input[type="submit"]:hover {
  background: var(--accent-fill-hover) !important;
  border-color: var(--accent-fill-hover) !important;
  color: var(--on-secondary) !important;
}

.pg-side-nav {
  --nav-accent: var(--brand-primary);
  --nav-accent-2: var(--brand-secondary);
  --nav-text: var(--text-primary);
  --nav-muted: var(--text-secondary);
  --nav-border: var(--border-default);
  --nav-hover: color-mix(in srgb, var(--brand-primary) 18%, transparent);
}

.pg-side-nav > li > ul > li.pg-current > a,
.pg-side-nav ul ul .pg-current > a {
  background: var(--brand-primary) !important;
  color: var(--on-primary) !important;
}

.pg-pre-footer,
.pg-is-footer {
  background: var(--brand-primary-dark) !important;
  color: var(--on-primary) !important;
}

 

.pg-page-card,
.pg-important-related-topics,
#vghowworks li,
#vgbenefits li,
#vgnext li {
  border-color: var(--border-light) !important;
}
























body.overlay-open,
body:has(#blankets[style*="display: block"]) {
  overflow:hidden !important;
}

body #vgbody #blankets,
body #blankets {
  position:fixed !important;
  box-sizing:border-box !important;
  inset:0 !important;
  width:100vw !important;
  height:100dvh !important;
  min-height:100vh !important;
  margin:0 !important;
  padding:0 !important;
  background:rgba(8,13,22,0.68) !important;
  backdrop-filter:blur(8px) saturate(120%) !important;
  -webkit-backdrop-filter:blur(8px) saturate(120%) !important;
  z-index:9000 !important;
}

body #vgbody #blankets[style*="display: block"],
body #vgbody #blankets[style*="display:block"],
body #blankets[style*="display: block"],
body #blankets[style*="display:block"] {
  display:block !important;
}

body #vgbody #popped,
body #blankets #popped,
body #popped {
  position:fixed !important;
  box-sizing:border-box !important;
  top:50% !important;
  right:auto !important;
  bottom:auto !important;
  left:50% !important;
  width:min(920px, calc(100vw - 40px)) !important;
  max-width:920px !important;
  height:auto !important;
  max-height:calc(100dvh - 40px) !important;
  margin:0 !important;
  margin-left:0 !important;
  padding:clamp(10px, 1.8vw, 18px) !important;
  overflow:visible !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,0.12) !important;
  border-radius:8px !important;
  box-shadow:0 26px 80px rgba(0,0,0,0.34) !important;
  opacity:1 !important;
  transform:translate(-50%, -50%) !important;
  z-index:9001 !important;
}

body #vgbody #popped[style*="display: block"],
body #vgbody #popped[style*="display:block"],
body #popped[style*="display: block"],
body #popped[style*="display:block"] {
  display:block !important;
}

body #vgbody #popped #popped_close,
body #popped #popped_close {
  position:static !important;
  display:block !important;
  width:0 !important;
  height:0 !important;
  padding:0 !important;
  margin:0 !important;
  background:none !important;
}

body #vgbody #close_popped,
body #popped #close_popped,
body #close_popped {
  display:block !important;
  position:absolute !important;
  top:-16px !important;
  right:-16px !important;
  left:auto !important;
  width:42px !important;
  height:42px !important;
  max-width:none !important;
  max-height:none !important;
  padding:8px !important;
  background:#fff !important;
  border:1px solid rgba(15,23,42,0.22) !important;
  border-radius:999px !important;
  box-shadow:0 12px 28px rgba(15,23,42,0.28) !important;
  cursor:pointer !important;
  object-fit:contain !important;
  opacity:1 !important;
  visibility:visible !important;
  z-index:9002 !important;
}

body #vgbody #popped iframe,
body #vgbody #popped video,
body #popped iframe,
body #popped video {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  aspect-ratio:16 / 9 !important;
  height:auto !important;
  max-height:calc(100dvh - 84px) !important;
  min-height:0 !important;
  margin:0 !important;
  background:#000 !important;
  border:0 !important;
  border-radius:6px !important;
}

@media (max-width:760px) {
  body #vgbody #popped,
  body #blankets #popped,
  body #popped {
    width:min(640px, calc(100vw - 24px)) !important;
    max-height:calc(100dvh - 24px) !important;
    padding:8px !important;
  }

  body #vgbody #close_popped,
  body #popped #close_popped,
  body #close_popped {
    top:-12px !important;
    right:-8px !important;
    width:38px !important;
    height:38px !important;
    padding:7px !important;
  }
}













.banner-carousel .slide::after,
.pg-banner__link::after {
  content: none !important;
  display: none !important;
  background: none !important;
}


/* ============================================================================
   HOMEPAGE CSS MOVED FROM ELIM PARK HOMEPAGE TEMPLATE
   ============================================================================ */


/* --- Moved homepage style block 1 --- */
/* Banner text overlap fix: paste this after the banner section or after existing banner CSS. */
.pg-banner{
  --pg-banner-edge:clamp(24px, 4vw, 48px);
  --pg-banner-control-size:34px;
  --pg-banner-control-gap:8px;
  --pg-banner-control-padding:8px;
  --pg-banner-caption-bottom:clamp(92px, 8vw, 124px);
  --pg-banner-caption-side:clamp(92px, 8vw, 124px);
}
.pg-banner__caption{
  max-width:min(620px, calc(100% - (var(--pg-banner-caption-side) * 2))) !important;
  text-shadow:0 3px 22px rgba(0,0,0,.55) !important;
}
.pg-banner__caption.pg-pos-bottom,
.pg-banner__caption:not(.pg-pos-top){
  bottom:var(--pg-banner-caption-bottom) !important;
}
.pg-banner__caption.pg-pos-top{
  top:var(--pg-banner-edge) !important;
}
.pg-banner__caption.pg-pos-left{
  left:var(--pg-banner-caption-side) !important;
  right:auto !important;
  text-align:left !important;
}
.pg-banner__caption.pg-pos-right{
  left:var(--pg-banner-caption-side) !important;
  right:var(--pg-banner-caption-side) !important;
  text-align:left !important;
}
.pg-banner__caption-text{
  font-size:clamp(1.75rem, 3.45vw, 3.05rem) !important;
  line-height:1.14 !important;
  overflow-wrap:break-word !important;
}
.pg-banner__controls{
  right:var(--pg-banner-edge) !important;
  bottom:var(--pg-banner-edge) !important;
  max-width:calc(100% - (var(--pg-banner-edge) * 2)) !important;
  gap:var(--pg-banner-control-gap) !important;
  padding:var(--pg-banner-control-padding) !important;
}
.pg-banner__toggle{
  flex:0 0 var(--pg-banner-control-size) !important;
  width:var(--pg-banner-control-size) !important;
  height:var(--pg-banner-control-size) !important;
}
.pg-banner__dots{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
  min-width:0 !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  scrollbar-width:none !important;
}
.pg-banner__dots::-webkit-scrollbar{
  display:none !important;
}
.pg-banner__dot{
  flex:0 0 22px !important;
  width:22px !important;
  height:28px !important;
}
.pg-banner__dot::before{
  width:8px !important;
  height:8px !important;
}
@media (max-width:768px){
  .pg-banner{
    --pg-banner-edge:16px;
    --pg-banner-control-size:32px;
    --pg-banner-control-gap:4px;
    --pg-banner-control-padding:4px;
    --pg-banner-caption-bottom:82px;
    --pg-banner-caption-side:16px;
  }
  .pg-banner__caption{
    left:16px !important;
    right:16px !important;
    max-width:none !important;
  }
  .pg-banner__caption-text{
    font-size:clamp(1.45rem, 6.4vw, 2.25rem) !important;
    line-height:1.12 !important;
  }
  .pg-banner__controls{
    left:16px !important;
    right:16px !important;
    bottom:16px !important;
    justify-content:center !important;
  }
  .pg-banner__dots{
    max-width:calc(100% - 48px) !important;
    gap:4px !important;
  }
  .pg-banner__dot{
    flex-basis:18px !important;
    width:18px !important;
    height:26px !important;
  }
  .pg-banner__dot::before{
    width:7px !important;
    height:7px !important;
  }
}
@media (max-width:560px){
  .pg-banner__arrow{ display:none !important; }
  .pg-banner{ --pg-banner-caption-side:16px; }
}


/* --- Moved homepage style block 2 --- */
.legacy-planner{
    display:flex;
    align-items:center;
    gap:40px;
    margin:50px 0;
    padding:35px;
    border-radius:16px;
    background:#f8f8f8;
    border:1px solid rgba(0,0,0,.08);
}

.legacy-planner-image{
    flex:0 0 260px;
    text-align:center;
    position:relative;
}

/* Brand colored background behind logo */
.legacy-planner-image:before{
    content:'';
    position:absolute;
    inset:20px;
    background:var(--pg-primary-color);
    opacity:.08;
    border-radius:16px;
}

.legacy-planner-image img{
    position:relative;
    z-index:2;
    max-width:220px;
    width:100%;
    height:auto;
    display:block;
    margin:auto;
}

.legacy-planner-content{
    flex:1;
}

.legacy-planner-content h2{
    color:var(--pg-primary-color);
    margin:0 0 15px;
   
    line-height:1.1;
}

.legacy-planner-content p{
 
    margin-bottom:25px;
}

.legacy-planner-btn{
    display:inline-block;
    background:var(--pg-accent-color);
    color:#000 !important;
    padding:15px 28px;

    text-decoration:none;
    border-radius:6px;
}

@media(max-width:768px){

    .legacy-planner{
        flex-direction:column;
        text-align:center;
        gap:25px;
    }

    .legacy-planner-image{
        flex:none;
        width:100%;
    }

    .legacy-planner-content h2{
      
    }

    .legacy-planner-content p{
        
    }
}


/* --- Moved homepage style block 3 --- */
/* ============================================================
   Responsive, ADA-compliant banner carousel
   ============================================================ */
.pg-banner{
  --pg-banner-radius: 20px;
  --pg-banner-accent: var(--pg-primary-color, #005847);
  position: relative;
  width: 100%;
  border-radius: var(--pg-banner-radius);
  overflow: hidden;
  background: #eef2f4;
  box-shadow: 0 12px 30px rgba(0,0,0,.14);
  isolation: isolate;
}
.pg-banner__viewport{ overflow: hidden; width: 100%; }
.pg-banner__track{
  display: flex;
  flex-wrap: nowrap;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none;
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
/* Hard reset so framework <li>/<ul> spacing can't make slides wider than
   100% (that surplus accumulates and pushes the last slide off to the right). */
.pg-banner__slide{
  flex: 0 0 100%;
  width: 100% !important;
  min-width: 100%;
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none;
  box-sizing: border-box;
}
.pg-banner__slide::before,
.pg-banner__slide::after{ content: none !important; }
.pg-banner__slide[hidden]{ display: block; } /* keep in flow; visibility handled by transform */
.pg-banner__link{
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 7;
  min-height: 280px;
  max-height: 540px;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
}
.pg-banner__img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  transform: scale(1.0);
  transition: transform .8s ease;
}
.pg-banner__link:hover .pg-banner__img,
.pg-banner__link:focus-visible .pg-banner__img{ transform: scale(1.04); }

/* Caption: ONE consistent treatment on every slide -- a full-width bottom
   gradient scrim with left-aligned text and fixed padding. The per-slide
   vertical/horizontal values are intentionally ignored so the caption never
   jumps position between slides. */
.pg-banner__caption{
  position: absolute;
  left: 0; right: 0; bottom: 0; top: auto;
  z-index: 3;
  max-width: none;
  transform: none;
  text-align: left;
  padding: clamp(48px, 9vw, 96px) clamp(18px, 3vw, 40px) clamp(16px, 2.4vw, 26px);
  background: linear-gradient(to top, rgba(8,20,16,.86) 0%, rgba(8,20,16,.55) 42%, rgba(8,20,16,0) 100%);
}
.pg-banner__caption-text{
  display: block;
  max-width: 640px;
  color: #fff;
  font-size: clamp(19px, 2.2vw, 32px);
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: .1px;
  text-wrap: balance;
}
/* Position classes are no-ops -- kept so existing markup stays valid. */
.pg-banner__caption.pg-pos-top,
.pg-banner__caption.pg-pos-bottom,
.pg-banner__caption.pg-pos-left,
.pg-banner__caption.pg-pos-right,
.pg-banner__caption.pg-pos-center{ }

/* Arrows -- 44px ADA touch targets, glassy, visible focus ring */
.pg-banner__arrow{
  position: absolute;
  top: 50%;
  z-index: 6;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: #14201b;
  cursor: pointer;
  transform: translateY(-50%);
  box-shadow: 0 4px 14px rgba(0,0,0,.25);
  transition: background .2s ease, transform .15s ease;
}
.pg-banner__arrow:hover{ background:#fff; }
.pg-banner__arrow:active{ transform: translateY(-50%) scale(.94); }
.pg-banner__arrow svg{ width: 24px; height: 24px; }
.pg-banner__arrow--prev{ left: clamp(10px, 1.5vw, 18px); }
.pg-banner__arrow--next{ right: clamp(10px, 1.5vw, 18px); }

/* Bottom controls: pause toggle + dots */
.pg-banner__controls{
  position: absolute;
  right: clamp(12px, 2vw, 18px);
  bottom: clamp(12px, 2vw, 18px);
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(8,20,16,.42);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.pg-banner__dots{ display: flex; align-items: center; gap: 6px; }
.pg-banner__dot{
  display: inline-grid;
  place-items: center;
  width: 24px;            /* >=24px ADA target */
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.pg-banner__dot::before{
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255,255,255,.55);
  transition: background .2s ease, transform .2s ease;
}
.pg-banner__dot[aria-current="true"]::before{
  background: #fff;
  transform: scale(1.35);
}
.pg-banner__toggle{
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.pg-banner__toggle svg{ width: 18px; height: 18px; fill: currentColor; }
.pg-banner__toggle .pg-banner__icon-play{ display: none; }
.pg-banner__toggle[data-state="paused"] .pg-banner__icon-pause{ display: none; }
.pg-banner__toggle[data-state="paused"] .pg-banner__icon-play{ display: block; }

/* Visible keyboard focus for all controls */
.pg-banner__arrow:focus-visible,
.pg-banner__dot:focus-visible,
.pg-banner__toggle:focus-visible,
.pg-banner__link:focus-visible{
  outline: 3px solid #fff;
  outline-offset: 3px;
  border-radius: 12px;
}

/* Tablet */
@media (max-width: 900px){
  .pg-banner__link{ aspect-ratio: 16 / 9; min-height: 260px; }
  .pg-banner__caption{ max-width: 72%; }
  .pg-banner__caption-text{ font-size: clamp(18px, 3.4vw, 28px); }
}
/* Phone -- caption spans full width, single readable position */
@media (max-width: 640px){
  .pg-banner{ --pg-banner-radius: 14px; }
  .pg-banner__link{ aspect-ratio: 4 / 3; min-height: 300px; }
  .pg-banner__caption{ padding: 56px 16px 14px; }
  .pg-banner__caption-text{ font-size: 18px; }
  .pg-banner__arrow{ width: 40px; height: 40px; }
}

/* Respect reduced-motion: no sliding animation, no zoom */
@media (prefers-reduced-motion: reduce){
  .pg-banner__track{ transition: none; }
  .pg-banner__img{ transition: none; }
  .pg-banner__link:hover .pg-banner__img,
  .pg-banner__link:focus-visible .pg-banner__img{ transform: none; }
}


/* --- Moved homepage style block 4 --- */
/* Personal Planning cards -- 3 equal columns, uniform image boxes, equal
   heights, aligned CTAs. !important is needed to beat the framework's
   narrow .pg-page-cards-lg .pg-page-card width that was collapsing the cards. */
.pg-personal-planning .pg-page-card-outer{
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2.2vw, 28px);
  align-items: stretch;
  max-width: 1080px;
  margin-inline: auto;
  width: 100%;
}
.pg-personal-planning .pg-page-card-outer > article{
  display: block !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
.pg-personal-planning .pg-page-card{
  display: flex !important;
  flex-direction: column;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  height: 100%;
  margin: 0 !important;
  box-sizing: border-box;
  text-align: center;
}
/* Every image fills the same fixed-ratio box and is cropped to fit, so
   mismatched source sizes still line up perfectly. */
.pg-personal-planning .pg-card-media{ margin: 0 0 1rem; width: 100%; }
.pg-personal-planning .pg-card-media img{
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  height: auto;
  object-fit: cover;
  object-position: center;
  border-radius: 12px;
}
.pg-personal-planning .pg-page-card-title{ margin: 0 0 .5rem; }
.pg-personal-planning .pg-page-card > p{ margin: 0 0 1rem; }
/* Push the button to the bottom so all card CTAs align on one line. */
.pg-personal-planning .pg-page-card .pg-button{ margin-top: auto; max-width: 100%; }
/* Reflow: 3 -> 2 -> 1 columns */
@media (max-width: 860px){
  .pg-personal-planning .pg-page-card-outer{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px){
  .pg-personal-planning .pg-page-card-outer{ grid-template-columns: 1fr; }
}

/* ============================================================================
   ELIM PARK HOMEPAGE BANNER - FINAL CLIENT OVERRIDE
   Keeps the client fonts/colors, trims the banner height, and keeps the text
   in a compact caption chip so the photography stays visible.
   ============================================================================ */
.pg-banner {
  --ep-banner-radius: clamp(14px, 1.8vw, 22px);
  --ep-banner-edge: clamp(12px, 2.2vw, 24px);
  --ep-banner-control: clamp(38px, 4vw, 46px);
  --ep-banner-accent: var(--banner-control-bg, var(--brand-primary-light));
  --ep-banner-active: var(--banner-dot-bg, var(--brand-secondary));
  --ep-banner-ink: var(--banner-control-color, var(--brand-primary-dark));
  --ep-banner-caption-bg: color-mix(in srgb, var(--brand-primary-dark) 82%, #000 18%);
  --ep-banner-caption-border: color-mix(in srgb, var(--brand-primary-light) 72%, #fff 28%);
  position: relative !important;
  isolation: isolate !important;
  width: min(100%, 1120px) !important;
  margin: clamp(18px, 3vw, 34px) auto clamp(22px, 3vw, 38px) !important;
  border-radius: var(--ep-banner-radius) !important;
  overflow: hidden !important;
  background: var(--brand-primary-dark) !important;
  box-shadow: 0 18px 44px rgb(0 0 0 / 12%) !important;
}

.pg-banner,
.pg-banner__viewport,
.pg-banner__track,
.pg-banner__slide,
.pg-banner__link {
  min-height: clamp(260px, 32vw, 390px) !important;
  max-height: 390px !important;
}

.pg-banner__viewport {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

.pg-banner__track {
  display: flex !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  transition: transform 520ms ease !important;
}

.pg-banner__slide {
  position: relative !important;
  flex: 0 0 100% !important;
  width: 100% !important;
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: inherit !important;
}

.pg-banner__slide[hidden] {
  display: block !important;
}

.pg-banner__link {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: inherit !important;
}

.pg-banner__link::before,
.pg-banner__link::after {
  content: none !important;
  display: none !important;
}

.pg-banner__img {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  transform: none !important;
}

.pg-banner__caption {
  position: absolute !important;
  z-index: 2 !important;
  left: var(--ep-banner-edge) !important;
  right: auto !important;
  bottom: calc(var(--ep-banner-edge) + var(--ep-banner-control) + 12px) !important;
  top: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  max-width: min(560px, 58%) !important;
  min-height: 0 !important;
  padding: clamp(11px, 1.6vw, 18px) clamp(15px, 2.2vw, 24px) !important;
  border-left: 4px solid var(--brand-secondary) !important;
  border-radius: calc(var(--ep-banner-radius) - 4px) !important;
  background: linear-gradient(90deg, var(--ep-banner-caption-bg), rgb(0 0 0 / 38%)) !important;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 16%), 0 14px 28px rgb(0 0 0 / 16%) !important;
}

.pg-banner__caption.pg-pos-top,
.pg-banner__caption.pg-pos-bottom,
.pg-banner__caption.pg-pos-left,
.pg-banner__caption.pg-pos-right,
.pg-banner__caption.pg-pos-center {
  left: var(--ep-banner-edge) !important;
  right: auto !important;
  top: auto !important;
  bottom: calc(var(--ep-banner-edge) + var(--ep-banner-control) + 12px) !important;
  transform: none !important;
}

.pg-banner__caption-text {
  display: block !important;
  max-width: 100% !important;
  color: #fff !important;
  font-family: var(--font-heading) !important;
  font-size: clamp(1.15rem, 2.05vw, 1.8rem) !important;
  font-weight: 400 !important;
  line-height: 1.16 !important;
  letter-spacing: 0 !important;
  text-shadow: 0 2px 14px rgb(0 0 0 / 42%) !important;
}

.pg-banner__arrow,
.pg-banner__toggle,
.pg-banner__dot {
  all: unset;
  box-sizing: border-box !important;
  display: inline-grid !important;
  place-items: center !important;
  cursor: pointer !important;
  color: var(--ep-banner-ink) !important;
  background: var(--ep-banner-accent) !important;
  box-shadow: 0 10px 24px rgb(0 0 0 / 18%) !important;
}

.pg-banner__arrow {
  position: absolute !important;
  z-index: 4 !important;
  bottom: var(--ep-banner-edge) !important;
  top: auto !important;
  width: var(--ep-banner-control) !important;
  height: var(--ep-banner-control) !important;
  border-radius: 10px !important;
  transform: none !important;
}

.pg-banner__arrow--prev {
  left: var(--ep-banner-edge) !important;
  right: auto !important;
}

.pg-banner__arrow--next {
  left: calc(var(--ep-banner-edge) + var(--ep-banner-control) + 10px) !important;
  right: auto !important;
}

.pg-banner__arrow svg,
.pg-banner__toggle svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.pg-banner__controls {
  position: absolute !important;
  z-index: 4 !important;
  right: var(--ep-banner-edge) !important;
  bottom: var(--ep-banner-edge) !important;
  left: auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  max-width: var(--ep-banner-control) !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.pg-banner__toggle,
.pg-banner__dot {
  flex: 0 0 var(--ep-banner-control) !important;
  width: var(--ep-banner-control) !important;
  height: var(--ep-banner-control) !important;
  border-radius: 10px !important;
}

.pg-banner__toggle .pg-banner__icon-play {
  display: none !important;
}

.pg-banner__toggle[data-state="paused"] .pg-banner__icon-pause {
  display: none !important;
}

.pg-banner__toggle[data-state="paused"] .pg-banner__icon-play {
  display: block !important;
}

.pg-banner__dots {
  display: none !important;
  align-items: center !important;
  gap: 8px !important;
  min-width: 0 !important;
}

.pg-banner__dot {
  display: none !important;
}

.pg-banner__dot::before {
  content: "" !important;
  display: block !important;
  width: 11px !important;
  height: 11px !important;
  border-radius: 999px !important;
  background: currentColor !important;
  opacity: .75 !important;
}

.pg-banner__dot[aria-current="true"] {
  color: #fff !important;
  background: var(--ep-banner-active) !important;
}

.pg-banner__dot[aria-current="true"]::before {
  opacity: 1 !important;
}

.pg-banner__arrow:hover,
.pg-banner__toggle:hover,
.pg-banner__dot:hover {
  filter: brightness(1.04) !important;
}

.pg-banner__arrow:focus-visible,
.pg-banner__toggle:focus-visible,
.pg-banner__dot:focus-visible,
.pg-banner__link:focus-visible {
  outline: 3px solid var(--brand-secondary) !important;
  outline-offset: 3px !important;
}

@media (max-width: 820px) {
  .pg-banner {
    width: calc(100% - 28px) !important;
  }

  .pg-banner,
  .pg-banner__viewport,
  .pg-banner__track,
  .pg-banner__slide,
  .pg-banner__link {
    min-height: 320px !important;
    max-height: none !important;
  }

  .pg-banner__caption,
  .pg-banner__caption.pg-pos-top,
  .pg-banner__caption.pg-pos-bottom,
  .pg-banner__caption.pg-pos-left,
  .pg-banner__caption.pg-pos-right,
  .pg-banner__caption.pg-pos-center {
    min-height: 0 !important;
    padding: 16px 18px !important;
    max-width: min(620px, calc(100% - (var(--ep-banner-edge) * 2))) !important;
    bottom: calc(var(--ep-banner-edge) + var(--ep-banner-control) + 10px) !important;
  }

  .pg-banner__caption-text {
    font-size: clamp(1.1rem, 5vw, 1.55rem) !important;
  }

  .pg-banner__controls {
    gap: 6px !important;
    max-width: var(--ep-banner-control) !important;
  }
}

@media (max-width: 520px) {
  .pg-banner {
    --ep-banner-edge: 12px;
    --ep-banner-control: 38px;
    margin-top: 14px !important;
  }

  .pg-banner__caption,
  .pg-banner__caption.pg-pos-top,
  .pg-banner__caption.pg-pos-bottom,
  .pg-banner__caption.pg-pos-left,
  .pg-banner__caption.pg-pos-right,
  .pg-banner__caption.pg-pos-center {
    left: 12px !important;
    right: 12px !important;
    max-width: none !important;
    padding: 14px 15px !important;
    border-left-width: 4px !important;
  }

  .pg-banner__dots {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pg-banner__track {
    transition: none !important;
  }
}

/* ============================================================================
   HOMEPAGE TAX INCENTIVE ALERT
   Makes <div id="alert" class="pg-alert"> read as a clear, actionable notice.
   ============================================================================ */
#alert.pg-alert {
  position: relative !important;
  isolation: isolate !important;
  width: min(100%, 1120px) !important;
  margin: clamp(16px, 2.5vw, 30px) auto clamp(22px, 3vw, 38px) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid color-mix(in srgb, var(--brand-secondary) 22%, transparent) !important;
  border-left: 7px solid var(--brand-secondary) !important;
  border-radius: var(--radius-lg, 14px) !important;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--brand-secondary) 10%, #fff), #fff 58%),
    var(--bg-surface, #fff) !important;
  color: var(--text-primary) !important;
  box-shadow: 0 16px 36px rgb(15 23 42 / 10%) !important;
}

#alert.pg-alert::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 auto 0 0 !important;
  width: 7px !important;
  background: var(--brand-secondary) !important;
  pointer-events: none !important;
}

#alert.pg-alert::after {
  content: "" !important;
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  width: 12px !important;
  height: 12px !important;
  border-radius: 999px !important;
  background: var(--brand-secondary) !important;
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand-secondary) 42%, transparent) !important;
  animation: pgAlertPulse 1.9s ease-out infinite !important;
}

#alert.pg-alert a {
  display: flex !important;
  align-items: center !important;
  gap: clamp(12px, 2vw, 18px) !important;
  width: 100% !important;
  min-height: 74px !important;
  padding: clamp(18px, 2.6vw, 28px) clamp(46px, 5vw, 70px) clamp(18px, 2.6vw, 28px) clamp(22px, 4vw, 40px) !important;
  color: var(--brand-primary-dark) !important;
  font-family: var(--font-button) !important;
  font-size: clamp(1rem, 1.25vw, 1.16rem) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: .01em !important;
  text-decoration: none !important;
}

#alert.pg-alert a::before {
  content: "Alert" !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: var(--brand-secondary) !important;
  color: var(--on-secondary, #fff) !important;
  font-family: var(--font-button) !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

#alert.pg-alert a::after {
  content: "Learn more" !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
  color: var(--brand-secondary) !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 4px !important;
}

#alert.pg-alert a:hover,
#alert.pg-alert a:focus {
  color: var(--brand-primary) !important;
  text-decoration: none !important;
}

#alert.pg-alert:focus-within {
  outline: 3px solid color-mix(in srgb, var(--brand-secondary) 55%, transparent) !important;
  outline-offset: 3px !important;
}

@keyframes pgAlertPulse {
  0% {
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand-secondary) 42%, transparent);
  }
  70% {
    box-shadow: 0 0 0 12px transparent;
  }
  100% {
    box-shadow: 0 0 0 0 transparent;
  }
}

@media (max-width: 700px) {
  #alert.pg-alert {
    width: calc(100% - 28px) !important;
    margin-top: 14px !important;
  }

  #alert.pg-alert a {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    min-height: 0 !important;
    padding: 18px 44px 18px 20px !important;
  }

  #alert.pg-alert a::before,
  #alert.pg-alert a::after {
    justify-self: start !important;
    margin-left: 0 !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #alert.pg-alert::after {
    animation: none !important;
  }
}

/* ============================================================================
   ELIM PARK PHOTO RESET
   Keep homepage and interior-page photography at natural color/brightness.
   ============================================================================ */
.pg-content-wrapper img,
.pg-banner__img,
.banner-carousel img,
.banner-carousel picture img,
.banner-carousel .slide-image img,
.banner-carousel .banner-image img,
.banner-carousel .carousel-image img,
.banner-carousel .slide > img,
.banner-carousel .slide > div:has(img) img,
.banner-carousel .slide > figure:has(img) img,
.banner-carousel .slide > a:has(img) img,
.pg-has-ways-of-giving .pg-card-image img,
.pg-personal-planning .pg-card-media img,
.pg-society-img,
.pg-society-img:hover,
.pg-society-img:focus,
.society-image-container img,
.contact-avatar img,
.pg-contact-item .pg-img-wrap img,
.legacy-planner-image img {
  filter: none !important;
  -webkit-filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}

/* ============================================================================
   ELIM PARK HOMEPAGE LAYOUT ALIGNMENT
   One centered rail, contained feature panels, and tighter vertical rhythm.
   Keep this block last so it wins over the older homepage rules above.
   ============================================================================ */
:root {
  --ep-home-rail: var(--container-max, 1280px);
  --ep-home-gutter: var(--space-6, 1.5rem);
  --ep-home-section-y: clamp(1.5rem, 1.75vw, 1.75rem);
  --ep-home-panel-gap: 0.75rem;
}

/* The alert previously stopped at 1120px while the page rail was 1280px. */
#alert.pg-alert {
  width: calc(100% - (2 * var(--ep-home-gutter))) !important;
  max-width: var(--ep-home-rail) !important;
  margin: var(--ep-home-panel-gap) auto !important;
}

/* Rounded homepage features are panels on the rail, not full-bleed bands. */
.pg-content-wrapper .pg-has-society,
.pg-content-wrapper .pg-has-tip-of-the-week,
.pg-content-wrapper .pg-has-pag,
.pg-content-wrapper .legacy-planner,
#vgbody .pg-has-society,
#vgbody .pg-has-tip-of-the-week,
#vgbody .pg-has-pag,
#vgbody .legacy-planner {
  width: calc(100% - (2 * var(--ep-home-gutter))) !important;
  max-width: var(--ep-home-rail) !important;
  margin: var(--ep-home-panel-gap) auto !important;
  padding-block: var(--ep-home-section-y) !important;
}

/* A contained panel already supplies the outer gutter. */
.pg-has-society > .pg-container,
.pg-has-tip-of-the-week > .pg-container,
.pg-has-pag > .pg-container {
  padding-inline: var(--ep-home-gutter) !important;
}

/* Tighten the homepage's large 64px defaults without changing interior pages. */
.pg-has-extra-gifts,
.pg-has-society,
.pg-has-tip-of-the-week,
.pg-has-pag,
.pg-personal-planning,
.pg-has-contact {
  padding-block: var(--ep-home-section-y) !important;
}

.pg-has-intro {
  padding-top: var(--ep-home-panel-gap) !important;
  padding-bottom: 1.25rem !important;
}

.pg-has-extra-gifts .pg-section-title,
.pg-personal-planning .pg-section-title {
  margin-bottom: 1rem !important;
}

/* Heading, intro copy, and cards all terminate on the same content rail. */
.pg-has-extra-gifts .pg-page-card-outer,
.pg-personal-planning .pg-page-card-outer {
  width: 100% !important;
  max-width: none !important;
  margin: 1.25rem 0 0 !important;
}

.pg-personal-planning .pg-lede {
  max-width: none !important;
  margin-bottom: 0 !important;
}

/* One authoritative homepage rail. Full-width sections no longer add a
   second 24px inset through their child container. */
.pg-has-intro > .pg-container,
.pg-has-extra-gifts > .pg-container,
.pg-personal-planning > .pg-container,
.pg-has-contact > .pg-container {
  width: calc(100% - (2 * var(--ep-home-gutter))) !important;
  max-width: var(--ep-home-rail) !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* Remove the vendor's negative row margins and percentage column widths from
   the intro. The sidebar/banner grid then ends on the same rail as below. */
.pg-has-intro .pg-columns {
  width: 100% !important;
  margin-inline: 0 !important;
}

.pg-has-intro .pg-column,
.pg-has-intro .pg-is-3,
.pg-has-intro .pg-is-9 {
  width: auto !important;
  padding-inline: 0 !important;
}

/* Vendor output inserts a lone break after this section, creating a false
   blank row before Contact Us. */
.pg-personal-planning + br {
  display: none !important;
}

/* Card grids now inherit the rail directly—no negative-margin compensation. */
.pg-has-extra-gifts .pg-page-card-outer,
.pg-personal-planning .pg-page-card-outer {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

@media (max-width: 700px) {
  :root { --ep-home-gutter: 0.875rem; }

  .pg-content-wrapper .pg-has-society,
  .pg-content-wrapper .pg-has-tip-of-the-week,
  .pg-content-wrapper .pg-has-pag,
  .pg-content-wrapper .legacy-planner,
  #vgbody .pg-has-society,
  #vgbody .pg-has-tip-of-the-week,
  #vgbody .pg-has-pag,
  #vgbody .legacy-planner {
    border-radius: var(--radius-xl, 0.75rem) !important;
  }

}

.banner-carousel .slide::before,
.banner-carousel .slide::after,
.banner-carousel .slide > div:has(img)::before,
.banner-carousel .slide > div:has(img)::after,
.banner-carousel .slide > figure:has(img)::before,
.banner-carousel .slide > figure:has(img)::after,
.banner-carousel .slide > a:has(img)::before,
.banner-carousel .slide > a:has(img)::after,
.pg-banner__link::before,
.pg-banner__link::after,
.pg-banner__slide::before,
.pg-banner__slide::after,
.pg-has-ways-of-giving .pg-card-image::before,
.pg-has-ways-of-giving .pg-card-image::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: none !important;
  mix-blend-mode: normal !important;
}

/* ============================================================================
   ELIM PARK LEGISLATION CTAS
   This template places .pg-button directly inside article > a rather than
   inside .pg-page-card, so it needs a direct, client-branded button rule.
   ============================================================================ */
.pg-legislation .pg-page-card-outer > article {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}

.pg-legislation .pg-page-card-outer > article > a {
  display: inline-flex !important;
  width: auto !important;
  margin-top: auto !important;
  color: var(--on-secondary) !important;
  text-decoration: none !important;
}

.pg-legislation .pg-page-card-outer > article > a > .pg-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.625rem !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 46px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0.75rem 1.5rem !important;
  overflow: visible !important;
  background: var(--brand-secondary) !important;
  border: 1px solid var(--brand-secondary) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-sm) !important;
  color: var(--on-secondary) !important;
  font-family: var(--font-button) !important;
  font-size: var(--text-sm) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  text-decoration: none !important;
  transition: background-color 180ms ease, border-color 180ms ease,
              box-shadow 180ms ease, transform 180ms ease !important;
}

.pg-legislation .pg-page-card-outer > article > a:hover > .pg-button,
.pg-legislation .pg-page-card-outer > article > a:focus > .pg-button {
  background: var(--brand-secondary-dark) !important;
  border-color: var(--brand-secondary-dark) !important;
  color: var(--on-secondary) !important;
  box-shadow: var(--shadow-md) !important;
  transform: translateY(-1px) !important;
}

.pg-legislation .pg-page-card-outer > article > a:focus-visible {
  border-radius: var(--radius-md) !important;
  outline: 3px solid color-mix(in srgb, var(--brand-secondary) 42%, transparent) !important;
  outline-offset: 3px !important;
}

.pg-legislation .pg-page-card-outer > article > a > .pg-button span {
  margin: 0 !important;
  color: currentColor !important;
}

/* ============================================================================
   MOBILE NAV - FINAL CASCADE OVERRIDE
   Vendor JavaScript correctly toggles aria-expanded on #pg-menu-toggle.
   Keep this block last: vendor/base rules otherwise leave the sibling UL at
   max-height:0 even after the button is opened.
   ============================================================================ */
@media only screen and (max-width: 1024px) {
  ul.pg-side-nav,
  ul.pg-side-nav > li {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  ul.pg-side-nav > li > #pg-menu-toggle {
    display: flex !important;
    position: static !important;
    width: 100% !important;
    min-height: 48px !important;
  }

  ul.pg-side-nav > li > #pg-menu-toggle + ul {
    display: none !important;
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: var(--space-2) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #fff !important;
    border: 1px solid var(--border-default) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-lg) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }

  ul.pg-side-nav > li > #pg-menu-toggle[aria-expanded="true"] + ul {
    display: block !important;
    max-height: 70vh !important;
  }

  ul.pg-side-nav > li > #pg-menu-toggle[aria-expanded="true"]::before {
    content: "\2715" !important;
  }

  /* The gift-diagram animation ships with width="570" on its iframe. While
     it plays, that intrinsic width was expanding the article column and
     clipping all surrounding copy on phones. */
  .pg-has-main-content .pg-columns,
  .pg-has-main-content .pg-column,
  .pg-has-main-content .pg-main-content,
  #vgbody,
  #vggiftdiag {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  #vggiftdiag {
    box-sizing: border-box !important;
    width: 100% !important;
    overflow: hidden !important;
  }

  #vggiftdiag iframe.giftvideo,
  #vggiftdiag .giftvideo {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 570 / 350 !important;
    margin-inline: auto !important;
    border: 0 !important;
  }
}

/* ============================================================================
   GOALS & BENEFITS - MOBILE TABLE CARDS
   Vendor markup has no data-label attributes, so the older 50% label column
   rendered as empty space and compressed every paragraph into half a card.
   ============================================================================ */
@media only screen and (max-width: 760px) {
  #vggoals {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: auto !important;
  }

  #vggoals tbody,
  #vggoals tr,
  #vggoals td {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #vggoals tr {
    display: block !important;
    padding: 1rem !important;
  }

  #vggoals td {
    display: block !important;
    position: static !important;
    padding: 0.75rem 0 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  #vggoals td + td {
    border-top: 1px solid var(--border-light) !important;
  }

  #vggoals td::before {
    display: block !important;
    position: static !important;
    width: auto !important;
    margin: 0 0 0.375rem !important;
    color: var(--brand-primary-dark) !important;
    font-family: var(--font-button) !important;
    font-size: var(--text-xs) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
  }

  #vggoals td:nth-child(1)::before { content: "Your Goal" !important; }
  #vggoals td:nth-child(2)::before { content: "Gift Approach" !important; }
  #vggoals td:nth-child(3)::before { content: "Benefit" !important; }

  #vggoals td p {
    margin: 0 !important;
  }

  /* Keep the Gift Diagram close control fully inside the phone viewport.
     Vendor rules set both left and right to negative values. */
  body #vgbody #popped,
  body #popped {
    overflow: visible !important;
  }

  body #vgbody #popped #close_popped,
  body #popped #close_popped,
  body #close_popped {
    position: absolute !important;
    top: 0.5rem !important;
    right: 0.5rem !important;
    bottom: auto !important;
    left: auto !important;
    box-sizing: border-box !important;
    width: 44px !important;
    height: 44px !important;
    max-width: 44px !important;
    max-height: 44px !important;
    padding: 0.625rem !important;
    transform: none !important;
    background: #fff !important;
    border: 2px solid var(--brand-secondary) !important;
    border-radius: 999px !important;
    box-shadow: var(--shadow-lg) !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 9010 !important;
  }
}

/* ============================================================================
   HOMEPAGE TIP OF THE WEEK - LIST MARKERS
   Restore semantic bullets after vendor/global list resets.
   ============================================================================ */
.pg-has-tip-of-the-week .pg-container > ul,
.pg-has-tip-of-the-week .pg-container div > ul {
  display: block !important;
  margin: 1rem 0 1.25rem !important;
  padding: 0 0 0 1.5rem !important;
  list-style: disc outside !important;
}

.pg-has-tip-of-the-week .pg-container > ul > li,
.pg-has-tip-of-the-week .pg-container div > ul > li {
  display: list-item !important;
  margin: 0 0 0.75rem !important;
  padding: 0 0 0 0.25rem !important;
  list-style: disc outside !important;
  line-height: 1.65 !important;
}

.pg-has-tip-of-the-week .pg-container > ul > li:last-child,
.pg-has-tip-of-the-week .pg-container div > ul > li:last-child {
  margin-bottom: 0 !important;
}

.pg-has-tip-of-the-week .pg-container > ul > li::marker,
.pg-has-tip-of-the-week .pg-container div > ul > li::marker {
  color: var(--brand-primary) !important;
  font-size: 1.05em !important;
}

@media only screen and (max-width: 700px) {
  .pg-has-tip-of-the-week .pg-container > ul,
  .pg-has-tip-of-the-week .pg-container div > ul {
    margin-block: 0.875rem 1rem !important;
    padding-left: 1.25rem !important;
  }

  .pg-has-tip-of-the-week .pg-container > ul > li,
  .pg-has-tip-of-the-week .pg-container div > ul > li {
    margin-bottom: 0.625rem !important;
    padding-left: 0.125rem !important;
  }
}

/* Personal Planning: keep the CTA from crowding the description while still
   allowing all three buttons to align along the bottom of equal-height cards. */
.pg-personal-planning .pg-page-card > p:not(.pg-button) {
  margin-bottom: 1.125rem !important;
}

.pg-personal-planning .pg-page-card > .pg-button {
  margin-top: auto !important;
}

/* Gift Plans pre-footer callout: white copy on the dark teal background.
   Direct-child targeting deliberately excludes the cards below it. */
.pg-pre-footer .pg-personal-planning > .pg-container > .pg-section-title,
.pg-pre-footer .pg-personal-planning > .pg-container > .pg-section-title span,
.pg-pre-footer .pg-personal-planning > .pg-container > .pg-lede {
  color: var(--text-inverse, #fff) !important;
}

.pg-pre-footer .pg-personal-planning > .pg-container > .pg-lede > a,
.pg-pre-footer .pg-personal-planning > .pg-container > .pg-lede > a span {
  color: var(--text-inverse, #fff) !important;
  font-weight: 700 !important;
  text-decoration-color: currentColor !important;
  text-underline-offset: 0.2em !important;
}

.pg-pre-footer .pg-personal-planning > .pg-container > .pg-lede > a:hover,
.pg-pre-footer .pg-personal-planning > .pg-container > .pg-lede > a:focus-visible {
  color: #fff !important;
  text-decoration: underline !important;
}

.pg-pre-footer > .pg-has-extra-gifts {
  margin-bottom: 1.5rem !important;
  background: var(--brand-primary-dark) !important;
  color: var(--text-inverse, #fff) !important;
}

.pg-pre-footer > .pg-has-extra-gifts > .pg-container > .pg-section-title,
.pg-pre-footer > .pg-has-extra-gifts > .pg-container > .pg-section-title span {
  background: transparent !important;
  color: var(--text-inverse, #fff) !important;
}

.pg-pre-footer > .pg-has-extra-gifts > .pg-container > .pg-section-title span {
  padding-inline: clamp(0.5rem, 2vw, 1.25rem) !important;
}

/* ============================================================================
   FINAL LEGAL / MISSION FOOTER
   This paragraph is emitted directly under #main-content after .pg-pre-footer.
   ============================================================================ */
#main-content > p:last-child {
  box-sizing: border-box !important;
  width: calc(100% - (2 * var(--ep-home-gutter))) !important;
  max-width: var(--ep-home-rail) !important;
  margin: 1rem auto 1.5rem !important;
  padding: 1rem 1.5rem !important;
  background: var(--brand-primary-dark) !important;
  border: 1px solid color-mix(in srgb, #fff 18%, transparent) !important;
  border-radius: var(--radius-xl) !important;
  box-shadow: var(--shadow-sm) !important;
  color: var(--text-inverse, #fff) !important;
  font-size: clamp(0.75rem, 0.9vw, 0.875rem) !important;
  line-height: 1.55 !important;
  text-align: center !important;
}

@media only screen and (max-width: 700px) {
  #main-content > p:last-child {
    margin-block: 0.75rem 1rem !important;
    padding: 0.875rem 1rem !important;
    border-radius: var(--radius-lg) !important;
  }
}

/* ============================================================================
   HOMEPAGE INTRO / BANNER COLUMN ALIGNMENT
   Vendor flex percentages leave ~46px unused at the right of the 1280px rail.
   Use an explicit sidebar + fluid banner grid so the image ends on the same
   right edge as the alert and all sections below.
   ============================================================================ */
@media only screen and (min-width: 1025px) {
  .pg-has-intro > .pg-container > .pg-columns {
    display: grid !important;
    grid-template-columns: var(--sidebar-width, 280px) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: var(--space-8, 2rem) !important;
    width: 100% !important;
  }

  .pg-has-intro > .pg-container > .pg-columns > .pg-is-3,
  .pg-has-intro > .pg-container > .pg-columns > .pg-is-9 {
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .pg-has-intro .pg-static-banner,
  .pg-has-intro .pg-static-banner__img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }
}





/* Explore More Gift Options — top-align card content */
.pg-has-extra-gifts .pg-page-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

.pg-has-extra-gifts .pg-page-card > * {
  flex: 0 0 auto;
}

.pg-has-extra-gifts .pg-page-card h2,
.pg-has-extra-gifts .pg-page-card h3,
.pg-has-extra-gifts .pg-page-card p {
  width: 100%;
  margin-top: 0 !important;
  text-align: left !important;
}

.pg-has-extra-gifts .pg-page-card h2,
.pg-has-extra-gifts .pg-page-card h3 {
  margin-bottom: 0.75rem !important;
}
