/*
Theme Name: Wiegert Photo
Theme URI: https://photographies.wiegert.fr
Author: Richard Wiegert
Description: Thème minimaliste pour photographies.wiegert.fr : fond blanc, vignettes qui reprennent leurs couleurs au survol, galeries, blog, événements (Events Manager) et espace client avec galeries privées.
Version: 1.3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: wiegert-photo
*/

:root{--ink:#1a1a1a;--muted:#6b6b6b;--line:#ececec;--bg:#fff;--shadow:0 10px 30px rgba(0,0,0,.08);--shadow-h:0 22px 44px rgba(0,0,0,.18);--font:'Jost',system-ui,-apple-system,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-weight:300;font-size:17px;line-height:1.7;color:var(--ink);background:var(--bg)}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px}
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 16px;z-index:100}
.skip-link:focus{left:10px;top:10px}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* Icônes */
.ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s;flex:none}

/* En-tête */
.site-header{border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);position:relative;z-index:20}
.header-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 40px;padding-top:22px;padding-bottom:22px}
.brand{font-size:15px;font-weight:300;letter-spacing:.36em;text-transform:uppercase}
.burger{display:none;width:44px;height:44px;border:0;background:transparent;color:var(--ink);cursor:pointer;align-items:center;justify-content:center}
.burger .ic{width:22px;height:22px}
.site-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px;font-size:13px;letter-spacing:.16em;text-transform:uppercase}
.site-nav ul{list-style:none;margin:0;padding:0}
.site-nav .menu{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center}
.site-nav a{position:relative;display:inline-flex;align-items:center;gap:8px;color:#555;transition:color .25s}
.site-nav a:hover,.site-nav .current-menu-item>a,.site-nav .current-menu-ancestor>a{color:#111}
.site-nav a:hover .ic{transform:translateY(-2px) scale(1.12)}
.site-nav .menu>li>a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:#111;transform:scaleX(0);transition:transform .3s}
.site-nav .menu>li>a:hover::after,.site-nav .menu>li.current-menu-item>a::after,.site-nav .menu>li.current-menu-ancestor>a::after{transform:scaleX(1)}
.site-nav .menu li{position:relative}
.site-nav .sub-menu{display:block;visibility:hidden;opacity:0;position:absolute;top:calc(100% + 8px);left:-16px;min-width:220px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);z-index:30;transition:opacity .2s,visibility 0s linear .5s}
.site-nav .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.site-nav li:hover>.sub-menu,.site-nav li:focus-within>.sub-menu{visibility:visible;opacity:1;transition-delay:0s}
.site-nav .sub-menu a{padding:6px 0;white-space:nowrap}
.nav-client{padding:9px 18px;border:1px solid var(--ink);border-radius:2px;color:var(--ink)!important;transition:background .25s,color .25s,box-shadow .25s}
.nav-client:hover{background:var(--ink);color:#fff!important;box-shadow:0 10px 24px rgba(0,0,0,.18)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 26px;border:1px solid var(--ink);border-radius:2px;font-family:inherit;font-size:13px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:transparent;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s}
.btn:hover{background:var(--ink);color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.btn:hover .ic{transform:scale(1.15)}
.btn-solid{background:var(--ink);color:#fff}
.btn-solid:hover{background:#fff;color:var(--ink)}

/* Bandeau */
.hero{position:relative;min-height:520px;overflow:hidden;display:flex;align-items:flex-end;--veil:.55}
.hero-bg{position:absolute;inset:0;background:linear-gradient(120deg,#f1f6f8 0%,#d3e5ea 40%,#a9cbd4 75%,#7fa9ba 100%) center/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,var(--veil)) 0%,rgba(255,255,255,calc(var(--veil)*.35)) 45%,#fff 100%)}
.hero-in{position:relative;z-index:2;width:100%;padding-bottom:72px}
.hero h1{margin:0;font-weight:200;font-size:clamp(44px,8vw,96px);line-height:1;letter-spacing:.02em}
.hero p{margin:18px 0 32px;max-width:520px;font-size:18px;color:#444}
.hero-small{min-height:300px}
.hero-small .hero-in{padding-bottom:48px}

/* Sections */
.section{padding:80px 0 0}
.section:last-of-type{padding-bottom:80px}
.section-title{margin:0 0 36px;font-size:13px;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.grid{display:flex;flex-wrap:wrap;gap:32px}
.grid>*{flex:1 1 300px;min-width:0;max-width:100%}
.grid-3>*{flex-basis:calc(33.333% - 22px)}
.grid-4>*{flex-basis:calc(25% - 24px)}
.grid-3:has(> :only-child)>*,.grid-3:has(> :nth-child(2):last-child)>*{max-width:calc(50% - 16px)}

/* Vignettes */
.card{display:block}
.frame{position:relative;overflow:hidden;border-radius:6px;box-shadow:var(--shadow);transition:box-shadow .4s,transform .4s;background:#f2f2f2}
.card:hover .frame,.card:focus-visible .frame{box-shadow:var(--shadow-h);transform:translateY(-4px)}
.ratio-45{aspect-ratio:4/5}.ratio-32{aspect-ratio:3/2}.ratio-1{aspect-ratio:1/1}.ratio-1610{aspect-ratio:16/10}
.ph{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(var(--ph-gray,.25));transition:filter .6s,transform .8s}
.card:hover .ph,.card:focus-visible .ph{filter:none;opacity:1;transform:scale(1.05)}
.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,var(--veil-a,.3)),rgba(255,255,255,calc(var(--veil-a,.3)*.4)) 60%,rgba(255,255,255,0));transition:opacity .6s}
.card:hover .veil,.card:focus-visible .veil{opacity:0}
.g0{background-image:linear-gradient(135deg,#e8b48a,#c46a5a 55%,#5b4a6b)}
.g1{background-image:linear-gradient(160deg,#9ec5d6,#3f6f8f 60%,#1c2f45)}
.g2{background-image:linear-gradient(145deg,#f3d9a4,#e08a4a 45%,#2e7d7a)}
.g3{background-image:linear-gradient(135deg,#bcd7c4,#4f8a6b 60%,#1f3b33)}
.g4{background-image:linear-gradient(135deg,#e7c6d4,#b5648a 60%,#42263a)}
.g5{background-image:linear-gradient(135deg,#d9c3a0,#8c6f4e 60%,#3b3a36)}
.caption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px}
.caption .t{font-size:20px;font-weight:300;letter-spacing:.08em}
.caption .m{font-size:13px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.card-title{margin:16px 0 4px;font-size:20px;font-weight:300;line-height:1.35}
.card-meta{margin:0;font-size:14px;color:var(--muted)}

/* Événements */
.event{display:flex;flex-wrap:wrap;align-items:center;gap:12px 32px;padding:24px 28px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.06);transition:box-shadow .3s,transform .3s;margin-bottom:16px}
.event:hover{box-shadow:0 16px 36px rgba(0,0,0,.14);transform:translateX(6px)}
.event .d{font-size:40px;font-weight:200;min-width:110px;line-height:1}
.event .i{flex:1 1 240px}
.event .i b{display:block;font-size:20px;font-weight:300;letter-spacing:.08em}
.event .i span{display:block;font-size:15px;color:var(--muted)}
.event .go{font-size:13px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}

/* Bloc espace client + Instagram */
.band{margin-top:80px;padding:80px 0;background:linear-gradient(135deg,#fafafa,#efefef)}
.panel{padding:40px;background:#fff;border-radius:6px;box-shadow:0 12px 32px rgba(0,0,0,.08);transition:box-shadow .3s,transform .3s}
.panel:hover{box-shadow:0 20px 44px rgba(0,0,0,.14);transform:translateY(-3px)}
.panel .ic{width:32px;height:32px}
.panel h3{margin:20px 0 10px;font-size:26px;font-weight:300;letter-spacing:.06em}
.panel p{margin:0 0 28px;color:#555}

/* Pied de page */
.site-footer{padding:40px 0;font-size:14px;color:var(--muted)}
.footer-in{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:center}
.footer-in nav{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.footer-in a{color:var(--muted);transition:color .25s}
.footer-in a:hover{color:#111}

/* Contenu des pages et articles */
.page-main{padding-top:64px;padding-bottom:80px}
.entry-title{margin:0 0 12px;font-weight:200;font-size:clamp(34px,5vw,56px);line-height:1.1}
.entry-meta{margin:0 0 40px;font-size:14px;color:var(--muted);letter-spacing:.08em}
.entry-content{max-width:760px}
.entry-content.wide{max-width:none}
.entry-content h2,.entry-content h3{font-weight:300;line-height:1.3;margin:2em 0 .6em}
.entry-content a{border-bottom:1px solid #bbb;transition:border-color .25s}
.entry-content a:hover{border-color:#111}
.entry-content img{border-radius:6px}
.entry-content figure{margin:2em 0}
.entry-content figcaption,.wp-caption-text{font-size:14px;color:var(--muted);margin-top:8px}
.alignleft{float:left;margin:0 24px 16px 0}.alignright{float:right;margin:0 0 16px 24px}.aligncenter{display:block;margin:0 auto}
.wp-block-image img,.entry-content .wp-block-gallery img{box-shadow:var(--shadow)}
.entry-content blockquote{margin:2em 0;padding:0 0 0 24px;border-left:1px solid var(--ink);font-size:1.15em}
.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;letter-spacing:.08em}
.post-nav a{border-bottom:1px solid transparent;transition:border-color .25s}
.post-nav a:hover{border-color:#111}
.pagination{margin-top:48px;display:flex;gap:10px;flex-wrap:wrap}
.pagination .page-numbers{padding:8px 14px;border:1px solid var(--line);border-radius:2px;font-size:14px}
.pagination .current,.pagination .page-numbers:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.comments{max-width:760px;margin-top:64px}
.comments ol{padding-left:0;list-style:none}
.comments li{margin-bottom:24px}
.comments input[type=text],.comments input[type=email],.comments input[type=url],.comments textarea{width:100%}

/* Formulaires */
.fld,input[type=text],input[type=email],input[type=url],input[type=password],input[type=search],textarea{font-family:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #cfcfcf;border-radius:2px;padding:12px 14px;transition:border-color .25s,box-shadow .25s}
.fld{width:100%;height:48px;padding:0 14px}
.fld:focus,input:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.1)}
label{display:block;margin-bottom:8px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#555}

/* Espace client */
.login-split{display:flex;flex-wrap:wrap;min-height:640px}
.login-form{flex:1 1 440px;min-width:0;padding:72px 40px;display:flex;align-items:center;justify-content:center}
.login-form form{width:100%;max-width:380px}
.login-form .ic.big{width:32px;height:32px}
.login-form h1{margin:18px 0 8px;font-weight:200;font-size:44px;line-height:1.1}
.login-form .lead{margin:0 0 32px;color:#555}
.login-form .field{margin-bottom:20px}
.login-form .remember{display:flex;align-items:center;gap:10px;margin:0 0 24px}
.login-form .remember input{width:18px;height:18px}
.login-form .remember label{margin:0;text-transform:none;letter-spacing:0;font-size:15px}
.login-form .row{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}
.login-form .lk{font-size:14px;color:#555;border-bottom:1px solid #bbb}
.login-form .note{margin:36px 0 0;font-size:14px;color:var(--muted)}
.login-error{margin:0 0 24px;padding:12px 16px;border:1px solid #d9a3a3;border-radius:2px;background:#fdf3f3;color:#7a2b2b;font-size:15px}
.login-visual{flex:1 1 440px;min-width:0;position:relative;min-height:360px;overflow:hidden;background:linear-gradient(160deg,#d3e5ea,#a9cbd4 55%,#7fa9ba) center/cover}
.login-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.35) 40%,rgba(255,255,255,0) 100%)}
.lock-badge{position:absolute;top:14px;right:14px;z-index:2;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.12)}
.eyebrow{margin:0 0 8px;font-size:13px;font-weight:400;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.toolbar{margin:0 0 28px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.empty{color:var(--muted)}

/* Galeries Photo Gallery : laisse respirer le plugin */
.bwg_container,.bwg-container{max-width:100%}

/* Mobile */
@media (max-width:860px){
  .wrap{padding:0 20px}
  .header-in{padding-top:12px;padding-bottom:12px}
  .burger{display:flex}
  .site-nav{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:16px;padding:12px 0 20px}
  .site-nav.open{display:flex}
  .site-nav .menu{flex-direction:column;align-items:flex-start;gap:10px;width:100%}
  .site-nav .sub-menu{visibility:visible;opacity:1;position:static;border:0;box-shadow:none;margin:6px 0 0;padding:0 0 0 16px;min-width:0}
  .hero{min-height:340px}.hero-in{padding-bottom:32px}.hero p{font-size:16px;margin:10px 0 22px}
  .section{padding-top:56px}
  .grid{gap:24px}
  .grid-3>*,.grid-4>*{flex-basis:100%;max-width:100%!important}
  .panel{padding:28px 24px}
  .login-form{padding:48px 20px}
  .login-visual{display:none}
  .alignleft,.alignright{float:none;margin:0 0 16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
