/* WordPress-specific adjustments for the Nulca design. */

/* Hero entrance (matches the original fade-up). */
@keyframes nulca-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.nulca-rise { animation: nulca-rise .55s ease-out both; }
@media (prefers-reduced-motion: reduce) { .nulca-rise { animation: none; } }

/* Keep the sticky header below the admin bar for logged-in users. */
.admin-bar header.sticky { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar header.sticky { top: 46px; } }
@media screen and (max-width: 600px) { .admin-bar header.sticky { top: 0; } }

[hidden] { display: none !important; }
.contents { display: contents; }

/* Neutralise WordPress core helpers that could leak into imported markup. */
body.nulca { margin: 0; }
body.nulca .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
details > summary::-webkit-details-marker { display: none; }

/* Elementor header: mobile panel and hamburger state. */
.nulca-mobile-nav { display: none !important; }
.nulca-mobile-nav.is-open { display: block !important; }
@media (min-width: 1280px) { .nulca-mobile-nav.is-open { display: none !important; } }
.nulca-menu-toggle.is-open .n-ic-menu { display: none; }
.nulca-menu-toggle:not(.is-open) .n-ic-x { display: none; }

/* Elementor Theme Builder header: let the sticky bar stick to the page, not its wrapper. */
.elementor-location-header, .elementor-location-header > .elementor-section-wrap { display: contents; }
.admin-bar .n-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .n-header { top: 46px; } }
@media screen and (max-width: 600px) { .admin-bar .n-header { top: 0; } }
/* 1280px navigation breakpoint (matches the original). */
@media (max-width: 1279px) { .n-hide-below-xl { display: none !important; } }
@media (min-width: 1280px) { .n-show-below-xl { display: none !important; } }

/* Elementor FAQ accordions: rotate the + when open; hide default markers. */
details[open] .n-faq-plus { transform: rotate(45deg); }
.n-faq summary { list-style: none; cursor: pointer; }
.n-faq summary::-webkit-details-marker { display: none; }

/* Hero photos always cover the hero (matches the original bg-cover bg-center). */
.elementor .n-hero{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
/* Per-priority hero photos on the single priority template. */
body.nulca-rec-demand-data-integrity .n-hero{background-image:url(/wp-content/uploads/2026/10/data-records-Z4xHcbxUh3aownSA7fSvEa.webp)!important}
body.nulca-rec-build-the-coalition .n-hero{background-image:url(/wp-content/uploads/2026/10/coalition-meeting-hkzSevgBhyLxHERrkUGdXv.webp)!important}
/* Single templates: the body slot adds no spacing of its own. */
.nulca-body-slot,.nulca-body-slot .elementor-widget-container{padding:0!important;margin:0!important}

/* Elementor's ".elementor img" reset (height, max-width, border) outranks the original utility classes; restore the ones the design uses. */
.elementor img.border{border-width:1px;border-style:solid}
.elementor img.border-brand-border{border-color:#bfcacd}
.elementor img.border-navy\/10{border-color:rgba(0,62,84,.1)}
.elementor img.h-16{height:4rem}
.elementor img.max-w-full{max-width:100%}
.elementor img.max-w-\[420px\]{max-width:420px}
.elementor img.max-w-\[240px\]{max-width:240px}
.elementor img.max-w-\[230px\]{max-width:230px}
.elementor img.max-w-\[210px\]{max-width:210px}
.elementor img.max-w-\[195px\]{max-width:195px}
.elementor img.max-w-\[124px\]{max-width:124px}

/* Grids stack below 768px like the original (md:), except grids marked n-grid-keep. */
@media (max-width: 767px) { .elementor .e-grid-base:not(.n-grid-keep) { grid-template-columns: repeat(1, 1fr); } }

/* Mobile menu: the whole row is the tap target, like the original. */
.elementor .n-mnav-link > a { display: block; margin: -0.75rem -1rem; padding: 0.75rem 1rem; }

/* Header navigation states (same as the original). */
.elementor .n-nav-link { color: rgba(248,246,240,.75); transition: color .15s, background-color .15s; }
.elementor .n-nav-link > a { color: inherit; font-size: inherit !important; line-height: inherit; }
.elementor .n-nav-link:not(.n-nav-link-active):hover { color: #fff; background-color: var(--navy-dark, #082f3e); }
.elementor .n-nav-link.n-nav-link-active { color: #fff !important; background-color: var(--nulca-teal-dark, #00747d) !important; border-top-color: var(--nulca-teal, #50c0d2) !important; }
.elementor .n-mnav-link.n-nav-link-active { border-top-color: transparent !important; border-left-color: var(--nulca-teal, #50c0d2) !important; }
.elementor .n-mnav-link { padding: 0.75rem 1rem !important; border-top-width: 0 !important; }
