/* Shared public navigation, independent of the page shell. */
.site-upgrade .sn-links { gap:22px; }
/* index.html's #mobile-menu slide-out panel is dark; the injected sn-links
   content defaults to dark-green text meant for light backgrounds, which is
   nearly invisible here, so force it white to match the panel's other links. */
#mobile-menu .sn-links > a,
#mobile-menu .sn-links summary,
#mobile-menu .sn-chevron { color: #fff; }
#mobile-menu .sn-links > a:hover,
#mobile-menu .sn-links summary:hover { color: #c8972b; }
.site-upgrade .sn-links .sn-group { position:relative; margin:0; }
.site-upgrade .sn-links summary,.site-upgrade .sn-links > [data-sn-root],.site-upgrade .sn-links > li > [data-sn-root] { color:#294b43; font:500 14px/1.5 Inter,system-ui,sans-serif; white-space:nowrap; text-decoration:none; }
.site-upgrade .sn-links summary { display:flex; align-items:center; gap:7px; cursor:pointer; padding:10px 0; list-style:none; }
.site-upgrade .sn-links summary::-webkit-details-marker { display:none; }
.sn-chevron { font-size:15px; transition:transform .15s; }
.sn-group[open] > summary .sn-chevron { transform:rotate(180deg); }
.site-upgrade .sn-links .sn-menu { position:absolute; top:calc(100% + 8px); left:-18px; width:340px; padding:10px; border:1px solid #dce4d9; background:#fffdf9; border-radius:12px; box-shadow:0 16px 36px #17344818; z-index:1200; }
.site-upgrade .sn-links .sn-menu a { display:block; padding:11px 13px; color:#294b43; font:400 14px/1.5 Inter,system-ui,sans-serif; border:0; border-radius:7px; white-space:normal; text-decoration:none; }
.site-upgrade .sn-links .sn-menu a::after { display:none; }
.site-upgrade .sn-links .sn-menu a:hover,.site-upgrade .sn-links .sn-menu a[aria-current="page"] { background:#edf2e7; color:#244f46; }
.site-upgrade .sn-links .sn-menu a.sn-card { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 13px; }
.site-upgrade .sn-links .sn-menu a.sn-card strong { display:block; color:#173448; font-size:14px; font-weight:700; margin-bottom:3px; }
.site-upgrade .sn-links .sn-menu a.sn-card small { display:block; color:#62746d; font-size:12px; line-height:1.45; }
.site-upgrade .sn-links .sn-menu a.sn-card .sn-card-arrow { flex-shrink:0; width:26px; height:26px; border-radius:50%; background:#d7a747; color:#173448; display:flex; align-items:center; justify-content:center; font-size:13px; transition:transform .2s ease,background .2s ease; }
.site-upgrade .sn-links .sn-menu a.sn-card:hover .sn-card-arrow { transform:translateX(2px); background:#e7bb66; }
@media(max-width:480px){.site-upgrade .sn-links .sn-menu{width:290px}}

/* Desktop mega-panel dropdowns (About Us / Our Work / Get Involved) — the
   same full card-grid design index.html's own nav ships natively, reused
   site-wide via distinct sn-mega-* classes so the two never collide. */
.site-upgrade .sn-links .sn-mega-toggle { all:unset; display:flex; align-items:center; gap:7px; cursor:pointer; padding:10px 0; color:#294b43; font:500 14px/1.5 Inter,system-ui,sans-serif; white-space:nowrap; }
.site-upgrade .sn-links .sn-mega-toggle:hover { color:#806225; }
.site-upgrade .sn-links .sn-mega-toggle[aria-expanded="true"] .sn-chevron { transform:rotate(180deg); }
.sn-mega-panel { position:fixed; left:0; right:0; top:0; background:rgba(255,253,249,.98); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-top:1px solid #dce4d9; box-shadow:0 30px 60px #17344826; z-index:1300; padding:36px 0 44px; opacity:0; visibility:hidden; transform:translateY(-12px); transition:opacity .3s ease, transform .3s cubic-bezier(.16,1,.3,1), visibility .3s; }
.sn-mega-panel.open { opacity:1; visibility:visible; transform:translateY(0); }
.sn-mega-inner { max-width:1200px; margin:0 auto; padding:0 24px; display:flex; align-items:flex-start; gap:28px; }
.sn-mega-eyebrow { flex:0 0 180px; text-transform:uppercase; letter-spacing:.16em; font-weight:600; font-size:12px; color:#62746d; padding-top:4px; }
.sn-mega-grid { flex:1; min-width:0; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.sn-mega-card { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 22px; background:#f5e8c7; border-radius:6px; text-decoration:none; color:#173448; border:1px solid transparent; transition:transform .25s ease, box-shadow .25s ease, background .25s ease; }
.sn-mega-card:hover { transform:translateY(-2px); background:#f0dba8; box-shadow:0 10px 24px #d7a7472e; border-color:#d7a74740; }
.sn-mega-card-body strong { display:block; font-size:16px; font-weight:700; color:#173448; margin-bottom:4px; }
.sn-mega-card-body small { display:block; font-size:13px; color:#52665e; line-height:1.5; }
.sn-mega-arrow { flex-shrink:0; width:32px; height:32px; border-radius:50%; background:#d7a747; color:#173448; display:flex; align-items:center; justify-content:center; font-size:14px; transition:transform .25s ease, background .25s ease; }
.sn-mega-card:hover .sn-mega-arrow { transform:translateX(2px); background:#e7bb66; }
@media(max-width:700px){ .sn-mega-card-body small{display:none;} }
/* Stacked mega-panel mixin, applied within each shell's own mobile breakpoint below. */
.site-upgrade .sn-links > a[aria-current="page"],.site-upgrade .sn-current > summary { color:#795b20; text-decoration:underline; text-underline-offset:6px; }
.site-upgrade .sn-search { display:inline-flex; justify-content:center; align-items:center; gap:9px; color:#294b43; }
.sn-search-text { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.site-upgrade .ed-nav { gap:21px; }
.site-upgrade .sn-mobile-links { display:flex; flex-direction:column; gap:3px; padding:16px 0; }
.site-upgrade .sn-mobile-links > a,.site-upgrade .sn-mobile-links summary { padding:14px 0; font-size:17px; }
.site-upgrade .sn-mobile-links .sn-menu { position:static; width:100%; margin:0 0 10px; box-shadow:none; background:#f6f3e9; }
@media(min-width:901px){.site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center){overflow:visible;max-height:none}}
@media(max-width:1180px){.site-upgrade .sn-links{gap:12px}.site-upgrade .sn-links summary,.site-upgrade .sn-links>[data-sn-root]{font-size:13px}}
@media(max-width:900px){
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fffdf9;gap:0;overflow:auto;padding:0 22px;visibility:hidden;max-height:0;border-bottom:1px solid #dce4d9}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links.open{visibility:visible;max-height:75vh;padding:14px 22px}
 .site-upgrade :is(.page-nav-mobile-toggle,.vt-nav-toggle,.ap-nav-toggle,.fr-nav-toggle,.ex-nav-toggle){display:flex}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-menu{position:static;width:100%;box-shadow:none;margin-bottom:10px;background:#f6f3e9}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links summary{padding:12px 0;font-size:15px}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links>a{padding:12px 0}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-toggle{padding:12px 0;font-size:15px}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-panel{position:static;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;backdrop-filter:none;padding:2px 0 14px}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-panel.open{display:block}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-inner{padding:0;max-width:none;display:block}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-eyebrow{display:none}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-grid{grid-template-columns:1fr;gap:8px}
 .site-upgrade :is(.page-nav-center,.vt-nav-center,.ap-nav-center,.fr-nav-center,.ex-nav-center).sn-links .sn-mega-card{background:#f6f3e9;padding:12px 14px}
}
@media(max-width:650px){.site-upgrade .ed-nav.sn-links{gap:0}.site-upgrade .ed-nav.sn-links .sn-menu{position:static;width:100%;box-shadow:none;background:#f6f3e9;margin-bottom:10px}.site-upgrade .ed-nav.sn-links summary{padding:12px 10px;font-size:15px}.site-upgrade .ed-nav.sn-links .sn-search{justify-content:flex-start;padding:12px 10px}.sn-search-text{position:static;width:auto;height:auto;clip-path:none}
.site-upgrade .ed-nav.sn-links .sn-mega-toggle{padding:12px 10px;font-size:15px}
.site-upgrade .ed-nav.sn-links .sn-mega-panel{position:static;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;background:transparent;backdrop-filter:none;padding:2px 10px 14px}
.site-upgrade .ed-nav.sn-links .sn-mega-panel.open{display:block}
.site-upgrade .ed-nav.sn-links .sn-mega-inner{padding:0;max-width:none;display:block}
.site-upgrade .ed-nav.sn-links .sn-mega-eyebrow{display:none}
.site-upgrade .ed-nav.sn-links .sn-mega-grid{grid-template-columns:1fr;gap:8px}
.site-upgrade .ed-nav.sn-links .sn-mega-card{background:#f6f3e9;padding:12px 14px}
}

/* Contact: the actual enquiry destination, with the form visible near the top. */
.contact-page-heading { padding:38px 0 32px; max-width:780px; }
.contact-page-heading h1 { margin:0 0 18px; font:500 clamp(38px,4.5vw,58px)/1.15 'Playfair Display',Georgia,serif; letter-spacing:-.035em; }
.contact-page-heading > p:last-child { font-size:17px; line-height:1.8; color:#52665e; margin:0; }
.contact-page-grid { display:grid; grid-template-columns:.8fr 1.4fr; gap:30px; align-items:start; margin:0 0 48px; }
.contact-page-details { padding:32px; border:1px solid #d5dfce; border-radius:16px; background:#eaf0e3; }
.contact-page-message { padding:32px; border:1px solid #dce4d9; border-radius:16px; background:#fffdf9; }
.contact-page-grid h2,.contact-page-shortcuts h2 { font:500 29px/1.25 'Playfair Display',Georgia,serif; margin:0 0 14px; }
.contact-page-grid p { color:#52665e; line-height:1.75; font-size:14px; }
.contact-page-details dl { margin:26px 0; }
.contact-page-details dl>div { padding:17px 0; border-top:1px solid #cdd9c7; }
.contact-page-details dt { color:#53634e; font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; margin-bottom:8px; }
.contact-page-details dd { margin:0; color:#173448; font-size:15px; line-height:1.75; overflow-wrap:anywhere; }
.contact-page-details a,.contact-page-form a,.contact-page-shortcuts a { color:#28594e; }
.contact-page-details .contact-page-note { font-size:12px; margin:0; }
.contact-page-map { position:relative; margin:0 0 20px; height:260px; border-radius:12px; overflow:hidden; border:1px solid #d5dfce; }
.contact-page-map-frame { width:100%; height:100%; border:0; display:block; filter:saturate(0.85) contrast(1.03); }
.contact-page-map .map-info-pin { position:absolute; top:14px; left:14px; right:14px; max-width:none; background:#fffdf9; border-radius:12px; box-shadow:0 10px 26px #17344826; padding:14px 16px; display:flex; gap:12px; align-items:flex-start; }
.contact-page-map .map-info-pin-icon { width:34px; height:34px; border-radius:9px; background:#28594e; color:#fffdf9; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-page-map .map-info-pin-icon svg { width:16px; height:16px; }
.contact-page-map .map-info-pin-body strong { display:block; color:#173448; font-size:14px; margin-bottom:3px; }
.contact-page-map .map-info-pin-body span { display:block; font-size:12px; color:#52665e; line-height:1.5; margin-bottom:9px; }
.contact-page-map .map-info-pin-actions { display:flex; align-items:center; gap:9px; }
.contact-page-map .map-info-pin-actions a:first-child { font-size:12px; font-weight:700; color:#795b20; text-decoration:none; }
.contact-page-map .map-info-pin-actions a:first-child:hover { text-decoration:underline; }
.contact-page-map .map-info-pin-actions a:last-child { width:24px; height:24px; border-radius:7px; background:#eaf0e3; display:flex; align-items:center; justify-content:center; color:#28594e; text-decoration:none; font-size:12px; flex-shrink:0; }
.contact-page-form { margin-top:24px; scroll-margin-top:140px; }
.contact-page-form .form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-page-form .form-group { margin-bottom:19px; }
.contact-page-form label { display:block; margin-bottom:8px; font-size:13px; font-weight:600; color:#294b43; }
.contact-page-form :is(input,select,textarea) { display:block; width:100%; max-width:100%; border:1px solid #bfccba; border-radius:8px; background:white; color:#173448; padding:12px 14px; font:400 15px/1.5 Inter,system-ui,sans-serif; }
.contact-page-form textarea { resize:vertical; min-height:125px; }
.contact-page-form .form-error { display:none; }
.contact-page-form .contact-privacy { font-size:12px; }
.contact-page-form button { min-width:160px; }
.contact-page-form button:disabled { opacity:.65; cursor:wait; }
#contact-result:empty { display:none; }
#contact-result { padding:14px 18px; border-radius:8px; }
#contact-result[data-state="error"] { background:#f9e6df; color:#822d25; }
#contact-result[data-state="success"] { background:#eaf0e3; color:#244f46; }
.contact-page-shortcuts { padding:30px 0 50px; border-top:1px solid #dce4d9; }
.contact-page-shortcuts h2 { font-size:24px; }
.contact-page-shortcuts>div { display:flex; gap:15px 25px; flex-wrap:wrap; }
.contact-page-shortcuts a { font-size:13px; }
@media(max-width:700px){.contact-page-heading{padding-top:28px}.contact-page-grid{grid-template-columns:1fr;gap:20px}.contact-page-message{order:-1}.contact-page-message,.contact-page-details{padding:24px}.contact-page-form .form-row{grid-template-columns:1fr;gap:0}}
