/* === PRO VERTICAL — feuille de style principale === */

:root {
  --pv-ink: #1E1E1C;
  --pv-ink-2: #16181A;
  --pv-ink-3: #1E2125;
  --pv-bone: #E8E4DC;
  --pv-bone-2: #C9C3B7;
  --pv-paper: #F5F2EB;
  --pv-steel: #6F757D;
  --pv-steel-2: #4A4E54;
  --pv-signal: #E85D1F;
  --pv-line: rgba(232,228,220,0.12);
  --pv-line-strong: rgba(232,228,220,0.24);
  --pv-line-bone: rgba(14,15,16,0.12);
  --pv-display: 'Anton', 'Arial Narrow', sans-serif;
  --pv-mono: 'JetBrains Mono', ui-monospace, monospace;
  --pv-gut: clamp(20px, 4vw, 60px);
}

body.pv-page { margin: 0; font-family: 'Inter', -apple-system, sans-serif; color: var(--pv-bone); background: var(--pv-ink); -webkit-font-smoothing: antialiased; }
body.pv-page #page-container, body.pv-page #et-main-area, body.pv-page #main-content { background: var(--pv-ink); padding: 0 !important; }
body.pv-page .container { width: 100% !important; max-width: 100% !important; padding: 0 !important; }

.pv * { box-sizing: border-box; }
.pv img { max-width: 100%; display: block; }
.pv a { text-decoration: none; color: inherit; }
.pv h1, .pv h2, .pv h3, .pv h4 { font-family: var(--pv-display); text-transform: uppercase; letter-spacing: -0.01em; line-height: 0.92; font-weight: 400; margin: 0; color: var(--pv-bone); }
.pv em { color: var(--pv-signal); font-style: normal; }
.pv p { margin: 0; line-height: 1.6; color: var(--pv-bone-2); }

.pv .tag { font-family: var(--pv-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-signal); display: inline-flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.pv .tag::before { content: ""; width: 24px; height: 1px; background: currentColor; }

.pv .btn, .pv .btn-ghost { display: inline-flex; align-items: center; gap: 12px; padding: 18px 28px; font-family: var(--pv-mono); font-size: 13px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; border: 1px solid var(--pv-signal); background: var(--pv-signal); color: var(--pv-ink) !important; transition: all 0.2s; border-radius: 0; }
.pv .btn:hover { background: #FF6B22; border-color: #FF6B22; }
.pv .btn-ghost { background: transparent; border-color: var(--pv-line-strong); color: var(--pv-bone) !important; }
.pv .btn-ghost:hover { background: var(--pv-bone); color: var(--pv-ink) !important; }
.pv .btn::after, .pv .btn-ghost::after { content: "→"; }

/* === HERO === */
.pv-hero { position: relative; padding: 140px var(--pv-gut) 100px; background: var(--pv-ink); border-bottom: 1px solid var(--pv-line); overflow: hidden; }
.pv-hero__top { display: flex; justify-content: space-between; align-items: center; font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-steel); border-bottom: 1px solid var(--pv-line); padding-bottom: 20px; margin-bottom: 80px; flex-wrap: wrap; gap: 16px; }
.pv-hero__top .dot { color: var(--pv-signal); }
.pv-hero__photo { position: absolute; top: 100px; right: var(--pv-gut); bottom: 100px; width: 36%; background: #2A2D31 repeating-linear-gradient(135deg, transparent 0, transparent 14px, rgba(255,255,255,0.025) 14px, rgba(255,255,255,0.025) 15px); border: 1px solid var(--pv-line-strong); display: flex; align-items: center; justify-content: center; z-index: 1; }
.pv-hero__photo span { font-family: var(--pv-mono); font-size: 10px; letter-spacing: 0.14em; color: var(--pv-steel); padding: 8px 14px; background: var(--pv-ink); border: 1px solid var(--pv-line-strong); }
.pv-hero__main { position: relative; z-index: 2; max-width: 64%; }
.pv-hero h1 { font-size: clamp(64px, 11vw, 180px); line-height: 0.85; margin-bottom: 32px; }
.pv-hero h1 .pt { color: var(--pv-signal); }
.pv-hero h1 span.l { display: block; }
.pv-hero__sub { font-size: clamp(17px, 1.4vw, 22px); color: var(--pv-bone-2); max-width: 56ch; margin-bottom: 40px; }
.pv-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; }
.pv-hero__bottom { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 100px; padding-top: 32px; border-top: 1px solid var(--pv-line); position: relative; z-index: 2; }
.pv-hero__stat { padding: 0 24px; border-right: 1px solid var(--pv-line); }
.pv-hero__stat:first-child { padding-left: 0; }
.pv-hero__stat:last-child { border-right: none; }
.pv-hero__stat .num { font-family: var(--pv-display); font-size: clamp(40px, 5vw, 64px); line-height: 1; color: var(--pv-bone); display: block; }
.pv-hero__stat .num .unit { font-family: var(--pv-mono); font-size: 14px; color: var(--pv-signal); letter-spacing: 0.1em; vertical-align: top; margin-left: 4px; }
.pv-hero__stat .label { font-family: var(--pv-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-steel); display: block; margin-top: 12px; }
@media (max-width: 900px) { .pv-hero__photo { display: none; } .pv-hero__main { max-width: 100%; } .pv-hero__bottom { grid-template-columns: 1fr 1fr; gap: 24px 0; } .pv-hero__stat { border-right: none; padding: 0; } }

/* === SECTIONS === */
.pv-section { padding: 120px var(--pv-gut); }
.pv-section--paper { background: var(--pv-paper); color: var(--pv-ink); }
.pv-section--paper h1, .pv-section--paper h2, .pv-section--paper h3 { color: var(--pv-ink); }
.pv-section--paper p { color: var(--pv-steel-2); }
.pv-section__head { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 100px); margin-bottom: 60px; align-items: end; }
.pv-section__head h2 { font-size: clamp(40px, 6vw, 88px); }
.pv-section__head p { font-size: clamp(15px, 1.2vw, 18px); max-width: 50ch; }
@media (max-width: 900px) { .pv-section { padding: 80px var(--pv-gut); } .pv-section__head { grid-template-columns: 1fr; gap: 24px; } }

.pv-intro__inner { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 5vw, 100px); align-items: start; }
.pv-intro__photo { aspect-ratio: 3/4; background: #2A2D31 repeating-linear-gradient(135deg, transparent 0, transparent 14px, rgba(255,255,255,0.025) 14px, rgba(255,255,255,0.025) 15px); border: 1px solid var(--pv-line-strong); display: flex; align-items: center; justify-content: center; position: sticky; top: 120px; }
.pv-intro__photo span { font-family: var(--pv-mono); font-size: 10px; color: var(--pv-steel); letter-spacing: 0.14em; padding: 8px 14px; background: var(--pv-ink); border: 1px solid var(--pv-line-strong); }
.pv-intro h2 { font-size: clamp(40px, 6vw, 80px); margin: 16px 0 32px; }
.pv-intro p { font-size: 17px; margin-bottom: 20px; max-width: 56ch; }
.pv-intro p strong { color: var(--pv-bone); }
.pv-intro__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 32px 0; }
.pv-intro__chips span { padding: 8px 14px; border: 1px solid var(--pv-line-strong); font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-bone-2); }
@media (max-width: 900px) { .pv-intro__inner { grid-template-columns: 1fr; } .pv-intro__photo { position: relative; top: 0; max-width: 320px; } }

.pv-pillars__grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--pv-line-bone); }
.pv-pillars__col { padding: 40px 28px 0; border-right: 1px solid var(--pv-line-bone); }
.pv-pillars__col:last-child { border-right: none; }
.pv-pillars__num { font-family: var(--pv-display); font-size: clamp(72px, 8vw, 120px); line-height: 1; color: var(--pv-signal); display: block; }
.pv-pillars__sublabel { display: block; font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-steel); margin: 12px 0 24px; }
.pv-pillars__col h3 { font-size: clamp(28px, 2.8vw, 40px); line-height: 0.95; margin-bottom: 20px; }
.pv-pillars__col p { font-size: 15px; margin-bottom: 24px; }
.pv-pillars__list { list-style: none; padding: 0; margin: 0; }
.pv-pillars__list li { font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.06em; padding: 6px 0; color: var(--pv-ink); }
.pv-pillars__list li::before { content: "✓ "; color: var(--pv-signal); margin-right: 8px; }
@media (max-width: 900px) { .pv-pillars__grid { grid-template-columns: 1fr; } .pv-pillars__col { border-right: none; border-bottom: 1px solid var(--pv-line-bone); padding-bottom: 32px; } }

.pv-svc__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--pv-line); border: 1px solid var(--pv-line); }
.pv-svc__card { background: var(--pv-ink-2); padding: 36px 28px; display: flex; flex-direction: column; min-height: 360px; transition: background 0.25s; }
.pv-svc__card:hover { background: var(--pv-ink-3); }
.pv-svc__num { font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--pv-signal); }
.pv-svc__card h3 { font-size: clamp(24px, 2.2vw, 32px); margin: 56px 0 16px; }
.pv-svc__card p { color: var(--pv-steel); font-size: 14px; margin-bottom: 24px; }
.pv-svc__tags { list-style: none; padding: 16px 0 0; margin-top: auto; border-top: 1px solid var(--pv-line); }
.pv-svc__tags li { font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pv-bone-2); padding: 4px 0; }
.pv-svc__card--cta { background: var(--pv-signal) !important; }
.pv-svc__card--cta * { color: var(--pv-ink) !important; border-color: rgba(14,15,16,0.2) !important; }
@media (max-width: 900px) { .pv-svc__grid { grid-template-columns: 1fr; } }

.pv-aud__inner { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 100px); }
.pv-aud h2 { font-size: clamp(40px, 6vw, 80px); margin: 16px 0 32px; }
.pv-aud p { font-size: 16px; max-width: 50ch; margin-bottom: 32px; }
.pv-aud__list { border-top: 1px solid var(--pv-line-bone); list-style: none; padding: 0; margin: 0; }
.pv-aud__row { display: grid; grid-template-columns: 60px 1fr auto; gap: 24px; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--pv-line-bone); transition: padding 0.2s; }
.pv-aud__row:hover { padding-left: 12px; }
.pv-aud__row .n { font-family: var(--pv-mono); font-size: 12px; color: var(--pv-signal); letter-spacing: 0.1em; }
.pv-aud__row h4 { font-family: var(--pv-display); font-size: clamp(22px, 2.2vw, 32px); line-height: 0.95; text-transform: uppercase; color: var(--pv-ink); }
.pv-aud__row .meta { font-family: var(--pv-mono); font-size: 11px; color: var(--pv-steel); letter-spacing: 0.1em; text-transform: uppercase; }
@media (max-width: 900px) { .pv-aud__inner { grid-template-columns: 1fr; } .pv-aud__row { grid-template-columns: 40px 1fr; } .pv-aud__row .meta { grid-column: 1 / -1; padding-left: 64px; } }

.pv-zone__inner { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 100px); }
.pv-zone h2 { font-size: clamp(40px, 6vw, 80px); margin: 16px 0 24px; }
.pv-zone__list { list-style: none; padding: 0; margin: 24px 0 0; }
.pv-zone__list li { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--pv-line); font-family: var(--pv-mono); font-size: 13px; color: var(--pv-bone-2); }
.pv-zone__list li span:last-child { color: var(--pv-signal); }
.pv-zone__map { aspect-ratio: 4/3; background: var(--pv-ink-2); border: 1px solid var(--pv-line-strong); display: flex; align-items: center; justify-content: center; }
.pv-zone__map svg { width: 100%; height: 100%; }
@media (max-width: 900px) { .pv-zone__inner { grid-template-columns: 1fr; } }

.pv-proc__grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--pv-line); }
.pv-proc__col { padding: 40px 24px 0; border-right: 1px solid var(--pv-line); }
.pv-proc__col:last-child { border-right: none; }
.pv-proc__col .num { font-family: var(--pv-display); font-size: clamp(56px, 6vw, 80px); line-height: 1; color: var(--pv-bone); }
.pv-proc__col .num .of { font-family: var(--pv-mono); font-size: 14px; color: var(--pv-steel); margin-left: 8px; }
.pv-proc__col h4 { font-family: var(--pv-display); font-size: clamp(20px, 1.8vw, 26px); line-height: 1; text-transform: uppercase; margin: 24px 0 12px; }
.pv-proc__col p { color: var(--pv-steel); font-size: 14px; }
.pv-proc__col .day { font-family: var(--pv-mono); font-size: 10px; letter-spacing: 0.14em; color: var(--pv-signal); display: block; margin-top: 16px; }
@media (max-width: 900px) { .pv-proc__grid { grid-template-columns: 1fr 1fr; } .pv-proc__col { border-right: none; border-bottom: 1px solid var(--pv-line); padding-bottom: 32px; } .pv-proc__col:nth-child(odd) { border-right: 1px solid var(--pv-line); } }

.pv-testi__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pv-testi__card { background: #FFF; border: 1px solid var(--pv-line-bone); padding: 36px 32px; position: relative; }
.pv-testi__card::before { content: ""; position: absolute; top: 0; left: 0; width: 32px; height: 4px; background: var(--pv-signal); }
.pv-testi__card blockquote { font-size: 16px; line-height: 1.55; color: var(--pv-ink); margin: 0 0 24px; quotes: none; }
.pv-testi__author { font-family: var(--pv-display); font-size: 18px; text-transform: uppercase; color: var(--pv-ink); }
.pv-testi__role { font-family: var(--pv-mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-steel); margin-top: 4px; }
@media (max-width: 900px) { .pv-testi__grid { grid-template-columns: 1fr; } }

.pv-faq__inner { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 100px); }
.pv-faq h2 { font-size: clamp(40px, 6vw, 80px); margin: 16px 0 24px; }
.pv-faq__list { border-top: 1px solid var(--pv-line); }
.pv-faq__item { border-bottom: 1px solid var(--pv-line); padding: 20px 0; }
.pv-faq__item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; font-family: var(--pv-display); font-size: clamp(20px, 1.8vw, 26px); text-transform: uppercase; color: var(--pv-bone); padding: 8px 0; }
.pv-faq__item summary::-webkit-details-marker { display: none; }
.pv-faq__item summary::after { content: "+"; font-family: var(--pv-mono); color: var(--pv-signal); font-size: 24px; }
.pv-faq__item[open] summary::after { content: "−"; }
.pv-faq__item p { padding: 12px 0 8px; color: var(--pv-bone-2); font-size: 15px; max-width: 70ch; }
@media (max-width: 900px) { .pv-faq__inner { grid-template-columns: 1fr; } }

.pv-cta { background: var(--pv-signal); color: var(--pv-ink); padding: 120px var(--pv-gut); background-image: repeating-linear-gradient(-45deg, transparent 0, transparent 24px, rgba(0,0,0,0.04) 24px, rgba(0,0,0,0.04) 25px); }
.pv-cta__inner { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(40px, 6vw, 80px); align-items: end; }
.pv-cta h2 { font-size: clamp(48px, 8vw, 120px); line-height: 0.88; color: var(--pv-ink); }
.pv-cta p { font-family: var(--pv-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--pv-ink); margin: 24px 0 32px; }
.pv-cta .btn { background: var(--pv-ink); border-color: var(--pv-ink); color: var(--pv-signal) !important; }
.pv-cta__phone { text-align: right; font-family: var(--pv-display); font-size: clamp(40px, 5vw, 72px); line-height: 0.9; color: var(--pv-ink); }
.pv-cta__phone span { display: block; font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; margin-bottom: 16px; }
@media (max-width: 900px) { .pv-cta__inner { grid-template-columns: 1fr; } .pv-cta__phone { text-align: left; } }

/* === Pages intérieures === */
.pv-page-hero { padding: 180px var(--pv-gut) 80px; background: var(--pv-ink); border-bottom: 1px solid var(--pv-line); }
.pv-page-hero .crumb { font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--pv-steel); text-transform: uppercase; margin-bottom: 24px; }
.pv-page-hero .crumb a { color: var(--pv-steel); }
.pv-page-hero .crumb .signal { color: var(--pv-signal); }
.pv-page-hero h1 { font-size: clamp(56px, 9vw, 160px); line-height: 0.88; }
.pv-page-hero p { margin-top: 32px; font-size: clamp(17px, 1.4vw, 22px); color: var(--pv-bone-2); max-width: 60ch; }

.pv-svc-detail { padding: 100px var(--pv-gut); border-bottom: 1px solid var(--pv-line); }
.pv-svc-detail:nth-child(even) { background: var(--pv-ink-2); }
.pv-svc-detail__inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 5vw, 80px); align-items: start; }
.pv-svc-detail__num { font-family: var(--pv-display); font-size: clamp(120px, 16vw, 240px); line-height: 0.85; color: var(--pv-signal); display: block; margin-bottom: 24px; }
.pv-svc-detail h2 { font-size: clamp(40px, 5vw, 80px); line-height: 0.92; margin-bottom: 32px; }
.pv-svc-detail p { color: var(--pv-bone-2); font-size: clamp(15px, 1.2vw, 18px); margin-bottom: 24px; }
.pv-svc-detail__list { margin: 32px 0; border-top: 1px solid var(--pv-line); list-style: none; padding: 0; }
.pv-svc-detail__list li { padding: 16px 0; border-bottom: 1px solid var(--pv-line); font-family: var(--pv-mono); font-size: 13px; color: var(--pv-bone-2); display: grid; grid-template-columns: 60px 1fr; gap: 16px; }
.pv-svc-detail__list .k { color: var(--pv-signal); }
.pv-svc-detail__media { display: flex; flex-direction: column; gap: 16px; }
.pv-ph { aspect-ratio: 4/3; background: #2A2D31; border: 1px solid var(--pv-line-strong); display: flex; align-items: center; justify-content: center; font-family: var(--pv-mono); font-size: 10px; color: var(--pv-steel); letter-spacing: 0.14em; }
@media (max-width: 900px) { .pv-svc-detail__inner { grid-template-columns: 1fr; } }

.pv-form { background: var(--pv-ink-2); border: 1px solid var(--pv-line); padding: clamp(28px, 4vw, 56px); display: grid; gap: 24px; }
.pv-form .field { display: grid; gap: 8px; }
.pv-form label { font-family: var(--pv-mono); font-size: 11px; letter-spacing: 0.14em; color: var(--pv-steel); text-transform: uppercase; }
.pv-form input, .pv-form select, .pv-form textarea { background: var(--pv-ink); border: 1px solid var(--pv-line-strong); color: var(--pv-bone); font-family: 'Inter', sans-serif; font-size: 15px; padding: 14px 16px; border-radius: 0; outline: none; }
.pv-form input:focus, .pv-form textarea:focus, .pv-form select:focus { border-color: var(--pv-signal); }
.pv-form textarea { min-height: 140px; resize: vertical; }
.pv-form .row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 600px) { .pv-form .row2 { grid-template-columns: 1fr; } }
  /* ─── TABLETTE (768px – 980px) ─── */
  @media (max-width: 980px) {

    .pv-page-hero { padding: 120px 30px 70px; }
    .pv-page-hero-grid { grid-template-columns: 1fr; gap: 50px; }
    .pv-page-title { font-size: 64px; }

    .pv-section { padding: 70px 30px; }

    .pv-contact-grid { grid-template-columns: 1fr; gap: 50px; }
    .pv-form-col { padding: 36px 28px; }

    .pv-zone-encart { padding: 60px 30px; }
    .pv-zone-encart-inner { grid-template-columns: 1fr; gap: 40px; }

    .pv-footer { padding: 60px 30px 30px; }
    .pv-footer-grid {
      grid-template-columns: 1fr 1fr;
      gap: 40px;
    }
    .pv-footer-bottom { flex-direction: column; gap: 10px; text-align: center; }
  }

  /* ─── MOBILE (< 768px) ─── */
  @media (max-width: 767px) {

    /* Hero */
    .pv-page-hero { padding: 100px 20px 60px; }
    .pv-page-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .pv-page-title { font-size: 48px; }
    .pv-hero-rope-v { left: 20px; }

    /* Sections */
    .pv-section { padding: 60px 20px; }
    .pv-title { font-size: 40px; }

    /* Contact grid */
    .pv-contact-grid { grid-template-columns: 1fr; gap: 40px; }

    /* Formulaire */
    .pv-form-col { padding: 28px 20px; }
    .pv-field-row {
      grid-template-columns: 1fr;  /* ← 2 champs côte à côte → empilés */
      gap: 0;
    }

    /* Zone intervention */
    .pv-zone-encart { padding: 50px 20px; }
    .pv-zone-encart-inner { grid-template-columns: 1fr; gap: 30px; }
    .pv-zone-title { font-size: 34px; }

    /* Footer */
    .pv-footer { padding: 50px 20px 30px; }
    .pv-footer-grid {
      grid-template-columns: 1fr;  /* ← 4 colonnes → 1 seule */
      gap: 36px;
    }
    .pv-footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
  }
