/* static/css/genealogie.css */
/* Reset */
*{box-sizing:border-box;margin:0;padding:0}
/* Rubriques spécifiques à la page généalogie */
.rubrique-card{background-color:#927757;background-size:70%;background-position:center 30%;background-repeat:no-repeat}
.rubrique-overlay img,.rubrique-overlay svg,.rubrique-card img,.rubrique-card svg{max-width:60px;max-height:60px;width:auto;height:auto;object-fit:contain;margin-bottom:10px}
/* Responsive pour les icônes des cartes */
@media (max-width:600px){
.rubrique-card{background-size:45%;background-position:center 25%}
}
@media (min-width:601px) and (max-width:1024px){
.rubrique-card{background-size:55%;background-position:center 28%}
}
/* Typographie */
body{font-family:"Segoe UI",Roboto,sans-serif;background:#f5f7fa;color:#333;line-height:1.5}
h1{font-size:2rem;margin-bottom:.5rem}
h2{font-size:1.4rem;margin-bottom:1rem}
h3{font-size:1.2rem;margin-bottom:.5rem}
/* Person page */
.person-page{max-width:600px;margin:2rem auto;padding:0 1rem;text-align:center}
.person-page.male{color:#007acc}
.person-page.female{color:#e91e63}
.person-page a{color:inherit;text-decoration:underline}
.person-page a:hover{opacity:.8}
/* Titres & cartes */
.section-title{font-size:1.25rem;margin-bottom:.75rem;padding-bottom:.3rem;border-bottom:3px solid currentColor}
.person-card,.relation-block{background:#fff;border-radius:8px;padding:1rem;margin-bottom:1.5rem;box-shadow:0 2px 8px rgba(0,0,0,.05);border-left:6px solid currentColor}
.person-info{list-style:none;padding:0}
.person-info li{margin-bottom:.5rem}
/* Header généalogie */
header.site-header{position:relative;overflow:visible;background:#927757;color:#ffffff;text-align:center;width:50%;margin:-2em auto 2em;border-radius:0 0 1rem 1rem;padding:1em 2em calc(1em + 30px) 2em;box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
header.site-header::after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:30px;background:#79644a;clip-path:ellipse(50% 100% at 50% 0%);border-radius:0 0 1rem 1rem / 0 0 2rem 2rem;z-index:0}
header.site-header>*{position:relative;z-index:1}
header.site-header .subnav a{color:white;margin:0 .5em;text-decoration:none}
header.site-header .subnav a:hover{text-decoration:underline}
/* Familles */
.families-list{margin:2rem auto;padding:0 1rem;max-width:800px}
.families-list ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;padding:0}
.families-list li{margin:0}
.families-list li+li{margin-top:0!important}
.families-list a{color:#007acc;text-decoration:none}
.families-list a:hover{text-decoration:underline}
.families-list .family-card{display:block;background-color:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);border-radius:8px;padding:.75rem 1.5rem;min-width:140px;text-align:center;text-decoration:none;font-weight:600;box-shadow:0 2px 6px rgba(0,0,0,.05);transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}
.families-list .family-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1);background-color:var(--btn-hover-bg)}
/* Grille membres */
.members-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}
/* Arbre généalogique */
#family-tree{display:flex;flex-direction:column;align-items:center;margin:2rem 0}
.ft-row{display:flex;justify-content:center;align-items:stretch;margin-bottom:1rem}
.ft-card{flex:1 1 14rem;min-width:8rem;padding-top:3rem;margin:0 .5rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.05);position:relative;text-align:left;overflow:visible;max-height:20rem;transition:transform .2s,box-shadow .2s}
.ft-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.ft-card.male{outline:2px solid #007acc}
.ft-card.female{outline:2px solid #e91e63}
.ft-card-header{position:absolute;top:0;left:0;width:100%;font-size:.85rem;font-weight:600;text-align:center;padding:.5rem 0;border-top-left-radius:8px;border-top-right-radius:8px;color:#fff}
.ft-card.male .ft-card-header{background:#007acc}
.ft-card.female .ft-card-header{background:#e91e63}
.member-name{display:block;font-size:1.1rem;font-weight:600;color:#333;margin-bottom:.6rem;text-decoration:none}
.member-name:hover{color:#007acc}
.member-info{list-style:none;color:#555;font-size:.95rem}
.member-info li{margin-bottom:.4rem}
.inline-list{display:inline-flex;list-style:none;padding:0;margin:0}
.inline-list li{margin-right:.5rem}
/* Flèches */
.ft-arrow{position:absolute;left:50%;transform:translateX(-50%);width:2rem;height:2rem;background:#313131;color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.15);transition:background .2s;z-index:10}
.ft-arrow:hover{background:#016b0a}
.ft-arrow.up{top:0;transform:translate(-50%,-80%)}
.ft-arrow.up::before{content:"↑"}
.ft-arrow.down{bottom:0;transform:translate(-50%,50%)}
.ft-arrow.down::before{content:"↓"}
/* Parents & connecteurs */
.ft-parent-group{display:flex;justify-content:center}
.ft-parent-group .ft-card{margin:0 .25rem}
.arrow-row{display:flex;justify-content:center;margin-bottom:1rem}
.ft-parent-to-kids-arrow{width:0;height:0;border-left:.6rem solid transparent;border-right:.6rem solid transparent;border-top:.8rem solid #333}
/* Menus */
.parent-menu{position:absolute;top:1.5rem;left:0;background:white;border:1px solid #ccc;border-radius:4px;list-style:none;padding:.3rem 0;box-shadow:0 2px 6px rgba(0,0,0,.1);z-index:10}
.parent-menu li{padding:.4rem 1rem;cursor:pointer}
.parent-menu li:hover{background:#f0f0f0}
/* Census viewer */
.census-viewer{position:relative;width:100%;height:calc(100vh - 300px);margin:0;padding:0;overflow:hidden}
.census-viewer iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}
.page-family{display:flex;flex-direction:column}
.page-family .hero{flex:none;height:100px}
.page-family .iframe-wrapper{height:calc(100vh - 60px - 200px);overflow:hidden}
.page-family .iframe-wrapper iframe{width:100%;height:100%;border:none}
/* Responsive */
@media (max-width:600px){
.ft-row{flex-wrap:wrap;justify-content:center}
.ft-card{flex:0 0 90%;max-width:90%;margin:.5rem 0}
.ft-parent-group .ft-card{flex:0 0 45%;max-width:45%;margin:.5rem}
.arrow-row{margin:.5rem 0}
header.site-header{position:relative;width:100vw;left:50%;margin-top:-2em;margin-right:0;margin-bottom:1.5rem;margin-left:-50vw;border-radius:0;padding:1em}
header.site-header::after{height:15px;clip-path:ellipse(75% 100% at 50% 0%)}
}
@media (max-width:768px){
.families-list .family-card{min-width:120px;padding:.5rem 1rem;font-size:.9rem}
}
@media (min-width:769px) and (max-width:1024px){
.person-page{max-width:500px;margin:2rem auto;padding:0 1rem}
header.site-header{width:80%;margin:-2em auto 2em;padding:1em 1.5em calc(1em + 20px) 1.5em}
.families-list li+li{margin-top:0!important}
.members-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.ft-row{flex-wrap:wrap;margin-bottom:.75rem}
.ft-card{flex:0 0 18rem;min-width:10rem;padding-top:2.5rem;margin:.5rem}
.ft-parent-group .ft-card{flex:0 0 18rem;margin:.5rem}
.arrow-row{margin-bottom:.75rem}
.ft-parent-to-kids-arrow{border-top-width:.7rem}
.parent-menu li{padding:.3rem .75rem}
}