:root{
  --red: #b2001a;
  --red-deep: #8a0014;
  --red-soft: #e8c4c9;
  --ink: #151210;
  --ink-soft: #3a3430;
  --muted: #7a726b;
  --cream: #f5f0e8;
  --cream-warm: #ede5d6;
  --paper: #faf6ee;
  --line: #d9cfbe;
  --line-strong: #1e1a16;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family: 'Inter Tight', system-ui, sans-serif;
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  background-image:
    radial-gradient(circle at 20% 10%, rgba(178,0,26,0.04), transparent 40%),
    radial-gradient(circle at 80% 80%, rgba(178,0,26,0.03), transparent 50%);
}
body::before{
  content:"";
  position: fixed; inset:0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  pointer-events:none;
  z-index: 1;
  mix-blend-mode: multiply;
  opacity: .6;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.wrap{max-width: 1320px; margin: 0 auto; padding: 0 32px;}
.mono{font-family:'JetBrains Mono', monospace; font-size: 11px; letter-spacing:.12em; text-transform: uppercase;}
.display{font-family:'Fraunces', serif; font-weight: 400; letter-spacing:-0.02em; line-height: .95;}

/* TOPBAR */
.topbar{
  background: var(--ink);
  color: var(--cream);
  font-family:'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  position: relative;
  z-index: 50;
}
.topbar-inner{display:flex; justify-content: space-between; align-items:center; padding: 10px 32px; max-width: 1320px; margin: 0 auto; gap: 24px;}
.topbar a:hover{color: var(--red-soft);}
.topbar .dot{width:6px;height:6px;background:var(--red);border-radius:50%;display:inline-block;margin-right:8px; animation: pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.topbar .sep{opacity:.4; margin: 0 12px;}

/* NAV */
nav.main{
  position: sticky; top: 0;
  background: rgba(250,246,238,0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
  z-index: 40;
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding: 18px 32px; max-width:1320px; margin: 0 auto;}
.logo{display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-size: 22px; font-weight:500; letter-spacing:-0.02em;}
.logo-mark{
  width: 38px; height: 38px; background: var(--ink); color: var(--red);
  display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight: 900; font-size: 22px;
  border-radius: 2px;
  position: relative;
}
.logo-mark::after{
  content:""; position:absolute; inset:3px; border:1px solid var(--red); border-radius: 1px; opacity:.6;
}
.logo small{display:block; font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.2em; color:var(--muted); text-transform:uppercase; line-height:1; margin-top: 3px;}
.nav-links{display:flex; gap: 34px; align-items:center;}
.nav-links a{font-size: 14px; font-weight: 500; position:relative; padding: 4px 0;}
.nav-links a::after{content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background: var(--red); transition: width .3s;}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a.active{color: var(--red);}
.nav-cta{background:var(--red); color:#fff; padding: 11px 20px; font-size: 13px; font-weight:600; letter-spacing:.02em; border-radius: 2px; transition: background .2s; display:inline-flex; align-items:center; gap:8px;}
.nav-cta:hover{background: var(--red-deep);}
.nav-cta::after{display:none !important;}
.nav-cta svg{width:14px; height:14px;}
.hamburger{display:none; background:none; border:none; cursor:pointer; width:28px; height:20px; position:relative;}
.hamburger span{display:block; height:2px; background:var(--ink); width:100%; position:absolute; left:0; transition:.3s;}
.hamburger span:nth-child(1){top:0}
.hamburger span:nth-child(2){top:9px}
.hamburger span:nth-child(3){top:18px}

/* HERO */
.hero{position:relative; padding: 80px 0 120px; overflow: hidden;}
.hero-grid{display:grid; grid-template-columns: 1fr 420px; gap: 80px; align-items: end;}
.hero-badge{display:inline-flex; align-items:center; gap:10px; border: 1px solid var(--line-strong); padding: 8px 14px; border-radius: 100px; font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 36px; background: var(--paper);}
.hero-badge .dot{width:6px;height:6px;background:var(--red);border-radius:50%; animation: pulse 2s infinite;}

h1.hero-title{
  font-family:'Fraunces', serif;
  font-weight: 300;
  font-size: clamp(56px, 9vw, 140px);
  line-height: .92;
  letter-spacing: -0.04em;
  color: var(--ink);
}
h1.hero-title em{
  font-style: italic;
  font-weight: 400;
  color: var(--red);
  font-variation-settings: "opsz" 144;
}
h1.hero-title .under{display: inline-block; position: relative;}
h1.hero-title .under::after{
  content:""; position:absolute; left: 0; right: 0; bottom: 8%;
  height: 10px; background: var(--red); opacity: .15; z-index: -1;
}
.hero-sub{margin-top: 40px; font-size: 19px; max-width: 520px; color: var(--ink-soft); line-height: 1.5;}
.hero-ctas{display:flex; gap: 14px; margin-top: 44px; flex-wrap: wrap;}

/* BUTTONS */
.btn{
  display: inline-flex; align-items:center; gap: 10px;
  padding: 16px 26px; font-size: 14px; font-weight: 600;
  border-radius: 2px; transition: all .25s;
  border: 1px solid transparent; letter-spacing: .01em;
  cursor: pointer; font-family: inherit;
}
.btn-primary{background: var(--ink); color: var(--paper);}
.btn-primary:hover{background: var(--red); transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--ink);}
.btn-ghost{background: transparent; color: var(--ink); border-color: var(--line-strong);}
.btn-ghost:hover{background: var(--ink); color: var(--paper);}
.btn-red{background: var(--red); color: #fff;}
.btn-red:hover{background: var(--red-deep); transform: translate(-2px,-2px); box-shadow: 4px 4px 0 var(--ink);}
.btn svg{width:16px; height:16px;}

/* HERO CARD */
.hero-card{
  background: var(--ink); color: var(--cream);
  padding: 32px; position: relative; border-radius: 3px;
  transform: rotate(-0.5deg);
  box-shadow: 10px 10px 0 var(--red);
}
.hero-card::before{
  content: "N°01"; position: absolute; top: -14px; left: 20px;
  background: var(--red); color:#fff; padding: 4px 10px;
  font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .15em;
}
.hero-card-label{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color: var(--red-soft); margin-bottom: 12px;}
.hero-card-title{font-family:'Fraunces',serif; font-size: 28px; line-height: 1.1; font-weight: 400; margin-bottom: 22px;}
.hero-card-list{list-style:none;}
.hero-card-list li{padding: 12px 0; border-top: 1px solid rgba(255,255,255,.12); display:flex; justify-content: space-between; align-items:center; font-size: 14px;}
.hero-card-list li:last-child{border-bottom: 1px solid rgba(255,255,255,.12);}
.hero-card-list li span:first-child{opacity:.75;}
.hero-card-list li span:last-child{font-family:'JetBrains Mono',monospace; font-size: 11px; color: var(--red-soft);}
.hero-card-phone{margin-top: 26px; display:block; font-family:'Fraunces',serif; font-size: 26px; color: #fff; letter-spacing: -0.01em;}
.hero-card-phone:hover{color: var(--red-soft);}

/* TICKER */
.ticker{background: var(--red); color: #fff; overflow: hidden; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); position: relative;}
.ticker-track{display: flex; white-space: nowrap; animation: ticker 45s linear infinite; padding: 16px 0; font-family:'Fraunces',serif; font-style: italic; font-size: 22px; font-weight: 400; gap: 60px;}
.ticker-track span{display:inline-flex; align-items:center; gap: 60px;}
.ticker-track svg{width:18px; height:18px; flex-shrink:0;}
@keyframes ticker{to{transform: translateX(-50%);}}

/* PAGE HEADER (for inner pages) */
.page-header{padding: 80px 0 60px; position: relative;}
.page-header .crumb{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: var(--muted); margin-bottom: 24px;}
.page-header .crumb a{color: var(--ink);}
.page-header .crumb a:hover{color: var(--red);}
.page-header .crumb span{color: var(--red); margin: 0 10px;}
.page-header h1{
  font-family:'Fraunces',serif; font-weight: 300;
  font-size: clamp(48px, 8vw, 108px); line-height: .94;
  letter-spacing: -0.04em; max-width: 1100px;
}
.page-header h1 em{font-style:italic; color: var(--red); font-weight: 400;}
.page-header .lead{margin-top: 36px; font-size: 19px; color: var(--ink-soft); max-width: 640px;}

/* SECTION HEADINGS */
section{position: relative; z-index: 2;}
.section-head{display:flex; align-items:baseline; gap:20px; margin-bottom: 60px; flex-wrap: wrap;}
.section-num{font-family:'JetBrains Mono',monospace; font-size:12px; color: var(--red); letter-spacing: .15em;}
.section-kicker{font-family:'JetBrains Mono',monospace; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); padding-left: 16px; border-left: 1px solid var(--line);}
.section-title{font-family:'Fraunces',serif; font-size: clamp(40px, 6vw, 72px); font-weight: 300; line-height: 1; letter-spacing:-0.03em; margin-top: 18px; max-width: 900px;}
.section-title em{font-style: italic; color: var(--red); font-weight: 400;}
.section-intro{max-width: 620px; margin-top: 24px; font-size: 17px; color: var(--ink-soft);}

/* SERVICES */
.services{padding: 140px 0;}
.services-grid{display:grid; grid-template-columns: repeat(12, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line);}
.service{
  grid-column: span 4; background: var(--paper);
  padding: 40px 32px 36px; position: relative;
  transition: background .35s; min-height: 340px;
  display: flex; flex-direction: column;
}
.service:hover{background: var(--cream);}
.service .num{font-family:'JetBrains Mono',monospace; font-size:11px; color: var(--muted); letter-spacing: .15em;}
.service h3{font-family:'Fraunces',serif; font-weight: 400; font-size: 28px; line-height: 1.1; margin-top: 14px; margin-bottom: 16px; letter-spacing:-0.01em;}
.service p{font-size: 15px; color: var(--ink-soft); line-height: 1.55; flex-grow:1;}
.service .icon-box{position:absolute; top: 32px; right: 28px; width: 48px; height: 48px; display:flex; align-items:center; justify-content:center; color: var(--red); transition: transform .4s;}
.service:hover .icon-box{transform: rotate(-8deg) scale(1.1);}
.service .icon-box svg{width: 32px; height: 32px;}
.service .service-tag{margin-top: 20px; display:inline-flex; align-items:center; gap: 6px; font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--red);}
.service .service-tag::before{content:""; width: 24px; height:1px; background: var(--red); display:inline-block;}
.service.wide{grid-column: span 6;}
.service.full{grid-column: span 12; background: var(--ink); color: var(--cream);}
.service.full h3{color: #fff; font-size: 36px;}
.service.full p{color: rgba(245,240,232,.75);}
.service.full .num{color: var(--red-soft);}
.service.full .icon-box{color: var(--red-soft);}
.service.full:hover{background: var(--ink);}

/* ABOUT */
.about{padding: 140px 0; background: var(--cream); position: relative;}
.about::before{content:""; position:absolute; inset:0; background: linear-gradient(180deg, var(--paper), var(--cream) 8%, var(--cream) 92%, var(--paper));}
.about-inner{position:relative; display:grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center;}
.about-visual{position: relative; aspect-ratio: 4/5; background: var(--ink); overflow: hidden; border-radius: 3px;}
.about-visual svg{width:100%; height:100%; display:block;}
.about-visual .float-label{position:absolute; background: var(--red); color:#fff; padding: 14px 18px; border-radius: 2px; font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:.15em; text-transform:uppercase;}
.about-visual .float-label.a{top: 28px; left: 28px;}
.about-visual .float-label.b{bottom: 28px; right: 28px; background: var(--paper); color: var(--ink);}
.about-visual .float-label.b strong{display:block; font-family:'Fraunces',serif; font-weight:400; font-size: 26px; letter-spacing:-0.02em; text-transform:none; margin-top: 4px; color: var(--red);}
.about-text h2{font-family:'Fraunces',serif; font-weight:300; font-size: clamp(36px, 5vw, 56px); line-height:1.05; letter-spacing:-0.03em; margin-bottom: 28px;}
.about-text h2 em{font-style:italic; color: var(--red); font-weight: 400;}
.about-text p{font-size: 17px; color: var(--ink-soft); margin-bottom: 18px;}
.about-signature{margin-top: 36px; font-family:'Fraunces',serif; font-style:italic; font-size: 22px; color: var(--ink);}
.about-signature small{display:block; font-family:'JetBrains Mono',monospace; font-size:10px; font-style: normal; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-top: 6px;}
.stats{display:grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 44px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong);}
.stat{padding: 24px 0; border-right: 1px solid var(--line);}
.stat:last-child{border-right:none; text-align: right;}
.stat:nth-child(2){text-align:center; padding-left: 12px;}
.stat-num{font-family:'Fraunces',serif; font-size: 52px; font-weight:400; line-height: 1; color: var(--red); letter-spacing:-0.03em;}
.stat-label{font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-top: 8px;}

/* PROCESS */
.process{padding: 140px 0;}
.process-list{border-top: 1px solid var(--line-strong);}
.process-item{display:grid; grid-template-columns: 80px 1fr 2fr 160px; gap: 40px; padding: 36px 0; border-bottom: 1px solid var(--line); align-items: baseline; transition: all .3s; position: relative;}
.process-item:hover{padding-left: 20px; background: var(--cream);}
.process-item .p-num{font-family:'Fraunces',serif; font-weight:300; font-size: 52px; color: var(--red); line-height:1; letter-spacing:-0.03em;}
.process-item h4{font-family:'Fraunces',serif; font-weight: 400; font-size: 26px; letter-spacing:-0.01em;}
.process-item p{color: var(--ink-soft); font-size: 15px;}
.process-item .p-time{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:.15em; text-transform:uppercase; color: var(--muted); text-align: right;}

/* ZONE */
.zone{padding: 140px 0; background: var(--ink); color: var(--cream); position: relative; overflow: hidden;}
.zone::before{content:""; position:absolute; inset:0; background-image: linear-gradient(var(--cream) 1px, transparent 1px), linear-gradient(90deg, var(--cream) 1px, transparent 1px); background-size: 60px 60px; opacity: .04;}
.zone-inner{position:relative; display:grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center;}
.zone h2{font-family:'Fraunces',serif; font-weight:300; font-size: clamp(40px, 6vw, 72px); line-height: 1; letter-spacing:-0.03em;}
.zone h2 em{color: var(--red-soft); font-style: italic; font-weight:400;}
.zone p{margin-top: 24px; font-size: 17px; color: rgba(245,240,232,.7); max-width: 480px;}
.cities{display:grid; grid-template-columns: 1fr 1fr; gap: 12px 30px; margin-top: 36px;}
.city{font-family:'Fraunces',serif; font-size: 22px; font-weight: 400; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.12); display:flex; justify-content: space-between; align-items: baseline;}
.city small{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.15em; color: var(--red-soft);}
.zone-map{aspect-ratio: 1/1; position:relative;}

/* CTA */
.cta{padding: 140px 0; text-align: center; position:relative;}
.cta-inner{max-width: 900px; margin: 0 auto;}
.cta h2{font-family:'Fraunces',serif; font-weight:300; font-size: clamp(48px, 8vw, 110px); line-height:.95; letter-spacing:-0.04em;}
.cta h2 em{color: var(--red); font-style:italic; font-weight: 400;}
.cta-phone{display: inline-block; margin-top: 60px; font-family:'Fraunces',serif; font-weight: 400; font-size: clamp(40px, 6vw, 72px); color: var(--ink); border-bottom: 2px solid var(--red); padding-bottom: 10px; letter-spacing:-0.02em; transition: all .3s;}
.cta-phone:hover{color: var(--red); transform: translateY(-4px);}
.cta-mail{display:block; margin-top: 24px; font-family:'JetBrains Mono',monospace; font-size: 13px; letter-spacing: .15em; text-transform: uppercase; color: var(--muted);}
.cta-mail:hover{color: var(--red);}

/* ===== PRESTATIONS DETAIL PAGE ===== */
.presta-block{padding: 100px 0; border-top: 1px solid var(--line);}
.presta-block:first-of-type{border-top: none;}
.presta-block.alt{background: var(--cream);}
.presta-grid{display:grid; grid-template-columns: 1fr 1.4fr; gap: 80px; align-items: start;}
.presta-grid.reverse{grid-template-columns: 1.4fr 1fr;}
.presta-grid.reverse .presta-visual{order: 2;}
.presta-grid.reverse .presta-content{order: 1;}
.presta-tag{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:.18em; text-transform:uppercase; color: var(--red); margin-bottom: 20px; display:flex; align-items:center; gap: 12px;}
.presta-tag::before{content:""; width: 32px; height: 1px; background: var(--red);}
.presta-content h2{font-family:'Fraunces',serif; font-weight: 300; font-size: clamp(36px, 5vw, 60px); line-height: 1; letter-spacing:-0.03em; margin-bottom: 30px;}
.presta-content h2 em{font-style:italic; color: var(--red); font-weight: 400;}
.presta-content p{font-size: 16px; color: var(--ink-soft); margin-bottom: 18px;}
.presta-checklist{list-style: none; margin-top: 30px; border-top: 1px solid var(--line);}
.presta-checklist li{display:grid; grid-template-columns: 28px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--ink); align-items: start;}
.presta-checklist li svg{width: 18px; height: 18px; color: var(--red); margin-top: 3px;}
.presta-checklist li strong{font-weight: 600;}
.presta-visual{position: sticky; top: 100px;}
.presta-visual-inner{background: var(--ink); aspect-ratio: 1/1; border-radius: 3px; overflow: hidden; position: relative; box-shadow: 8px 8px 0 var(--red);}
.presta-visual.alt-shadow .presta-visual-inner{box-shadow: -8px 8px 0 var(--red);}
.presta-visual-inner svg{width: 100%; height: 100%;}
.presta-visual-inner .vlabel{position:absolute; bottom: 24px; left: 24px; font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color: var(--red-soft);}
.presta-visual-inner .vlabel strong{display:block; font-family:'Fraunces',serif; font-weight: 400; color: #fff; font-size: 22px; letter-spacing:-0.02em; text-transform: none; margin-top: 6px;}

/* ===== REALISATIONS PAGE ===== */
.gallery-filters{display:flex; gap: 8px; margin-bottom: 50px; flex-wrap: wrap;}
.filter-btn{padding: 10px 18px; background: transparent; border: 1px solid var(--line-strong); color: var(--ink); font-family: inherit; font-size: 13px; font-weight: 500; cursor: pointer; border-radius: 100px; transition: all .2s; letter-spacing: .02em;}
.filter-btn:hover{background: var(--ink); color: var(--paper);}
.filter-btn.active{background: var(--red); color:#fff; border-color: var(--red);}

.gallery{display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; padding-bottom: 100px;}
.proj{
  position: relative; overflow: hidden; border-radius: 3px;
  cursor: pointer; transition: transform .4s; background: var(--ink);
  aspect-ratio: 4/3;
}
.proj.lg{grid-column: span 6;}
.proj.md{grid-column: span 4;}
.proj.sm{grid-column: span 4;}
.proj.tall{aspect-ratio: 3/4;}
.proj svg{width: 100%; height: 100%; display: block; transition: transform .8s;}
.proj:hover svg{transform: scale(1.05);}
.proj-overlay{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(21,18,16,.92));
  padding: 24px;
  display: flex; flex-direction: column; justify-content: flex-end;
  color: var(--cream);
  opacity: 0; transition: opacity .3s;
}
.proj:hover .proj-overlay{opacity: 1;}
.proj-cat{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color: var(--red-soft); margin-bottom: 8px;}
.proj-title{font-family:'Fraunces',serif; font-weight: 400; font-size: 22px; line-height: 1.15; letter-spacing:-0.01em;}
.proj-meta{font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .15em; color: rgba(245,240,232,.6); margin-top: 10px; text-transform: uppercase;}
.proj-permanent{
  position: absolute; top: 16px; left: 16px;
  background: var(--red); color: #fff;
  padding: 4px 10px; font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .15em;
}

/* ===== CONTACT PAGE ===== */
.contact-section{padding: 80px 0 140px;}
.contact-grid{display:grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: start;}
.contact-form{background: var(--paper); border: 1px solid var(--line-strong); padding: 48px; border-radius: 3px; box-shadow: 8px 8px 0 var(--red);}
.contact-form .form-num{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: var(--red); margin-bottom: 16px;}
.contact-form h2{font-family:'Fraunces',serif; font-weight: 300; font-size: 38px; line-height: 1.05; letter-spacing:-0.02em; margin-bottom: 36px;}
.field{margin-bottom: 24px;}
.field-row{display:grid; grid-template-columns: 1fr 1fr; gap: 18px;}
.field label{display:block; font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px;}
.field label .req{color: var(--red);}
.field input, .field textarea, .field select{
  width: 100%; padding: 14px 16px;
  background: var(--cream); color: var(--ink);
  border: 1px solid var(--line); border-radius: 2px;
  font-family: inherit; font-size: 15px;
  transition: all .2s;
}
.field textarea{min-height: 140px; resize: vertical; font-family: inherit;}
.field select{appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%23151210' d='M6 8L0 0h12z'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; padding-right: 40px;}
.field input:focus, .field textarea:focus, .field select:focus{outline: none; border-color: var(--red); background: #fff; box-shadow: 0 0 0 3px rgba(178,0,26,0.1);}
.field-check{display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: var(--ink-soft); line-height: 1.5;}
.field-check input{width: 18px; height: 18px; margin-top: 2px; accent-color: var(--red);}
.contact-form button[type="submit"]{width: 100%; padding: 18px; font-size: 14px; margin-top: 8px;}
.form-note{font-size: 12px; color: var(--muted); margin-top: 16px; text-align: center; font-family:'JetBrains Mono',monospace; letter-spacing: .1em; text-transform: uppercase;}

.contact-aside{position: sticky; top: 100px;}
.contact-card{background: var(--ink); color: var(--cream); padding: 32px; margin-bottom: 20px; border-radius: 3px; position: relative;}
.contact-card::before{content: ""; position: absolute; top: 16px; right: 16px; width: 8px; height: 8px; background: var(--red); border-radius: 50%; animation: pulse 2s infinite;}
.contact-card .label{font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--red-soft); margin-bottom: 14px;}
.contact-card .big{font-family:'Fraunces',serif; font-size: 30px; font-weight: 400; letter-spacing: -0.02em; color: #fff; word-break: break-word;}
.contact-card .big:hover{color: var(--red-soft);}
.contact-card .sub{margin-top: 12px; font-size: 14px; color: rgba(245,240,232,.65);}
.contact-info{background: var(--cream); padding: 28px; border-radius: 3px;}
.contact-info h4{font-family:'Fraunces',serif; font-weight: 400; font-size: 22px; margin-bottom: 18px;}
.contact-info dl{display: grid; gap: 14px;}
.contact-info dt{font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px;}
.contact-info dd{font-size: 14px; color: var(--ink);}

.success-box{display:none; padding: 40px; background: var(--ink); color: var(--cream); border-radius: 3px; text-align: center;}
.success-box.show{display: block;}
.success-box h3{font-family:'Fraunces',serif; font-weight: 400; font-size: 32px; margin-bottom: 14px;}
.success-box p{color: rgba(245,240,232,.75);}
.success-box svg{width: 48px; height: 48px; color: var(--red-soft); margin-bottom: 20px;}

/* FOOTER */
footer{background: var(--ink); color: var(--cream); padding: 80px 0 32px;}
.foot-grid{display:grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 60px; margin-bottom: 60px;}
.foot-logo{font-family:'Fraunces',serif; font-size: 32px; font-weight: 400; letter-spacing:-0.02em; margin-bottom: 16px;}
.foot-logo em{color: var(--red); font-style:italic;}
.foot-tag{color: rgba(245,240,232,.6); font-size: 14px; max-width: 320px;}
.foot-col h5{font-family:'JetBrains Mono',monospace; font-size: 11px; letter-spacing:.2em; text-transform: uppercase; color: var(--red-soft); margin-bottom: 20px;}
.foot-col ul{list-style:none; display:flex; flex-direction: column; gap: 10px;}
.foot-col a{font-size: 14px; color: rgba(245,240,232,.85); transition: color .2s;}
.foot-col a:hover{color: var(--red-soft);}
.foot-col .addr{font-size: 14px; color: rgba(245,240,232,.75); line-height: 1.7;}
.legal{border-top: 1px solid rgba(255,255,255,.08); padding-top: 30px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; font-family:'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: rgba(245,240,232,.5);}
.legal dt{color: rgba(245,240,232,.4); margin-bottom: 4px;}
.legal dd{color: var(--cream);}
.copy{margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; font-family:'JetBrains Mono',monospace; font-size: 11px; color: rgba(245,240,232,.5); letter-spacing: .08em; text-transform: uppercase;}
.copy a:hover{color: var(--red-soft);}

/* RESPONSIVE */
@media (max-width: 960px){
  .wrap{padding: 0 22px;}
  .topbar-inner{padding: 10px 22px; font-size: 10px;}
  .topbar .hide-sm{display:none;}
  .nav-links{display:none;}
  .hamburger{display:block;}
  .nav-inner{padding: 16px 22px;}
  .hero-grid{grid-template-columns: 1fr; gap: 60px;}
  .hero{padding: 50px 0 80px;}
  .about-inner, .zone-inner, .contact-grid{grid-template-columns: 1fr; gap: 50px;}
  .service, .service.wide{grid-column: span 12;}
  .process-item{grid-template-columns: 50px 1fr; gap: 16px; padding: 24px 0;}
  .process-item .p-num{font-size: 36px;}
  .process-item h4{grid-column: 2;}
  .process-item p{grid-column: 1 / -1;}
  .process-item .p-time{grid-column: 1 / -1; text-align: left;}
  .foot-grid{grid-template-columns: 1fr; gap: 40px;}
  .legal{grid-template-columns: 1fr 1fr;}
  .stats{grid-template-columns: 1fr;}
  .stat{text-align: left !important; border-right: none; border-bottom: 1px solid var(--line); padding: 20px 0;}
  .stat:last-child{border-bottom: none; text-align: left;}
  .services, .about, .process, .zone, .cta, .presta-block, .contact-section{padding: 80px 0;}
  .cities{grid-template-columns: 1fr;}
  .presta-grid, .presta-grid.reverse{grid-template-columns: 1fr; gap: 40px;}
  .presta-grid.reverse .presta-visual, .presta-grid.reverse .presta-content{order: initial;}
  .presta-visual{position: relative; top: 0;}
  .contact-form{padding: 32px 24px;}
  .field-row{grid-template-columns: 1fr;}
  .contact-aside{position: relative; top: 0;}
  .gallery{grid-template-columns: 1fr;}
  .proj.lg, .proj.md, .proj.sm{grid-column: span 1;}
  .gallery{grid-template-columns: repeat(2, 1fr); display: grid;}
  .proj.lg{grid-column: span 2;}
  .proj.md, .proj.sm{grid-column: span 1;}
}

@media (max-width: 560px){
  .gallery{grid-template-columns: 1fr;}
  .proj.lg, .proj.md, .proj.sm{grid-column: span 1;}
  h1.hero-title{font-size: clamp(44px, 13vw, 80px);}
}

/* Reveal */
.reveal{opacity:0; transform: translateY(30px); transition: opacity .9s ease, transform .9s ease;}
.reveal.in{opacity:1; transform: translateY(0);}

/* ========== ACCESSIBILITY ========== */
.skip-link{
  position: absolute; top: -100px; left: 0;
  background: var(--ink); color: #fff;
  padding: 12px 20px; z-index: 100;
  font-size: 13px; text-decoration: none;
  border-radius: 0 0 4px 0;
}
.skip-link:focus{top: 0;}

/* ========== CRUMB ========== */
.crumb{
  font-family:'JetBrains Mono',monospace;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color: var(--muted); margin-bottom: 24px;
}
.crumb a{color: var(--ink);}
.crumb a:hover{color: var(--red);}
.crumb span{color: var(--red); margin: 0 10px;}

/* ========== FOOTER H ========== */
.foot-h{
  font-family:'JetBrains Mono',monospace;
  font-size: 11px; letter-spacing:.2em;
  text-transform: uppercase; color: var(--red-soft);
  margin-bottom: 20px; font-weight: 500;
}

/* ========== CITIES (now <ul>) ========== */
.cities{list-style: none;}

/* ========== FAQ PAGE ========== */
.faq-section{padding: 60px 0 120px;}
.faq-section .wrap{display: grid; grid-template-columns: 240px 1fr; gap: 80px; align-items: start;}
.faq-toc{
  position: sticky; top: 100px;
  border-top: 1px solid var(--line-strong);
  padding-top: 24px;
}
.faq-toc-label{
  font-family:'JetBrains Mono',monospace;
  font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--red);
  margin-bottom: 18px;
}
.faq-toc ul{list-style: none; display: flex; flex-direction: column; gap: 12px;}
.faq-toc a{
  font-family:'Fraunces',serif; font-size: 17px;
  color: var(--ink); position: relative; padding-left: 16px;
  display: block; transition: all .2s;
}
.faq-toc a::before{
  content: ""; position: absolute;
  left: 0; top: 50%; transform: translateY(-50%);
  width: 8px; height: 1px; background: var(--red);
  transition: width .2s;
}
.faq-toc a:hover{color: var(--red); padding-left: 22px;}
.faq-toc a:hover::before{width: 14px;}

.faq-content{}
.faq-cat{margin-bottom: 60px;}
.faq-cat:last-child{margin-bottom: 0;}
.faq-cat-title{
  font-family:'Fraunces',serif; font-weight: 300;
  font-size: clamp(32px, 4vw, 48px); line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 30px; color: var(--ink);
}
.faq-list{border-top: 1px solid var(--line-strong);}
.faq-item{
  border-bottom: 1px solid var(--line);
  transition: background .2s;
}
.faq-item[open]{background: var(--cream);}
.faq-item summary{
  list-style: none;
  cursor: pointer;
  padding: 28px 0 28px 0;
  display: grid;
  grid-template-columns: 50px 1fr 40px;
  gap: 20px;
  align-items: baseline;
  position: relative;
  padding-left: 4px; padding-right: 4px;
  transition: padding .25s;
}
.faq-item[open] summary, .faq-item:hover summary{padding-left: 20px; padding-right: 20px;}
.faq-item summary::-webkit-details-marker{display: none;}
.faq-item summary::marker{display: none;}
.faq-item .q-mark{
  font-family:'Fraunces',serif; font-style: italic;
  font-size: 28px; font-weight: 400; color: var(--red);
  line-height: 1;
}
.faq-item h3{
  font-family:'Fraunces',serif; font-weight: 400;
  font-size: clamp(19px, 2.4vw, 24px);
  line-height: 1.25; letter-spacing: -0.01em;
  color: var(--ink); margin: 0;
}
.faq-item .chev{
  font-family:'Fraunces',serif; font-weight: 300;
  font-size: 32px; color: var(--red);
  text-align: center; line-height: 1;
  transition: transform .3s;
}
.faq-item[open] .chev{transform: rotate(45deg);}
.faq-answer{
  padding: 0 20px 32px 74px;
  color: var(--ink-soft); font-size: 16px;
  line-height: 1.65;
}
.faq-answer p{margin-bottom: 12px;}

/* ========== LEGAL PAGE ========== */
.legal-section{padding: 60px 0 120px;}
.legal-wrap{max-width: 880px;}
.legal-block{
  margin-bottom: 50px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--line);
}
.legal-block:last-of-type{border-bottom: none;}
.legal-block h2{
  font-family:'Fraunces',serif; font-weight: 400;
  font-size: clamp(26px, 3.5vw, 36px);
  line-height: 1.1; letter-spacing: -0.02em;
  color: var(--ink); margin-bottom: 24px;
}
.legal-block p{
  font-size: 16px; color: var(--ink-soft);
  margin-bottom: 14px; line-height: 1.65;
}
.legal-block a{color: var(--red); border-bottom: 1px solid transparent; transition: border-color .2s;}
.legal-block a:hover{border-bottom-color: var(--red);}
.legal-dl{display: grid; grid-template-columns: 1fr; gap: 0;}
.legal-dl > div{
  display: grid; grid-template-columns: 280px 1fr;
  gap: 24px; padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.legal-dl dt{
  font-family:'JetBrains Mono',monospace;
  font-size: 11px; letter-spacing: .15em;
  text-transform: uppercase; color: var(--muted);
  padding-top: 4px;
}
.legal-dl dd{
  font-size: 15px; color: var(--ink);
}
.legal-update{
  text-align: center; margin-top: 60px;
  font-size: 13px; color: var(--muted);
}

/* ========== RESPONSIVE ========== */
@media (max-width: 960px){
  .faq-section .wrap{grid-template-columns: 1fr; gap: 40px;}
  .faq-toc{position: relative; top: 0;}
  .faq-toc ul{flex-direction: row; flex-wrap: wrap; gap: 8px 16px;}
  .faq-toc a{padding-left: 0; font-size: 14px;}
  .faq-toc a::before{display: none;}
  .legal-dl > div{grid-template-columns: 1fr; gap: 4px;}
  .legal-section, .faq-section{padding: 60px 0 80px;}
  .faq-item summary{grid-template-columns: 36px 1fr 30px; gap: 12px;}
  .faq-item .q-mark{font-size: 22px;}
  .faq-answer{padding: 0 12px 24px 48px;}
}
