/* Generations site refinements.
   Only behaviour free Elementor has no native control for. Every color is an
   Elementor global (var(--e-global-color-*)), so Site Settings still rebrands it. */

/* Headlines break into balanced lines, as in the approved HTML */
.elementor-heading-title { text-wrap: balance; }

/* Paragraph spacing inside text blocks without a trailing gap */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Links: underline offset and a thicker underline on hover */
.elementor-widget-text-editor a, .elementor-widget-icon-list a { text-underline-offset: 3px; }
.elementor-widget-text-editor a { text-decoration: underline; text-decoration-thickness: 1px; transition: text-decoration-thickness .15s ease, color .15s ease; }
.elementor-widget-text-editor a:hover { text-decoration-thickness: 2px; }

/* Keyboard focus ring */
:focus-visible { outline: 3px solid var(--e-global-color-secondary); outline-offset: 3px; border-radius: 2px; }

/* Accordion: the plus turns 45 degrees into a close mark over 0.2s when an item opens */
.e-n-accordion-item-title-icon .e-opened svg, .e-n-accordion-item-title-icon .e-opened i { transform: rotate(45deg); animation: gen-acc-open .2s ease; }
@keyframes gen-acc-open { from { transform: rotate(0deg); } to { transform: rotate(45deg); } }

/* WPForms: keyboard focus ring, inline errors and confirmation in the brand style */
.wpforms-container .wpforms-field input:focus, .wpforms-container .wpforms-field textarea:focus { outline: 3px solid var(--e-global-color-secondary); outline-offset: 1px; box-shadow: none; }
.wpforms-container .wpforms-field textarea { min-height: 140px; }
div.wpforms-container-full .wpforms-form label.wpforms-error, div.wpforms-container-full .wpforms-form em.wpforms-error, .wpforms-container label.wpforms-error, .wpforms-container em.wpforms-error { color: var(--e-global-color-primary); font-weight: 600; font-style: normal; border-left: 3px solid var(--e-global-color-gember); padding-left: 10px; margin-top: 8px; }
.wpforms-container .wpforms-field input.wpforms-error, .wpforms-container .wpforms-field textarea.wpforms-error { border-color: var(--e-global-color-gember) !important; }
.wpforms-confirmation-container-full, div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) { background: var(--e-global-color-gpaper); border: 0; border-left: 4px solid var(--e-global-color-secondary); color: var(--e-global-color-primary); padding: 28px 32px; border-radius: 2px; }
.wpforms-container .wpforms-field-label .wpforms-required-label { color: var(--e-global-color-gember); }

/* Mobile-only menu item (Plan your visit sits in the header button on desktop) */
@media (min-width: 1025px) { .gen-mobile-only { display: none !important; } }
/* Xpro menu toggles: size and color the inline SVG icons (Xpro styles only font icons) */
.xpro-elementor-horizontal-menu-toggler svg, .xpro-elementor-horizontal-menu-close svg { width: 1em; height: 1em; fill: currentColor; display: block; flex-shrink: 0; }

/* WPForms reads its error color from a variable: point it at the Deep root global */
div.wpforms-container-full, .wpforms-container { --wpforms-label-error-color: var(--e-global-color-primary); --wpforms-button-size-height: auto; }

/* WPForms confirmation in the brand style (WPForms CSS loads later, so raise specificity) */
body div.wpforms-container-full .wpforms-confirmation-container-full, body div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) { background: var(--e-global-color-gpaper); border: 0; border-left: 4px solid var(--e-global-color-secondary); color: var(--e-global-color-primary); padding: 28px 32px; border-radius: 2px; }
body div.wpforms-container-full .wpforms-confirmation-container-full p { color: var(--e-global-color-primary); font-size: 18px; }
