:root{
  --navy:#020e46;
  --sky:#5698b3;
  --rose:#dfbfef;
  --sable:#b9ad94;
  --ocre:#cd807f;
  --terra:#835251;
  --white:#ffffff;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--white);
  color:var(--navy);
  font-family:'EB Garamond', Garamond, Georgia, 'Times New Roman', serif;
  font-size:19px;
}

h1,h2,h3,h4{
  font-family:'Playfair Display', Georgia, 'Times New Roman', serif;
  margin:0;
  font-weight:700;
}

a{color:var(--navy); text-decoration:none;}
a:hover{color:var(--sky);}

img{max-width:100%; display:block;}

.wrap{max-width:1280px; margin:0 auto; padding:0 48px;}

/* Header / nav */
.site-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px 48px;
  border-bottom:1px solid #ece6da;
  max-width:1280px;
  margin:0 auto;
}
.site-logo{display:flex; align-items:center; gap:14px;}
.site-logo img{max-height:56px; width:auto;}
.logo-placeholder{
  width:56px; height:56px;
  border:1px dashed var(--sable);
  display:flex; align-items:center; justify-content:center;
  font-size:15px; color:var(--sable); text-align:center; line-height:1.3;
}
.site-title{font-family:'Playfair Display', serif; font-size:23.5px; font-weight:700; color:var(--navy); line-height:1.2;}
.site-tagline{font-size:15px; letter-spacing:.1em; color:var(--sable); text-transform:uppercase; margin-top:2px;}

.main-nav ul{list-style:none; display:flex; gap:38px; margin:0; padding:0;}
.main-nav a{font-size:18px; letter-spacing:.03em; padding:8px 2px; border-bottom:2px solid transparent;}
.main-nav a:hover, .main-nav .current-menu-item > a{border-bottom-color:var(--terra); color:var(--navy);}

.nav-toggle-input{display:none;}
.nav-toggle{display:none; flex-direction:column; justify-content:space-between; width:28px; height:20px; cursor:pointer; background:none; border:0; padding:0;}
.nav-toggle span{display:block; height:2px; background:var(--navy); border-radius:1px;}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 34px;
  background:var(--terra); color:var(--white) !important;
  font-size:19px; letter-spacing:.03em;
  border:1px solid var(--terra);
  cursor:pointer;
}
.btn:hover{background:#6f423f;}
.btn-outline{
  display:inline-flex; padding:14px 30px;
  border:1px solid var(--white); color:var(--white) !important;
  font-size:18px;
}
.btn-outline:hover{background:rgba(255,255,255,.1);}

.eyebrow{
  font-size:15px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--sky); font-weight:600; margin-bottom:18px;
}

/* Hero */
.hero{
  position:relative; background:var(--navy) center/cover no-repeat; padding:110px 48px 130px; overflow:hidden;
}
.hero::after{
  content:''; position:absolute; right:-120px; top:-160px; width:440px; height:440px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(86,152,179,0.35), rgba(86,152,179,0) 70%);
}
.hero-inner{position:relative; z-index:1; max-width:1280px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:60px;}
.hero-portrait{width:400px; height:auto; border:1px solid rgba(255,255,255,0.25); flex-shrink:0;}
.hero-content{max-width:680px;}
.hero .eyebrow{color:var(--rose);}
.hero h1{font-size:58px; line-height:1.15; color:var(--white);}
.hero .lead{font-size:21.5px; line-height:1.7; color:#e7e9f2; margin-top:26px; font-style:italic; max-width:560px;}
.hero .lead p{margin:0;}
.hero-actions{display:flex; gap:20px; margin-top:42px; flex-wrap:wrap;}

/* Intro cards */
.intro-cards{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px;
  background:#ece6da; margin-top:-60px; position:relative;
  max-width:1280px; margin-left:auto; margin-right:auto; padding:0 48px;
}
.intro-card{background:var(--white); padding:46px 40px; border:1px solid #ece6da;}
.icon-badge{
  width:44px; height:44px; border-radius:50%; background:var(--rose);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
}
.intro-card h3{font-size:22.5px; margin-bottom:12px;}
.intro-card p{font-size:18px; line-height:1.6; color:#3a3f5c; margin:0;}

/* Sections */
.section{padding:100px 48px;}
.section-tight{padding:70px 48px;}
section h2{font-size:36px;}

.philosophy{
  background:linear-gradient(180deg, #ffffff 0%, #faf3fb 100%);
  padding:110px 48px; text-align:center;
}
.philosophy .eyebrow{justify-content:center; display:flex;}
.philosophy blockquote{
  font-family:'Playfair Display', serif; font-size:36px; max-width:760px;
  margin:22px auto 0; line-height:1.4; font-weight:700;
}

.domaines-preview-head{
  display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:20px;
}
.link-arrow{font-size:17px; letter-spacing:.05em; border-bottom:1px solid var(--terra); padding-bottom:3px; color:var(--terra);}
.pill-list{display:flex; gap:16px; flex-wrap:wrap;}
.pill{padding:14px 26px; border:1px solid var(--sable); font-size:17px;}

.future-callout{
  margin:0 48px 90px; padding:30px 40px; background:#f7f4ee; border-left:3px solid var(--sky);
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px;
  max-width:1184px; margin-left:auto; margin-right:auto;
}
.future-callout-label{font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--sky); font-weight:600; margin-bottom:6px;}
.future-callout p{font-size:18px; color:#3a3f5c; margin:0;}

/* Card grid (domaines) */
.card-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px;
  background:#ece6da; border:1px solid #ece6da;
}
.card-grid .card{background:var(--white); padding:38px 34px;}
.card h3{font-size:21.5px; margin-bottom:12px;}
.card p{font-size:17.5px; line-height:1.7; color:#3a3f5c; margin:0;}

/* Presentation page */
.presentation-grid{
  display:grid; grid-template-columns:380px 1fr; gap:70px;
  padding:40px 48px 100px; align-items:start; max-width:1280px; margin:0 auto;
}
.portrait-placeholder{
  border:1px dashed var(--sable); aspect-ratio:3/4; background:#f4f1ea;
  display:flex; align-items:center; justify-content:center; color:var(--sable);
  font-size:15.5px; text-align:center; padding:20px;
}
.presentation-grid img.portrait{width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; border:1px solid var(--sable);}
.bio p{font-size:19px; line-height:1.85; color:#2d3050; margin:0 0 20px;}
.timeline{margin-top:50px;}
.timeline-item{display:flex; gap:28px; padding:22px 0; border-bottom:1px solid #ece6da;}
.timeline-year{width:110px; font-size:15.5px; color:var(--terra); font-weight:600; flex-shrink:0;}
.timeline-desc{font-size:18px; color:#2d3050;}

/* Honoraires */
.fee-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px;
  background:#ece6da; border:1px solid #ece6da;
}
.fee-card{background:var(--white); padding:40px 34px;}
.fee-card h3{font-size:20px; margin-bottom:14px;}
.fee-amount{font-family:'Playfair Display',serif; font-size:33.5px; color:var(--terra); margin-bottom:14px;}
.fee-card p{font-size:17px; line-height:1.7; color:#3a3f5c; margin:0;}
.aide-box{
  margin:60px auto 90px; padding:36px 40px; background:#f7f4ee; border-left:3px solid var(--sky);
  max-width:1184px;
}
.aide-box h3{font-size:20px; margin-bottom:10px;}
.aide-box p{font-size:17.5px; line-height:1.7; color:#3a3f5c; margin:0;}

/* Contact */
.contact-grid{
  display:grid; grid-template-columns:1fr 1.3fr; gap:80px;
  padding:40px 48px 110px; max-width:1280px; margin:0 auto;
}
.contact-item{display:flex; gap:16px; margin-bottom:24px;}
.contact-item svg{flex-shrink:0; margin-top:3px;}
.contact-item div{font-size:18px; line-height:1.6;}
.map-placeholder{
  border:1px dashed var(--sable); background:#f4f1ea; height:220px;
  display:flex; align-items:center; justify-content:center; color:var(--sable); font-size:15.5px;
}

.wpcf-form label{font-size:15.5px; letter-spacing:.03em; color:var(--navy); font-weight:600; display:block; margin-bottom:8px;}
.wpcf-form input[type=text], .wpcf-form input[type=email], .wpcf-form input[type=tel], .wpcf-form textarea{
  width:100%; font-family:'EB Garamond', serif; font-size:18px; padding:13px 15px;
  border:1px solid var(--sable); background:var(--white); color:var(--navy);
}
.wpcf-form ::placeholder{color:#a9a396;}
.wpcf-field{margin-bottom:24px;}
.wpcf-consent{display:flex; gap:12px; align-items:flex-start; margin-bottom:34px;}
.wpcf-consent input{width:18px; height:18px; flex-shrink:0; margin-top:3px;}
.wpcf-consent div{font-size:15.5px; line-height:1.6; color:#3a3f5c;}
.wpcf-consent a{color:var(--terra); border-bottom:1px solid var(--terra);}
.form-notice{padding:16px 20px; margin-bottom:28px; font-size:17px;}
.form-notice.success{background:#eef6f0; color:#2a5c3a; border-left:3px solid #4c8c63;}
.form-notice.error{background:#fbecec; color:#8c2a2a; border-left:3px solid #b45050;}
.hp-field{position:absolute; left:-9999px; top:-9999px;}

/* Mentions légales */
.legal-content{padding:40px 48px 110px; max-width:820px; margin:0 auto;}
.legal-content h3{font-size:21.5px; margin:44px 0 14px; color:var(--terra);}
.legal-content h3:first-child{margin-top:0;}
.legal-content p{font-size:18px; line-height:1.8; color:#2d3050; margin:0 0 14px;}
.page-header .lead p{margin:0;}
.page-header{padding:90px 48px 20px; max-width:1280px; margin:0 auto;}
.page-header h1{font-size:49.5px; max-width:760px; line-height:1.25;}
.page-header .lead{font-size:19px; line-height:1.8; color:#2d3050; max-width:640px; margin-top:22px;}

/* Footer */
.site-footer{background:var(--navy); color:#c9cde0; padding:64px 48px 40px;}
.footer-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:60px;
  max-width:1280px; margin:0 auto;
}
.footer-grid .footer-name{font-family:'Playfair Display',serif; font-size:22.5px; color:var(--white); margin-bottom:14px;}
.footer-grid p{font-size:17px; line-height:1.9; max-width:320px; margin:0;}
.footer-col-title{font-size:15px; letter-spacing:.1em; text-transform:uppercase; color:var(--sable); margin-bottom:14px;}
.footer-col a{color:#c9cde0;}
.footer-bottom{
  border-top:1px solid #232a5c; margin-top:46px; padding-top:22px; font-size:15px; color:#7d82a8;
  max-width:1280px; margin-left:auto; margin-right:auto;
}

@media (max-width: 900px){
  .hero-inner{flex-direction:column; align-items:flex-start; gap:40px;}
  .hero-portrait{width:260px; max-width:100%;}
  .site-header{padding:20px 24px; flex-wrap:wrap;}
  .nav-toggle{display:flex;}
  .main-nav{display:none; width:100%; flex-basis:100%; margin-top:18px; order:3;}
  .nav-toggle-input:checked ~ .main-nav{display:block;}
  .main-nav ul{flex-direction:column; gap:0;}
  .main-nav li{border-bottom:1px solid #ece6da;}
  .main-nav a{display:block; padding:14px 2px;}
  .hero{padding:70px 24px 90px;}
  .hero h1{font-size:40.5px;}
  .intro-cards{grid-template-columns:1fr; padding:0 24px;}
  .card-grid, .fee-grid{grid-template-columns:1fr;}
  .presentation-grid{padding:32px 24px 70px;}
  .presentation-grid, .contact-grid, .footer-grid{grid-template-columns:1fr; gap:40px;}
  .contact-grid{padding:32px 24px 80px;}
  .section, .section-tight, .page-header, .legal-content{padding-left:24px; padding-right:24px;}
  .philosophy{padding:70px 24px;}
  .future-callout{margin-left:24px; margin-right:24px;}
  .site-footer{padding:48px 24px 32px;}
  .aide-box{margin-left:24px; margin-right:24px; padding:28px 24px;}
  .wrap{padding:0 24px;}
}

@media (max-width: 480px){
  .hero h1{font-size:33.5px;}
  .page-header h1{font-size:36px;}
  .philosophy blockquote{font-size:27px;}
  section h2{font-size:29px;}
  .timeline-item{flex-direction:column; gap:6px;}
}

/* Contact photo */
.contact-photo{width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center 25%; border:1px solid var(--sable);}
.map-frame{width:100%; height:300px; border:1px solid var(--sable); margin-top:24px;}

/* Responsive : en-tête et cartes d'intro */
.logo-placeholder{display:none;}
.site-monogram img{display:block; width:56px; height:56px;}
@media (max-width: 900px){
  .site-header{flex-wrap:wrap; align-items:center; padding:16px 20px;}
  .site-logo{flex:1; min-width:0;}
  .site-title{font-size:20px;}
  .site-tagline{font-size:13px; letter-spacing:.06em;}
  .nav-toggle{margin-left:16px;}
  .main-nav a{font-size:19px;}
  .intro-cards{background:transparent; gap:16px; margin-top:-40px;}
  .hero-actions{gap:14px;}
  .hero-actions .btn, .hero-actions .btn-outline{width:100%; justify-content:center;}
  .pill-list{gap:10px;}
  .pill{padding:10px 18px;}
}
@media (max-width: 900px){
  .site-monogram img{width:44px; height:44px;}
}

/* Domaines d'intervention */
.domaine-nav{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px;}
.domaine-nav a{padding:10px 22px; border:1px solid var(--sable); font-size:17px; color:var(--navy);}
.domaine-nav a:hover{border-color:var(--terra); color:var(--terra);}
.domaine-section{padding:80px 48px; scroll-margin-top:20px;}
.domaine-section:nth-of-type(even){background:#f7f4ee;}
.domaine-inner{max-width:1184px; margin:0 auto; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:70px; align-items:start;}
.domaine-num{font-family:'Playfair Display', serif; font-size:56px; line-height:1; color:var(--terra); margin-bottom:22px;}
.domaine-head h2{font-size:32px; margin:18px 0 16px;}
.domaine-head p{font-size:19px; line-height:1.75; color:#2d3050; margin:0;}
.domaine-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 36px;}
.domaine-list li{position:relative; padding:16px 0 16px 34px; border-bottom:1px solid #e4ddcf; font-size:18px; color:#2d3050;}
.domaine-list li::before{content:''; position:absolute; left:4px; top:22px; width:12px; height:7px; border-left:2px solid var(--terra); border-bottom:2px solid var(--terra); transform:rotate(-45deg);}
.cta-band{background:var(--navy) center/cover no-repeat; color:var(--white); text-align:center; padding:90px 48px;}
.cta-band h2{color:var(--white); font-size:36px; margin:0 0 14px;}
.cta-band p{font-size:20px; color:#e7e9f2; margin:0 0 34px;}
.cta-actions{display:flex; gap:18px; justify-content:center; flex-wrap:wrap;}
@media (max-width: 900px){
  .domaine-section{padding:56px 24px;}
  .domaine-inner{grid-template-columns:1fr; gap:30px;}
  .domaine-list{grid-template-columns:1fr;}
  .domaine-num{font-size:44px;}
  .cta-band{padding:64px 24px;}
  .cta-band h2{font-size:29px;}
}

/* Dénomination officielle : DE LAVIGERIE AVOCATE / Expertise en droit pénal */
.site-title{font-family:'EB Garamond', Garamond, Georgia, serif; text-transform:uppercase; letter-spacing:.01em; line-height:1.1; padding-bottom:5px; border-bottom:1px solid var(--navy);}
.brand-name{font-weight:700;}
.brand-role{font-style:italic; font-weight:500;}
.site-tagline{font-family:'EB Garamond', Garamond, Georgia, serif; font-style:italic; text-transform:none; letter-spacing:0; color:var(--navy); font-size:18px; margin-top:5px; text-align:center;}
@media (max-width: 900px){
  .site-tagline{font-size:15px;}
}
