/* Shared content, independently composed layouts. */
.site-design .design-footer.footer-layout{display:block;position:relative;width:100%;box-sizing:border-box;padding:0;flex-direction:initial;text-align:left;background:var(--design-background);color:var(--design-text);border-top:1px solid #80808030;--footer-muted:color-mix(in srgb,currentColor 72%,transparent);--footer-line:#80808030}
.footer-layout *{box-sizing:border-box}.footer-layout .footer-inner{width:100%;margin:0 auto;padding:52px clamp(20px,4vw,72px) 0}.footer-main{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,64px);align-items:start}.footer-main>*{min-width:0}.footer-layout a{color:inherit!important;text-decoration:none;overflow-wrap:anywhere}.footer-layout a:hover{text-decoration:underline;text-underline-offset:4px}.footer-layout a:focus-visible{outline:2px solid currentColor;outline-offset:5px;border-radius:3px}.footer-brand-link{display:flex;flex-direction:column;gap:16px;font-weight:750;font-size:clamp(16px,1.3vw,21px);line-height:1.45}.footer-brand-link img{display:block;width:min(100%,320px);height:auto;max-height:80px;object-fit:contain;object-position:left}.footer-about{font-size:14px;line-height:1.8;color:var(--footer-muted);margin:16px 0;white-space:pre-line;overflow-wrap:anywhere}.footer-layout h2{font-size:14px;line-height:1.5;font-weight:750;margin:0 0 20px;letter-spacing:.03em}.footer-links ul{list-style:none;margin:0;padding:0}.footer-links li{margin:0 0 11px;font-size:14px;line-height:1.65}.footer-links ul ul{padding:10px 0 0 14px;border-left:1px solid var(--footer-line);margin-top:8px}.footer-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.footer-social a{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--footer-line);border-radius:50%;font-size:16px}.footer-social a:hover{background:var(--design-surface);color:var(--design-text)!important;text-decoration:none}.footer-contact-line{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;font-size:14px;font-style:normal;line-height:1.8;overflow-wrap:anywhere}.footer-contact-line>i{flex:0 0 16px;opacity:.7}.footer-contact-line>span{min-width:0}.footer-contact address{white-space:pre-line}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--footer-line);margin-top:40px;padding:20px 0;font-size:12px;line-height:1.6;overflow-wrap:anywhere}.footer-bottom>span{min-width:0}.footer-home-link{flex-shrink:0}.footer-main:not(:has(.footer-links)){grid-template-columns:2fr 1fr}.footer-main:has(.footer-links-0):not(:has(.footer-links-1)){grid-template-columns:2fr 1fr 1fr}
.site-design .design-footer.footer-corporate,.site-design .design-footer.footer-editorial{background:var(--design-surface)}
.site-design .design-footer.footer-midnight{background:#121c2b;color:#edf3fb;--footer-line:#ffffff25;--footer-muted:#bbc8d8}
.site-design .design-footer.footer-chamber{background:linear-gradient(110deg,#0b609e 0%,#10579a 43%,#1c1958 100%);color:#fff;--footer-muted:#c0d3eb;--footer-line:#ffffff20;border:0}
.footer-chamber .footer-inner{padding-top:0}.footer-invitation{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:48px 0;border-bottom:1px solid #ffffff20;margin-bottom:52px}.footer-invitation>div{min-width:0}.footer-invitation h2{font-size:clamp(20px,1.7vw,28px);font-weight:500;letter-spacing:-.025em;margin:0 0 10px}.footer-invitation p{max-width:560px;color:#c0d3eb;line-height:1.8;font-size:15px;margin:0}.footer-invitation-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.footer-invitation-actions>a,.footer-call{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 26px;border-radius:32px;font-size:14px;overflow-wrap:anywhere}.footer-layout .footer-invitation-actions>.footer-feedback{background:#fff;color:#19374f!important}.footer-call{background:#ffffff12;border:1px solid #ffffff24;max-width:100%}.footer-chamber .footer-main{grid-template-columns:1.2fr 1fr 1fr 1.1fr;gap:40px}.footer-chamber .footer-contact{padding:24px;border:1px solid #ffffff25;border-radius:10px}.footer-chamber .footer-brand-link{font-size:20px}.footer-chamber .footer-links li{color:#c0d3eb}.footer-chamber .footer-social a{border-color:#ffffff40}.footer-chamber .footer-bottom{margin-top:52px;color:#c0d3eb;padding-block:24px}.footer-chamber .footer-links h2{font-size:16px;font-weight:500}.footer-chamber .footer-about{color:#c0d3eb}.footer-chamber .footer-contact-line{font-size:13px}
@media(max-width:1000px){.footer-invitation{flex-direction:column;align-items:flex-start;gap:24px}}@media(max-width:600px){.footer-chamber .footer-inner{padding-top:0!important}.footer-invitation{padding:32px 0;margin-bottom:32px}.footer-invitation-actions{width:100%}.footer-invitation-actions>a,.footer-call{width:100%;padding:14px 18px}}
/* 01: compact horizontal identity and links. */
.footer-simple .footer-inner{padding-top:24px}.footer-simple .footer-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}.footer-simple .footer-brand{max-width:380px}.footer-simple .footer-brand-link{font-size:15px}.footer-simple .footer-brand-link img,.footer-simple .footer-about,.footer-simple .footer-contact{display:none}.footer-simple .footer-links h2{display:none}.footer-simple .footer-links>ul{display:flex;flex-wrap:wrap;gap:8px 20px}.footer-simple .footer-social{margin-top:12px}.footer-simple .footer-bottom{margin-top:20px}
/* 02: centered signature, navigation, contact. */
.footer-centered .footer-main,.footer-centered .footer-main:not(:has(.footer-links)){display:flex;flex-direction:column;align-items:center;text-align:center;gap:28px}.footer-centered .footer-brand{max-width:680px}.footer-centered .footer-brand-link,.footer-centered .footer-social{align-items:center;justify-content:center}.footer-centered .footer-brand-link img{object-position:center}.footer-centered .footer-links>ul{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px}.footer-centered .footer-contact{max-width:640px}.footer-centered .footer-contact-line{justify-content:center}.footer-centered .footer-bottom{justify-content:center;flex-wrap:wrap}
/* 03: spacious institutional directory with accent rule. */
.site-design .footer-corporate{background:var(--design-surface);border-top:5px solid var(--design-primary)}.footer-corporate .footer-links h2,.footer-corporate .footer-contact h2{padding-bottom:12px;border-bottom:1px solid var(--footer-line)}.footer-corporate .footer-bottom{background:var(--design-background);margin-inline:calc(-1 * clamp(20px,4vw,72px));padding-inline:clamp(20px,4vw,72px)}
/* 04: dark directory with high-contrast typography. */
.site-design .footer-midnight{background:#121c2b;color:#edf3fb;--footer-line:#ffffff25;--footer-muted:#bbc8d8;border:0}.footer-midnight .footer-inner{padding-top:64px}.footer-midnight .footer-brand-link img{background:#fff;padding:8px;border-radius:6px}.footer-midnight .footer-links h2{color:#fff}.footer-midnight .footer-bottom{color:#bbc8d8}
/* 05: brand column separated from a navigation grid. */
.footer-split .footer-main{grid-template-columns:2fr 1fr 1fr}.footer-split .footer-brand{grid-row:span 2;align-self:stretch;border-right:1px solid var(--footer-line);padding-right:clamp(20px,4vw,60px)}.footer-split .footer-contact{grid-column:2/-1;border-top:1px solid var(--footer-line);padding-top:24px}.footer-split .footer-contact-line{display:inline-flex;margin-right:24px}.footer-split .footer-main:not(:has(.footer-links)){grid-template-columns:1fr 1fr}.footer-split .footer-main:not(:has(.footer-links)) .footer-contact{grid-column:2;border-top:0}
/* 06: individual surface cards. */
.footer-cards .footer-main{gap:16px}.footer-cards .footer-main>section,.footer-cards .footer-main>nav{padding:26px;background:var(--design-surface);border:1px solid var(--footer-line);border-radius:var(--design-radius);height:100%}.footer-cards .footer-main{align-items:stretch}.footer-cards .footer-bottom{border:0}
/* 07: prominent full-width colour band and light directory. */
.footer-ribbon .footer-main{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-ribbon .footer-brand{grid-column:1/-1;background:var(--design-primary);color:#fff;padding:30px clamp(20px,4vw,72px);margin:-52px calc(-1 * clamp(20px,4vw,72px)) 0;display:grid;grid-template-columns:2fr 1fr;align-items:center;gap:20px}.footer-ribbon .footer-brand-link img{display:none}.footer-ribbon .footer-about{grid-column:1;--footer-muted:#ffffffdd;margin:0}.footer-ribbon .footer-social{grid-column:2;grid-row:1/3;justify-content:flex-end;--footer-line:#ffffff70}.footer-ribbon .footer-main:not(:has(.footer-links)){grid-template-columns:1fr}.footer-ribbon .footer-main:has(.footer-links-0):not(:has(.footer-links-1)){grid-template-columns:1fr 1fr}
/* 08: directory first, compact identity below. */
.footer-sitemap .footer-main{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-sitemap .footer-brand{grid-column:1/-1;order:4;border-top:1px solid var(--footer-line);padding-top:28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px}.footer-sitemap .footer-brand-link{max-width:420px}.footer-sitemap .footer-brand-link img{display:none}.footer-sitemap .footer-about{max-width:640px;margin:0}.footer-sitemap .footer-links li{border-bottom:1px solid var(--footer-line);padding-bottom:10px}.footer-sitemap .footer-bottom{margin-top:24px}
/* 09: large editorial identity, fine rules and serif heading. */
.site-design .footer-editorial{background:var(--design-surface);border-top:2px solid currentColor}.footer-editorial .footer-main{grid-template-columns:1fr 1fr 1fr}.footer-editorial .footer-brand{grid-column:1/-1;border-bottom:1px solid var(--footer-line);padding-bottom:32px}.footer-editorial .footer-brand-link{font-family:Georgia,serif;font-size:clamp(24px,3.8vw,52px);font-weight:500;max-width:1100px;line-height:1.2}.footer-editorial .footer-brand-link img{display:none}.footer-editorial .footer-about{max-width:800px}.footer-editorial .footer-social{float:none}.footer-editorial .footer-bottom{text-transform:none}
/* 10: contact details lead; content wraps around a highlighted panel. */
.footer-contact .footer-main{grid-template-columns:2fr 1fr 1fr}.footer-contact .footer-main>.footer-contact{order:-1;grid-column:1/-1;padding:28px;background:var(--design-surface);border-left:5px solid var(--design-primary);display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 32px}.footer-contact .footer-main>.footer-contact h2{flex-basis:100%;margin-bottom:4px}.footer-contact .footer-main>.footer-contact .footer-contact-line{margin:0;flex:1 1 200px}.footer-contact .footer-brand-link img{max-height:64px}
@media(max-width:1000px){.footer-layout .footer-main,.footer-layout .footer-main:has(.footer-links-0):not(:has(.footer-links-1)),.footer-layout .footer-main:not(:has(.footer-links)){grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.footer-layout .footer-brand{grid-column:1/-1}.footer-split .footer-brand{grid-row:auto;border-right:0;padding-right:0;padding-bottom:24px;border-bottom:1px solid var(--footer-line)}.footer-split .footer-main>.footer-contact{grid-column:1/-1}.footer-ribbon .footer-brand{margin-top:-52px}.footer-simple .footer-main,.footer-centered .footer-main{display:flex}}
@media(max-width:600px){.footer-layout .footer-inner{padding:32px 20px 0}.footer-layout .footer-main,.footer-layout .footer-main:has(.footer-links-0):not(:has(.footer-links-1)),.footer-layout .footer-main:not(:has(.footer-links)){grid-template-columns:minmax(0,1fr);gap:28px}.footer-layout .footer-main>*{grid-column:auto}.footer-layout .footer-bottom{margin-top:28px;align-items:flex-start;flex-direction:column;gap:12px}.footer-centered .footer-bottom{align-items:center}.footer-layout .footer-links a{display:inline-block;padding-block:4px}.footer-ribbon .footer-brand{display:block;margin:-32px -20px 0;padding:28px 20px}.footer-ribbon .footer-social{justify-content:flex-start}.footer-ribbon .footer-about{margin-top:12px}.footer-corporate .footer-bottom{margin-inline:-20px;padding-inline:20px}.footer-cards .footer-main>section,.footer-cards .footer-main>nav{padding:22px}.footer-contact .footer-main>.footer-contact{padding:22px;display:block}.footer-contact .footer-main>.footer-contact .footer-contact-line{margin-top:16px}.footer-split .footer-main:not(:has(.footer-links)) .footer-contact{grid-column:auto}.footer-simple .footer-main,.footer-centered .footer-main{display:flex}.footer-layout .footer-brand-link img{max-width:100%}}
