/* Global border hierarchy: strong primary surfaces, quiet small controls. */
:root{--border-action:4px;--border-surface:2px;--border-brand:#a80000;--border-muted:#a80000}
body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button){box-sizing:border-box;border:var(--border-action) solid #760000;border-radius:20px;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}
body .site-header .header-actions .header-portal{border-color:#d29200}
body .site-header .header-actions .header-cta{border-color:#fff8f0}
body .hero-community-bar .hero-portals a,body .menu-portals .menu-portal-button{border:4px solid #f04b32}
body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button):not(:disabled):is(:hover,:focus-visible){border-color:currentColor;box-shadow:none;filter:drop-shadow(2px 3px 0 #f04b32) drop-shadow(-1px 1px 0 #a80000)}
body :is(.article-index,.article-index-mobile){border-width:var(--border-surface);border-style:solid;border-color:var(--border-muted)}
body .quick-link{border:2px solid #a80000}
body .quick-link:is(:hover,:focus-visible){border-color:#a80000;box-shadow:none;filter:drop-shadow(3px 4px 0 #efc5af)}
/* No decorative outlines for compact utilities, social icons or plain links. */
body :is(.menu-socials a,.footer-socials a,.language-switch a,.text-link,.link-button,.announcement-open,.hero-controls button,.photo-controls button,.menu-close,.libras-close){border:0;box-shadow:none}
body :is(.menu-socials a,.footer-socials a,.language-switch a,.text-link){transition:color .2s,background-color .2s,transform .2s}
@media(hover:hover) and (pointer:fine){
 body :is(.menu-socials a,.footer-socials a,.language-switch a):hover{transform:translateY(-2px) scale(1.04)}
 body .text-link:hover{text-decoration:underline;text-underline-offset:5px}
}
body :is(.menu-socials a,.footer-socials a,.language-switch a,.text-link,.link-button,.announcement-open,.hero-controls button,.photo-controls button,.menu-close):focus-visible{outline:3px solid #0052ff;outline-offset:4px}
.high-contrast :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button,.story-card,.article-related-grid>article,.testimonial-card,.article-index,.article-index-mobile,.quick-link){border-color:#fff}
@media(prefers-reduced-motion:reduce){body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button,.menu-socials a,.footer-socials a,.language-switch a,.text-link){transition:none;transform:none}}

/* A consistent four-pixel contour; graphic depth stays outside the border. */
body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button){border-width:4px!important;border-style:solid!important;border-radius:20px!important;box-shadow:none}
body .site-header .header-actions .header-portal{border-color:#f2a900}
body .site-header .header-actions .header-portal:is(:hover,:focus-visible){filter:drop-shadow(2px 3px 0 #ffdf00) drop-shadow(-1px 1px 0 #a80000)}
body :is(.story-card,.article-related-grid>article,.testimonial-card){box-shadow:none}

.high-contrast :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button):is(:hover,:focus-visible){filter:none}
@media(prefers-reduced-motion:reduce){body :is(.button,.header-cta,.header-portal,.hero-portals a,.menu-cta,.map-load,.cookie-actions button){transform:none}}

/* Editorial/photo cards are an explicit exception to the thick-border policy. */
body .story-card{border:0;background:transparent;box-shadow:none;filter:none;overflow:hidden}
body .story-card:is(:hover,:focus-within){filter:none;box-shadow:none;transform:none}
body .story-card>a{display:flex;flex-direction:column;height:100%;text-decoration:none}
body .story-card>a>img{border-radius:24px;transition:transform .45s ease;transform-origin:center}
body .story-card .card-content{padding:26px 8px 12px}
body .story-card .card-content h3{transition:color .2s}
body .story-card .text-link{margin-top:auto}
body .story-card>a:focus-visible{outline:3px solid #a80000;outline-offset:-3px;border-radius:24px}
@media(hover:hover) and (pointer:fine){
 body .story-card:hover{filter:none}
 body .story-card a:hover>img{transform:scale(1.015)}
 body .story-card a:hover h3{color:#a80000}
 body .story-card a:hover .text-link{text-decoration:underline;text-underline-offset:5px}
}
/* Never apply drop-shadow to a whole editorial card: it duplicates glyph outlines. */
body .article-related-grid>article:is(:hover,:focus-within){filter:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){body .story-card>a>img{transition:none;transform:none!important}}

/* Testimonials rely on clean surfaces and spacing, not outlines. */
body .testimonial-card,body .testimonial-card:is(:hover,:focus-within){border:0;box-shadow:none;filter:none}

body .enrollment-popup .button.enrollment-whatsapp{border-color:#f2a900}body .enrollment-popup .button.enrollment-whatsapp:is(:hover,:focus-visible){border-color:#302500;filter:drop-shadow(2px 3px 0 #ffdf00)}

/* Explicit card exception, valid for idle, hover and keyboard interaction. */
#main :is(.story-card,.testimonial-card,.article-related-grid>article),#main :is(.story-card,.testimonial-card,.article-related-grid>article):is(:hover,:focus-within){border:0!important;box-shadow:none!important;filter:none!important;transform:none}
#main .story-card>a>img,#main .story-card a:hover>img{transform:none!important;transition:opacity .25s ease}
#main .story-card a:hover>img{opacity:.94}

/* Yellow hover outlines on light sections; dark/photo surfaces keep their own contrast. */
body :is([data-action-surface="light"],.article-contact,.article-related,.cookie-banner) :is(.button,.map-load,.cookie-actions button):not(:disabled):is(:hover,:focus-visible){border-color:#ffdf00}
.admin-body :is(.primary,.secondary,.danger):not(:disabled):is(:hover,:focus-visible){border-color:#ffdf00}
.high-contrast [data-action-surface="light"] .button:is(:hover,:focus-visible){border-color:#fff}

/* One calm container groups the three gallery entries, like quick access. */
#main .album-card-group{padding:clamp(24px,3vw,48px);gap:clamp(24px,3vw,42px);border:0;border-radius:36px;background:#f1e6db;align-items:stretch}
#main .album-card-group .story-card{border-radius:0}
#main .album-card-group .card-content{display:flex;flex-direction:column;flex:1;padding:26px 4px 8px}
#main .album-card-group .card-content p{margin-bottom:28px}
#main .album-card-group .text-link{margin-top:auto;padding-top:12px}
@media(max-width:1100px) and (min-width:761px){#main .album-card-group{gap:24px;padding:28px}#main .album-card-group .card-content h3{font-size:28px}}
@media(max-width:760px){#main .album-card-group{grid-template-columns:minmax(0,1fr);padding:22px 18px;border-radius:28px;gap:42px}#main .album-card-group .card-content{padding:22px 4px 2px}#main .album-card-group .story-card img{height:300px}}
.high-contrast #main .album-card-group{background:#151515}

/* Gallery groups use three individual soft panels, never one shared background. */
#main .album-card-group{padding:0;background:transparent;border-radius:0;gap:28px}
#main .album-card-group .story-card{padding:24px;background:#f1e6db;border-radius:30px}
#main .album-card-group .story-card .card-content{padding:24px 4px 8px}
.high-contrast #main .album-card-group{background:transparent}
.high-contrast #main .album-card-group .story-card{background:#151515}
@media(max-width:1100px) and (min-width:761px){#main .album-card-group{padding:0;gap:22px}#main .album-card-group .story-card{padding:20px}}
@media(max-width:760px){#main .album-card-group{padding:0;gap:24px;border-radius:0}#main .album-card-group .story-card{padding:20px;border-radius:28px}}
