/**
Theme Name: IF Estonie
Author: Tanguy Pégné
Author URI: https://www.tanguypegne.com/
Description: Thème réalisé spécialement pour I\'Institut français d\'Estonie.
Version: 1.5.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: if-estonie
Template: astra
*/

@font-face {
    font-family: 'Marianne';
    src: url('assets/fonts/Marianne-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Marianne';
    src: url('assets/fonts/Marianne-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Marianne';
    src: url('assets/fonts/Marianne-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
/*
 * Design tokens (:root) live in the IFE Design System plugin
 * (uploads/ife-assets/design-system.min.css). Fallback when the plugin is
 * inactive: assets/css/ife-tokens-fallback.css (enqueued from functions.php).
 */

/* RESET ET FORCE SYSTEM */
body { 
    font-family: var(--font-main); 
    line-height: var(--body-lh); 
    background-color: var(--bg-page);
    color: var(--text-main);
}

h1, h2, h3, h4, h5, h6 { 
    font-family: var(--font-main); 
    margin-top: 0; 
    margin-bottom: var(--space-8); 
    font-weight: 700;
}

h1 { font-size: var(--h1-sz); line-height: var(--h1-lh); }
h2 { font-size: var(--h2-sz); line-height: var(--h2-lh); letter-spacing: -0.01em; }
h3 { font-size: var(--h3-sz); line-height: var(--h3-lh); }
h4 { font-size: var(--h4-sz); line-height: var(--h4-lh); }
h5 { font-size: var(--h5-sz); font-weight: 500; }
h6 { font-size: var(--h6-sz); font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; }

p { font-size: var(--body-sz); margin-bottom: var(--space-4); }

a { 
    transition: all var(--timing-fast) var(--ease-in-out); 
    text-decoration: none; 
    color: var(--brand-secondary);
}
a:hover { text-decoration: underline; color: var(--brand-primary); }

/* Ensure focus remains visible on interactive chrome (skip-link preserved by Astra) */
:focus-visible {
    outline: 2px solid var(--brand-primary);
    outline-offset: 2px;
}

a:focus:not(:focus-visible) {
    outline: none;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: var(--bg-page);
    clip: auto !important;
    clip-path: none;
    color: var(--text-main);
    display: block;
    font-size: 1rem;
    height: auto;
    left: var(--space-16);
    line-height: normal;
    padding: var(--space-8) var(--space-16);
    text-decoration: none;
    top: var(--space-16);
    width: auto;
    z-index: 100000;
}

/* Application stricte des angles droits (Correction de l'important) */
button, input, select, textarea, 
.elementor-button, .elementor-post, .elementor-widget-container,
.elementor-widget-wrap, .ast-search-menu-icon.slide-search input.search-field {
    border-radius: var(--radius-none) !important;
}

/* CLASSES UTILITAIRES COHÉRENTES */
.text-lead     { font-size: var(--lead-sz); }
.text-small    { font-size: var(--small-sz); }
.text-meta     { font-size: var(--xs-sz); text-transform: uppercase; letter-spacing: 0.05em; }
.color-primary { color: var(--brand-primary) !important; }
.color-accent  { color: var(--brand-accent) !important; }
.bg-surface    { background-color: var(--bg-surface) !important; }