/*
Theme Name: ED Photography
Theme URI: https://edphoto.fr
Author: Ersin Dagdelen
Description: Thème sur mesure pour ED Photography — photographe de mariage en Île-de-France. Sans constructeur de page, sans jQuery, budget de performance tenu.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: edphoto
*/


/* =========================================================
   0. Polices auto-hébergées — servies depuis la bibliothèque de
   polices WordPress (wp-content/uploads/fonts/), installées le
   24/08/2026. Auto-hébergement volontaire : appeler fonts.gstatic.com
   transmet l'adresse IP des visiteurs à Google (sanctionné par la CNIL).
   ========================================================= */
@font-face{
  font-family:"Bodoni Moda";
  src:url("/wp-content/uploads/fonts/bodoni-moda-latin.woff2") format("woff2-variations");
  font-weight:400 600;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Bodoni Moda";
  src:url("/wp-content/uploads/fonts/bodoni-moda-latin-ext.woff2") format("woff2-variations");
  font-weight:400 600;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+A720-A7FF;
}
@font-face{
  font-family:"Jost";
  src:url("/wp-content/uploads/fonts/jost-latin.woff2") format("woff2-variations");
  font-weight:300 500;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Jost";
  src:url("/wp-content/uploads/fonts/jost-latin-ext.woff2") format("woff2-variations");
  font-weight:300 500;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+A720-A7FF;
}

/* =========================================================
   1. Jetons
   ========================================================= */
:root{
  /* Palette chaude (par défaut). Pour la version froide, voir README. */
  --paper:#FFFDFB;
  --mist:#F7F4F0;
  --line:#E9E3DC;
  --ink:#3A2F2A;
  --muted:#6B615A;
  --accent:#3F6E58;
  --accent-soft:#E6EDE8;

  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:104px;
  --wide:1080px; --narrow:760px;
  --ease:cubic-bezier(.2,.6,.3,1);
}

/* =========================================================
   2. Réinitialisation minimale
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;font-weight:300;line-height:1.75;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:"Bodoni Moda",Didot,Georgia,serif;font-weight:400;margin:0;text-wrap:balance}
p,ul,ol,figure,blockquote{margin:0}
a{color:inherit;text-decoration:none}
button{font:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:12px 20px;z-index:999}
.skip-link:focus{left:0}

/* =========================================================
   3. Utilitaires de mise en page
   ========================================================= */
.w{max-width:var(--wide);margin:0 auto;padding:0 24px}
.wn{max-width:var(--narrow);margin:0 auto;padding:0 24px}
.sec{padding:var(--s6) 0}
.sec--tight{padding:var(--s5) 0}
.sec--mist{background:var(--mist)}
.stack{display:flex;flex-direction:column;gap:var(--s3)}
.stack--s{display:flex;flex-direction:column;gap:var(--s2)}
.center{text-align:center}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s3)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s2)}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s2)}

/* =========================================================
   4. Typographie
   ========================================================= */
.eyebrow{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:400}
.page-title{font-size:clamp(2.2rem,5.4vw,3.8rem);line-height:1.04;letter-spacing:-.01em}
.sec-title{font-size:clamp(1.5rem,3.2vw,2.2rem);line-height:1.16}
.card-title{font-size:1.2rem;line-height:1.3}
.lede{font-size:1.1rem;line-height:1.85;color:var(--muted);max-width:60ch}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;letter-spacing:.05em}
.entry-content > p,.entry-content > ul,.entry-content > ol{font-size:1.02rem;line-height:1.85;color:var(--muted);max-width:60ch}
.entry-content > p + p{margin-top:var(--s2)}
.entry-content > h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:var(--s5) 0 var(--s2);padding-bottom:12px;border-bottom:1px solid var(--line)}
.entry-content > h3{font-size:1.3rem;margin:var(--s4) 0 var(--s2)}
.entry-content > ul,.entry-content > ol{padding-left:20px;display:flex;flex-direction:column;gap:8px;margin-top:var(--s2)}
.entry-content a:not(.btn){color:var(--accent);position:relative}
.entry-content strong{color:var(--ink);font-weight:400}
.entry-content > figure,.entry-content > .wp-block-image,.entry-content > .wp-block-gallery{margin:var(--s3) 0}

/* =========================================================
   5. Composants
   ========================================================= */
.btn{display:inline-block;background:var(--ink);color:var(--paper);padding:15px 34px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--ink);transition:background .25s var(--ease),color .25s var(--ease);cursor:pointer}
.btn:hover,.btn:focus-visible{background:transparent;color:var(--ink)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink)}
.lnk{color:var(--accent);position:relative;display:inline-block}
.lnk::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--accent);transition:width .3s var(--ease)}
.lnk:hover::after,.lnk:focus-visible::after{width:100%}

.reass{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.reass > div{background:var(--paper);padding:var(--s3);display:flex;flex-direction:column;gap:8px}
.reass .h{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.05rem}
.reass .d{font-size:.88rem;color:var(--muted);line-height:1.65}

.quote{border-left:2px solid var(--accent);padding-left:var(--s3);max-width:64ch}
.quote p{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.22rem;line-height:1.6}
.quote cite{display:block;margin-top:14px;font-style:normal;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.facts > div{background:var(--mist);padding:18px 20px;display:flex;flex-direction:column;gap:5px}
.facts dt{font-family:ui-monospace,monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.facts dd{margin:0;font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1rem;line-height:1.35}

.price{border:1px solid var(--line);padding:var(--s3);display:flex;flex-direction:column;gap:12px;background:var(--paper)}
.price--feat{background:var(--mist);border-color:var(--ink)}
.price .n{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.35rem}
.price .p{font-family:ui-monospace,monospace;font-size:1.05rem;color:var(--accent)}
.price ul{padding-left:17px;display:flex;flex-direction:column;gap:7px}
.price li{font-size:.9rem;color:var(--muted);line-height:1.6}

.note{border-left:2px solid var(--accent);background:var(--mist);padding:16px 20px;font-size:.9rem;color:var(--muted);max-width:70ch}
.note strong{color:var(--ink);font-weight:400}

/* Filtres de la page Réalisations */
.filters{display:flex;gap:10px;flex-wrap:wrap}
.filters button{background:transparent;border:1px solid var(--line);color:var(--muted);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:8px 16px;cursor:pointer;transition:border-color .25s,color .25s}
.filters button:hover{color:var(--ink);border-color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* Grille en colonnes */
.masonry{columns:3;column-gap:var(--s2)}
.masonry > *{break-inside:avoid;margin-bottom:var(--s2);display:block}
@media (max-width:900px){.masonry{columns:2}}
@media (max-width:560px){.masonry{columns:1}}

/* Galeries WordPress */
.wp-block-gallery.has-nested-images{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s2)}
.wp-block-gallery.has-nested-images figure{margin:0;width:auto!important}
.media-hover{overflow:hidden;display:block}
.media-hover img{transition:transform .6s var(--ease)}
.media-hover:hover img,.media-hover:focus-visible img{transform:scale(1.03)}

/* Apparition au défilement */
.reveal{opacity:0;transform:translateY(12px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}

/* =========================================================
   6. En-tête et pied de page
   ========================================================= */
.site-head{border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:20}
.site-head .in{max-width:1240px;margin:0 auto;padding:22px 24px;display:flex;flex-direction:column;gap:16px;align-items:center}
.brand{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.45rem;letter-spacing:.3em;text-transform:uppercase;text-align:center}
.brand small{display:block;font-family:"Jost",sans-serif;font-size:.52rem;letter-spacing:.36em;color:var(--muted);margin-top:6px}
.brand img{max-height:60px;width:auto;margin:0 auto}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:26px;flex-wrap:wrap;justify-content:center}
.main-nav a{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding-bottom:3px;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}
.main-nav a:hover,.main-nav .current-menu-item > a{color:var(--ink);border-bottom-color:var(--accent)}
.nav-toggle{display:none;background:transparent;border:1px solid var(--line);padding:9px 16px;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}


/* Sélecteur de langue (Polylang) */
.lang-switch{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.lang-switch li{display:block}
.lang-switch a{display:block;padding:4px 9px;font-family:ui-monospace,monospace;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border:1px solid transparent;transition:color .25s,border-color .25s}
.lang-switch a:hover{color:var(--ink);border-color:var(--line)}
.lang-switch .current-lang a{color:var(--accent);border-color:var(--line)}

.site-foot{border-top:1px solid var(--line);padding:var(--s5) 0 var(--s4);background:var(--paper)}
.site-foot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s3)}
.site-foot h2{font-family:"Jost",sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.site-foot ul{list-style:none;padding:0}
.site-foot a,.site-foot p{font-size:.88rem;color:var(--muted);display:block;line-height:2}
.site-foot a:hover{color:var(--ink)}
.legal{margin-top:var(--s4);padding-top:var(--s2);border-top:1px solid var(--line);font-size:.76rem;color:var(--muted)}

/* =========================================================
   7. Adaptatif
   ========================================================= */
@media (max-width:780px){
  .sec{padding:var(--s5) 0}
  .sec--tight{padding:var(--s4) 0}
  .nav-toggle{display:block}
  .main-nav{display:none;width:100%}
  .main-nav.is-open{display:block}
  .main-nav ul{flex-direction:column;gap:0;align-items:stretch}
  .main-nav li{border-top:1px solid var(--line)}
  .main-nav a{display:block;padding:14px 0;text-align:center;border-bottom:0}
}
@media (max-width:480px){
  body{font-size:15px}
  .btn{width:100%;text-align:center}
}

/* =========================================================
   8. Accessibilité du mouvement
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .reveal{opacity:1;transform:none}
}


/* Formulaires (Contact Form 7) */
.wpcf7 form{display:flex;flex-direction:column;gap:14px;max-width:560px}
.wpcf7 p{margin:0;display:flex;flex-direction:column;gap:14px}
.wpcf7 input:not([type=submit]),.wpcf7 select,.wpcf7 textarea{width:100%;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:13px 15px;font-family:inherit;font-size:.95rem;font-weight:300;border-radius:0;transition:border-color .25s}
.wpcf7 input:not([type=submit]):focus,.wpcf7 select:focus,.wpcf7 textarea:focus{border-color:var(--accent);outline:none}
.wpcf7 textarea{min-height:150px;resize:vertical}
.wpcf7 input[type=submit]{align-self:flex-start;background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:15px 34px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease)}
.wpcf7 input[type=submit]:hover{background:transparent;color:var(--ink)}
.wpcf7 .wpcf7-not-valid{border-color:#A8322A}
.wpcf7 .wpcf7-not-valid-tip{font-size:.8rem;color:#A8322A}
.wpcf7 .wpcf7-response-output{border:1px solid var(--line);background:var(--mist);padding:12px 16px;margin:0;font-size:.9rem}
.wpcf7 .wpcf7-spinner{margin:0 12px}

/* =========================================================
   9. Contenus déjà en ligne (FAQ, pages mariage)
   Ces classes viennent du contenu des pages créées avant la refonte.
   Elles sont reprises ici pour que ces pages restent intactes après
   le changement de thème — le CSS additionnel du Customizer, lui,
   est attaché à l'ancien thème et ne suivra pas.
   ========================================================= */
.edp-faq,.edp-mariage{max-width:var(--wide);margin:0 auto}
.edp-eyebrow{font-family:ui-monospace,monospace;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:var(--s5) 0 var(--s2)}
.edp-faq > .edp-eyebrow:first-of-type{margin-top:var(--s3)}
.edp-intro,.edp-lede{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.24rem;line-height:1.62;color:var(--muted);max-width:62ch}

/* Les deux questions mises en avant, en quinconce */
.edp-feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s3)}
.edp-card{border:1px solid var(--line);background:var(--mist);padding:var(--s3)}
.edp-feat > .edp-card:nth-child(even){margin-top:var(--s4)}
.edp-card h3{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.3rem;font-weight:400;line-height:1.3;margin-bottom:14px}
.edp-card p{font-size:.94rem;line-height:1.75;color:var(--muted)}
.edp-card p + p{margin-top:12px}
.edp-card strong{color:var(--ink);font-weight:400}
@media (max-width:700px){.edp-feat > .edp-card:nth-child(even){margin-top:0}}

/* Accordéon */
.edp-acc{border-top:1px solid var(--line)}
.edp-acc details{border-bottom:1px solid var(--line)}
.edp-acc summary{cursor:pointer;list-style:none;padding:20px 44px 20px 0;position:relative;font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.05rem;line-height:1.45;transition:color .25s}
.edp-acc summary::-webkit-details-marker{display:none}
.edp-acc summary:hover{color:var(--accent)}
.edp-acc summary::after{content:"";position:absolute;right:8px;top:50%;width:9px;height:9px;margin-top:-6px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:rotate(45deg);transition:transform .3s var(--ease)}
.edp-acc details[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.edp-acc details[open] summary{color:var(--accent)}
.edp-a{padding:0 44px 24px 0}
.edp-a p{font-size:.94rem;line-height:1.78;color:var(--muted);max-width:66ch}
.edp-a p + p{margin-top:12px}
.edp-a strong{color:var(--ink);font-weight:400}

/* Citation d'un couple */
.edp-quote{border-left:2px solid var(--accent);padding:6px 0 6px 24px;margin:var(--s4) 0}
.edp-quote p{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1.18rem;line-height:1.6;font-style:italic}
.edp-quote cite{display:block;margin-top:10px;font-family:ui-monospace,monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:var(--muted)}

/* Faits d'une page mariage écrits dans le contenu */
.edp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:var(--s3) 0}
.edp-facts > div{background:var(--mist);padding:18px 20px;display:flex;flex-direction:column;gap:5px}
.edp-facts span{font-family:ui-monospace,monospace;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.edp-facts strong{font-family:"Bodoni Moda",Didot,Georgia,serif;font-size:1rem;font-weight:400;line-height:1.35}

/* Appel à l'action écrit dans le contenu */
.edp-cta{text-align:center;border-top:1px solid var(--line);margin-top:var(--s5);padding-top:var(--s4)}
.edp-btn{display:inline-block;background:var(--ink);color:var(--paper);padding:15px 34px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;transition:background .3s var(--ease)}
.edp-btn:hover,.edp-btn:focus-visible{background:var(--accent);color:var(--paper)}

/* =========================================================
   10. Impression
   ========================================================= */
@media print{
  .site-head,.site-foot,.btn,.filters{display:none}
  body{background:#fff;color:#000;font-size:12pt}
}
