/*
Theme Name:   AlliaTechnologie
Theme URI:    https://alliatechnologie.com
Author:       AlliaTechnologie
Author URI:   https://alliatechnologie.com
Description:  Theme WordPress sur mesure pour AlliaTechnologie, firme quebecoise de services-conseils en technologies de l'information et en intelligence artificielle. Design sobre inspire des grandes firmes-conseils (« Big 4 »), entierement bilingue (FR/EN via Polylang).
Version:      1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License:      Proprietaire - Tous droits reserves
Text Domain:  alliatechnologie
*/

/* ==========================================================================
   1. SYSTEME DE COULEURS ET VARIABLES GLOBALES
   ========================================================================== */
:root {
	/* Couleurs de marque */
	--color-navy: #0F2647;         /* Bleu marine — couleur principale */
	--color-navy-dark: #081729;    /* Bleu marine fonce — survols, degrades */
	--color-navy-light: #1B3A66;   /* Bleu marine clair — accents secondaires */
	--color-gold: #C7A24A;         /* Or — accent principal */
	--color-gold-dark: #A9843A;    /* Or fonce — survols */
	--color-teal: #1F8A82;         /* Sarcelle — accent secondaire */
	--color-teal-dark: #176F68;    /* Sarcelle fonce — survols */

	/* Neutres */
	--color-white: #FFFFFF;
	--color-bg-light: #F5F7FA;     /* Fond de section alterne */
	--color-bg-muted: #EEF1F5;
	--color-border: #DFE4EA;
	--color-text: #1C2530;         /* Texte principal */
	--color-text-light: #5B6472;   /* Texte secondaire */
	--color-text-inverse: #FFFFFF;

	/* Typographie */
	--font-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	/* Echelle typographique */
	--fs-h1: clamp(2.25rem, 1.8rem + 2vw, 3.5rem);
	--fs-h2: clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);
	--fs-h3: clamp(1.25rem, 1.1rem + 0.6vw, 1.5rem);
	--fs-body: 1rem;
	--fs-lead: 1.25rem;
	--fs-small: 0.875rem;

	/* Espacements */
	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--space-2xl: 6rem;

	/* Structure */
	--container-max: 1200px;
	--radius: 4px;
	--transition: 0.25s ease;
	--shadow-card: 0 2px 12px rgba(15, 38, 71, 0.08);
	--shadow-card-hover: 0 8px 24px rgba(15, 38, 71, 0.14);
}

/* ==========================================================================
   2. RESET / BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-base);
	font-size: var(--fs-body);
	line-height: 1.65;
	color: var(--color-text);
	background-color: var(--color-white);
	-webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--color-navy); text-decoration: none; transition: color var(--transition); }
a:hover, a:focus { color: var(--color-teal); }

ul, ol { padding-left: 1.25rem; }

h1, h2, h3, h4 {
	font-family: var(--font-heading);
	color: var(--color-navy);
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 var(--space-sm);
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }

p { margin: 0 0 var(--space-sm); }

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link {
	position: absolute;
	top: -3rem;
	left: var(--space-sm);
	background: var(--color-navy);
	color: var(--color-white);
	padding: 0.6rem 1rem;
	z-index: 10000;
	transition: top var(--transition);
}
.skip-link:focus { top: var(--space-sm); color: var(--color-white); }

/* ==========================================================================
   3. UTILITAIRES DE MISE EN PAGE
   ========================================================================== */
.container {
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--space-md);
}

.section { padding-block: var(--space-2xl); }
.section--muted { background-color: var(--color-bg-light); }
.section--navy { background-color: var(--color-navy); color: var(--color-text-inverse); }
.section--navy h1, .section--navy h2, .section--navy h3 { color: var(--color-text-inverse); }

.eyebrow {
	display: inline-block;
	font-size: var(--fs-small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-teal);
	margin-bottom: var(--space-xs);
}

.section-header {
	max-width: 720px;
	margin: 0 0 var(--space-lg);
}
.section-header--center { margin-inline: auto; text-align: center; }

.lead { font-size: var(--fs-lead); color: var(--color-text-light); }

/* Bloc "Appel a l'action" reutilise en bas de plusieurs pages (accueil, services, etc.) */
.cta-final__inner { text-align: center; max-width: 680px; margin-inline: auto; }
.cta-final__inner .lead { color: rgba(255,255,255,0.85); margin-bottom: var(--space-lg); }

/* Grille de cartes (".service-card") reutilisee sur plusieurs pages :
   apercu des services (accueil) et secteurs desservis (page Secteurs). */
.cards-grid {
	display: grid;
	gap: var(--space-lg);
}
.cards-grid--2 { grid-template-columns: repeat(2, 1fr); }
.cards-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cards-grid--4 { grid-template-columns: repeat(4, 1fr); }

.service-card {
	background-color: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius);
	padding: var(--space-lg);
	box-shadow: var(--shadow-card);
	transition: box-shadow var(--transition), transform var(--transition);
}
.service-card:hover {
	box-shadow: var(--shadow-card-hover);
	transform: translateY(-4px);
}
.service-card__image {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--radius);
	margin-bottom: var(--space-md);
}
.service-card h3 { margin-bottom: var(--space-xs); }
.service-card p { color: var(--color-text-light); margin-bottom: 0; }
.service-card__link {
	display: inline-block;
	font-weight: 700;
	color: var(--color-teal);
	margin-top: var(--space-sm);
}
.service-card__link:hover { color: var(--color-navy); }

@media (max-width: 960px) {
	.cards-grid--3, .cards-grid--4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.cards-grid--2, .cards-grid--3, .cards-grid--4 { grid-template-columns: 1fr; }
}

/* Emplacement reserve pour une image (en attente des visuels definitifs du client).
   Composant reutilise partout ou une photo/illustration est prevue mais pas encore fournie. */
.placeholder-image {
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: #C9CDD3;
	border: 1px dashed #8A93A3;
	border-radius: var(--radius);
	color: #4B5563;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: var(--space-sm);
}
.placeholder-image--card {
	aspect-ratio: 16 / 10;
	margin-bottom: var(--space-md);
}

/* Boutons */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.85rem 1.75rem;
	border-radius: var(--radius);
	font-weight: 600;
	font-size: var(--fs-body);
	white-space: nowrap;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
}
.btn--primary {
	background-color: var(--color-gold);
	color: var(--color-navy);
}
.btn--primary:hover, .btn--primary:focus {
	background-color: var(--color-gold-dark);
	color: var(--color-navy);
	transform: translateY(-2px);
}
.btn--outline {
	background-color: transparent;
	border-color: var(--color-white);
	color: var(--color-white);
}
.btn--outline:hover, .btn--outline:focus {
	background-color: var(--color-white);
	color: var(--color-navy);
}
.btn--outline-navy {
	background-color: transparent;
	border-color: var(--color-navy);
	color: var(--color-navy);
}
.btn--outline-navy:hover, .btn--outline-navy:focus {
	background-color: var(--color-navy);
	color: var(--color-white);
}

/* ==========================================================================
   4. EN-TETE (HEADER)
   ========================================================================== */
.site-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background-color: var(--color-white);
	border-bottom: 1px solid var(--color-border);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	padding-block: 1rem;
}

.site-logo { display: flex; align-items: center; gap: 0.6rem; font-weight: 700; font-size: 1.25rem; color: var(--color-navy); }
.site-logo img { height: 60px; width: auto; }
@media (min-width: 1241px) {
	.site-logo img { height: 96px; width: auto; }
}
.site-logo:hover { color: var(--color-navy); }

.main-navigation { display: flex; align-items: center; gap: var(--space-lg); }

.main-navigation ul {
	list-style: none;
	display: flex;
	align-items: center;
	gap: var(--space-md);
	margin: 0;
	padding: 0;
}
.main-navigation a {
	color: var(--color-navy);
	font-weight: 600;
	font-size: 1.1rem;
	white-space: nowrap;
	padding: 0.5rem 0;
	position: relative;
}
.main-navigation a::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 0; height: 2px;
	background-color: var(--color-teal);
	transition: width var(--transition);
}
.main-navigation a:hover::after,
.main-navigation .current-menu-item > a::after { width: 100%; }

.header-actions { display: flex; align-items: center; gap: var(--space-md); }
.header-actions--mobile { display: none; }

.lang-switcher { display: flex; align-items: center; gap: 0.35rem; font-size: var(--fs-small); font-weight: 700; }
.lang-switcher a, .lang-switcher span { color: var(--color-text-light); }
.lang-switcher a.active, .lang-switcher .active { color: var(--color-navy); text-decoration: underline; }
.lang-switcher .lang-sep { color: var(--color-border); }

.menu-toggle {
	display: none;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
}
.menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--color-navy);
	margin: 5px 0;
	transition: transform var(--transition), opacity var(--transition);
}

@media (max-width: 1240px) {
	.main-navigation { position: fixed; inset: 0 0 0 auto; width: min(320px, 85%); background: var(--color-white); flex-direction: column; align-items: flex-start; padding: 5.5rem var(--space-md) var(--space-md); box-shadow: -4px 0 24px rgba(0,0,0,0.15); transform: translateX(100%); transition: transform var(--transition); }
	.main-navigation.is-open { transform: translateX(0); }
	.main-navigation ul { flex-direction: column; align-items: flex-start; width: 100%; gap: var(--space-sm); }
	.header-actions--desktop { display: none; }
	.header-actions--mobile { display: flex; flex-direction: column-reverse; align-items: flex-start; gap: var(--space-md); margin-top: var(--space-lg); width: 100%; }
	.header-actions--mobile .btn { width: 100%; justify-content: center; }
	.menu-toggle { display: block; }
}

/* ==========================================================================
   5. PIED DE PAGE (FOOTER)
   ========================================================================== */
.site-footer {
	background-color: var(--color-navy);
	color: rgba(255,255,255,0.85);
	padding-block: var(--space-2xl) var(--space-md);
}
.site-footer a { color: rgba(255,255,255,0.85); }
.site-footer a:hover { color: var(--color-gold); }
.site-footer h3 { color: var(--color-white); font-size: 1.05rem; margin-bottom: var(--space-sm); }

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1.3fr;
	gap: var(--space-lg);
	padding-bottom: var(--space-lg);
	border-bottom: 1px solid rgba(255,255,255,0.15);
}
.footer-grid ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.footer-about p { color: rgba(255,255,255,0.7); }
.footer-contact li { display: flex; gap: 0.5rem; align-items: flex-start; }

/* Sceau de confiance (certification) — carte blanche discrete pour rester lisible sur fond navy. */
.footer-badge {
	display: inline-block;
	margin: var(--space-sm) 0 0;
	padding: 0.4rem;
	background-color: var(--color-white);
	border-radius: var(--radius);
	line-height: 0;
}
.footer-badge img { display: block; }

.footer-bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-sm);
	padding-top: var(--space-md);
	font-size: var(--fs-small);
	color: rgba(255,255,255,0.6);
}
.footer-bottom ul { list-style: none; display: flex; gap: var(--space-md); margin: 0; padding: 0; }

@media (max-width: 880px) {
	.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
	.footer-grid { grid-template-columns: 1fr; }
}

/* Champ honeypot anti-spam (Contact Form 7) — masque aux visiteurs humains,
   voir functions.php. Position hors-ecran plutot que display:none, plus fiable
   contre certains robots qui detectent les champs masques de facon evidente. */
.alliatech-hp {
	position: absolute !important;
	left: -9999px !important;
	top: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}
