/* Guinée Tech — finition visuelle */
body {
    color: #173e35;
    background: #f5f9f7;
    font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
html { scroll-padding-top: 110px; }

.entete-site {
    background: #063f32;
    border-bottom: 1px solid #23634f;
    box-shadow: 0 5px 24px rgba(4, 45, 34, .12);
}
.entete-site .marque-texte strong,
.entete-site .marque-texte strong span {
    color: #fff;
}
.entete-site .marque-texte small { color: #d5eadf; }
.entete-site .marque-symbole {
    background: #fff;
    color: #064532;
}
.entete-site .marque-symbole span { color: #137e58; }
.navigation-principale a {
    color: #f2faf5;
    font-size: 15px;
    font-weight: 650;
    padding: 10px 7px;
    border-radius: 7px;
}
.navigation-principale a:hover {
    color: #fff;
    background: #185c47;
}
.entete-site .bouton-navigation {
    background: #e5f5cc;
    color: #073e2d;
    border: 1px solid #e5f5cc;
    box-shadow: none;
}
.entete-site .bouton-navigation:hover {
    background: #f1fbdc;
    color: #073e2d;
}

.hero {
    background:
        radial-gradient(ellipse at 5% 10%, #d7eee0 0, transparent 55%),
        linear-gradient(125deg, #edf7ef, #fbfdfb 65%, #e8f3ed);
    border-bottom: 1px solid #cfdfd5;
}
.hero h1 {
    color: #063e30;
    font-weight: 800;
    letter-spacing: -.045em;
    line-height: 1.12;
    font-size: clamp(36px, 4.3vw, 62px);
}
.hero h1 span { color: #08754f; }
.hero-description {
    color: #345b4c;
    font-size: clamp(17px, 1.4vw, 20px);
    line-height: 1.85;
}
.surtitre {
    color: #086344;
    font-weight: 800;
    letter-spacing: .13em;
}
.arguments-hero { color: #214f3c; }

.bouton {
    font-weight: 750;
    min-height: 48px;
    border-radius: 11px;
}
.bouton-principal {
    color: #fff;
    background: #07563e;
    border-color: #07563e;
    box-shadow: 0 7px 18px rgba(7, 86, 62, .15);
}
.bouton-principal:hover {
    color: #fff;
    background: #043e2d;
    border-color: #043e2d;
}
.bouton-secondaire {
    color: #07563e;
    background: #fff;
    border: 1px solid #84ae98;
}
.bouton-secondaire:hover {
    color: #043e2d;
    background: #eaf5ed;
}
a:focus-visible,
button:focus-visible {
    outline: 3px solid #d49c2b;
    outline-offset: 4px;
}

.panneau-domaines {
    background: #fff;
    border: 1px solid #b6d3c2;
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(6, 63, 50, .09);
}
.panneau-entete h2 {
    color: #073f30;
    font-size: clamp(25px, 2.1vw, 32px);
    line-height: 1.25;
}
.panneau-entete p,
.panneau-note {
    color: #426253;
    line-height: 1.7;
}
.petite-etiquette {
    background: #e4f3e9;
    border-color: #b8d9c5;
    color: #07563e;
}
.domaine,
.carte-solution {
    --gt-accent: #07563e;
    --gt-pale: #edf6ef;
    --gt-bord: #bcd7c6;
}
.commerce {
    --gt-accent: #154ea2;
    --gt-pale: #edf3ff;
    --gt-bord: #b7ccef;
}
.sante {
    --gt-accent: #006848;
    --gt-pale: #e7f6ed;
    --gt-bord: #a3d6bb;
}
.immobilier {
    --gt-accent: #945000;
    --gt-pale: #fff3df;
    --gt-bord: #e5c18c;
}
.associations {
    --gt-accent: #7135a4;
    --gt-pale: #f4eaff;
    --gt-bord: #d2b4eb;
}
.education {
    --gt-accent: #4436a5;
    --gt-pale: #efedff;
    --gt-bord: #c3bdec;
}
.agriculture {
    --gt-accent: #496511;
    --gt-pale: #f0f6df;
    --gt-bord: #c2d694;
}
.administration {
    --gt-accent: #075976;
    --gt-pale: #e5f3fa;
    --gt-bord: #a9cedf;
}
.transport {
    --gt-accent: #085b93;
    --gt-pale: #e6f4ff;
    --gt-bord: #a9d1ec;
}
.domaine {
    background: var(--gt-pale);
    border: 1px solid var(--gt-bord);
    border-left: 4px solid var(--gt-accent);
    border-radius: 12px;
    min-height: 58px;
    transition: box-shadow .18s, border-color .18s;
}
.domaine .domaine-nom {
    color: #173c30;
    font-size: 15px;
    font-weight: 750;
}
.domaine .domaine-icone,
.carte-solution .icone-service,
.domaine.transport .domaine-icone,
.carte-solution.transport .icone-service {
    background: #fff;
    color: var(--gt-accent);
    border: 1px solid var(--gt-bord);
}
.domaine .domaine-fleche { color: var(--gt-accent); }
.domaine:hover {
    border-color: var(--gt-accent);
    box-shadow: 0 5px 15px rgba(18, 53, 39, .09);
}

.section-solutions { background: #f2f7f4; }
.entete-section h2 {
    color: #063f30;
    font-size: clamp(28px, 3vw, 40px);
    letter-spacing: -.025em;
    line-height: 1.22;
}
.introduction-section {
    color: #426253;
    font-size: 17px;
    line-height: 1.85;
}
.grille-solutions { gap: 24px; }
.carte-solution,
.carte-solution.transport {
    background: linear-gradient(155deg, var(--gt-pale), #fff 48%);
    border: 1px solid var(--gt-bord);
    border-top: 5px solid var(--gt-accent);
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(11, 54, 36, .045);
    padding: 28px;
    display: flex;
    flex-direction: column;
    min-width: 0;
    transition: box-shadow .18s, border-color .18s;
}
.carte-solution:hover {
    border-color: var(--gt-accent);
    box-shadow: 0 15px 34px rgba(11, 54, 36, .1);
}
.carte-solution h3 {
    color: #123c2e;
    font-size: 24px;
    line-height: 1.3;
    letter-spacing: -.02em;
    overflow-wrap: anywhere;
}
.carte-solution .categorie-service,
.carte-solution.transport .categorie-service {
    color: var(--gt-accent);
    font-weight: 800;
    letter-spacing: .1em;
}
.numero-service {
    color: var(--gt-accent);
    font-size: 14px;
    font-weight: 800;
}
.description-service {
    color: #365b4c;
    font-size: 16px;
    line-height: 1.85;
}
.details-service {
    color: #355746;
    font-size: 14px;
    line-height: 1.8;
    padding: 15px 0;
    border-color: var(--gt-bord);
}
.carte-solution-pied {
    margin-top: auto;
    padding-top: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 17px;
}
.statut {
    font-size: 12px;
    line-height: 1.5;
    font-weight: 700;
    border-radius: 7px;
    padding: 6px 9px;
}
.statut-existant { background: #e4f4e9; color: #075535; border-color: #a6ceb6; }
.statut-developpement { background: #eaf0ff; color: #214d9c; border-color: #b5c7eb; }
.statut-preparation { background: #edf1f4; color: #465969; border-color: #c7d1d8; }
.carte-solution .lien-service,
.carte-solution.transport .lien-service {
    color: var(--gt-accent);
    border: 1px solid var(--gt-bord);
    background: var(--gt-pale);
    padding: 11px 14px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 750;
    text-decoration: none;
    max-width: 100%;
    box-sizing: border-box;
}
.carte-solution .lien-service:hover {
    background: var(--gt-accent);
    border-color: var(--gt-accent);
    color: #fff;
}
.carte-invitation {
    background: #07533c;
    color: #fff;
    border-radius: 20px;
    padding: 30px;
}
.carte-invitation h3,
.carte-invitation p,
.carte-invitation .categorie-service {
    color: #fff;
}
.carte-invitation p { line-height: 1.8; }
.carte-invitation .icone-service { color: #07533c; background: #e7f5d8; }

.section-administrations { background: #fff; }
.carte-administration {
    background: #edf6f1;
    border: 1px solid #c1d9cb;
    border-radius: 16px;
}
.carte-administration h3 { color: #084b36; }
.carte-administration p { color: #3a5f4d; line-height: 1.8; }
.note-administrations { background: #e5f2eb; color: #284f3b; border-color: #bfd7c8; }

.section-sur-mesure { background: #f2f7f4; }
.bloc-sur-mesure {
    background: linear-gradient(125deg, #063f31, #096347);
    color: #fff;
    border-radius: 24px;
    box-shadow: 0 16px 40px rgba(6, 63, 49, .12);
}
.bloc-sur-mesure h2,
.bloc-sur-mesure h3,
.bloc-sur-mesure .surtitre,
.bloc-sur-mesure .texte-sur-mesure,
.bloc-sur-mesure .slogan,
.bloc-sur-mesure .prestation p {
    color: #fff;
}
.bloc-sur-mesure .texte-sur-mesure,
.bloc-sur-mesure .prestation p { line-height: 1.85; }
.bloc-sur-mesure .prestation {
    background: rgba(255, 255, 255, .07);
    border-color: rgba(255, 255, 255, .22);
    border-radius: 14px;
}
.bloc-sur-mesure .prestation-numero {
    color: #e6f5c8;
    border-color: rgba(255, 255, 255, .25);
}
.bouton-clair { background: #e5f5cc; color: #073e2d; border-color: #e5f5cc; }

.section-accompagnement { background: #fff; }
.etape-accompagnement {
    border: 1px solid #c8ddcf;
    border-radius: 16px;
    background: #f5faf7;
}
.etape-accompagnement h3 { color: #084b36; }
.etape-accompagnement p { color: #426253; line-height: 1.8; }
.etape-numero { color: #07563e; background: #deeee3; }

.section-contact { background: #eaf4ed; }
.carte-contact { border-color: #b9d3c2; box-shadow: 0 7px 20px rgba(7, 60, 40, .04); }
.pied-site {
    background: #052f25;
    color: #e4f0e9;
    border-top: 4px solid #27845e;
}
.pied-site p,
.pied-site a,
.pied-site small { color: #d7e9df; }
.pied-site .marque-texte strong,
.pied-site .marque-texte strong span { color: #fff; }
.pied-site a:hover { color: #fff; }

@media (max-width: 1000px) {
    .navigation-principale { flex-wrap: wrap; justify-content: center; gap: 6px 12px; }
    .grille-solutions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    html { scroll-padding-top: 24px; }
    .barre-navigation { flex-wrap: wrap; gap: 16px; }
    .navigation-principale { width: 100%; order: 3; }
    .navigation-principale a { font-size: 14px; padding: 8px; }
    .hero-grille { grid-template-columns: minmax(0, 1fr); }
    .grille-solutions { grid-template-columns: minmax(0, 1fr); }
    .carte-solution,
    .carte-solution.transport { padding: 24px; }
    .carte-solution h3 { font-size: 23px; }
    .panneau-domaines { width: 100%; box-sizing: border-box; }
    .domaine .domaine-nom { white-space: normal; }
    .actions-hero { flex-wrap: wrap; }
    .entete-section { flex-wrap: wrap; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .domaine,
    .carte-solution,
    .gt-contact-champ input,
    .gt-contact-champ textarea { transition: none; }
}