@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');

:root { --site-forest: #173f2d; --site-forest-dark: #071d12; --site-gold: #d3ad43; --site-cream: #faf7f2; --site-hero-title: clamp(2.7rem, 3.9vw, 4.4rem); }

.layout-navbar { position: fixed; z-index: 1030; width: 100%; min-height: 92px; padding: 12px 0; background: #fff; border-bottom: 1px solid rgba(23,63,45,.12); box-shadow: 0 2px 12px rgba(18,38,27,.07); transition: background-color .25s ease, box-shadow .25s ease; }
.home-page .layout-navbar { position: fixed; z-index: 1100; display: flex !important; visibility: visible !important; opacity: 1 !important; border-color: transparent; background: linear-gradient(180deg, rgba(6,20,13,.54), rgba(6,20,13,0)); box-shadow: none; }
.home-page .layout-navbar.is-scrolled { position: fixed; background: #fff; border-bottom-color: rgba(23,63,45,.12); box-shadow: 0 2px 12px rgba(18,38,27,.07); }
.layout-navbar-inner { min-height: 66px; }.layout-logo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.layout-navbar .navbar-collapse { visibility: visible; }
.layout-brand-name { display: flex; flex-direction: column; color: var(--site-forest); font-family: 'Playfair Display', Georgia, serif; font-size: 1.38rem; font-weight: 700; line-height: 1; }.layout-brand-name small { margin-top: 5px; color: var(--site-gold); font-family: 'Outfit', sans-serif; font-size: .7rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.layout-menu { align-items: center; gap: 3px; }.layout-menu .nav-link { padding: 10px 11px !important; color: var(--site-forest) !important; font-family: 'Outfit', sans-serif; font-size: .94rem; font-weight: 600; }.layout-menu .nav-link:hover, .layout-menu .nav-link:focus, .layout-menu .nav-link.is-current { color: var(--site-gold) !important; }
.layout-login-dropdown { margin-left: 16px; }.layout-admission-button { padding: 12px 25px; border: 0; border-radius: 999px; background: var(--site-gold); color: #fff; font-family: 'Outfit', sans-serif; font-weight: 700; text-decoration: none; transition: transform .2s ease, background-color .2s ease; }.layout-admission-button:hover, .layout-admission-button:focus, .layout-admission-button.show { background: #bc9131; color: #fff; transform: translateY(-2px); }.layout-login-menu { min-width: 180px; margin-top: 10px !important; padding: 8px; border: 1px solid rgba(23,63,45,.12); border-radius: 14px; box-shadow: 0 12px 28px rgba(18,38,27,.14); }.layout-login-menu .dropdown-item { padding: 10px 14px; border-radius: 9px; color: var(--site-forest); font-family: 'Outfit', sans-serif; font-weight: 600; }.layout-login-menu .dropdown-item:hover, .layout-login-menu .dropdown-item:focus { background: var(--site-cream); color: var(--site-gold); }
.home-page .layout-navbar:not(.is-scrolled) .layout-brand-name, .home-page .layout-navbar:not(.is-scrolled) .layout-menu .nav-link { color: #fff !important; }.home-page .layout-navbar:not(.is-scrolled) .layout-brand-name small { color: var(--site-gold); }.home-page .layout-navbar:not(.is-scrolled) .layout-menu .nav-link:hover { color: var(--site-gold) !important; }.home-page .layout-navbar:not(.is-scrolled) .layout-admission-button { background: var(--site-gold); color: #fff; }
.navbar-toggler { border-color: var(--site-forest); }.navbar-toggler-icon { filter: invert(24%) sepia(22%) saturate(1181%) hue-rotate(103deg) brightness(90%) contrast(90%); }.home-page .layout-navbar:not(.is-scrolled) .navbar-toggler { border-color: rgba(255,255,255,.75); }.home-page .layout-navbar:not(.is-scrolled) .navbar-toggler-icon { filter: brightness(0) invert(1); }

.footer-cta { padding: clamp(52px,6vw,76px) 0; background: var(--site-forest); color: #fff; text-align: center; }.footer-cta h2 { font-size: clamp(2.4rem,3.3vw,3.5rem); line-height: 1.02; }.footer-cta h2 em { color: var(--site-gold); }.footer-cta p { margin: 18px 0 24px; color: rgba(255,255,255,.72); font-family: 'Outfit', sans-serif; font-size: 1.12rem; }.footer-cta a { display: inline-flex; min-height: 54px; align-items: center; padding: 0 30px; border-radius: 999px; background: var(--site-gold); color: #fff; font-family: 'Outfit', sans-serif; font-size: 1.03rem; font-weight: 700; text-decoration: none; }.footer-cta a:hover { background: #bc9131; color: #fff; }
.footer { padding: 28px 0; background: var(--site-forest-dark); color: rgba(255,255,255,.58); }.footer-content { display: flex; align-items: center; justify-content: space-between; gap: 20px; }.footer-brand { display: inline-flex; align-items: center; gap: 12px; color: rgba(255,255,255,.72); font-family: 'Outfit', sans-serif; font-weight: 600; text-decoration: none; }.footer-brand:hover { color: #fff; }.footer-brand img { border-radius: 50%; object-fit: cover; }.footer small { font-family: 'Outfit', sans-serif; }.footer-links { display: flex; gap: 22px; }.footer-links a { color: rgba(255,255,255,.58); font-family: 'Outfit', sans-serif; font-size: .95rem; text-decoration: none; }.footer-links a:hover { color: #fff; }
@media (max-width: 1199px) { .layout-menu { margin-top: 14px; align-items: flex-start; }.layout-login-dropdown { margin: 8px 0 4px; }.layout-admission-button { display: inline-flex; }.layout-login-menu { margin-top: 6px !important; }.home-page .layout-navbar { background: rgba(23,63,45,.97); }.home-page .layout-navbar.is-scrolled { background: #fff; }.home-page .layout-navbar:not(.is-scrolled) .navbar-toggler-icon { filter: brightness(0) invert(1); } } @media (max-width: 768px) { .layout-navbar { min-height: 80px; }.layout-logo { width: 52px; height: 52px; }.layout-brand-name { font-size: 1.15rem; }.footer-content { flex-direction: column; text-align: center; }.footer-links { gap: 16px; } }

/* Keep the footer call-to-action aligned with the global section title scale. */
.footer-cta h2 { font-size: clamp(2.2rem, 3vw, 3rem); }

/* Footer principal */
.footer { padding: 0; background: var(--site-forest-dark); color: rgba(255,255,255,.68); }
.footer-main { display: grid; grid-template-columns: 1.05fr .95fr 1.15fr; gap: clamp(48px, 7vw, 110px); padding-top: clamp(38px, 4vw, 54px); padding-bottom: clamp(34px, 4vw, 50px); }
.footer h2 { margin: 0 0 28px; color: rgba(255,255,255,.42); font-family: 'Outfit', sans-serif; font-size: .88rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.footer-brand { align-items: center; gap: 16px; color: #fff; }
.footer-brand:hover { color: #fff; }
.footer-brand img { flex: 0 0 auto; width: 70px; height: 70px; }
.footer-brand > span { display: flex; min-width: 0; flex-direction: column; }
.footer-brand strong { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.08rem, 1.4vw, 1.4rem); line-height: 1.15; }
.footer-brand small { margin-top: 7px; color: var(--site-gold); font-size: .82rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.footer-school h2 { margin-top: 38px; }
.footer-school address { max-width: 390px; margin: 0; color: rgba(255,255,255,.7); font-family: 'Outfit', sans-serif; font-size: 1rem; font-style: normal; font-weight: 500; line-height: 1.65; white-space: pre-line; }
.footer-contact-list { display: grid; gap: 18px; }
.footer-contact-list a { display: grid; grid-template-columns: 48px minmax(0,1fr); align-items: center; gap: 14px; color: rgba(255,255,255,.72); font-size: 1rem; font-weight: 600; text-decoration: none; }
.footer-contact-list a:hover { color: #fff; }
.footer-contact-list i { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.055); color: rgba(255,255,255,.62); }
.footer-contact-list span { min-width: 0; overflow-wrap: anywhere; }
.footer-social-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 34px; }
.footer-social-links a { padding: 8px 16px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: rgba(255,255,255,.48); font-size: .86rem; font-weight: 600; text-decoration: none; }
.footer-social-links a:hover { border-color: var(--site-gold); color: var(--site-gold); }
.footer-map iframe { display: block; width: 100%; height: 185px; border: 0; border-radius: 15px; background: rgba(255,255,255,.06); }
.footer-bottom { padding: 24px 0 27px; border-top: 1px solid rgba(255,255,255,.08); text-align: center; }
.footer-bottom small { color: rgba(255,255,255,.28); font-size: .88rem; font-weight: 500; }

@media (max-width: 991px) {
    .footer-main { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .footer-map { grid-column: 1 / -1; }
    .footer-map iframe { height: 220px; }
}

@media (max-width: 575px) {
    .footer-main { grid-template-columns: 1fr; gap: 38px; padding-top: 38px; padding-bottom: 36px; }
    .footer-map { grid-column: auto; }
    .footer-map iframe { height: 200px; }
    .footer-brand img { width: 60px; height: 60px; }
    .footer-school h2 { margin-top: 32px; }
    .footer-bottom { padding: 22px 18px; }
}
/* Managed by Symfony AssetMapper. */
