/*
Theme Name: NAIPO
Theme URI: https://new.neob.ch/
Author: Marc Borboën
Description: Thème WordPress du site NAIPO — National AI Initiative for Precision Oncology. Converti depuis la maquette HTML NAIPO v16.4 : chaque section est un bloc éditable, les News sont des articles.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: naipo
*/

/* NAIPO webfonts.
   The brand spec (EPFL_NAIPO_Branding-RZ.pdf) names Google Fonts directly:
   - Inter (Black 900, Bold 700, Light 300) — headlines, UI, body
   - Lora (Bold 700, Light 300) — quotes only
   No font binaries were provided, so we load from Google Fonts CDN. */
/* cyrillic-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/7bfadab2-82d0-4f1f-8765-627e286711d9.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/2e69d077-1275-4bbc-8e51-36313ade89ca.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/ec07ccd2-d936-4787-80b0-774ecb55fc58.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/d864a43f-c12a-4079-b9a5-760b87343f3e.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
/* vietnamese */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/ff6c18f7-6077-499c-b3a7-c3a1cc41f4b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/12ecf20d-a5ad-498f-aab8-3affb88f2c48.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("assets/d37219d5-9488-4bf9-9e2a-c20540493a32.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/7bfadab2-82d0-4f1f-8765-627e286711d9.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/2e69d077-1275-4bbc-8e51-36313ade89ca.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/ec07ccd2-d936-4787-80b0-774ecb55fc58.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/d864a43f-c12a-4079-b9a5-760b87343f3e.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
/* vietnamese */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/ff6c18f7-6077-499c-b3a7-c3a1cc41f4b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/12ecf20d-a5ad-498f-aab8-3affb88f2c48.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("assets/d37219d5-9488-4bf9-9e2a-c20540493a32.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/7bfadab2-82d0-4f1f-8765-627e286711d9.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/2e69d077-1275-4bbc-8e51-36313ade89ca.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/ec07ccd2-d936-4787-80b0-774ecb55fc58.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/d864a43f-c12a-4079-b9a5-760b87343f3e.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
/* vietnamese */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/ff6c18f7-6077-499c-b3a7-c3a1cc41f4b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/12ecf20d-a5ad-498f-aab8-3affb88f2c48.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/d37219d5-9488-4bf9-9e2a-c20540493a32.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/7bfadab2-82d0-4f1f-8765-627e286711d9.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/2e69d077-1275-4bbc-8e51-36313ade89ca.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/ec07ccd2-d936-4787-80b0-774ecb55fc58.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/d864a43f-c12a-4079-b9a5-760b87343f3e.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
/* vietnamese */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/ff6c18f7-6077-499c-b3a7-c3a1cc41f4b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/12ecf20d-a5ad-498f-aab8-3affb88f2c48.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/d37219d5-9488-4bf9-9e2a-c20540493a32.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/7bfadab2-82d0-4f1f-8765-627e286711d9.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/2e69d077-1275-4bbc-8e51-36313ade89ca.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/ec07ccd2-d936-4787-80b0-774ecb55fc58.woff2") format("woff2");
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/d864a43f-c12a-4079-b9a5-760b87343f3e.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}
/* vietnamese */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/ff6c18f7-6077-499c-b3a7-c3a1cc41f4b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/12ecf20d-a5ad-498f-aab8-3affb88f2c48.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("assets/d37219d5-9488-4bf9-9e2a-c20540493a32.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/8bfe3909-12de-4719-90ef-4b84eb764f9a.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/6c4632bd-889f-4f00-adc3-ecab73c278ad.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* math */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/2f99e7a4-7929-4ca5-a3c1-0d12eb1d0e9f.woff2") format("woff2");
  unicode-range: U+302-303, U+305, U+307-308, U+310, U+312, U+315, U+31A, U+326-327, U+32C, U+32F-330, U+332-333, U+338, U+33A, U+346, U+34D, U+391-3A1, U+3A3-3A9, U+3B1-3C9, U+3D1, U+3D5-3D6, U+3F0-3F1, U+3F4-3F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/53f007ee-f774-4d25-bd71-7516dfabdb80.woff2") format("woff2");
  unicode-range: U+1-C, U+E-1F, U+7F-9F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/2676302b-44f4-448c-99ce-7660ce01efab.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/91215951-75cf-47de-a3b2-78af676d4e3e.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("assets/edcd5d75-b652-485d-a8a2-fb5904b50d0f.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/8bfe3909-12de-4719-90ef-4b84eb764f9a.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/6c4632bd-889f-4f00-adc3-ecab73c278ad.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* math */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/2f99e7a4-7929-4ca5-a3c1-0d12eb1d0e9f.woff2") format("woff2");
  unicode-range: U+302-303, U+305, U+307-308, U+310, U+312, U+315, U+31A, U+326-327, U+32C, U+32F-330, U+332-333, U+338, U+33A, U+346, U+34D, U+391-3A1, U+3A3-3A9, U+3B1-3C9, U+3D1, U+3D5-3D6, U+3F0-3F1, U+3F4-3F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/53f007ee-f774-4d25-bd71-7516dfabdb80.woff2") format("woff2");
  unicode-range: U+1-C, U+E-1F, U+7F-9F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/2676302b-44f4-448c-99ce-7660ce01efab.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/91215951-75cf-47de-a3b2-78af676d4e3e.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Lora";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("assets/edcd5d75-b652-485d-a8a2-fb5904b50d0f.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/084b137e-d48c-4e69-9920-84770aefef78.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/f21ae5d1-2cc9-45da-9ad3-b966e5f1bfcd.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* math */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/2f3330de-2dfc-40de-967a-7d965cbd1dbc.woff2") format("woff2");
  unicode-range: U+302-303, U+305, U+307-308, U+310, U+312, U+315, U+31A, U+326-327, U+32C, U+32F-330, U+332-333, U+338, U+33A, U+346, U+34D, U+391-3A1, U+3A3-3A9, U+3B1-3C9, U+3D1, U+3D5-3D6, U+3F0-3F1, U+3F4-3F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/1891b29c-6cd9-459c-bd7a-dff2dc54f07c.woff2") format("woff2");
  unicode-range: U+1-C, U+E-1F, U+7F-9F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/18e7a93d-a371-4399-8e78-f1e2de1d68bb.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/cadb9d1c-2074-423d-8c40-ea6fb63963df.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("assets/ed21a6e2-d518-44d0-a640-49641670ac75.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/084b137e-d48c-4e69-9920-84770aefef78.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/f21ae5d1-2cc9-45da-9ad3-b966e5f1bfcd.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}
/* math */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/2f3330de-2dfc-40de-967a-7d965cbd1dbc.woff2") format("woff2");
  unicode-range: U+302-303, U+305, U+307-308, U+310, U+312, U+315, U+31A, U+326-327, U+32C, U+32F-330, U+332-333, U+338, U+33A, U+346, U+34D, U+391-3A1, U+3A3-3A9, U+3B1-3C9, U+3D1, U+3D5-3D6, U+3F0-3F1, U+3F4-3F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* symbols */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/1891b29c-6cd9-459c-bd7a-dff2dc54f07c.woff2") format("woff2");
  unicode-range: U+1-C, U+E-1F, U+7F-9F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/18e7a93d-a371-4399-8e78-f1e2de1d68bb.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/cadb9d1c-2074-423d-8c40-ea6fb63963df.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: "Lora";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/ed21a6e2-d518-44d0-a640-49641670ac75.woff2") format("woff2");
  unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* NAIPO V14.3 test palette — final turquoise direction. */
:root {
  /* Base palette */
  --naipo-green: #286A9B;        /* NAIPO Medical Green — primary brand green */
  --naipo-green-alt-1: #5E9FBE;  /* NAIPO Medical Green Alt 1 — muted sage (the "AI" in the logo) */
  --naipo-green-alt-2: #8AC2D5;  /* NAIPO Medical Green Alt 2 — teal accent */
  --naipo-beige: #F3ECE3;        /* NAIPO Medical Beige — page background */
  --naipo-sand: #D4BFA7;         /* NAIPO Medical Sand — alternate surface */
  --naipo-grey: #C7CDD0;         /* NAIPO Medical Grey — hairlines, muted UI */
  --epfl-red: #E52621;           /* EPFL Red — Swiss cross + EPFL logo only, never decorative */
  --anthracite: #2E2F31;         /* Anthracite — text */
  --primary-dark: #114083;        /* V14 primary dark — identity / dark surfaces */
  --white: #FFFFFF;

  /* Derived shades (oklch-derived from the base palette, for states) */
  --naipo-green-hover: #114083;
  --naipo-green-alt-2-hover: #286A9B;
  --anthracite-soft: #55575A;    /* secondary text */
  --naipo-beige-deep: #D4BFA7;   /* pressed / selected beige */

  /* Semantic aliases */
  --surface-page: var(--naipo-beige);
  --surface-card: var(--naipo-beige);
  --surface-band: var(--naipo-sand);
  --surface-dark: var(--primary-dark);
  --surface-accent: var(--naipo-green);

  --text-heading: var(--anthracite);
  --text-body: var(--anthracite);
  --text-muted: var(--anthracite-soft);
  --text-on-dark: var(--white);
  --text-on-accent: var(--anthracite);

  --border-hairline: var(--naipo-grey);
  --border-strong: var(--anthracite);

  --action-primary: var(--epfl-red);
  --action-primary-text: var(--white);
  --action-accent: var(--naipo-green);
  --link: var(--naipo-green-alt-1);
  --link-hover: var(--epfl-red);

  --focus-ring: var(--naipo-green-alt-2);
}

/* NAIPO typography tokens.
   Inter carries everything; Lora is reserved for quotes.
   Headlines are Inter Black, UPPERCASE, tight leading. */
:root {
  --font-sans: "Inter", system-ui, sans-serif;
  --font-quote: "Lora", Georgia, serif;

  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-black: 900;

  /* Display — Inter Black, uppercase, e.g. "TRANSFORMING CANCER CARE WITH AI" */
  --type-display-xl: 900 clamp(48px, 6vw, 88px)/0.98 var(--font-sans);
  --type-display: 900 clamp(36px, 4.5vw, 56px)/1.02 var(--font-sans);
  --type-headline: 700 32px/1.1 var(--font-sans);
  --type-title: 700 22px/1.25 var(--font-sans);
  --type-kicker: 700 13px/1.2 var(--font-sans);      /* uppercase, letter-spaced */
  --type-body: 300 17px/1.55 var(--font-sans);
  --type-body-strong: 700 17px/1.55 var(--font-sans);
  --type-small: 300 14px/1.5 var(--font-sans);
  --type-quote: 700 clamp(24px, 3vw, 34px)/1.3 var(--font-quote);
  --type-quote-attribution: 300 15px/1.4 var(--font-sans);

  --tracking-display: -0.01em;
  --tracking-kicker: 0.12em;
}

/* NAIPO spacing, radius, borders, shadows, motion. */
:root {
  /* Spacing scale (8px base) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;

  /* Corner radii — the brand rounds generously (logo bowls, pill buttons) */
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  /* Borders */
  --border-width: 1px;

  /* Shadows — flat brand; one soft shadow for floating elements only */
  --shadow-card: none;
  --shadow-float: 0 8px 28px rgba(46, 47, 49, 0.12);

  /* Motion — calm, no bounces */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1); /* @kind other */
  --duration-fast: 140ms; /* @kind other */
  --duration-base: 220ms; /* @kind other */
}

/* Minimal base rules so consumers get brand defaults for free. */
body {
  margin: 0;
  font: var(--type-body);
  color: var(--text-body);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { color: var(--text-heading); margin: 0; }
a { color: var(--link); text-decoration: none; transition: color var(--duration-fast) var(--ease-out); }
a:hover { color: var(--link-hover); }
::selection { background: var(--naipo-green); color: var(--anthracite); }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }



  .navlink-v2 { font: 700 13px/1.2 var(--font-sans); letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.85); }
  .navlink-v2:hover { color: var(--naipo-beige); }
  .pillar:hover h3 { color: var(--naipo-green-alt-2); }
  .pillar h3 { transition: color var(--duration-fast) var(--ease-out); }
  @media (prefers-reduced-motion: no-preference) {
    .reveal { opacity: 0; transform: translateY(24px); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); }
    .reveal.is-in { opacity: 1; transform: none; }
    .bubbles-drift { animation: bubbles-drift 26s ease-in-out infinite alternate; }
    @keyframes bubbles-drift {
      from { transform: translate(0, 0) scale(1); }
      to { transform: translate(-3%, 4%) scale(1.05); }
    }
    .hero-stagger > * { opacity: 0; transform: translateY(36px); animation: hero-rise 900ms var(--ease-out) forwards; }
    .hero-stagger > *:nth-child(1) { animation-delay: 80ms; }
    .hero-stagger > *:nth-child(2) { animation-delay: 220ms; }
    .hero-stagger > *:nth-child(3) { animation-delay: 420ms; }
    @keyframes hero-rise { to { opacity: 1; transform: none; } }
    .hero-title .line { display: block; overflow: hidden; }
    .hero-title .line > span { display: inline-block; transform: translateY(110%); animation: line-up 800ms var(--ease-out) forwards; }
    .hero-title .line:nth-child(1) > span { animation-delay: 180ms; }
    .hero-title .line:nth-child(2) > span { animation-delay: 300ms; }
    .hero-title .line:nth-child(3) > span { animation-delay: 420ms; }
    @keyframes line-up { to { transform: none; } }
    .marquee-track { display: flex; align-items: center; gap: 72px; width: max-content; animation: marquee 36s linear infinite; }
    .marquee:hover .marquee-track { animation-play-state: paused; }
    @keyframes marquee { to { transform: translateX(-50%); } }
  }
  @media (prefers-reduced-motion: reduce) {
    .marquee-track { display: flex; align-items: center; gap: 72px; flex-wrap: wrap; }
  }

/* =========================================================
   Styles extracted from the original React prototype.
   Each u-XXX class replaces an inline style from the source.
   This keeps HTML/CSS separate without changing the design.
   ========================================================= */

.u-039 { font:300 15px/1.55 var(--font-sans);color:var(--text-muted);margin:0px; }


.u-059 { background:var(--naipo-beige);padding:96px 64px; }
.u-060 { display:grid;grid-template-columns:repeat(3, 1fr);gap:24px; }


.u-095 { border:1px solid var(--naipo-grey);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition-delay:0ms; }
.u-096 { height:180px;background:var(--primary-dark);display:flex;align-items:center;justify-content:center; }
.u-097 { width:45%;opacity:0.9; }
.u-098 { padding:28px;display:flex;flex-direction:column;gap:12px;flex:1; }
.u-099 { display:flex;gap:12px;align-items:center; }
.u-100 { display:inline-flex;align-items:center;white-space:nowrap;padding:6px 14px;border-radius:var(--radius-pill);font:var(--type-kicker);letter-spacing:var(--tracking-kicker);text-transform:uppercase;background:transparent;color:var(--anthracite);border:1px solid var(--primary-dark); }
.u-101 { font:300 13px/1.2 var(--font-sans);color:var(--text-muted); }
.u-102 { font:700 20px/1.3 var(--font-sans);margin:0px; }
.u-103 { font:700 14px/1.2 var(--font-sans);color:var(--naipo-green-alt-1);margin-top:auto; }
.u-103:hover { color:var(--epfl-red); }
.u-104 { border:1px solid var(--naipo-grey);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition-delay:70ms; }
.u-105 { height:180px;background:var(--naipo-green-alt-1);display:flex;align-items:center;justify-content:center; }
.u-106 { border:1px solid var(--naipo-grey);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition-delay:140ms; }
.u-107 { height:180px;background:var(--naipo-green);display:flex;align-items:center;justify-content:center; }

/* =========================================================
   Static HTML page system / navigation
   ========================================================= */
.site-page { display: none; }
.site-page.is-active { display: block; }

/* Header state is controlled with classes from script.js. */
.site-header { transition: background var(--duration-base) var(--ease-out), padding var(--duration-base) var(--ease-out), box-shadow var(--duration-base) var(--ease-out); }
.site-header.theme-dark { position: fixed !important; background: var(--primary-dark) !important; border-bottom: 1px solid rgba(255,255,255,0.10) !important; }
.site-header.theme-light { position: sticky !important; background: var(--primary-dark) !important; border-bottom: 1px solid rgba(255,255,255,0.10) !important; }
.site-header.is-scrolled { padding: 16px 64px !important; }
.site-header.theme-dark.is-scrolled { background: var(--primary-dark) !important; border-bottom: 1px solid rgba(255,255,255,0.12) !important; }
.site-header.theme-light.is-scrolled { box-shadow: var(--shadow-float) !important; }
.site-header.theme-light > a img { filter: brightness(0) invert(1) !important; }
.site-header.theme-light nav a { color: rgba(255,255,255,0.85) !important; }
.site-header.theme-dark nav a { color: rgba(255,255,255,0.85) !important; }
.site-header nav a.is-active { color: var(--naipo-green-alt-2) !important; border-bottom-color: var(--naipo-green-alt-2) !important; }
.site-header.theme-light #language-toggle { color: var(--white) !important; border-color: rgba(255,255,255,0.4) !important; }
.site-header.theme-dark #language-toggle { color: var(--white) !important; border-color: rgba(255,255,255,0.4) !important; }

/* Hover menu header :
   - grossit depuis le centre
   - garde la hauteur du header
   - blanc -> vert NAIPO de gauche a droite en 1 seconde
*/

.language-menu {
  position: absolute;
  top: calc(100% - 12px);
  right: 64px;
  min-width: 72px;
  background: var(--naipo-beige);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-float);
  padding: 6px;
  z-index: 30;
}
.language-menu:not([hidden]) { display: flex; flex-direction: column; }
.language-menu button {
  font: 300 13px/1 var(--font-sans);
  color: var(--anthracite);
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 8px 12px;
  border-radius: 6px;
  text-align: left;
}
.language-menu button:hover,
.language-menu button.is-active { background: var(--naipo-beige); font-weight: 700; }

/* Keep the original sponsor movement. The original stylesheet already
   defines the marquee keyframes; this class remains on the HTML section. */
.home-partners-marquee { overflow: hidden; }

@media (max-width: 900px) {
  .site-header { padding-left: 24px !important; padding-right: 24px !important; gap: 18px !important; }
  .site-header nav { gap: 14px !important; overflow-x: auto; }
  .site-header nav a { font-size: 11px !important; }
  .language-menu { right: 24px; }
}


/* =========================================================
   NAIPO palette refresh — August 2026
   Beige replaces stark white, green carries the brand,
   EPFL red is reserved for high-value accents.
   ========================================================= */
.home-intro,
.home-research,
.about-intro,
.about-governance,
.partners-groups,
.research-subprojects,
#page-news-insights .news-listing {
  background: var(--naipo-beige);
}

.partners-groups {
  background-color: var(--naipo-sand);
}

.home-impact,
.about-team {
  background-color: var(--naipo-green);
}

.pillar {
  transition: color var(--duration-fast) var(--ease-out), transform var(--duration-base) var(--ease-out);
}
.pillar:hover { transform: translateY(-2px); }
.pillar:hover h3 { color: var(--naipo-green-alt-1); }

.site-footer a:hover { color: var(--naipo-beige) !important; }


/* =========================================================
   SHARED SUBPAGE HERO - About us test (August 2026)
   Reusable later for Partners, Research and News & Insights.
   ========================================================= */
.subpage-hero {
  min-height: 42vh;
  box-sizing: border-box;
  padding: 140px 6vw 44px;
  background: var(--naipo-green-alt-2);
  color: var(--anthracite);
  display: flex;
  align-items: flex-start;
}

.subpage-hero-inner {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

.subpage-hero-label {
  display: block;
  width: fit-content;

  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;

  color: var(--anthracite);

  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;

  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.subpage-hero-title {
  width: 65%;
  max-width: 900px;
  margin: 4px 0 0;
  font: 900 clamp(46px, 5.2vw, 78px)/0.95 var(--font-sans);
  letter-spacing: -0.025em;
  text-transform: uppercase;
  color: var(--anthracite);
  text-shadow: 0 7px 20px rgba(46,47,49,0.25);
}

.subpage-hero-description {
  max-width: 640px;
  margin: 2px 0 0;
  font: 400 17px/1.55 var(--font-sans);
  color: rgba(46,47,49,0.78);
}

@media (max-width: 1280px) {
  .subpage-hero { padding-left: 48px; padding-right: 48px; }
  .subpage-hero-title { width: 72%; }
}

@media (max-width: 900px) {
  .subpage-hero {
    min-height: 38vh;
    padding: 24px 24px 40px;
  }
  .subpage-hero-inner { gap: 18px; }
  .subpage-hero-title {
    width: 100%;
    max-width: 760px;
    font-size: clamp(42px, 9vw, 64px);
  }
  .subpage-hero-description {
    max-width: 600px;
    font-size: 16px;
  }
}

@media (max-width: 560px) {
  .subpage-hero { min-height: auto; padding: 22px 24px 34px; }
  .subpage-hero-label {
  font-size: 10px;
  padding: 0;
  letter-spacing: 0.20em;
}
  .subpage-hero-title { font-size: clamp(38px, 12vw, 54px); }
  .subpage-hero-description { font-size: 15px; }
}

/* =========================================================
   HOME PAGE V5 - Canva-inspired redesign (August 2026)
   Scoped to #page-home so the other pages keep their design.
   Reference layout: laptop 13-16 inches. Mobile adaptations below.
   ========================================================= */

/* Hide the shared footer only while Home is active; Home has its own footer. */
body.is-home .site-footer-wrapper { display: none; }

/* Keep the header clearly separated from the green hero. */
body.is-home .site-header {
  background: var(--primary-dark) !important;
  box-shadow: 0 8px 22px rgba(25, 26, 27, 0.22) !important;
}
body.is-home .site-header.theme-dark,
body.is-home .site-header.theme-dark.is-scrolled {
  background: var(--primary-dark) !important;
}

/* HERO - existing height/proportions are preserved. */
#page-home .home-hero {
  position: relative;
  min-height: 67vh;
  background: var(--naipo-green);
  isolation: isolate;
}
#page-home .home-hero-bg {
  position: absolute;
  inset: -7% -3%;
  z-index: -2;
  background-color: var(--naipo-green);
  background-image:
    linear-gradient(rgba(114, 199, 195, 0.10), rgba(114, 199, 195, 0.10)),
    url("assets/background_Turquoise_NAIPO.jpg");
  background-size: cover;
  background-position: center center;
  will-change: transform;
  transform: translate3d(0, 0, 0) scale(1.08);
}
#page-home .home-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
  
  linear-gradient(
    90deg,
    rgba(46,47,49,0.10) 0%,
    rgba(46,47,49,0.01) 58%,
    rgba(46,47,49,0.06) 100%
  );
}
#page-home .home-hero-content { max-width: 1080px; }

#page-home .home-hero-bottom { align-items: center; }




/* POSITIONING / PARTNERS */
#page-home .home-v5-impact {
  background: var(--naipo-beige);
  padding: 78px 6vw 70px;
}
#page-home .home-impact-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
  gap: clamp(64px, 9vw, 150px);
  align-items: center;
}
#page-home .home-kicker {
  display: block;
  margin-bottom: 10px;
  font: var(--type-kicker);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--naipo-green-alt-1);
}
#page-home .home-v5-impact h2 {
  font: 900 clamp(38px, 4.25vw, 64px)/0.98 var(--font-sans);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--anthracite);
}
#page-home .home-impact-copy {
  display: flex;
  flex-direction: column;
  gap: 34px;
  align-items: stretch;
}
#page-home .home-impact-copy p {
  margin: 0;
  font: 400 18px/1.65 var(--font-sans);
  color: var(--anthracite);
}
#page-home .home-outline-button {
  width: 100%;
  padding: 12px 26px;
  border-radius: var(--radius-pill);
  border: 2px solid var(--anthracite);
  background: transparent;
  color: var(--anthracite);
  cursor: pointer;
  font: 700 15px/1.2 var(--font-sans);
  box-shadow: 7px 7px 10px rgba(46,47,49,0.22);
  transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);
}
#page-home .home-outline-button:hover {
  background: var(--primary-dark);
  color: var(--naipo-beige);
  transform: translateY(-1px);
  box-shadow: 5px 8px 12px rgba(46,47,49,0.25);
}

/* Partner logos: white strip, original brand colors (no grayscale filter). */
/* Partner logos + neural parallax background */
/* Partner logos: white strip, original brand colors */
#page-home .home-v5-partners {
  position: relative;
  background: var(--white);
  padding: 34px 0;
  border: 0;
  overflow: hidden;

  box-shadow:
    0 6px 16px rgba(46, 47, 49, 0.15),
    0 -6px 16px rgba(46, 47, 49, 0.10);
}

/* Neural background disabled */
#page-home .home-partners-bg {
  display: none;
}

/* No tint on the white partner strip */
#page-home .home-v5-partners::after {
  display: none;
}

/* Logos stay above the section background */
#page-home .home-v5-partners .marquee-track {
  position: relative;
  z-index: 1;
}

#page-home .home-partner-row {
  display: flex;
  align-items: center;
  gap: clamp(42px, 5vw, 80px);
  padding-right: 0;
}

#page-home .home-partner-row img {
  height: 42px;
  width: auto;
  max-width: 170px;
  object-fit: contain;
  filter: none !important;
  opacity: 1 !important;
}


/* LATEST NEWS / NEWS GRID */
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}

.news-grid > .pillar {
  min-width: 0;
  height: 100%;
}

.news-readmore-placeholder[aria-disabled="true"] {
  cursor: default;
}

#page-home .home-latest-news {
  background: var(--naipo-beige);
  padding: 82px 6vw 92px;
}

#page-home .home-latest-news-inner {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
}

#page-home .home-latest-news-heading {
  margin-bottom: 42px;
}

#page-home .home-latest-news-heading h2 {
  margin: 0;
  font: 900 clamp(38px, 4.25vw, 64px)/0.98 var(--font-sans);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--anthracite);
}

/* NEWS ARTICLE — demonstration template for future WordPress posts */
.news-article-page {
  background: var(--naipo-beige);
}

.news-article-hero {
  padding: 158px 6vw 74px;
  background: var(--naipo-green-alt-2);
  box-shadow: 0 14px 26px rgba(46,47,49,0.12);
}

.news-article-shell {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}

.news-article-meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
}

.news-article-title {
  max-width: 1040px;
  margin: 0;
  font: 900 clamp(46px, 5.5vw, 78px)/0.96 var(--font-sans);
  letter-spacing: -0.025em;
  text-transform: uppercase;
  color: var(--anthracite);
}

.news-article-lead {
  max-width: 780px;
  margin: 30px 0 0;
  font: 400 20px/1.6 var(--font-sans);
  color: rgba(46,47,49,.78);
}

.news-article-body {
  padding: 82px 6vw 100px;
}

.news-article-content {
  max-width: 820px;
}

.news-article-content > p,
.news-article-content h2 {
  margin-left: 0;
  margin-right: 0;
}

.news-article-content > p {
  margin-top: 0;
  margin-bottom: 30px;
  font: 400 18px/1.75 var(--font-sans);
  color: var(--anthracite);
}

.news-article-content h2 {
  margin-top: 58px;
  margin-bottom: 20px;
  font: 900 clamp(30px, 3vw, 44px)/1.02 var(--font-sans);
  text-transform: uppercase;
  letter-spacing: -0.015em;
}

.news-article-callout {
  margin: 52px 0;
  padding: 34px 38px;
  background: var(--naipo-sand);
  box-shadow: 10px 12px 20px rgba(46,47,49,.16);
}

.news-article-callout p {
  margin: 12px 0 0;
  font: 400 18px/1.65 var(--font-sans);
  color: var(--anthracite);
}

.news-article-content .news-article-demo-note {
  margin-top: 58px;
  padding-top: 24px;
  border-top: 1px solid var(--naipo-grey);
  font-size: 14px;
  color: var(--text-muted);
}

.news-article-back {
  display: inline-flex;
  margin-top: 8px;
  font: 700 14px/1.2 var(--font-sans);
  color: var(--naipo-green-alt-1);
}

.news-article-back:hover {
  color: var(--epfl-red);
}

@media (max-width: 900px) {
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-home .home-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #page-home .home-latest-news { padding: 68px 24px 76px; }
  .news-article-hero { padding: 132px 24px 60px; }
  .news-article-body { padding: 64px 24px 80px; }
}

@media (max-width: 560px) {
  .news-grid,
  #page-home .home-news-grid { grid-template-columns: 1fr; }
  #page-home .home-latest-news-heading { margin-bottom: 32px; }
  .news-article-hero { padding: 116px 24px 48px; }
  .news-article-title { font-size: clamp(38px, 11vw, 54px); }
  .news-article-lead { font-size: 17px; }
  .news-article-body { padding: 54px 24px 68px; }
  .news-article-content > p { font-size: 16px; }
  .news-article-callout { padding: 28px 24px; }
}

/* SHARED FOOTER - used on every page */
.home-footer {
  background: var(--primary-dark);
  color: var(--white);
  padding: 54px 6vw 28px;
  box-shadow: 0 -10px 24px rgba(46,47,49,0.24);
}
.home-footer-main {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(520px, 1.2fr);
  gap: 70px;
  align-items: start;
}
.home-footer-brand { display: flex; align-items: flex-start; gap: 34px; }
.home-footer-logo { width: 175px; height: auto; }
.home-footer-support { width: 155px; height: auto; max-height: 94px; object-fit: contain; object-position: left top; }
.home-footer-nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.home-footer-nav > div { display: flex; flex-direction: column; gap: 11px; }
.home-footer-nav strong {
  font: 700 12px/1.2 var(--font-sans);
  color: var(--naipo-green);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.home-footer-nav button {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  text-align: left;
  font: 300 12px/1.4 var(--font-sans);
  cursor: pointer;
}
.home-footer-nav button:hover { color: var(--naipo-beige); }
.home-footer-bottom {
  max-width: 1320px;
  margin: 54px auto 0;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.45);
  text-align: center;
  color: rgba(255,255,255,.65);
  font: 300 11px/1.4 var(--font-sans);
}

/* Laptop tuning - the design reference is 13-16 inch screens. */
@media (max-width: 1280px) {
  #page-home .home-hero { padding-left: 48px; padding-right: 48px; }
  
  #page-home .home-v5-impact,
  .home-footer { padding-left: 48px; padding-right: 48px; }
}

@media (max-width: 900px) {
  #page-home .home-hero { min-height: 88vh; padding: 132px 24px 54px; }
  #page-home .home-hero-bg { inset: -4%; background-position: 58% center; }
  #page-home .home-hero-content { gap: 24px; }
  
  #page-home .home-hero-bottom { align-items: flex-start; gap: 26px; }
  
  
  #page-home .home-v5-impact { padding: 64px 24px; }
  #page-home .home-impact-grid { grid-template-columns: 1fr; gap: 38px; }
  #page-home .home-v5-impact h2 { font-size: clamp(40px, 10vw, 58px); }

  #page-home .home-v5-partners { padding: 28px 0; }
  #page-home .home-partner-row img { height: 32px; max-width: 130px; }

  .home-footer { padding: 46px 24px 26px; }
  .home-footer-main { grid-template-columns: 1fr; gap: 44px; }
  .home-footer-nav { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
  .home-footer-brand { flex-direction: column; gap: 20px; }
  .home-footer-nav { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
}
/* =========================================================
   BACK TO TOP BUTTON
   Global button used on every page
   ========================================================= */

.back-to-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 100;

  width: 52px;
  height: 52px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(46, 47, 49, 0.35);
  border-radius: 50%;

  background: var(--naipo-green);
  color: var(--anthracite);

  font: 700 24px/1 var(--font-sans);

  cursor: pointer;

  box-shadow: 0 7px 20px rgba(46, 47, 49, 0.25);

  opacity: 0;
  visibility: hidden;

  transform: translateY(14px);

  transition:
    opacity 0.3s ease,
    transform 0.3s ease,
    background 0.3s ease,
    color 0.3s ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover {
  background: var(--primary-dark);
  color: var(--naipo-green);
  transform: translateY(-3px);
}

@media (max-width: 560px) {
  .back-to-top {
    right: 18px;
    bottom: 18px;
    width: 46px;
    height: 46px;
    font-size: 21px;
  }
}
/* =========================================================
   ABOUT US V12 — Canva-inspired layout (August 2026)
   Scoped to #page-about-us so the Home and other subpages keep
   their existing design. Uses only the established NAIPO palette,
   typography, radii, shadows and motion language.
   ========================================================= */

#page-about-us section[id] {
  scroll-margin-top: 110px;
}

/* About Us hero: shared subpage system, with intentional desktop line breaks. */
#page-about-us .about-hero-title {
  width: min(78%, 1040px);
  max-width: 1040px;
}
#page-about-us .about-hero-title > span {
  display: block;
  white-space: nowrap;
}

/* Shared inner width for every About Us V10 section. */
#page-about-us .about-shell {
  width: min(88%, 1320px);
  margin: 0 auto;
}

#page-about-us .about-section-title {
  margin: 0;
  max-width: 980px;
  font: 900 clamp(38px, 4.25vw, 64px)/0.98 var(--font-sans);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--anthracite);
}

#page-about-us .about-heading-block {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 48px;
}

#page-about-us .about-kicker {
  font: var(--type-kicker);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--primary-dark);
}

/* ---------------------------------------------------------
   At a glance
   --------------------------------------------------------- */
#page-about-us .about-glance {
  background: var(--naipo-beige);
  padding: 96px 0 104px;
}

#page-about-us .about-glance-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  gap: clamp(42px, 5vw, 76px);
  margin-top: 58px;
  align-items: stretch;
}

#page-about-us .about-glance-column {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

#page-about-us .about-glance-column p,
#page-about-us .about-partners-copy,
#page-about-us .about-team-intro {
  margin: 0;
  font: 400 17px/1.65 var(--font-sans);
  color: var(--anthracite);
}

#page-about-us .about-glance-divider {
  width: 1px;
  height: 70%;
  align-self: center;
  background: var(--naipo-grey);
}

#page-about-us .about-image-scroll {
  width: 70%;
  margin: 82px auto 0;
}

#page-about-us .about-project-image,
#page-about-us .about-partners-image {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
}

/* ---------------------------------------------------------
   Partners
   --------------------------------------------------------- */
#page-about-us .about-partners {
  background: var(--naipo-sand);
  padding: 96px 0 104px;
}

#page-about-us .about-partners-copy {
  max-width: 1120px;
  margin-top: 30px;
}

#page-about-us .about-partners-image-scroll {
  width: 65%;
  margin-top: 64px;
}

#page-about-us .about-partners-cta {
  display: flex;
  justify-content: center;
  margin-top: 56px;
}

#page-about-us .about-outline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 172px;
  padding: 12px 26px;
  border: 2px solid var(--anthracite);
  border-radius: var(--radius-pill);
  background: var(--naipo-sand);
  color: var(--anthracite);
  font: 700 15px/1.2 var(--font-sans);
  text-transform: uppercase;
  box-shadow: 7px 7px 10px rgba(46,47,49,0.22);
  transition:
    transform var(--duration-fast) var(--ease-out),
    box-shadow var(--duration-fast) var(--ease-out),
    background var(--duration-fast) var(--ease-out),
    color var(--duration-fast) var(--ease-out);
}

#page-about-us .about-outline-button:hover {
  background: var(--primary-dark);
  color: var(--naipo-grey);
  transform: translateY(-1px);
  box-shadow: 5px 8px 12px rgba(46,47,49,0.25);
}

/* ---------------------------------------------------------
   Governance
   --------------------------------------------------------- */
#page-about-us .about-governance {
  background: var(--naipo-beige);
  padding: 96px 0 104px;
}

#page-about-us .about-governance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

#page-about-us .about-governance-card {
  min-height: 150px;
  box-sizing: border-box;
  padding: 30px;
  border-radius: var(--radius-md);
  background: var(--naipo-sand);
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}

#page-about-us .about-governance-card:hover {
  transform: translateY(-8px);
  box-shadow: 12px 22px 28px rgba(46,47,49,0.32);
}

#page-about-us .about-governance-card h3 {
  margin: 0 0 12px;
  font: 700 20px/1.25 var(--font-sans);
  color: var(--anthracite);
  transform-origin: center;

  transition: transform 0.35s ease;
}

#page-about-us .about-governance-card:hover h3 {
  transform: scale(1.03);
}

#page-about-us .about-governance-card p {
  margin: 0;
  font: 300 15px/1.55 var(--font-sans);
  color: var(--text-muted);
}

/* ---------------------------------------------------------
   Core team
   --------------------------------------------------------- */
#page-about-us .about-team {
  background: var(--naipo-sand);
  padding: 96px 0 110px;
}

#page-about-us .about-team-intro {
  max-width: 980px;
  margin-bottom: 52px;
}

#page-about-us .about-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 34px;
  padding: 14px 30px 30px;
  border-radius: var(--radius-md);
  background: var(--naipo-beige);
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
}

#page-about-us .about-team-member {
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: 0;
  padding: 24px 0;
  border-top: 1px solid var(--naipo-grey);
}

#page-about-us .about-team-member:nth-child(-n/**/+3) {
  border-top: none;
}

#page-about-us .about-team-photo {
  width: 128px;
  height: 128px;
  flex: 0 0 128px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--naipo-grey);
  color: var(--anthracite-soft);
  font: 300 12px/1.2 var(--font-sans);
  text-align: center;
}

#page-about-us .about-team-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

#page-about-us .about-team-copy strong {
  font: 700 17px/1.2 var(--font-sans);
  color: var(--anthracite);
}

#page-about-us .about-team-copy span {
  font: 400 14px/1.35 var(--font-sans);
  color: var(--anthracite);
}

#page-about-us .about-team-copy small {
  font: 300 13px/1.35 var(--font-sans);
  color: var(--text-muted);
}

/* Footer About Us anchors use exactly the same visual treatment as buttons. */
.home-footer-nav a {
  appearance: none;
  border: 0;
  padding: 0;
  background: transparent;
  color: rgba(255,255,255,.72);
  text-align: left;
  font: 300 12px/1.4 var(--font-sans);
  cursor: pointer;
}
.home-footer-nav a:hover { color: var(--naipo-beige); }

/* ---------------------------------------------------------
   About Us V10 responsive behaviour
   --------------------------------------------------------- */
@media (max-width: 1280px) {
  #page-about-us .about-shell { width: calc(100% - 96px); }
  #page-about-us .about-hero-title { width: 86%; }
  #page-about-us .about-team-photo {
    width: 108px;
    height: 108px;
    flex-basis: 108px;
  }
}

@media (max-width: 900px) {
  #page-about-us .about-shell { width: calc(100% - 48px); }

  #page-about-us .about-hero-title {
    width: 100%;
    max-width: 760px;
  }
  #page-about-us .about-hero-title > span { white-space: normal; }

  #page-about-us .about-glance,
  #page-about-us .about-partners,
  #page-about-us .about-governance,
  #page-about-us .about-team {
    padding-top: 72px;
    padding-bottom: 80px;
  }

  #page-about-us .about-glance-grid {
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 42px;
  }

  #page-about-us .about-glance-divider { display: none; }

#page-about-us .about-image-scroll,
#page-about-us .about-partners-image-scroll {
  width: 100%;
  overflow: visible;
  padding: 0;
}

#page-about-us .about-project-image,
#page-about-us .about-partners-image {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
}

  #page-about-us .about-governance-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  #page-about-us .about-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 28px;
  }

  #page-about-us .about-team-photo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
  }
}

@media (max-width: 560px) {
  #page-about-us .about-shell { width: calc(100% - 36px); }

  #page-about-us .about-section-title {
    font-size: clamp(34px, 10vw, 46px);
  }

  #page-about-us .about-glance-column p,
  #page-about-us .about-partners-copy,
  #page-about-us .about-team-intro {
    font-size: 15px;
    line-height: 1.6;
  }

  #page-about-us .about-image-scroll { margin-top: 58px; }
  #page-about-us .about-partners-image-scroll { margin-top: 48px; }


  #page-about-us .about-partners-cta { margin-top: 36px; }

  #page-about-us .about-heading-block { margin-bottom: 34px; }

  #page-about-us .about-governance-card {
    min-height: 0;
    padding: 24px;
  }

  #page-about-us .about-team-grid {
    grid-template-columns: 1fr;
    padding: 12px 20px 24px;
  }

  #page-about-us .about-team-member {
    gap: 18px;
    padding: 20px 0;
  }

  #page-about-us .about-team-photo {
    width: 82px;
    height: 82px;
    flex-basis: 82px;
    font-size: 10px;
  }

  #page-about-us .about-team-copy strong { font-size: 16px; }
}

/* Keep the fixed header from overlapping the About Us hero on smaller screens. */
@media (max-width: 900px) {
  #page-about-us .subpage-hero { padding-top: 118px; }
}
@media (max-width: 560px) {
  #page-about-us .subpage-hero { padding-top: 108px; }
}


/* =========================================================
   V12 FINISHING PASS — September 2026
   Approved improvements for Home, About Us, Partners and Research.
   News & Insights is now included in the shared finishing pass.
   ========================================================= */

/* Global page polish */
html { scroll-behavior: smooth; }
#page-about-us .subpage-hero,
#page-partners .subpage-hero,
#page-research .subpage-hero,
#page-news-insights .subpage-hero,
#page-home .home-hero {
  box-shadow: 0 14px 26px rgba(46,47,49,0.12);
  position: relative;
  z-index: 2;
}

@media (prefers-reduced-motion: no-preference) {
  .reveal[data-reveal-delay="70"] { transition-delay: 70ms; }
  .reveal[data-reveal-delay="80"] { transition-delay: 80ms; }
  .reveal[data-reveal-delay="90"] { transition-delay: 90ms; }
  .reveal[data-reveal-delay="100"] { transition-delay: 100ms; }
  .reveal[data-reveal-delay="140"] { transition-delay: 140ms; }
  .reveal[data-reveal-delay="160"] { transition-delay: 160ms; }
  .reveal[data-reveal-delay="180"] { transition-delay: 180ms; }
  .reveal[data-reveal-delay="260"] { transition-delay: 260ms; }
  .reveal-zoom { transform: scale(.985); }
  .reveal-zoom.is-in { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal, .reveal-zoom { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------------------------------------------------------
   HOME — semantic hero classes + refined interactions
   --------------------------------------------------------- */
#page-home .home-hero {
  padding: 120px 64px 88px;
  display: flex;
  flex-direction: column;
  gap: 28px;
  align-items: flex-start;
  overflow: hidden;
}
#page-home .home-hero-content {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 36px;
  align-items: flex-start;
  max-width: 1080px;
}
#page-home .home-hero-kicker {
  display: block;
  width: fit-content;
  margin: 0;
  padding: 0;
  color: rgba(46,47,49,0.70);
  text-shadow: 0 1px 0 rgba(255,255,255,0.22);
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .22em;
  text-transform: uppercase;
}
#page-home .home-hero-title {
  margin: 0;
  font: 900 clamp(68px, 8.4vw, 130px)/.92 var(--font-sans);
  text-transform: uppercase;
  letter-spacing: -.02em;
  color: var(--white);
  text-shadow: 0 7px 20px rgba(46,47,49,.25);
}
#page-home .home-hero-accent-dark { color: var(--anthracite); }
#page-home .home-hero-dot { color: var(--epfl-red); }
#page-home .home-hero-bottom {
  display: flex;
  gap: 48px;
  align-items: center;
  flex-wrap: wrap;
}
#page-home .home-hero-description {
  margin: 0;
  max-width: 600px;
  font: 400 19px/1.6 var(--font-sans);
  color: rgba(46,47,49,.72);
}
#page-home .home-hero-actions { display: flex; gap: 14px; margin-left: 28px; }
#page-home .home-hero-primary,
#page-home .home-hero-secondary {
  padding: 16px 34px;
  border-radius: var(--radius-pill);
  cursor: pointer;
  font: 700 17px/1.2 var(--font-sans);
  transition:
    background var(--duration-fast) var(--ease-out),
    border-color var(--duration-fast) var(--ease-out),
    color var(--duration-fast) var(--ease-out),
    transform var(--duration-fast) var(--ease-out),
    box-shadow var(--duration-fast) var(--ease-out);
}
#page-home .home-hero-primary {
  background: var(--primary-dark);
  color: var(--white);
  border: 1px solid var(--anthracite);
  box-shadow: 0 7px 16px rgba(46,47,49,.24);
}
#page-home .home-hero-primary:hover {
  background: var(--white);
  color: var(--anthracite);
  transform: translateY(-1px);
  box-shadow: 5px 8px 12px rgba(46,47,49,.25);
}
#page-home .home-hero-secondary {
  background: transparent;
  color: var(--white);
  -webkit-text-fill-color: var(--white);
  border: 1px solid rgba(255,255,255,.94);
  box-shadow: 0 7px 16px rgba(46,47,49,.14);
}
#page-home .home-hero-secondary:hover {
  background: var(--white);
  color: var(--naipo-green);
  -webkit-text-fill-color: var(--naipo-green);
  border-color: var(--white);
  transform: translateY(-1px);
  box-shadow: 5px 8px 12px rgba(46,47,49,.25);
}
#page-home .home-partner-row img {
  transition: transform .3s var(--ease-out), opacity .3s var(--ease-out);
  transform-origin: center;
}
#page-home .home-partner-row img:hover { transform: scale(1.05); }

/* Footer links are real anchors throughout V12. */
.home-footer-nav a {
  color: rgba(255,255,255,.72);
  font: 300 12px/1.4 var(--font-sans);
  transition: color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);
}
.home-footer-nav a:hover { color: var(--naipo-beige); transform: translateX(2px); }

/* ---------------------------------------------------------
   ABOUT US — motion, team interaction, responsive dividers
   --------------------------------------------------------- */
#page-about-us .about-governance-card {
  transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}
#page-about-us .about-governance-card:hover { background-color: #CEB6A1; }
#page-about-us .about-team-member { transition: transform .3s var(--ease-out); }
#page-about-us .about-team-photo {
  transition: transform .3s var(--ease-out), box-shadow .3s var(--ease-out);
}
#page-about-us .about-team-copy strong { transition: color .3s var(--ease-out); }
#page-about-us .about-team-member:hover .about-team-photo {
  transform: scale(1.05);
  box-shadow: 0 10px 20px rgba(46,47,49,.18);
}
#page-about-us .about-team-member:hover .about-team-copy strong { color: var(--naipo-green-alt-1); }
#page-about-us .about-swipe-hint {
  display: none;
  margin: 54px 0 -42px;
  text-align: center;
  font: 700 10px/1.2 var(--font-sans);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#page-about-us .about-partners-swipe-hint { margin-top: 44px; }

/* ---------------------------------------------------------
   PARTNERS — semantic cards, equal logo zones, links + motion
   --------------------------------------------------------- */
#page-partners .partners-groups {
  background: var(--naipo-beige);
  padding: 96px 64px 110px;
  display: flex;
  flex-direction: column;
  gap: 84px;
}
#page-partners .partner-group {
  max-width: 1320px;
  width: 100%;
  margin: 0 auto;
  scroll-margin-top: 110px;
}
#page-partners .partner-group + .partner-group {
  padding-top: 72px;
  border-top: 1px solid rgba(118,145,131,.42);
}
#page-partners .partner-group-heading { margin-bottom: 42px; }
#page-partners .partners-kicker {
  display: block;
  margin-bottom: 12px;
  font: var(--type-kicker);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--primary-dark);
}
#page-partners .partner-group-title {
  margin: 0;
  font: 900 clamp(34px, 3.4vw, 50px)/1.05 var(--font-sans);
  text-transform: uppercase;
  letter-spacing: -.015em;
  color: var(--anthracite);
}
#page-partners .partner-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 24px;
  align-items: stretch;
}
#page-partners .partner-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 190px;
  padding: 26px;
  border: 2px solid rgba(118,145,131,.45);
  border-radius: var(--radius-md);
  background: var(--naipo-beige);
  color: var(--anthracite);
  box-shadow: 12px 15px 22px rgba(46,47,49,.28);
  overflow: hidden;
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out), border-color .35s ease;
}
#page-partners .partner-card:hover {
  color: var(--anthracite);
  transform: translateY(-6px);
  box-shadow: 12px 22px 28px rgba(46,47,49,.32);
  border-color: var(--naipo-green-alt-1);
}
#page-partners .partner-logo {
  height: 86px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
#page-partners .partner-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 78%;
  max-height: 64px;
  object-fit: contain;
  transition: transform .35s var(--ease-out);
}
#page-partners .partner-card:hover .partner-logo img { transform: scale(1.04); }
#page-partners .partner-info { display: flex; flex-direction: column; gap: 5px; margin-top: auto; }
#page-partners .partner-name {
  font: 700 16px/1.3 var(--font-sans);
  color: var(--anthracite);
  transition: color .35s var(--ease-out);
}
#page-partners .partner-card:hover .partner-name { color: var(--naipo-green-alt-1); }
#page-partners .partner-type {
  font: 700 11px/1.3 var(--font-sans);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--naipo-green-alt-1);
}
#page-partners .partner-external {
  position: absolute;
  right: 18px;
  top: 16px;
  font: 700 18px/1 var(--font-sans);
  color: var(--anthracite);
  opacity: 0;
  transform: translate(-4px,4px);
  transition: opacity .25s ease, transform .25s ease;
}
#page-partners .partner-card:hover .partner-external { opacity: .7; transform: none; }

/* ---------------------------------------------------------
   RESEARCH — connected program timeline + model-suite finale
   --------------------------------------------------------- */
#page-research .research-subprojects {
  background: var(--naipo-beige);
  padding: 96px 64px 108px;
}
#page-research .research-shell { max-width: 1320px; margin: 0 auto; }
#page-research .research-intro {
  max-width: 820px;
  margin: 0 0 64px;
  font: 300 18px/1.7 var(--font-sans);
  color: var(--anthracite);
}
#page-research .research-heading { display: flex; flex-direction: column; gap: 14px; margin-bottom: 48px; }
#page-research .research-kicker {
  font: 700 13px/1.2 var(--font-sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--primary-dark);
}
#page-research .research-section-title {
  margin: 0;
  max-width: 820px;
  font: 900 clamp(34px,3.4vw,50px)/1.05 var(--font-sans);
  text-transform: uppercase;
  letter-spacing: -.015em;
  color: var(--anthracite);
}
#page-research .research-project-list { position: relative; }
#page-research .research-project-list::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: var(--naipo-grey);
}
#page-research .research-project {
  position: relative;
  display: grid;
  grid-template-columns: 80px 1fr 1.2fr;
  gap: 32px;
  align-items: baseline;
  padding: 30px 0 30px 42px;
  border-top: 1px solid var(--naipo-grey);
  transition: transform .3s var(--ease-out), border-color .3s ease;
}
#page-research .research-project::before {
  content: "";
  position: absolute;
  left: 13px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--naipo-green-alt-1);
  opacity: 0;
  transform: scaleY(.3);
  transition: opacity .3s ease, transform .3s var(--ease-out);
}
#page-research .research-project:hover { transform: translateX(4px); border-top-color: var(--anthracite); }
#page-research .research-project:hover::before { opacity: 1; transform: scaleY(1); }
#page-research .research-project-number {
  font: 900 28px/1 var(--font-sans);
  color: var(--naipo-green-alt-1);
  transition: color .3s ease;
}
#page-research .research-project-title {
  margin: 0;
  font: 700 24px/1.2 var(--font-sans);
  color: var(--anthracite);
  transition: color .3s ease;
}
#page-research .research-project-description {
  margin: 0;
  font: 300 16px/1.6 var(--font-sans);
  color: var(--text-muted);
}
#page-research .research-project:hover .research-project-number { color: var(--anthracite); }
#page-research .research-project:hover .research-project-title { color: var(--naipo-green-alt-1); }
#page-research .research-model-suite {
  background: var(--naipo-beige);
  padding: 112px 64px 116px;
}
#page-research .research-model-suite .research-heading { margin-bottom: 28px; }
#page-research .research-model-copy {
  max-width: 760px;
  margin: 0 0 52px;
  font: 300 17px/1.65 var(--font-sans);
  color: var(--anthracite);
}
#page-research .research-model-image { max-width: 1000px; margin: 0 auto; }
#page-research .research-model-image img {
  display: block;
  width: 100%;
  height: auto;
  box-shadow: 12px 15px 22px rgba(46,47,49,.28);
}
#page-research section[id] { scroll-margin-top: 110px; }

/* ---------------------------------------------------------
   V12 responsive pass
   --------------------------------------------------------- */
@media (max-width: 1280px) {
  #page-home .home-hero-title { font-size: clamp(56px,7vw,92px); }
  #page-partners .partners-groups,
  #page-research .research-subprojects,
  #page-research .research-model-suite { padding-left: 48px; padding-right: 48px; }
}

@media (max-width: 900px) {
  #page-home .home-hero { min-height: 88vh; padding: 132px 24px 54px; }
  #page-home .home-hero-content { gap: 24px; }
  #page-home .home-hero-title { font-size: clamp(48px,12vw,76px); }
  #page-home .home-hero-bottom { align-items: flex-start; gap: 26px; }
  #page-home .home-hero-actions { width: 100%; margin-left: 0; flex-wrap: wrap; }
  #page-home .home-hero-primary,
  #page-home .home-hero-secondary { padding: 13px 22px; font-size: 14px; }
  #page-about-us .about-team-member:nth-child(-n/**/+3) { border-top: 1px solid var(--naipo-grey); }
  #page-about-us .about-team-member:nth-child(-n/**/+2) { border-top: none; }
  #page-about-us .about-swipe-hint { display: block; }

  #page-partners .partners-groups { padding: 72px 24px 88px; gap: 68px; }
  #page-partners .partner-group + .partner-group { padding-top: 56px; }
  #page-partners .partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }

  #page-research .research-subprojects,
  #page-research .research-model-suite { padding: 76px 24px 86px; }
  #page-research .research-project {
    grid-template-columns: 68px 1fr;
    gap: 12px 22px;
    padding-left: 34px;
  }
  #page-research .research-project-description { grid-column: 2; }
  #page-research .research-project-list::before { left: 10px; }
  #page-research .research-project::before { left: 9px; }
}

@media (max-width: 560px) {
  #page-home .home-hero-kicker { white-space: normal; font-size: 10px; letter-spacing: .20em; }
  #page-home .home-hero-title { font-size: clamp(42px,13vw,60px); }
  #page-home .home-hero-description { font-size: 15px; }

  #page-about-us .about-team-member:nth-child(-n/**/+2) { border-top: 1px solid var(--naipo-grey); }
  #page-about-us .about-team-member:first-child { border-top: none; }

  #page-partners .partner-grid { grid-template-columns: 1fr; }
  #page-partners .partner-card { min-height: 174px; padding: 22px; }
  #page-partners .partner-logo { height: 76px; }

  #page-research .research-intro { font-size: 16px; margin-bottom: 50px; }
  #page-research .research-project-list::before { left: 8px; }
  #page-research .research-project {
    display: block;
    padding: 24px 0 28px 30px;
  }
  #page-research .research-project::before { left: 7px; }
  #page-research .research-project-number { display: block; margin-bottom: 12px; font-size: 26px; }
  #page-research .research-project-title { font-size: 20px; margin-bottom: 10px; }
  #page-research .research-project-description { font-size: 15px; }
  #page-research .research-model-image { width: 100%; overflow-x: auto; padding-bottom: 16px; }
  #page-research .research-model-image img { min-width: 720px; width: auto; max-width: none; }
}


/* =========================================================
   V13 — RESPONSIVE + STRUCTURAL FINISHING PASS
   P1 + P2 approved tasks. News page content remains untouched.
   ========================================================= */

/* ---------- Shared header: semantic desktop + real mobile navigation ---------- */
.site-header {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  gap: 36px;
  min-height: 82px;
  box-sizing: border-box;
  padding: 20px 64px;
  background: var(--primary-dark) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}
.site-logo-link { display: flex; align-items: center; flex: 0 0 auto; }
.site-logo { display:block; height:42px; width:auto; }
.site-nav { display:flex; align-items:center; gap:32px; margin-left:auto; }
.site-nav-link {
  position: relative;
  display: inline-block;
  padding-bottom: 4px;
  white-space: nowrap;
  font: 700 13px/1.2 var(--font-sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 2px solid transparent;
  color: rgba(255,255,255,.85);
  -webkit-text-fill-color: transparent;
  background: linear-gradient(90deg,var(--naipo-green-alt-2) 0%,var(--naipo-green-alt-2) 50%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.85) 100%);
  background-size: 200% 100%;
  background-position: 100% 0;
  -webkit-background-clip:text;
  background-clip:text;
  transform-origin:center;
  transition: transform 1s var(--ease-out), background-position 1s ease, border-color .3s ease;
}
.site-nav-link:hover { transform:scale(1.15); background-position:0 0; }
.site-nav-link.is-active { color:var(--naipo-green-alt-2) !important; -webkit-text-fill-color:var(--naipo-green-alt-2); border-bottom-color:var(--naipo-green-alt-2) !important; }
.site-header-actions { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.language-selector { position:relative; }
.language-toggle {
  display:flex; align-items:center; gap:6px; cursor:pointer;
  font:700 12px/1 var(--font-sans); letter-spacing:.08em;
  color:var(--white); background:transparent;
  border:1px solid rgba(255,255,255,.4); border-radius:var(--radius-pill); padding:8px 14px;
}
.language-chevron { font-size:9px; transition:transform var(--duration-fast) var(--ease-out); }
.language-toggle[aria-expanded="true"] .language-chevron { transform:rotate(180deg); }
.site-menu-toggle {
  display:none; width:44px; height:40px; padding:9px 10px; border:1px solid rgba(255,255,255,.34);
  border-radius:var(--radius-pill); background:transparent; cursor:pointer;
  flex-direction:column; justify-content:center; gap:5px;
}
.site-menu-toggle span { display:block; width:100%; height:2px; border-radius:2px; background:var(--white); transition:transform .28s ease,opacity .2s ease; }
.site-menu-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.site-menu-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.site-menu-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.site-header.is-scrolled { padding:14px 64px !important; min-height:70px; }

/* ---------- Hero geometry: never hidden behind fixed header ---------- */
.subpage-hero {
  min-height:42vh;
  padding:132px 6vw 52px;
  align-items:flex-start;
}
.subpage-hero-title { width:min(72%,900px); }
#page-home .home-hero { padding-top:200px; }

/* Button correction: primary button becomes borderless on hover. */
#page-home .home-hero-primary:hover { border-color:transparent; }

/* ---------- Content image captions ---------- */
.media-caption {
  margin-top:12px;
  font:300 12px/1.45 var(--font-sans);
  color:var(--text-muted);
  text-align:left;
}

/* ---------- About Us: true responsive figures, no horizontal swipe ---------- */
#page-about-us .about-content-figure {
  width:min(100%,1100px);
  margin:72px auto 0;
  padding:0;
}
#page-about-us .about-partners-figure { margin-top:56px; }
#page-about-us .about-content-figure img {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0 auto;
  box-shadow:12px 15px 22px rgba(46,47,49,.28);
}

/* ---------- Partners: normalized visual logo field without distortion ---------- */
#page-partners .partner-logo {
  height:96px;
  width:100%;
  padding:8px 12px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}
#page-partners .partner-logo img {
  width:auto;
  height:auto;
  max-width:72%;
  max-height:58px;
  object-fit:contain;
}
/* Very wide marks need less width; the tall SMN mark needs a little more height. */
#page-partners .partner-card:is(#hug,#usz,#navignostics,#hedera-dx) .partner-logo img { max-width:64%; }
#page-partners #swiss-medical-network .partner-logo img { max-width:52%; max-height:72px; }
#page-partners #roche .partner-logo img { max-width:58%; max-height:64px; }

/* ---------- Research: Model Suite now precedes Subprojects ---------- */
#page-research .research-introduction .research-intro { margin-bottom:0; }
#page-research .research-model-suite { padding-top:120px; padding-bottom:104px; }
#page-research .research-subprojects { padding-top:96px; }
#page-research .research-model-image { width:min(100%,1000px); margin:0 auto; overflow:visible; padding:0; }
#page-research .research-model-image img { width:100%; max-width:100%; min-width:0; height:auto; }

/* Research hover: no permanent timeline and no layout shift. */
#page-research .research-project-list::before { display:none !important; }
#page-research .research-project {
  padding-left:34px;
  transition:border-color .28s ease, background-color .28s ease;
}
#page-research .research-project::before {
  left:6px;
  top:27px;
  bottom:auto;
  width:3px;
  height:30px;
  border-radius:2px;
  opacity:0;
  transform:scaleY(.35);
  transform-origin:center;
}
#page-research .research-project:hover {
  transform:none;
  border-top-color:var(--naipo-grey);
  background:rgba(255,255,255,.12);
}
#page-research .research-project:hover::before { opacity:1; transform:scaleY(1); }
#page-research .research-project:hover .research-project-number { color:var(--anthracite); }
#page-research .research-project:hover .research-project-title { color:var(--naipo-green-alt-1); }

/* ---------- Intermediate widths: switch before horizontal nav becomes cramped ---------- */
@media (max-width:1100px) {
  .site-header, .site-header.is-scrolled { min-height:76px; padding:16px 28px !important; gap:18px; }
  .site-logo { height:38px; }
  .site-header-actions { margin-left:auto; }
  .site-menu-toggle { display:flex; }
  .site-nav {
    position:absolute;
    top:100%; left:0; right:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    margin:0;
    padding:12px 28px 22px;
    background:var(--primary-dark);
    border-top:1px solid rgba(255,255,255,.08);
    box-shadow:0 18px 28px rgba(25,26,27,.28);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .24s ease, transform .24s ease, visibility .24s ease;
  }
  .site-header.menu-open .site-nav { opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .site-nav-link {
    width:100%;
    box-sizing:border-box;
    padding:17px 4px;
    font-size:13px;
    border-bottom:1px solid rgba(255,255,255,.10);
  }
  .site-nav-link:last-child { border-bottom:0; }
  .site-nav-link:hover { transform:translateX(4px); }
  .language-menu { top:calc(100% + 8px); right:0; }
  body.mobile-menu-open { overflow:hidden; }

  .subpage-hero { min-height:auto; padding:124px 36px 48px; }
  .subpage-hero-inner { gap:18px; }
  .subpage-hero-title { width:100%; max-width:840px; font-size:clamp(42px,7.4vw,66px); }
  .subpage-hero-description { max-width:680px; }
  #page-home .home-hero { min-height:88vh; padding:126px 36px 58px; }
  #page-home .home-hero-title { font-size:clamp(52px,9vw,84px); }

  #page-about-us .about-content-figure { margin-top:54px; }
  #page-partners .partner-logo img { max-width:68%; }
  #page-research .research-introduction,
  #page-research .research-model-suite,
  #page-research .research-subprojects { padding-left:36px; padding-right:36px; }
}

@media (max-width:700px) {
  .site-header, .site-header.is-scrolled { min-height:70px; padding:13px 18px !important; }
  .site-logo { height:34px; }
  .language-toggle { padding:7px 11px; }
  .site-menu-toggle { width:40px; height:36px; }
  .site-nav { padding:8px 18px 18px; }

  .subpage-hero { padding:104px 20px 38px; }
  .subpage-hero-label { font-size:10px; letter-spacing:.20em; }
  .subpage-hero-title { font-size:clamp(34px,10.8vw,52px); line-height:.98; }
  .subpage-hero-description { font-size:15px; line-height:1.5; }

  #page-home .home-hero { min-height:auto; padding:104px 20px 46px; }
  #page-home .home-hero-content { gap:22px; }
  #page-home .home-hero-title { font-size:clamp(40px,13vw,60px); line-height:.94; }
  #page-home .home-hero-bottom { gap:22px; }
  #page-home .home-hero-description { font-size:15px; line-height:1.55; }
  #page-home .home-hero-actions { width:100%; margin-left:0; gap:10px; }
  #page-home .home-hero-primary,#page-home .home-hero-secondary { padding:12px 19px; font-size:13px; }

  #page-about-us .about-content-figure { width:100%; margin-top:42px; }
  #page-about-us .about-partners-figure { margin-top:38px; }
  .media-caption { font-size:11px; margin-top:9px; }

  #page-partners .partner-logo { height:82px; }
  #page-partners .partner-logo img { max-width:64%; max-height:52px; }
  #page-partners #swiss-medical-network .partner-logo img { max-height:62px; }

  #page-research .research-introduction,
  #page-research .research-model-suite,
  #page-research .research-subprojects { padding-left:20px; padding-right:20px; }
  #page-research .research-introduction { padding-top:68px; padding-bottom:38px; }
  #page-research .research-model-suite { padding-top:90px; padding-bottom:76px; }
  #page-research .research-subprojects { padding-top:72px; padding-bottom:80px; }
  #page-research .research-project { display:block; padding:24px 0 28px 26px; }
  #page-research .research-project::before { left:4px; top:24px; height:27px; }
  #page-research .research-project-number { display:block; margin-bottom:12px; font-size:26px; }
  #page-research .research-project-title { margin-bottom:10px; font-size:20px; }
  #page-research .research-project-description { font-size:15px; }
}

/* =========================================================
   V16.1 — News cards + article demo polish
   ========================================================= */

/* Keep the News section airy while clearly separating each card. */
.news-listing,
#page-home .home-latest-news {
  background: var(--naipo-sand);
}

.news-grid > .news-card {
  background: var(--naipo-beige);
  border-color: transparent;
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
  overflow: hidden;
  transition:
    transform 0.35s ease,
    box-shadow 0.35s ease;
}

.news-grid > .news-card:hover {
  transform: translateY(-8px);
  box-shadow: 12px 22px 28px rgba(46,47,49,0.32);
}

.news-card-media {
  height: 220px !important;
  background: transparent !important;
  overflow: hidden;
}

.news-card-image {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
  display: block;
  opacity: 1 !important;
  transition: transform 0.45s var(--ease-out);
}

.news-card:hover .news-card-image {
  transform: scale(1.03);
}

.news-card-content {
  background: var(--naipo-beige);
}

#page-news-insights .contact-cta-section {
  background: var(--naipo-sand);
}

/* Article demo: image-only, shallower hero; all editorial information sits below. */
.news-article-hero {
  position: relative;
  height: clamp(300px, 44vh, 460px);
  padding: 0;
  background: var(--primary-dark);
  overflow: hidden;
  box-shadow: 0 14px 26px rgba(46,47,49,0.12);
}

.news-article-hero-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center 52%;
}

.news-article-intro {
  background: var(--naipo-beige);
  padding: 68px 6vw 18px;
}

.news-article-intro .news-article-shell {
  max-width: 920px;
}

.news-article-meta {
  margin-bottom: 24px;
}

.news-article-title {
  max-width: 920px;
  font-size: clamp(42px, 5vw, 70px);
}

.news-article-lead {
  max-width: 760px;
  margin-top: 26px;
}

.news-article-divider {
  width: 100%;
  height: 2px;
  margin-top: 42px;
  background: var(--naipo-green-alt-1);
}

.news-article-body {
  padding-top: 46px;
}

.news-article-content h2 {
  color: var(--primary-dark);
}

.news-article-back {
  color: var(--primary-dark);
}

.news-article-back:hover {
  color: var(--naipo-green-alt-1);
}

@media (max-width: 900px) {
  .news-card-media { height: 200px !important; }
  .news-article-hero { height: clamp(280px, 40vh, 380px); }
  .news-article-intro { padding: 52px 24px 12px; }
}

@media (max-width: 560px) {
  .news-card-media { height: 190px !important; }
  .news-article-hero { height: 230px; }
  .news-article-intro { padding: 42px 24px 8px; }
  .news-article-divider { margin-top: 30px; }
}


/* =========================================================
   V16.1 — News responsive card-density refinement
   Keep a maximum of 3 columns and drop a column before cards
   become too narrow / portrait-like.
   ========================================================= */

/* Large desktop: 3 cards per row. */
.news-grid,
#page-home .home-news-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Tablet / compact desktop: 2 cards per row before the cards get too narrow. */
@media (max-width: 1100px) {
  .news-grid,
  #page-home .home-news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Small tablet / mobile: 1 card per row so the image stays wide and editorial. */
@media (max-width: 760px) {
  .news-grid,
  #page-home .home-news-grid {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   V16.2 — Shared contact CTA for Partners + News & Insights
   Wide card, reduced height
   ========================================================= */

.contact-cta-section {
  padding: 80px 6vw 80px;
  background: var(--naipo-beige);
}

#page-partners .contact-cta-section {
  background: var(--naipo-sand);
}

.contact-cta-shell {
  width: 100%;
  max-width: 1120px;
  margin: 0 auto;
}

.contact-cta-card {
  box-sizing: border-box;
  width: 100%;
  padding: 28px 48px;
  border-radius: var(--radius-lg);
  background: var(--naipo-beige);
  box-shadow: 12px 15px 22px rgba(46,47,49,0.22);
}

.contact-cta-kicker {
  display: block;
  margin-bottom: 8px;
  font: var(--type-kicker);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--primary-dark);
}

.contact-cta-title {
  max-width: none;
  margin: 0;
  font: 900 clamp(24px, 2.2vw, 32px)/1.05 var(--font-sans);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--anthracite);
  white-space: nowrap;
}

.contact-cta-copy {
  max-width: 760px;
  margin: 16px 0 20px;
  font: 400 17px/1.55 var(--font-sans);
  color: var(--anthracite);
}

.contact-cta-mail {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 5px;
  border-bottom: 2px solid var(--primary-dark);
  font: 700 17px/1.25 var(--font-sans);
  color: var(--primary-dark);
  transition:
    color .25s ease,
    border-color .25s ease,
    transform .25s var(--ease-out);
}

.contact-cta-mail:hover {
  color: var(--naipo-green-alt-1);
  border-bottom-color: var(--naipo-green-alt-1);
  transform: translateX(3px);
}

#page-news-insights .contact-cta-card {
  background: var(--naipo-beige);
}

@media (max-width: 900px) {
  .contact-cta-section {
    padding: 72px 24px 72px;
  }

  .contact-cta-card {
    padding: 26px 36px;
  }

  .contact-cta-title {
    white-space: normal;
  }
}

@media (max-width: 560px) {
  .contact-cta-section {
    padding: 60px 18px 60px;
  }

  .contact-cta-card {
    padding: 24px 22px;
    border-radius: var(--radius-md);
  }

  .contact-cta-title {
    font-size: 24px;
    white-space: normal;
  }

  .contact-cta-copy {
    margin: 14px 0 18px;
    font-size: 15px;
  }

  .contact-cta-mail {
    font-size: 16px;
  }
}


/* =========================================================
   V16.3 — Core Team overview + dedicated directory page
   ========================================================= */

/* About Us: replace the former profile grid with one full-width feature card. */
#page-about-us .about-team-feature-card {
  width: 100%;
  min-height: 360px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  gap: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: var(--naipo-beige);
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
  color: var(--anthracite);
  transition: transform .35s var(--ease-out), box-shadow .35s var(--ease-out);
}

#page-about-us .about-team-feature-card:hover {
  color: var(--anthracite);
  transform: translateY(-8px);
  box-shadow: 12px 22px 28px rgba(46,47,49,0.32);
}

#page-about-us .about-team-group-photo {
  min-height: 360px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 18px;
  border-radius: var(--radius-lg);
  background: var(--naipo-grey);
  color: var(--anthracite-soft);
  font: 400 15px/1.2 var(--font-sans);
  text-align: center;
}

#page-about-us .about-team-feature-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 30px;
  padding: clamp(42px, 5vw, 72px);
}

#page-about-us .about-team-feature-copy h3 {
  margin: 0;
  font: 900 clamp(36px, 4vw, 58px)/.98 var(--font-sans);
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--anthracite);
}

#page-about-us .about-team-feature-link {
  display: inline-flex;
  padding-bottom: 5px;
  border-bottom: 2px solid var(--primary-dark);
  font: 700 16px/1.2 var(--font-sans);
  color: var(--primary-dark);
  transition: color .25s ease, border-color .25s ease, transform .25s var(--ease-out);
}

#page-about-us .about-team-feature-card:hover .about-team-feature-link {
  color: var(--naipo-green-alt-1);
  border-bottom-color: var(--naipo-green-alt-1);
  transform: translateX(3px);
}

/* Dedicated Core Team page. */
#page-core-team .subpage-hero {
  box-shadow: 0 14px 26px rgba(46,47,49,0.12);
  position: relative;
  z-index: 2;
}

#page-core-team .core-team-shell {
  width: min(88%, 1320px);
  margin: 0 auto;
}

#page-core-team .core-team-directory {
  background: var(--naipo-sand);
  padding: 96px 0 110px;
}

#page-core-team .core-team-heading {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 30px;
}

#page-core-team .core-team-kicker {
  font: var(--type-kicker);
  letter-spacing: var(--tracking-kicker);
  text-transform: uppercase;
  color: var(--primary-dark);
}

#page-core-team .core-team-section-title {
  margin: 0;
  max-width: 980px;
  font: 900 clamp(38px, 4.25vw, 64px)/.98 var(--font-sans);
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--anthracite);
}

#page-core-team .core-team-intro {
  max-width: 980px;
  margin: 0 0 52px;
  font: 400 17px/1.65 var(--font-sans);
  color: var(--anthracite);
}

#page-core-team .core-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 34px;
  padding: 14px 30px 30px;
  border-radius: var(--radius-md);
  background: var(--naipo-beige);
  box-shadow: 12px 15px 22px rgba(46,47,49,0.28);
}

#page-core-team .core-team-member {
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: 0;
  padding: 24px 0;
  border-top: 1px solid var(--naipo-grey);
}

#page-core-team .core-team-member:nth-child(-n+3) {
  border-top: none;
}

#page-core-team .core-team-photo {
  width: 128px;
  height: 128px;
  flex: 0 0 128px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--naipo-grey);
  color: var(--anthracite-soft);
  font: 300 12px/1.2 var(--font-sans);
  text-align: center;
}

#page-core-team .core-team-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

#page-core-team .core-team-copy strong {
  font: 700 17px/1.2 var(--font-sans);
  color: var(--anthracite);
}

#page-core-team .core-team-copy span {
  font: 400 14px/1.35 var(--font-sans);
  color: var(--anthracite);
}

#page-core-team .core-team-copy small {
  font: 300 13px/1.35 var(--font-sans);
  color: var(--text-muted);
}

@media (max-width: 1100px) {
  #page-about-us .about-team-feature-card {
    grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr);
    min-height: 310px;
  }
  #page-about-us .about-team-group-photo { min-height: 310px; }
  #page-core-team .core-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 28px;
  }
  #page-core-team .core-team-member:nth-child(-n+3) { border-top: 1px solid var(--naipo-grey); }
  #page-core-team .core-team-member:nth-child(-n+2) { border-top: none; }
  #page-core-team .core-team-photo {
    width: 104px;
    height: 104px;
    flex-basis: 104px;
  }
}

@media (max-width: 700px) {
  #page-about-us .about-team-feature-card {
    grid-template-columns: 1fr;
  }
  #page-about-us .about-team-group-photo {
    min-height: 240px;
    margin: 14px 14px 0;
  }
  #page-about-us .about-team-feature-copy {
    gap: 22px;
    padding: 32px 26px 36px;
  }
  #page-about-us .about-team-feature-copy h3 {
    font-size: clamp(32px, 10vw, 46px);
  }
  #page-core-team .subpage-hero { padding-top: 104px; }
  #page-core-team .core-team-shell { width: calc(100% - 36px); }
  #page-core-team .core-team-directory { padding: 72px 0 80px; }
  #page-core-team .core-team-grid {
    grid-template-columns: 1fr;
    padding: 12px 20px 24px;
  }
  #page-core-team .core-team-member,
  #page-core-team .core-team-member:nth-child(-n+2),
  #page-core-team .core-team-member:nth-child(-n+3) {
    border-top: 1px solid var(--naipo-grey);
  }
  #page-core-team .core-team-member:first-child { border-top: none; }
  #page-core-team .core-team-photo {
    width: 82px;
    height: 82px;
    flex-basis: 82px;
    font-size: 10px;
  }
  #page-core-team .core-team-section-title { font-size: clamp(34px, 10vw, 46px); }
  #page-core-team .core-team-intro { font-size: 15px; line-height: 1.6; }
}

#page-home .home-latest-news {
  background-color: var(--naipo-beige) !important;
}
/* =========================================================
   V16.4 — Partners cards + synchronized Get in Touch spacing
   - Partner cards: beige surface, 2px border (hover keeps 2px)
   - Partners + News contact sections share the same visual treatment
   - Contact card vertically centered by matching top/bottom section spacing
   ========================================================= */
