/* Alexandre Photographie : feuille de style unique */
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/big-shoulders-display-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/big-shoulders-display-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/karla-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/karla-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Karla";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/karla-latin-700-normal.woff2) format("woff2")}
:root{
  --ink:#000000;
  --night:#121110;
  --line:#2a2825;
  --paper:#f4f0e8;
  --muted:#a8a298;
  --sun:#fcbc46;
  --sun-deep:#e6a52f;
  --display:"Big Shoulders Display", "Arial Narrow", sans-serif;
  --text:"Karla", system-ui, sans-serif;
  --wrap:1240px;
  --gut:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px}
body{margin:0;background:var(--ink);color:var(--paper);font:400 1.0625rem/1.7 var(--text);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
main{overflow-x:clip}
a{color:inherit}
p a,.prose li a,.legal li a,.article li a,.faq a{color:var(--sun);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
p a:hover,.prose li a:hover{text-decoration-thickness:2px}
.nowrap{white-space:nowrap}
:focus-visible{outline:2px solid var(--sun);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--sun);color:#000;padding:.6em 1em;z-index:100}
.skip:focus{left:8px;top:8px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}

h1,h2,h3{font-family:var(--display);font-weight:800;line-height:.98;letter-spacing:.005em;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.7rem,6.4vw,5.6rem)}
h2{font-size:clamp(2rem,3.6vw,3rem)}
h3{font-size:1.6rem;font-weight:700}
p{margin:0 0 1.1em;max-width:68ch}
.lead{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.6;color:var(--paper);max-width:46ch}
.muted{color:var(--muted)}
ul{padding-left:1.1em;max-width:68ch}
li{margin-bottom:.45em}
li::marker{color:var(--sun)}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5em;font:700 1rem/1 var(--text);padding:1em 1.5em;border:2px solid var(--sun);text-decoration:none;transition:background .2s,color .2s}
.btn--sun{background:var(--sun);color:#000}
.btn--sun:hover{background:var(--paper);border-color:var(--paper)}
.btn--ghost{color:var(--paper);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--paper)}
.btn--dark{background:#000;color:var(--paper);border-color:#000}
.btn--dark:hover{background:var(--paper);color:#000;border-color:var(--paper)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8em}

/* ---------- en-tete ---------- */
.top{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line)}
.top::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.brand img{width:190px;height:auto}
.menu{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.menu>li{margin:0;position:relative}
.menu a,.menu button{font:500 1rem var(--text);color:var(--paper);text-decoration:none;background:none;border:0;cursor:pointer;padding:.4em 0}
.menu a:hover,.menu button:hover,.menu a[aria-current=page]{color:var(--sun)}
.menu .btn,.menu .btn[aria-current=page]{padding:.75em 1.15em;color:#000;background:var(--sun)}
.menu .btn:hover{color:#000}
.sub{position:absolute;top:calc(100% + 14px);left:-20px;min-width:230px;list-style:none;margin:0;padding:10px 0;background:var(--night);border:1px solid var(--line);display:none}
.sub.open{display:block}
.sub a{display:block;padding:.55em 20px}
.caret{display:inline-block;width:.45em;height:.45em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:.45em}
.burger{display:none;background:none;border:0;color:var(--paper);cursor:pointer;padding:10px;margin-right:-10px}
.burger span{display:block;width:26px;height:2px;background:currentColor;margin:6px 0;transition:transform .25s,opacity .25s}
.burger[aria-expanded=true] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded=true] span:nth-child(2){opacity:0}
.burger[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

@media (max-width:900px){
  .burger{display:block}
  .brand img{width:160px}
  .nav{position:fixed;inset:76px 0 0 0;background:#000;overflow-y:auto;display:none;padding:24px var(--gut) 48px}
  .nav.open{display:block}
  .menu{flex-direction:column;align-items:stretch;gap:0}
  .menu>li{border-bottom:1px solid var(--line)}
  .menu a,.menu button{display:block;width:100%;text-align:left;font:800 1.9rem/1.2 var(--display);padding:.45em 0}
  .menu .caret{display:none}
  .sub{position:static;display:block;border:0;background:none;padding:0 0 .8em;min-width:0}
  .sub a{font:500 1.1rem var(--text);padding:.35em 0 .35em 2px;color:var(--muted)}
  .menu .btn{display:flex;margin-top:24px;justify-content:center;font:700 1.05rem var(--text);border-bottom:2px solid var(--sun)}
  .menu>li:last-child{border:0}
}

/* ---------- viseur : la signature du site ---------- */
.frame{position:relative;margin:30px}
.frame::before,.frame::after{content:"";position:absolute;width:24%;height:24%;pointer-events:none;z-index:2}
.frame::before{top:-22px;left:-22px;border-top:7px solid var(--sun);border-left:7px solid var(--sun);filter:drop-shadow(-4px -4px 0 var(--paper))}
.frame::after{bottom:-22px;right:-22px;border-bottom:7px solid var(--sun);border-right:7px solid var(--sun);filter:drop-shadow(4px 4px 0 var(--paper))}
.frame img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--night)}

/* ---------- hero ---------- */
.hero{padding:clamp(40px,7vw,96px) 0 clamp(56px,8vw,110px)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,90px);align-items:center}
.hero h1{margin-bottom:.4em;font-size:clamp(2.5rem,5.2vw,4.9rem)}
.hero .place{color:var(--muted);font-size:1rem;margin:1.6em 0 0}
.hero .place strong{color:var(--paper);font-weight:500}
@media (max-width:820px){.hero .wrap{grid-template-columns:1fr}.hero .frame{max-width:440px;width:calc(100% - 60px);margin:36px auto 0}}

/* ---------- fil d'ariane ---------- */
.crumbs{font-size:.92rem;color:var(--muted);padding-top:28px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4em}
.crumbs li{margin:0}
.crumbs li+li::before{content:"/";margin-right:.4em;color:var(--line)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--sun)}

/* ---------- sections ---------- */
.band{padding:clamp(64px,9vw,120px) 0;border-top:1px solid var(--line)}
.head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}
.head h2{margin:0}
.head p{margin:0;color:var(--muted);max-width:44ch}

/* tuiles des seances */
.tiles{max-width:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,32px) clamp(14px,2vw,26px);list-style:none;margin:0;padding:0}
.tiles li{margin:0}
.tile{display:block;text-decoration:none;position:relative}
.tile .ph{position:relative;overflow:hidden}
.tile img{aspect-ratio:4/5;object-fit:cover;width:100%;background:var(--night);transition:transform .6s ease}
.tile h3{margin:.65em 0 .2em;font-size:1.75rem}
.tile p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.5}
.tile .ph::before,.tile .ph::after{content:"";position:absolute;width:26%;height:22%;z-index:2;opacity:0;transition:opacity .25s}
.tile .ph::before{top:10px;left:10px;border-top:5px solid var(--sun);border-left:5px solid var(--sun)}
.tile .ph::after{bottom:10px;right:10px;border-bottom:5px solid var(--sun);border-right:5px solid var(--sun)}
.tile:hover .ph::before,.tile:hover .ph::after,.tile:focus-visible .ph::before,.tile:focus-visible .ph::after{opacity:1}
.tile:hover img{transform:scale(1.03)}
.tile:hover h3{color:var(--sun)}
@media (max-width:980px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.tile h3{font-size:1.45rem}.tile p{font-size:.92rem}}

/* etapes */
.steps{max-width:none;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{margin:0;counter-increment:s;border-top:1px solid var(--line);padding-top:18px}
.steps li::before{content:counter(s);display:block;font:800 3.4rem/1 var(--display);color:var(--sun);margin-bottom:.25em}
.steps h3{font-size:1.5rem;margin-bottom:.35em}
.steps p{color:var(--muted);font-size:1rem;margin:0}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* bloc a propos */
.duo{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,90px);align-items:center}
.duo .frame{max-width:420px}
@media (max-width:820px){.duo{grid-template-columns:1fr}.duo .frame{width:calc(100% - 60px);margin:30px auto}}

/* zone */
.towns{columns:3;column-gap:32px;list-style:none;padding:0;margin:1.4em 0 0;max-width:none}
.towns li{break-inside:avoid;padding:.35em 0;border-bottom:1px solid var(--line);margin:0}
@media (max-width:640px){.towns{columns:2}}

/* faq */
.faq{max-width:860px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.15em 2.4em 1.15em 0;position:relative;font:700 1.12rem/1.4 var(--text)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font:400 1.8rem/1 var(--text);color:var(--sun);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{color:var(--muted);padding-bottom:1.1em;margin:0}

/* appel a l'action */
.cta{background:var(--sun);color:#000;padding:clamp(56px,8vw,96px) 0}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta h2{margin:0;max-width:16ch;font-size:clamp(2.2rem,4.6vw,3.8rem)}
.cta p{margin:.6em 0 0;max-width:42ch;font-size:1.1rem}

/* ---------- pages de prestation ---------- */
.svc{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,6vw,90px);align-items:start}
.svc .prose h2{margin-top:1.4em}
.svc .prose h2:first-child{margin-top:0}
.aside{position:sticky;top:100px;border:1px solid var(--line);padding:28px;background:var(--night)}
.aside h2{font-size:1.7rem}
.aside ul{list-style:none;padding:0;margin:0 0 1.4em}
.aside li{padding:.55em 0 .55em 1.6em;border-bottom:1px solid var(--line);position:relative;font-size:.98rem;margin:0}
.aside li::before{content:"";position:absolute;left:0;top:1.05em;width:.7em;height:.35em;border-left:2px solid var(--sun);border-bottom:2px solid var(--sun);transform:rotate(-45deg)}
.price{font:800 1.9rem/1 var(--display);margin:0 0 .25em}
.price small{display:block;font:400 .9rem var(--text);color:var(--muted);margin-top:.4em}
.aside .btn{width:100%;justify-content:center}
@media (max-width:900px){.svc{grid-template-columns:1fr}.aside{position:static}}

.gallery{columns:3;column-gap:16px}
.gallery figure{margin:0 0 16px;break-inside:avoid}
.gallery img{width:100%;background:var(--night)}
@media (max-width:760px){.gallery{columns:2;column-gap:10px}.gallery figure{margin-bottom:10px}}

.related{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;list-style:none;padding:0;margin:0;max-width:none}
@media (max-width:760px){.related{grid-template-columns:1fr 1fr}.related li:nth-child(3){display:none}}

/* ---------- conseils ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:32px;list-style:none;padding:0;margin:0;max-width:none}
.posts li{margin:0}
.post-card{display:block;text-decoration:none}
.post-card img{aspect-ratio:3/2;object-fit:cover;width:100%;background:var(--night)}
.post-card h2{font-size:1.9rem;margin:.6em 0 .3em}
.post-card:hover h2{color:var(--sun)}
.post-card p{color:var(--muted);margin:0}
.meta{color:var(--muted);font-size:.95rem;margin:0 0 1.4em}
.article{max-width:760px}
.article .cover{margin:0 0 2em}
.article .cover img{aspect-ratio:3/2;object-fit:cover;width:100%}
.article h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-top:1.5em}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,6vw,90px);align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
label{font-weight:700;font-size:.95rem}
label span{color:var(--muted);font-weight:400}
input,select,textarea{font:inherit;font-size:1rem;color:var(--paper);background:var(--night);border:1px solid var(--line);padding:.8em .9em;border-radius:0;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--sun);outline:none}
textarea{min-height:170px;resize:vertical}
.check{grid-column:1/-1;display:flex;gap:.7em;align-items:flex-start;font-size:.92rem;color:var(--muted)}
.check input{width:auto;margin-top:.3em;accent-color:var(--sun)}
.hp{position:absolute;left:-5000px}
form .btn{grid-column:1/-1;justify-self:start;cursor:pointer}
.form-note{grid-column:1/-1;margin:0;font-size:.9rem;color:var(--muted)}
@media (max-width:600px){form{grid-template-columns:1fr}}
.coords{list-style:none;padding:0;margin:0;max-width:none}
.coords li{padding:1em 0;border-bottom:1px solid var(--line);margin:0}
.coords span{display:block;color:var(--muted);font-size:.9rem}
.coords a{font:800 1.6rem/1.2 var(--display);text-decoration:none;overflow-wrap:anywhere}
.coords a:hover{color:var(--sun)}

/* ---------- page simple ---------- */
.page{padding:clamp(40px,6vw,72px) 0 clamp(64px,9vw,110px)}
.legal h2{font-size:1.8rem;margin-top:1.6em}

/* ---------- pied de page ---------- */
.foot{border-top:1px solid var(--line);padding:64px 0 32px;font-size:.96rem}
.foot .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:36px}
.foot img{width:200px;margin-bottom:18px}
.foot h2{font-size:1.35rem;margin-bottom:.8em}
.foot ul{list-style:none;padding:0;margin:0;max-width:none}
.foot li{margin:0 0 .5em}
.foot a{text-decoration:none;color:var(--muted)}
.foot a:hover{color:var(--sun)}
.foot p{color:var(--muted)}
.foot .legal-line{border-top:1px solid var(--line);margin-top:48px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:.88rem}
@media (max-width:900px){.foot .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot .cols{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.about > p:first-of-type{font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.6}
.page .duo{align-items:start}
.about h2{margin-top:1.3em}
