/* retr0DVE — Zine Noir — photographe mariage & événementiel */
:root{
  --ink:#0E0E0E; --paper:#F1F0EB; --em:#2EE38F; --mint:#6FD9AA; --em-deep:#0B6B4F;
  --concrete:#8C8C87; --brass:#B8955A; --line:#2a2a28;
  --f-title:'Anton',Impact,sans-serif; --f-serif:'Instrument Serif',Georgia,serif;
  --f-body:'Inter',system-ui,sans-serif; --f-mono:'Space Mono',ui-monospace,monospace;
  --pad:clamp(18px,4vw,48px); --max:1320px;
  --torn:polygon(0% 1%,8% 0%,15% 1.6%,24% .4%,33% 1.8%,41% .6%,52% 1.5%,60% 0%,71% 1.4%,80% .3%,91% 1.7%,100% .5%,99.2% 12%,100% 27%,98.8% 41%,99.6% 58%,98.7% 73%,99.5% 88%,100% 99%,90% 98.2%,79% 99.7%,68% 98.4%,57% 99.8%,46% 98.3%,35% 99.6%,24% 98.1%,13% 99.5%,0% 98.6%,.8% 86%,0% 71%,1.1% 55%,.2% 40%,1% 24%,0% 11%);
  --torn-big:polygon(0% 2.9%,5.5% .8%,10.4% 3.9%,19.4% 2.5%,27.6% 3.7%,35.6% 2%,42% 3.1%,50.6% 1.9%,58.8% 2.7%,64.9% 2.2%,70.9% 3%,79.3% 1.2%,85.5% .8%,92.8% 1.2%,100% 0%,97.5% 7.6%,97.3% 16.1%,97.7% 26.4%,99.9% 41.4%,98.2% 51.9%,99.4% 64.4%,97% 77.1%,98.8% 90.3%,100% 100%,91.2% 99.4%,82.6% 98%,72.3% 99.3%,61.9% 97.8%,52.6% 98.3%,44.6% 98.3%,32.6% 96.9%,25% 98.3%,16.8% 96.2%,9% 97.4%,0% 100%,1.7% 94%,2.2% 79.9%,1.3% 62.7%,1.1% 47.9%,2.9% 28.7%,2.4% 16.5%,1.9% 5.1%);
  --torn-edge:polygon(0% 1.3%,3.5% .7%,6.1% .9%,9.5% .4%,13.1% 1.2%,16.9% .6%,20% .1%,23.6% .8%,27.5% 1.4%,32.5% 1.5%,36.6% .1%,40.5% .2%,44.2% 1.2%,48% 0%,52.6% 1.5%,56.4% .4%,60.4% 1.2%,64.4% .4%,68.1% 1%,72% .9%,76.7% .2%,79.9% .7%,84.4% 1%,88.3% 1.5%,91.9% .8%,95.2% .7%,98.5% .7%,100% 0%,100% 99.2%,96% 98.6%,92.5% 99.7%,88.6% 98.9%,84.4% 99.6%,80.9% 98.7%,77% 99.2%,72% 98.6%,68.2% 99.5%,63% 99.7%,59.8% 98.6%,55.1% 99.7%,50.5% 99.2%,46.4% 99.6%,42.4% 98.9%,38.2% 99.2%,34.6% 98.9%,30.4% 98.5%,28% 99.8%,24% 98.8%,20.3% 98.8%,16.9% 99.1%,13.4% 98.8%,9.4% 98.9%,5.8% 98.7%,2.3% 99%,0% 100%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--f-body);-webkit-font-smoothing:antialiased;line-height:1.5}
main{overflow-x:clip}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.09;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;max-width:100%}
a{color:var(--em);text-decoration:none}
a:hover{color:var(--mint)}
:focus-visible{outline:3px solid var(--em);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--em);color:var(--ink);padding:10px 14px;z-index:1000;font-family:var(--f-mono)}
.skip:focus{left:10px;top:10px}
.wrap{max-width:var(--max);margin:0 auto}
.sec{padding:clamp(80px,9vw,130px) var(--pad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type ---------- */
.kicker{font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--em);margin:0}
.on-paper .kicker,.on-em .kicker{color:var(--ink)}
.h1,.h2{margin:0;font-family:var(--f-title);font-weight:400;text-transform:uppercase;letter-spacing:-.005em}
.h1{font-size:clamp(58px,9vw,148px);line-height:.88}
.h2{font-size:clamp(44px,6vw,96px);line-height:.92}
.it{font-family:var(--f-serif);font-style:italic;text-transform:none;letter-spacing:-.02em}
.it.em{color:var(--em)}
.hl{font-family:var(--f-serif);font-style:italic;text-transform:none;background:var(--em);color:var(--ink);padding:0 10px;display:inline-block;transform:rotate(-1.5deg)}
.lead{margin:0;font-size:18px;line-height:1.6;max-width:540px;text-wrap:pretty}
.mono{font-family:var(--f-mono)}
.cap{font-family:var(--f-mono);font-size:12px;color:var(--concrete);margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--f-mono);font-weight:700;font-size:15px;text-transform:uppercase;letter-spacing:.04em;background:var(--em);color:var(--ink);padding:18px 26px;box-shadow:5px 5px 0 var(--paper);transition:transform .15s,box-shadow .15s}
.btn:hover{color:var(--ink);transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--paper)}
.btn.tilt{transform:rotate(-1.5deg)}
.btn.tilt:hover{transform:rotate(-1.5deg) translate(-2px,-2px)}
.btn.dark{background:var(--ink);color:var(--em)}
.btn.dark:hover{color:var(--em)}
.btn.dark.shadow-em{color:var(--paper);box-shadow:4px 4px 0 var(--em)}
.btn.sm{font-size:13px;padding:10px 16px;box-shadow:3px 3px 0 var(--paper)}
.link{font-family:var(--f-mono);font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--paper);border-bottom:2px solid var(--em);padding-bottom:4px}
.link:hover{color:var(--em)}
.on-paper .link{color:var(--ink)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:var(--ink);border-bottom:1px solid var(--line)}
.hdr .wrap{padding:14px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{font-family:var(--f-title);font-size:30px;letter-spacing:.5px;color:var(--paper);line-height:1}
.logo span{color:var(--em)}
.logo:hover{color:var(--paper)}
.nav{display:flex;gap:clamp(14px,2.2vw,30px);font-family:var(--f-mono);font-size:13px;text-transform:uppercase;letter-spacing:.06em;align-items:center}
.nav a{color:var(--paper);padding:3px 0}
.nav a:hover{color:var(--em)}
.nav a[aria-current="page"]{color:var(--ink);background:var(--em);padding:3px 8px;transform:rotate(-2deg)}
.nav a.lang{border:1px solid var(--concrete);padding:2px 6px;font-size:11px}
.burger{display:none;background:none;border:2px solid var(--paper);color:var(--paper);font-family:var(--f-mono);font-size:13px;text-transform:uppercase;padding:8px 12px;cursor:pointer}
@media (max-width:960px){
  .hdr .btn.sm{display:none}
  .burger{display:block}
  .nav{position:fixed;inset:62px 0 auto 0;background:var(--ink);flex-direction:column;align-items:flex-start;gap:0;padding:10px var(--pad) 26px;border-bottom:2px solid var(--em);transform:translateY(-130%);transition:transform .25s;font-size:18px}
  .nav.open{transform:none}
  .nav a{padding:12px 0;width:100%;border-bottom:1px dashed var(--line)}
  .nav a[aria-current="page"]{padding:12px 8px;transform:none}
  .nav .btn{margin-top:18px;width:auto;border:0}
}
@media (min-width:961px){.nav .btn{display:none}}

/* ---------- photo frames ---------- */
.ph{position:relative;overflow:hidden;background:#1b1b1a}
.ph img{width:100%;height:100%;object-fit:cover}
.ph.bw img{filter:grayscale(1) contrast(1.15);transition:filter .5s}
.ph.bw:hover img{filter:none}
.ph.ht::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(rgba(14,14,14,.5) .8px,transparent 1.2px);background-size:4px 4px;mix-blend-mode:multiply;transition:opacity .5s}
.ph.ht:hover::after{opacity:0}
.ph.duo::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--em);mix-blend-mode:multiply;z-index:1;transition:opacity .5s}
.ph.duo:hover::before{opacity:0}
.torn{clip-path:var(--torn)}
.polaroid{background:var(--paper);padding:8px}
.tape{position:absolute;width:100px;height:26px;background:rgba(241,240,235,.7);pointer-events:none;z-index:3}
.tape.em{background:rgba(46,227,143,.75)}
.tape.dk{background:rgba(14,14,14,.8)}
figure{margin:0}

/* ---------- hero ---------- */
.hero{position:relative;padding:clamp(48px,7vw,96px) var(--pad) clamp(80px,9vw,130px)}
.hero .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:clamp(40px,6vw,80px);align-items:center}
.hero-txt{display:flex;flex-direction:column;gap:28px;position:relative;z-index:2}
.cta-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.collage{position:relative;min-height:clamp(440px,52vw,560px);max-width:560px;width:100%;justify-self:center}
.collage .bg{position:absolute;top:4%;left:8%;right:2%;bottom:10%;background:var(--em);transform:rotate(5deg);clip-path:var(--torn-big)}
.collage .main{position:absolute;top:0;left:0;width:78%;aspect-ratio:4/5;transform:rotate(-2.5deg);z-index:2}
.collage .main .ph{width:100%;height:100%}
.collage .main .tape{top:-14px;left:38%;width:110px;height:28px;transform:rotate(-6deg)}
.collage .small{position:absolute;right:0;bottom:2%;width:44%;aspect-ratio:1;background:var(--paper);padding:8px 8px 34px;transform:rotate(6deg);z-index:3;box-shadow:0 14px 30px rgba(0,0,0,.5)}
.collage .small .ph{width:100%;height:100%}
.collage .small .cap{position:absolute;left:10px;bottom:9px;color:var(--ink);font-size:11px}
.stamp{position:absolute;left:-2%;bottom:6%;z-index:4;background:var(--ink);color:var(--paper);border:2px solid var(--paper);font-family:var(--f-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;transform:rotate(-4deg)}

/* ---------- band ---------- */
.band{position:relative;margin:-40px 0 0;z-index:5;transform:rotate(-1.6deg);background:var(--em);width:104%;left:-2%;clip-path:polygon(0% 7.5%,5% 12.2%,9.3% 5.5%,12.8% 12.6%,16.1% 4.7%,20.6% 4.3%,24.2% 0%,27.1% 9.7%,30.6% 2.4%,35.3% 2.5%,38.2% 11.4%,42.5% 4.6%,45.5% 13.4%,51.3% 9.8%,55.9% .6%,61.4% 3.5%,66% 11.4%,71.5% 11.1%,75.9% 12.9%,80.7% 12.1%,87.5% 12%,90.9% 1.8%,94.5% 13.4%,95.9% 1.1%,100% 0%,100% 86.6%,96.7% 93.4%,92% 93.3%,88.8% 98.7%,82.8% 89.8%,78% 91.4%,70.7% 90%,66.3% 99.1%,60.9% 92.4%,57.1% 99.1%,53.5% 97.2%,49.3% 100%,44.6% 89.2%,39% 88.8%,36% 91%,33.7% 99.5%,28.9% 96.5%,23.4% 93.6%,18% 87.8%,11.6% 88.5%,4.6% 90.3%,0% 100%)}
.band div{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;padding:26px 20px;font-family:var(--f-title);font-size:clamp(22px,3vw,40px);text-transform:uppercase;color:var(--ink);letter-spacing:.02em}

/* ---------- ransom title ---------- */
.ransom{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:clamp(40px,6vw,84px);line-height:1;margin:0;font-weight:400}
.ransom span{display:inline-block}
.r1{font-family:var(--f-title);background:var(--paper);color:var(--ink);padding:2px 10px}
.r2{font-family:var(--f-serif);font-style:italic;background:var(--em);color:var(--ink);padding:0 10px}
.r3{font-family:var(--f-mono);font-weight:700;border:3px solid var(--paper);color:var(--paper);padding:0 8px;font-size:.8em}
.r4{font-family:var(--f-title);color:var(--paper);padding:2px 6px}
.r5{font-family:var(--f-mono);font-weight:700;background:var(--paper);color:var(--ink);padding:0 8px;font-size:.85em}
.r6{font-family:var(--f-serif);font-style:italic;border:3px solid var(--em);color:var(--em);padding:0 10px}
.r7{font-family:var(--f-mono);font-weight:700;background:var(--em);color:var(--ink);padding:0 8px;font-size:.85em}
.sp{width:18px}

/* ---------- extraits ---------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.sec-head>div{display:flex;flex-direction:column;gap:18px}
.stack{display:flex;flex-direction:column;gap:56px}
.row{display:flex;flex-wrap:wrap;gap:clamp(20px,3vw,36px)}
.row.top{align-items:flex-start}.row.mid{align-items:center}
.fig{display:flex;flex-direction:column;gap:10px;position:relative}
.quote{background:var(--paper);color:var(--ink);padding:22px 24px;transform:rotate(-2deg);clip-path:polygon(0% 1%,8% 0%,15% 4%,24% .4%,33% 3.8%,41% .6%,52% 3.5%,60% 0%,71% 3.4%,80% .3%,91% 3.7%,100% .5%,99.2% 12%,100% 27%,98.8% 41%,99.6% 58%,98.7% 73%,99.5% 88%,100% 99%,90% 96.2%,79% 99.7%,68% 96.4%,57% 99.8%,46% 96.3%,35% 99.6%,24% 96.1%,13% 99.5%,0% 98.6%,.8% 86%,0% 71%,1.1% 55%,.2% 40%,1% 24%,0% 11%)}
.quote p{margin:0;font-family:var(--f-serif);font-style:italic;font-size:30px;line-height:1.1}
.outline{flex:0 1 auto;font-family:var(--f-title);font-size:clamp(90px,14vw,200px);line-height:.85;color:transparent;-webkit-text-stroke:2px var(--em);transform:rotate(-6deg);padding:0 10px}

/* ---------- paper section ---------- */
.paper-sec{padding:clamp(30px,4vw,60px) clamp(10px,2vw,24px)}
.paper{max-width:1360px;margin:0 auto;background:var(--paper);color:var(--ink);padding:clamp(56px,7vw,100px) clamp(24px,6vw,90px);clip-path:var(--torn-big)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:clamp(40px,6vw,90px)}
.col{display:flex;flex-direction:column;gap:28px}
.strike{display:flex;flex-direction:column;gap:14px;font-family:var(--f-title);font-size:clamp(24px,2.6vw,36px);text-transform:uppercase}
.strike div{position:relative;align-self:flex-start}
.strike div::after{content:"";position:absolute;left:-6px;right:-6px;top:48%;height:9px;background:var(--ink);transform:rotate(-1.5deg)}
.strike div:nth-child(2)::after{transform:rotate(1deg);top:50%}
.big-serif{margin:0;font-family:var(--f-serif);font-size:clamp(26px,2.6vw,38px);line-height:1.2;text-wrap:pretty}
.steps{display:flex;flex-direction:column;border-top:2px solid var(--ink)}
.step{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:20px 0;border-bottom:1px dashed var(--ink)}
.step .n{font-family:var(--f-title);font-size:40px;line-height:1}
.step .n span{background:var(--em);padding:0 6px}
.step h3{margin:0 0 6px;font-family:var(--f-mono);font-weight:700;text-transform:uppercase;font-size:14px}
.step p{margin:0;font-size:16px;line-height:1.55}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(24px,3vw,40px)}
.svc{display:flex;flex-direction:column;gap:16px}
.svc:nth-child(1){transform:rotate(-1.2deg)}
.svc:nth-child(2){transform:rotate(1deg);margin-top:28px}
.svc:nth-child(3){transform:rotate(-.6deg)}
.svc:nth-child(4){transform:rotate(1.4deg);margin-top:28px}
.svc .ph{aspect-ratio:3/4}
.badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--em);color:var(--ink);font-family:var(--f-mono);font-weight:700;font-size:11px;text-transform:uppercase;padding:4px 8px;transform:rotate(-3deg)}
.svc .num{font-family:var(--f-mono);font-size:12px;color:var(--em)}
.svc h3{margin:0;font-family:var(--f-title);font-weight:400;text-transform:uppercase;font-size:40px;line-height:1}
.svc p{margin:0;font-size:16px;line-height:1.55}

/* ---------- receipt ---------- */
.receipt-wrap{position:relative;transform:rotate(1.8deg);max-width:560px;width:100%;justify-self:center}
.receipt-wrap .tape{top:-14px;left:50%;margin-left:-60px;width:120px;height:30px;transform:rotate(-4deg)}
.receipt{background:var(--paper);color:var(--ink);padding:44px clamp(22px,3vw,40px) 40px;font-family:var(--f-mono);clip-path:polygon(0% 1%,8% 0%,15% 1.2%,24% .4%,33% 1.4%,41% .6%,52% 1.2%,60% 0%,71% 1.1%,80% .3%,91% 1.3%,100% .5%,99.2% 12%,100% 27%,98.8% 41%,99.6% 58%,98.7% 73%,99.5% 88%,100% 99%,90% 98.6%,79% 99.7%,68% 98.7%,57% 99.8%,46% 98.6%,35% 99.6%,24% 98.5%,13% 99.5%,0% 98.8%,.8% 86%,0% 71%,1.1% 55%,.2% 40%,1% 24%,0% 11%)}
.rc-head{display:flex;justify-content:space-between;gap:12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding-bottom:16px;border-bottom:2px solid var(--ink)}
.rc-line{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;padding:22px 0;border-bottom:1px dashed var(--ink)}
.rc-line .t{font-family:var(--f-title);font-size:30px;text-transform:uppercase;line-height:1}
.rc-line .d{font-size:13px;margin-top:6px}
.rc-line .p{font-family:var(--f-title);font-size:48px;line-height:1;white-space:nowrap}
.rc-line.best{position:relative;padding:26px 18px;margin:14px -18px 0;background:var(--em);transform:rotate(-1deg);border:0}
.rc-line.best .p{font-size:56px}
.rc-line.best .flag{position:absolute;top:-12px;right:14px;background:var(--ink);color:var(--em);font-size:11px;font-weight:700;text-transform:uppercase;padding:4px 8px;transform:rotate(3deg)}
.rc-foot{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding-top:24px}
.barcode{margin-top:18px;height:34px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 9px,var(--ink) 9px 12px,transparent 12px 14px)}

/* ---------- reviews / widgets ---------- */
.g-badge{display:flex;align-items:center;gap:14px;border:2px solid var(--paper);padding:12px 18px;transform:rotate(-2deg);color:var(--paper)}
.g-badge:hover{color:var(--em)}
.g-badge b{font-family:var(--f-title);font-size:40px;line-height:1;color:var(--em);font-weight:400}
.g-badge span{font-family:var(--f-mono);font-size:12px;text-transform:uppercase;display:flex;flex-direction:column;gap:4px}
.widget-paper{background:var(--paper);color:var(--ink);padding:clamp(16px,3vw,32px);transform:rotate(-.6deg);box-shadow:8px 8px 0 var(--em);min-height:220px}
.widget-paper .fallback{font-family:var(--f-mono);font-size:13px;color:#555}

.ig{position:relative;background:var(--paper);color:var(--ink);padding:clamp(90px,10vw,140px) var(--pad);clip-path:var(--torn-edge)}
.ig .handle{margin:0;font-family:var(--f-title);font-weight:400;font-size:clamp(52px,8vw,128px);line-height:.9}
.ig .handle span{background:var(--em);padding:0 6px;display:inline-block;line-height:.86}

/* ---------- CTA ---------- */
.cta-box{background:var(--em);color:var(--ink);padding:clamp(56px,7vw,100px) clamp(26px,6vw,90px);transform:rotate(-1deg);clip-path:var(--torn-big)}
.cta-box .kicker{color:var(--ink)}
.cta-box .h1{font-size:clamp(60px,9vw,150px);line-height:.86}
.cta-box .two{align-items:center}
.cta-photo{position:relative;max-width:400px;width:100%;justify-self:center;background:var(--paper);padding:10px 10px 40px;transform:rotate(4deg);box-shadow:0 18px 40px rgba(14,14,14,.35)}
.cta-photo .ph{aspect-ratio:4/5}
.cta-photo .cap{position:absolute;left:12px;bottom:12px;color:var(--ink)}
.cta-photo .tape{top:-14px;left:50%;margin-left:-50px;transform:rotate(-5deg)}

/* ---------- footer ---------- */
.ftr{border-top:1px solid var(--line);padding:48px var(--pad) 40px}
.ftr .wrap{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.ftr .logo{font-size:44px}
.ftr nav{display:flex;gap:22px;flex-wrap:wrap;font-family:var(--f-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.ftr nav a{color:var(--paper)}
.ftr nav a:hover{color:var(--em)}
.ftr address{font-style:normal;font-family:var(--f-mono);font-size:12px;color:var(--concrete);line-height:1.8}
.ftr address a{color:var(--paper)}
.ftr .legal{width:100%;font-family:var(--f-mono);font-size:12px;color:var(--concrete);border-top:1px dashed var(--line);padding-top:18px}

/* ---------- inner pages ---------- */
.page-hero{padding:clamp(56px,8vw,110px) var(--pad) clamp(40px,5vw,70px)}
.page-hero .wrap{display:flex;flex-direction:column;gap:24px}
.page-hero .wrap.two{display:grid;gap:clamp(40px,6vw,90px)}
.cards3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:clamp(20px,3vw,36px)}
.card{background:var(--paper);color:var(--ink);padding:30px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:6px 6px 0 var(--em)}
.card:nth-child(2){transform:rotate(1deg)}.card:nth-child(1){transform:rotate(-1deg)}
.card h3{margin:0;font-family:var(--f-title);font-weight:400;text-transform:uppercase;font-size:34px;line-height:1}
.card p{margin:0;font-size:16px;line-height:1.55}
.card ul{margin:0;padding-left:18px;font-size:15px;line-height:1.7}
.card .price{font-family:var(--f-title);font-size:52px;line-height:1}
.card.feat{background:var(--em)}
.card .tag{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;font-weight:700}
.faq{border-top:2px solid var(--paper)}
.faq details{border-bottom:1px dashed var(--concrete);padding:22px 0}
.faq summary{cursor:pointer;list-style:none;font-family:var(--f-mono);font-weight:700;font-size:15px;text-transform:uppercase;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--em);font-size:22px;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:14px 0 0;max-width:760px;line-height:1.65;color:#d9d8d2}
.prose{max-width:760px;display:flex;flex-direction:column;gap:20px;font-size:18px;line-height:1.7}
.prose p{margin:0}

/* ---------- gallery ---------- */
.filters{display:flex;gap:10px;flex-wrap:wrap}
.filters button{font-family:var(--f-mono);font-size:13px;text-transform:uppercase;letter-spacing:.04em;background:none;color:var(--paper);border:2px solid var(--paper);padding:8px 14px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--em);color:var(--ink);border-color:var(--em)}
.masonry{columns:3 300px;column-gap:18px}
.masonry figure{break-inside:avoid;margin:0 0 18px;position:relative}
.masonry button{all:unset;display:block;cursor:zoom-in;width:100%}
.masonry img{width:100%;height:auto;transition:transform .4s,filter .4s}
.masonry button:hover img{filter:brightness(1.08)}
.masonry button:focus-visible{outline:3px solid var(--em);outline-offset:2px}
.masonry figure[hidden]{display:none}
.lb{position:fixed;inset:0;z-index:200;background:rgba(14,14,14,.96);display:none;align-items:center;justify-content:center;padding:56px 16px}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lb button{position:absolute;background:var(--em);color:var(--ink);border:0;font-family:var(--f-mono);font-weight:700;font-size:15px;padding:10px 14px;cursor:pointer}
.lb .x{top:12px;right:12px}.lb .pv{left:12px;top:50%}.lb .nx{right:12px;top:50%}
.lb .cnt{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);font-family:var(--f-mono);font-size:12px;color:var(--concrete)}

/* ---------- contact ---------- */
.cal{background:var(--paper);box-shadow:8px 8px 0 var(--em);overflow:hidden}
.cal .calendly-inline-widget{min-width:320px;height:760px}
.form{display:flex;flex-direction:column;gap:16px}
.form label{display:flex;flex-direction:column;gap:6px;font-family:var(--f-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.form input,.form select,.form textarea{font:inherit;font-family:var(--f-body);font-size:16px;text-transform:none;letter-spacing:0;background:transparent;color:var(--paper);border:0;border-bottom:2px solid var(--concrete);padding:10px 2px;border-radius:0}
.form select option{color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--em)}
.form button{align-self:flex-start;border:0;cursor:pointer}
.coords{display:flex;flex-direction:column;gap:18px;font-size:17px}
.coords div{display:flex;flex-direction:column;gap:4px}
.coords span{font-family:var(--f-mono);font-size:12px;text-transform:uppercase;color:var(--em);letter-spacing:.06em}
.coords a{color:var(--paper)}
.coords a:hover{color:var(--em)}

/* ---------- immo ---------- */
.immo-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(70px,10.5vw,150px);gap:14px}
.immo-grid figure{position:relative;overflow:hidden}
.immo-grid img{width:100%;height:100%;object-fit:cover}
.immo-grid .a{grid-column:span 7;grid-row:span 4}
.immo-grid .b{grid-column:span 5;grid-row:span 4}
.immo-grid .c{grid-column:span 4;grid-row:span 4}
.immo-grid .d{grid-column:span 4;grid-row:span 3}
.immo-grid figcaption{position:absolute;left:10px;bottom:10px;background:var(--ink);color:var(--paper);font-family:var(--f-mono);font-size:11px;text-transform:uppercase;padding:4px 8px}
@media (max-width:760px){.immo-grid{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.immo-grid>*{grid-column:span 1!important;grid-row:auto!important;aspect-ratio:4/5}.immo-grid .a{grid-column:span 2!important;aspect-ratio:3/2}}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{font-family:var(--f-mono);font-size:12px;text-transform:uppercase;border:1px solid var(--em);color:var(--em);padding:6px 10px}

@media (max-width:640px){
  .collage .small{width:48%}
  .stamp{left:0}
  .svc:nth-child(n){margin-top:0}
  .svc .ph{aspect-ratio:4/3}
  .rc-line .p{font-size:38px}.rc-line.best .p{font-size:42px}
  .rc-line .t{font-size:24px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
