/*
Theme Name: Horecraft
Theme URI: https://horecraft.be
Author: Horecraft
Description: Thème institutionnel premium pour Horecraft — conception, équipement et maintenance de cuisines professionnelles.
Version: 1.3.8
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: horecraft
*/

:root {
  --ink: #071a2b;
  --charcoal: #0d2234;
  --steel: #60717d;
  --silver: #d7dee3;
  --stone: #edf1f3;
  --ivory: #f8fafb;
  --copper: #fe5000;
  --copper-dark: #d94400;
  --white: #fff;
  --success: #4d745d;
  --border: rgba(16, 24, 32, .13);
  --shadow: 0 24px 70px rgba(16, 24, 32, .10);
  --radius: 6px;
  --container: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* Commercial SEO pages */
.page-content .content-narrow { max-width: 920px; }
.page-content .content-narrow > .lead { margin-bottom: 48px; }
.page-content .content-narrow > h2 { margin: 72px 0 24px; font-size: clamp(2rem, 4vw, 3.65rem); }
.page-content .content-narrow > h3 { margin: 42px 0 16px; }
.page-content .content-narrow > p { margin-bottom: 22px; }
.page-content .content-narrow a:not(.btn) { color: var(--copper-dark); text-decoration: underline; text-underline-offset: 3px; }
.seo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin: 48px 0; background: var(--border); border: 1px solid var(--border); }
.seo-grid > div { min-height: 220px; padding: 34px; background: var(--white); }
.seo-grid h3 { margin-bottom: 16px; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.seo-grid p { color: var(--steel); }
@media (max-width: 800px) { .seo-grid { grid-template-columns: 1fr; } .seo-grid > div { min-height: auto; } }
button, input, textarea, select { font: inherit; }
.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--copper); font-size: .76rem; font-weight: 750; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 30px; height: 1px; background: currentColor; }
h1, h2, h3 { margin: 0; font-family: Manrope, Inter, sans-serif; letter-spacing: -.045em; line-height: 1.04; }
h1 { max-width: 920px; font-size: clamp(3.2rem, 7vw, 7.7rem); font-weight: 650; }
h2 { max-width: 850px; font-size: clamp(2.2rem, 4.4vw, 4.8rem); font-weight: 620; }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); font-weight: 650; }
p { margin: 0; }
.lead { max-width: 720px; color: var(--steel); font-size: clamp(1.05rem, 1.5vw, 1.35rem); }
.section { padding: clamp(80px, 10vw, 150px) 0; }
.section-head { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; align-items: end; margin-bottom: 58px; }
.section-head .lead { justify-self: end; }
.btn { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 12px; padding: 0 24px; border: 1px solid transparent; border-radius: 2px; cursor: pointer; font-weight: 750; transition: .25s ease; }
.btn-primary { background: var(--copper); color: var(--white); }
.btn-primary:hover { background: var(--copper-dark); transform: translateY(-2px); }
.btn-secondary { border-color: rgba(255,255,255,.38); color: var(--white); }
.btn-secondary:hover { background: var(--white); color: var(--ink); }
.btn-dark { background: var(--ink); color: var(--white); }
.btn-dark:hover { background: var(--charcoal); transform: translateY(-2px); }

.site-header { position: fixed; z-index: 50; inset: 0 0 auto; color: var(--white); transition: .3s ease; }
.site-header.scrolled, .site-header.menu-open { background: rgba(16,24,32,.97); box-shadow: 0 1px 0 rgba(255,255,255,.1); backdrop-filter: blur(16px); }
.header-inner { height: 92px; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 13px; }
.brand-logo { width: clamp(190px, 19vw, 255px); height: auto; }
.brand-mark { width: 42px; height: 42px; }
.brand-word { display: grid; line-height: 1; }
.brand-word strong { font-family: Manrope, sans-serif; font-size: 1.1rem; letter-spacing: .18em; }
.brand-word small { margin-top: 5px; color: rgba(255,255,255,.6); font-size: .61rem; letter-spacing: .16em; text-transform: uppercase; }
.main-nav { display: flex; align-items: center; gap: 30px; font-size: .9rem; font-weight: 650; }
.main-nav a:not(.btn) { color: rgba(255,255,255,.82); }
.main-nav a:hover { color: var(--white); }
.menu-toggle { display: none; padding: 8px; border: 0; background: none; color: white; }

.hero { position: relative; min-height: 900px; display: grid; align-items: end; overflow: hidden; color: var(--white); background: var(--ink); }
.hero-media { position: absolute; inset: 0; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.65) contrast(1.05); }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,13,18,.91) 0%, rgba(5,13,18,.58) 52%, rgba(5,13,18,.18) 100%), linear-gradient(0deg, rgba(5,13,18,.75), transparent 55%); }
.hero-grid { position: relative; z-index: 2; padding: 190px 0 74px; }
.hero h1 { max-width: 1020px; }
.hero .intro { max-width: 680px; margin-top: 30px; color: rgba(255,255,255,.78); font-size: clamp(1.12rem, 1.6vw, 1.42rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.hero-foot { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 92px; border-top: 1px solid rgba(255,255,255,.25); }
.hero-foot span { padding: 20px 0; color: rgba(255,255,255,.75); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.manifesto { background: var(--ivory); }
.manifesto-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(50px, 8vw, 120px); align-items: center; }
.manifesto-copy h2 { margin-bottom: 28px; }
.manifesto-copy .lead { margin-bottom: 32px; }
.image-frame { position: relative; min-height: 620px; overflow: hidden; background: var(--stone); }
.image-frame img { width: 100%; height: calc(100% + 48px); min-height: 668px; margin-top: -24px; object-fit: cover; transform: scale(1.035) translate3d(0,var(--parallax-y,0),0); will-change: transform; }
.image-caption { position: absolute; right: 0; bottom: 0; max-width: 300px; padding: 22px; background: var(--ink); color: var(--white); font-size: .85rem; }
.image-caption small { display: block; margin-top: 8px; color: rgba(255,255,255,.58); }

.services { background: var(--stone); }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--border); }
.service-card { position: relative; min-height: 480px; display: flex; flex-direction: column; justify-content: space-between; padding: 34px; border-right: 1px solid var(--border); overflow: hidden; background: var(--ivory); }
.service-card:last-child { border-right: 0; }
.service-number { color: var(--copper); font-size: .78rem; font-weight: 800; letter-spacing: .15em; }
.service-card h3 { max-width: 260px; margin: auto 0 18px; font-size: 2.25rem; }
.service-card p { color: var(--steel); }
.service-card .arrow { display: inline-grid; width: 42px; height: 42px; margin-top: 28px; place-items: center; border: 1px solid var(--border); transition: .25s; }
.service-card:hover .arrow { background: var(--copper); border-color: var(--copper); color: white; }

.method { background: var(--ink); color: var(--white); }
.method .section-head .lead { color: rgba(255,255,255,.62); }
.steps { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.18); }
.step { padding: 34px 28px 40px 0; border-right: 1px solid rgba(255,255,255,.14); }
.step:not(:first-child) { padding-left: 28px; }
.step:last-child { border-right: 0; }
.step strong { display: block; margin-bottom: 70px; color: var(--copper); font-size: .78rem; letter-spacing: .14em; }
.step h3 { margin-bottom: 14px; font-size: 1.4rem; }
.step p { color: rgba(255,255,255,.58); font-size: .95rem; }

.proof-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 24px; }
.case-card { position: relative; min-height: 650px; display: flex; align-items: end; overflow: hidden; color: var(--white); background: var(--ink); }
.case-card img { position: absolute; inset: -24px 0; width: 100%; height: calc(100% + 48px); object-fit: cover; filter: saturate(.72); transform: scale(1.035) translate3d(0,var(--parallax-y,0),0); will-change: transform; transition: filter .5s ease, transform .15s linear; }
.case-card:hover img { filter: saturate(.95) contrast(1.03); }
.case-card::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,13,18,.9),rgba(5,13,18,.08) 70%); }
.case-content { position: relative; z-index: 2; padding: 40px; }
.case-content p { max-width: 520px; margin-top: 12px; color: rgba(255,255,255,.72); }
.proof-aside { display: grid; gap: 24px; }
.proof-note { padding: 40px; background: var(--copper); color: var(--white); }
.proof-note strong { display: block; font-family: Manrope; font-size: clamp(3rem, 6vw, 5rem); line-height: 1; }
.proof-note p { margin-top: 18px; }
.proof-principles { padding: 40px; background: var(--stone); }
.proof-principles ul { padding: 0; margin: 30px 0 0; list-style: none; }
.proof-principles li { padding: 14px 0; border-top: 1px solid var(--border); font-weight: 650; }

.hop-panel { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; background: var(--charcoal); color: var(--white); }
.hop-copy { padding: clamp(44px, 7vw, 90px); }
.hop-copy h2 { margin-bottom: 25px; }
.hop-copy p { color: rgba(255,255,255,.65); }
.hop-visual { position: relative; display: grid; place-items: center; overflow: hidden; background: #182127; }
.hop-visual::before { content:""; position:absolute; inset:0; opacity:.25; background-image: linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:38px 38px; }
.ops-card { position:relative; width:min(78%,460px); padding:34px; border:1px solid rgba(255,255,255,.17); background:rgba(16,24,32,.82); box-shadow:var(--shadow); }
.ops-card .status { display:inline-flex; align-items:center; gap:8px; color:#a9d4b6; font-size:.8rem; font-weight:700; }
.ops-card .status::before { content:""; width:8px; height:8px; border-radius:50%; background:#72b48a; }
.ops-card h3 { margin:24px 0 8px; }
.ops-card dl { display:grid; grid-template-columns:1fr auto; gap:14px; margin:28px 0 0; }
.ops-card dt { color:rgba(255,255,255,.55); }
.ops-card dd { margin:0; font-weight:700; }

.contact-band { background: #13364d; color: var(--white); }
.contact-band-inner { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; }
.contact-band h2 { max-width: 900px; }
.contact-band .btn { background: var(--white); color: var(--ink); white-space: nowrap; }

.site-footer { padding: 70px 0 30px; background: #0a1116; color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.2fr .7fr .7fr; gap: 60px; }
.footer-brand p { max-width: 400px; margin-top: 24px; color: rgba(255,255,255,.54); }
.footer-col h3 { margin-bottom: 20px; font-size: .8rem; letter-spacing: .15em; text-transform: uppercase; }
.footer-col a, .footer-col span { display: block; margin: 10px 0; color: rgba(255,255,255,.64); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:60px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.42); font-size:.78rem; }

.page-hero { min-height: 520px; display:grid; align-items:end; padding:180px 0 80px; background:var(--ink); color:white; }
.page-hero h1 { font-size:clamp(3rem,6vw,6rem); }
.page-content { padding:90px 0; }
.content-narrow { max-width:820px; }
.content-narrow > * + * { margin-top:24px; }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:40px; background:var(--stone); }
.contact-form .full { grid-column:1/-1; }
.contact-form label { display:block; margin-bottom:7px; font-size:.78rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.contact-form input,.contact-form textarea,.contact-form select { width:100%; padding:15px; border:1px solid var(--border); border-radius:0; background:white; }
.contact-form textarea { min-height:150px; resize:vertical; }
.form-note { grid-column:1/-1; color:var(--steel); font-size:.8rem; }
.form-alert { margin-top:28px; padding:16px 18px; border-left:3px solid; background:var(--stone); }
.form-alert.success { border-color:#39845a; }
.form-alert.error { border-color:#b5412e; }
.form-section-title { grid-column:1/-1; margin-top:10px; padding-top:24px; border-top:1px solid var(--border); color:var(--ink); font-size:.84rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.consent { grid-column:1/-1; display:flex; gap:10px; align-items:flex-start; color:var(--steel); font-size:.82rem; }
.consent input { width:auto; margin-top:4px; }
.projects-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.project-card { overflow:hidden; background:white; border:1px solid var(--border); transition:transform .35s ease, box-shadow .35s ease; }
.project-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); }
.project-image { height:440px; overflow:hidden; background:var(--stone); }
.project-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.project-card:hover .project-image img { transform:scale(1.045); }
.project-card-copy { padding:30px; }
.project-card-copy h3 { margin-bottom:14px; }
.project-card-copy > p:last-child { color:var(--steel); }
.project-cover { height:min(72vh,820px); overflow:hidden; background:var(--stone); }
.project-cover img { width:100%; height:100%; object-fit:cover; }
.project-detail-grid { display:grid; grid-template-columns:280px 1fr; gap:80px; align-items:start; }
.project-facts { position:sticky; top:120px; padding:28px; border-top:3px solid var(--copper); background:var(--stone); }
.project-facts p + p { margin-top:22px; padding-top:22px; border-top:1px solid var(--border); }
.project-detail-grid .wp-block-gallery { margin:40px 0; }

.equipment-hero { position:relative; min-height:760px; display:grid; align-items:end; overflow:hidden; background:var(--ink); color:white; }
.equipment-hero-media { position:absolute; inset:0; }
.equipment-hero-media img { width:100%; height:100%; object-fit:cover; filter:saturate(.55) contrast(1.05); }
.equipment-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,26,43,.96),rgba(7,26,43,.68) 58%,rgba(7,26,43,.2)),linear-gradient(0deg,rgba(7,26,43,.72),transparent 55%); }
.equipment-hero-inner { position:relative; z-index:2; padding:190px 0 85px; }
.equipment-hero h1 { max-width:1000px; font-size:clamp(3.2rem,6.6vw,7rem); }
.equipment-hero .intro { max-width:720px; margin-top:28px; color:rgba(255,255,255,.74); font-size:clamp(1.08rem,1.5vw,1.35rem); }
.equipment-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.equipment-card { min-height:350px; display:flex; flex-direction:column; padding:32px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:white; transition:background .3s ease, transform .3s ease; }
.equipment-card:hover { z-index:2; background:var(--ink); color:white; transform:translateY(-5px); }
.equipment-card > span { color:var(--copper); font-size:.76rem; font-weight:800; letter-spacing:.15em; }
.equipment-card h3 { margin:auto 0 16px; font-size:2rem; }
.equipment-card p { color:var(--steel); }
.equipment-card:hover p { color:rgba(255,255,255,.62); }
.equipment-card a { margin-top:24px; color:var(--copper); font-weight:750; }
.brands-section { background:white; }
.brands-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.brand-card { min-height:180px; display:grid; place-items:center; gap:14px; padding:30px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:white; }
.brand-card img { width:min(100%,210px); max-height:68px; object-fit:contain; filter:grayscale(1); opacity:.76; transition:filter .35s ease, opacity .35s ease, transform .35s ease; }
.brand-card:hover img { filter:grayscale(0); opacity:1; transform:scale(1.045); }
.brand-card span { color:var(--steel); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.sales-process { background:var(--ink); color:white; }
.equipment-request { background:var(--stone); }
.equipment-form-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:70px; align-items:start; }
.sales-proof { position:sticky; top:120px; }
.sales-proof ul { padding:0; margin:38px 0 0; list-style:none; }
.sales-proof li { padding:14px 0; border-top:1px solid var(--border); font-weight:650; }
.sales-proof li::before { content:"✓"; margin-right:12px; color:var(--copper); }
.equipment-form { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:40px; background:white; box-shadow:var(--shadow); }
.equipment-form .full { grid-column:1/-1; }
.equipment-form label:not(.consent) { display:block; margin-bottom:7px; font-size:.78rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.equipment-form input,.equipment-form textarea,.equipment-form select { width:100%; padding:15px; border:1px solid var(--border); border-radius:0; background:white; }
.equipment-form textarea { min-height:170px; resize:vertical; }

.js-ready .reveal { opacity: 0; transform: translate3d(0,42px,0); transition: opacity .75s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms), transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.js-ready .reveal.is-visible { opacity: 1; transform: translate3d(0,0,0); }
.service-card.reveal:nth-child(2), .step.reveal:nth-child(2) { --reveal-delay: 100ms; }
.service-card.reveal:nth-child(3), .step.reveal:nth-child(3) { --reveal-delay: 200ms; }
.step.reveal:nth-child(4) { --reveal-delay: 300ms; }
.hero-media img { animation: hero-breathe 14s ease-out both; }
.hero-grid > * { animation: hero-rise .9s cubic-bezier(.2,.7,.2,1) both; }
.hero-grid > :nth-child(2) { animation-delay:.08s; }
.hero-grid > :nth-child(3) { animation-delay:.16s; }
.hero-grid > :nth-child(4) { animation-delay:.24s; }
.hero-grid > :nth-child(5) { animation-delay:.34s; }
@keyframes hero-breathe { from { transform:scale(1.07); } to { transform:scale(1); } }
@keyframes hero-rise { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js-ready .reveal { opacity:1; transform:none; }
}

@media (max-width: 960px) {
  .main-nav { position:fixed; inset:92px 0 0; display:none; flex-direction:column; align-items:stretch; padding:30px 24px; background:rgba(16,24,32,.99); }
  .main-nav.open { display:flex; }
  .menu-toggle { display:block; }
  .hero { min-height:820px; }
  .hero-foot { grid-template-columns:1fr 1fr; }
  .section-head,.manifesto-grid,.hop-panel,.contact-band-inner,.contact-grid { grid-template-columns:1fr; }
  .section-head .lead { justify-self:start; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:360px; border-right:0; border-bottom:1px solid var(--border); }
  .steps { grid-template-columns:1fr 1fr; }
  .proof-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .projects-grid { grid-template-columns:1fr; }
  .project-detail-grid { grid-template-columns:1fr; gap:40px; }
  .project-facts { position:static; }
  .equipment-grid,.brands-grid { grid-template-columns:repeat(2,1fr); }
  .equipment-form-grid { grid-template-columns:1fr; }
  .sales-proof { position:static; }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width: 620px) {
  .container { width:min(calc(100% - 32px),var(--container)); }
  .header-inner { height:76px; }
  .main-nav { inset:76px 0 0; }
  .brand-logo { width: 185px; }
  .brand-word small { display:none; }
  .hero { min-height:760px; }
  .hero-grid { padding-top:150px; }
  .hero-foot { margin-top:62px; }
  .hero-foot span { font-size:.64rem; }
  .image-frame,.image-frame img { min-height:440px; }
  .steps { grid-template-columns:1fr; }
  .step,.step:not(:first-child) { padding:28px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.14); }
  .step strong { margin-bottom:35px; }
  .case-card { min-height:520px; }
  .hop-visual { min-height:430px; }
  .contact-form { grid-template-columns:1fr; padding:24px; }
  .contact-form .full { grid-column:auto; }
  .equipment-hero { min-height:720px; }
  .equipment-grid,.brands-grid { grid-template-columns:1fr; }
  .equipment-form { grid-template-columns:1fr; padding:24px; }
  .equipment-form .full { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
}

/* V6 — logo, matériel direct et pôle froid */
.brand-logo { width: clamp(190px, 15vw, 235px); }
.main-nav { gap: clamp(16px, 1.8vw, 32px); }
.main-nav .btn { padding-inline:20px; }

.equipment-catalog { padding-block:clamp(72px,7vw,110px); background:var(--ivory); }
.equipment-catalog .section-head { margin-bottom:38px; }
.equipment-catalog .equipment-card { min-height:230px; }
.equipment-catalog .equipment-card h3 { margin:auto 0 0; }
.brands-section { padding-block:clamp(72px,7vw,110px); }
.brands-section .section-head { margin-bottom:38px; }
.equipment-request { padding-block:clamp(72px,7vw,110px); }
.equipment-form .btn-primary { background:var(--copper); border-color:var(--copper); color:white; }

.cold-teaser { position:relative; min-height:620px; display:grid; align-items:end; overflow:hidden; color:white; background:var(--ink); }
.cold-teaser-media { position:absolute; inset:0; }
.cold-teaser-media img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08); }
.cold-teaser::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,7,10,.9),rgba(3,7,10,.25)),linear-gradient(0deg,rgba(3,7,10,.75),transparent 60%); }
.cold-teaser-content { position:relative; z-index:1; padding-block:90px; }
.cold-teaser h2 { max-width:900px; font-size:clamp(3rem,6vw,7rem); text-transform:uppercase; }
.cold-teaser p:not(.eyebrow) { margin-top:20px; color:rgba(255,255,255,.68); font-size:1.15rem; }
.cold-teaser .btn { margin-top:34px; }

.cold-hero { position:relative; min-height:88svh; display:grid; align-items:end; overflow:hidden; color:white; background:var(--ink); }
.cold-hero-media { position:absolute; inset:0; }
.cold-hero-media img { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.12); }
.cold-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,8,12,.92),rgba(3,8,12,.2)),linear-gradient(0deg,rgba(3,8,12,.74),transparent 58%); }
.cold-hero-content { position:relative; z-index:1; padding-block:190px 80px; }
.cold-hero h1 { max-width:1100px; font-size:clamp(4.5rem,9vw,10rem); font-weight:390; line-height:.82; text-transform:uppercase; }
.cold-hero h1 em { color:var(--copper); font-style:normal; }
.cold-hero-content > p:not(.eyebrow) { margin-top:28px; color:rgba(255,255,255,.7); font-size:1.2rem; }
.cold-hero .btn { margin-top:34px; }
.cold-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.cold-grid article { min-height:310px; display:flex; flex-direction:column; padding:30px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.cold-grid span { color:var(--copper); font-size:.72rem; font-weight:700; letter-spacing:.15em; }
.cold-grid h3 { margin:auto 0 14px; font-size:2rem; }
.cold-grid p { color:var(--steel); }
.cold-professional { background:var(--ink); color:white; }
.cold-professional .manifesto-grid { align-items:start; }
.cold-list p { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:22px 0; border-top:1px solid rgba(255,255,255,.16); }
.cold-list span { color:rgba(255,255,255,.56); }
.cold-cta { background:var(--stone); }
.cold-cta h2 { margin-bottom:38px; }

@media (max-width:1100px) {
  .brand-logo { width:185px; }
  .main-nav { gap:16px; font-size:.65rem; }
  .main-nav .btn { padding-inline:15px; }
}

@media (max-width:960px) {
  .brand-logo { width:205px; }
  .main-nav { font-size:.76rem; }
  .cold-grid { grid-template-columns:1fr; }
  .cold-grid article { min-height:240px; }
}

@media (max-width:620px) {
  .brand-logo { width:175px; }
  .equipment-catalog .equipment-card { min-height:205px; }
  .cold-teaser { min-height:560px; }
  .cold-teaser-content { padding-block:70px; }
  .cold-teaser h2 { font-size:3.1rem; }
  .cold-hero { min-height:82svh; }
  .cold-hero-content { padding-block:145px 55px; }
  .cold-hero h1 { font-size:clamp(3.5rem,17vw,5rem); }
  .cold-list p { grid-template-columns:1fr; gap:5px; }
}

/* Editorial redesign — lighter typography, stronger imagery, less copy */
:root {
  --ink: #080b0d;
  --charcoal: #111517;
  --steel: #697074;
  --stone: #f0f1f1;
  --ivory: #f8f8f6;
  --container: 1540px;
  --shadow: 0 28px 80px rgba(0,0,0,.08);
}

body { font-family: Inter, Arial, sans-serif; line-height: 1.5; }
.container { width: min(calc(100% - 64px), var(--container)); }
h1, h2, h3 { font-family: Inter, Arial, sans-serif; font-weight: 430; letter-spacing: -.055em; }
h2 { font-size: clamp(2.3rem, 4vw, 4.5rem); }
.lead { font-weight: 400; line-height: 1.45; }
.section { padding: clamp(90px, 9vw, 145px) 0; }
.section-head { grid-template-columns: 1.25fr .75fr; align-items: start; }
.eyebrow { font-size: .72rem; font-weight: 650; letter-spacing: .22em; }
.btn { min-height: 56px; padding: 0 28px; border-radius: 0; font-size: .78rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.btn-primary { background: transparent; border-color: rgba(255,255,255,.35); }
.btn-primary:hover { background: var(--copper); border-color: var(--copper); }
.btn-dark { background: transparent; border-color: var(--ink); color: var(--ink); }
.btn-dark:hover { background: var(--ink); color: white; }

.header-inner { height: 82px; }
.brand-logo { width: clamp(126px, 11vw, 170px); }
.main-nav { gap: clamp(20px, 2.4vw, 42px); font-size: .72rem; font-weight: 650; letter-spacing: .17em; text-transform: uppercase; }
.main-nav .btn { min-height: 54px; padding-inline: 24px; }
.site-header.scrolled, .site-header.menu-open { background: rgba(7,9,10,.92); }

.hero { min-height: 100svh; align-items: stretch; }
.hero-media img { filter: grayscale(1) contrast(1.08); }
.hero::after { background: linear-gradient(90deg,rgba(2,3,4,.74),rgba(2,3,4,.22) 70%),linear-gradient(0deg,rgba(2,3,4,.86),transparent 62%); }
.hero-grid { display: grid; grid-template-columns: 1.35fr .65fr; grid-template-rows: auto auto auto 1fr auto; align-content: end; column-gap: 56px; padding: 150px 0 32px; }
.hero-grid .eyebrow { grid-column: 1/-1; }
.hero h1 { grid-column: 1/-1; max-width: 1450px; margin-top: 22px; font-size: clamp(4.2rem, 8.4vw, 9.5rem); font-weight: 380; line-height: .86; letter-spacing: -.065em; text-transform: uppercase; }
.hero h1 em, .equipment-hero h1 em { color: var(--copper); font-style: normal; }
.hero .intro { align-self: end; max-width: 660px; margin: 48px 0 0; font-size: clamp(1rem, 1.35vw, 1.25rem); }
.hero-actions { justify-self: end; align-self: end; margin-top: 48px; }
.hero-foot { grid-column: 1/-1; margin-top: 52px; }
.hero-foot span { padding: 18px 0 0; font-size: .66rem; letter-spacing: .16em; }

.manifesto-grid { grid-template-columns: .85fr 1.15fr; align-items: stretch; }
.manifesto-copy { align-self: center; }
.manifesto-copy .lead { margin-bottom: 0; }
.image-frame { min-height: 700px; }
.image-frame img { min-height: 748px; filter: grayscale(.78) contrast(1.03); }
.image-caption { max-width: 260px; padding: 18px 20px; background: rgba(7,9,10,.92); }

.services { background: var(--ivory); }
.services-grid { border-color: rgba(0,0,0,.16); }
.service-card { min-height: 420px; padding: 30px; border-color: rgba(0,0,0,.16); background: transparent; }
.service-card h3 { max-width: 340px; font-size: clamp(1.8rem,2.6vw,3rem); font-weight: 430; }
.service-card:hover { background: var(--ink); color: white; }
.service-card:hover p { color: rgba(255,255,255,.58); }
.service-number { font-weight: 650; }

.method, .sales-process { background: #090b0c; }
.step { min-height: 300px; }
.step strong { margin-bottom: auto; }
.step h3 { margin-top: 80px; font-size: 1.55rem; font-weight: 450; }
.proof-note { background: var(--copper); }
.case-card { min-height: 720px; }
.case-card img { filter: grayscale(.86) contrast(1.06); }
.case-content h3 { max-width: 780px; font-size: clamp(2rem,3.4vw,4rem); font-weight: 420; }

.page-hero { position: relative; min-height: 70svh; overflow: hidden; padding: 190px 0 70px; background-image: linear-gradient(90deg,rgba(3,5,6,.86),rgba(3,5,6,.28)),url('assets/images/portfolio/fox-01.jpg'); background-position: center; background-size: cover; }
.page-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(2,3,4,.72),transparent 60%); }
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { max-width: 1100px; font-size: clamp(3.6rem,7vw,7.5rem); font-weight: 400; line-height: .92; text-transform: uppercase; }
.page-hero .intro { max-width: 560px; margin-top: 26px; color:rgba(255,255,255,.72); font-size:1.12rem; }

.equipment-hero { min-height: 88svh; }
.equipment-hero-media img { filter: grayscale(1) contrast(1.12); }
.equipment-hero::after { background: linear-gradient(90deg,rgba(2,4,5,.83),rgba(2,4,5,.2)),linear-gradient(0deg,rgba(2,4,5,.8),transparent 60%); }
.equipment-hero h1 { max-width: 1350px; font-size: clamp(4rem,8vw,8.8rem); font-weight: 390; line-height: .88; text-transform: uppercase; }
.equipment-hero .intro { max-width: 560px; }
.equipment-grid { gap: 1px; border: 0; background: rgba(0,0,0,.15); }
.equipment-card { min-height: 300px; border: 0; }
.equipment-card h3 { font-weight: 430; }
.brand-card { min-height: 155px; }
.equipment-request { background: var(--ivory); }
.equipment-form { box-shadow: none; border: 1px solid var(--border); }
.contact-form { background: white; border: 1px solid var(--border); }
.contact-band { background: var(--copper); }
.contact-band h2 { font-size: clamp(3rem,6vw,7rem); font-weight: 400; text-transform: uppercase; }

@media (max-width: 960px) {
  .container { width: min(calc(100% - 40px), var(--container)); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero .intro, .hero-actions { justify-self: start; }
  .hero-actions { margin-top: 30px; }
  .manifesto-grid { grid-template-columns: 1fr; }
  .main-nav { letter-spacing: .12em; }
}

@media (max-width: 620px) {
  .container { width: min(calc(100% - 30px), var(--container)); }
  .header-inner { height: 72px; }
  .main-nav { inset:72px 0 0; }
  .brand-logo { width: 142px; }
  .hero { min-height: 100svh; }
  .hero-grid { min-width:0; grid-template-columns:minmax(0,1fr); padding: 122px 0 24px; }
  .hero-grid > * { min-width:0; }
  .hero h1 { max-width:100%; margin-top: 10px; font-size: clamp(2.2rem,9.3vw,2.65rem); line-height: .92; }
  .hero .intro { margin-top: 34px; }
  .hero-actions { width:100%; }
  .hero-actions .btn { width:100%; }
  .hero-foot { margin-top: 34px; }
  .hero-foot { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero-foot span { padding-top: 14px; }
  .page-hero { min-height: 62svh; padding: 145px 0 48px; }
  .page-hero h1 { font-size: clamp(3rem,15vw,4.8rem); }
  .equipment-hero { min-height: 92svh; }
  .equipment-hero-inner { padding: 145px 0 48px; }
  .equipment-hero h1 { font-size: clamp(3.4rem,15vw,5rem); }
  .section { padding: 76px 0; }
  .image-frame { min-height: 540px; }
  .image-frame img { min-height: 588px; }
  .service-card { min-height: 310px; }
  .case-card { min-height: 580px; }
  .contact-band h2 { font-size: 3.3rem; }
}

/* Final V6 cascade */
.brand-logo { width:clamp(215px,17vw,260px); }
.main-nav { gap:clamp(16px,1.8vw,32px); }
.equipment-catalog { padding-block:clamp(72px,7vw,110px); }
.equipment-catalog .equipment-card { min-height:230px; }
.equipment-form .btn-primary { background:var(--copper); border-color:var(--copper); color:white; }
@media (max-width:1100px) {
  .brand-logo { width:200px; }
  .main-nav { gap:16px; font-size:.65rem; }
}
@media (max-width:960px) {
  .brand-logo { width:210px; }
  .main-nav { font-size:.76rem; }
  .section-head { grid-template-columns:minmax(0,1fr); }
  .section-head > * { min-width:0; }
}
@media (max-width:620px) {
  .brand-logo { width:182px; }
  .equipment-catalog .equipment-card { min-height:205px; }
}

/* Portfolio Horecraft */
.portfolio-hero { min-height:88svh; background-image:linear-gradient(90deg,rgba(3,5,6,.82),rgba(3,5,6,.18)),url('assets/images/portfolio/ratz-01.jpg'); }
.portfolio-index { position:sticky; top:82px; z-index:20; background:rgba(8,11,13,.96); color:white; border-top:1px solid rgba(255,255,255,.14); }
.portfolio-index-inner { display:grid; grid-template-columns:repeat(4,1fr); }
.portfolio-index a { display:flex; gap:12px; padding:22px 18px; border-right:1px solid rgba(255,255,255,.14); font-size:.74rem; font-weight:650; letter-spacing:.12em; text-transform:uppercase; }
.portfolio-index a:first-child { border-left:1px solid rgba(255,255,255,.14); }
.portfolio-index span { color:var(--copper); }
.portfolio-project { scroll-margin-top:150px; padding:clamp(95px,10vw,160px) 0; background:var(--ivory); }
.portfolio-project-dark { background:var(--ink); color:white; }
.portfolio-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:end; margin-bottom:58px; }
.portfolio-heading h2 { margin-top:10px; font-size:clamp(4rem,9vw,10rem); line-height:.82; text-transform:uppercase; }
.portfolio-heading > p { max-width:560px; justify-self:end; color:var(--steel); font-size:clamp(1rem,1.4vw,1.2rem); }
.portfolio-project-dark .portfolio-heading > p { color:rgba(255,255,255,.6); }
.portfolio-gallery { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:230px; gap:18px; }
.portfolio-gallery figure { margin:0; overflow:hidden; background:var(--stone); }
.portfolio-gallery img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.portfolio-gallery figure:hover img { transform:scale(1.035); }
.portfolio-gallery .portfolio-main { grid-column:span 8; grid-row:span 3; }
.gallery-bortier .portfolio-main { grid-row:span 2; }
.gallery-bortier figure:not(.portfolio-main) { grid-column:span 4; grid-row:span 1; }
.gallery-fox .portfolio-main { grid-column:span 8; grid-row:span 3; }
.gallery-fox .portfolio-portrait { grid-column:span 4; grid-row:span 3; }
.gallery-fox figure:not(.portfolio-main):not(.portfolio-portrait) { grid-column:span 6; grid-row:span 2; }
.gallery-ratz .portfolio-main { grid-column:span 8; grid-row:span 3; }
.gallery-ratz figure:not(.portfolio-main) { grid-column:span 4; grid-row:span 2; }
.gallery-josaphat .portfolio-main { grid-column:span 8; grid-row:span 3; }
.gallery-josaphat figure:not(.portfolio-main):not(.portfolio-office) { grid-column:span 4; grid-row:span 3; }
.gallery-josaphat .portfolio-office { grid-column:span 12; grid-row:span 2; }
.legal-content h2 { margin-top:50px; margin-bottom:18px; }
.legal-content h2:first-child { margin-top:0; }

@media (max-width:960px) {
  .portfolio-index { top:72px; }
  .portfolio-index-inner { grid-template-columns:repeat(2,1fr); }
  .portfolio-heading { grid-template-columns:1fr; gap:24px; }
  .portfolio-heading > p { justify-self:start; }
  .portfolio-gallery { grid-auto-rows:190px; }
  .portfolio-gallery .portfolio-main { grid-column:span 12; grid-row:span 3; }
  .gallery-bortier figure:not(.portfolio-main),.gallery-fox figure:not(.portfolio-main),.gallery-josaphat figure:not(.portfolio-main),.gallery-ratz figure:not(.portfolio-main) { grid-column:span 6; grid-row:span 2; }
  .gallery-josaphat .portfolio-office { grid-column:span 12; }
}

@media (max-width:620px) {
  .portfolio-index { position:static; }
  .portfolio-index-inner { grid-template-columns:1fr 1fr; }
  .portfolio-index a { padding:17px 10px; font-size:.62rem; }
  .portfolio-project { scroll-margin-top:72px; }
  .portfolio-heading h2 { font-size:clamp(3.4rem,17vw,5rem); }
  .portfolio-gallery { display:block; }
  .portfolio-gallery figure,.portfolio-gallery .portfolio-main { height:auto; margin-bottom:14px; background:transparent; }
  .portfolio-gallery img { width:100%; height:auto; object-fit:contain; }
  .portfolio-gallery figure:hover img { transform:none; }
}

/* Galeries sans recadrage : chaque réalisation reste entièrement visible */
.portfolio-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:auto; align-items:start; }
.portfolio-gallery figure,
.portfolio-gallery .portfolio-main,
.gallery-bortier .portfolio-main,
.gallery-bortier figure:not(.portfolio-main),
.gallery-fox .portfolio-main,
.gallery-fox .portfolio-portrait,
.gallery-fox figure:not(.portfolio-main):not(.portfolio-portrait),
.gallery-ratz .portfolio-main,
.gallery-ratz figure:not(.portfolio-main),
.gallery-josaphat .portfolio-main,
.gallery-josaphat figure:not(.portfolio-main):not(.portfolio-office),
.gallery-josaphat .portfolio-office { grid-column:auto; grid-row:auto; }
.portfolio-gallery img { width:100%; height:auto; object-fit:contain; }
.gallery-fox .portfolio-main,
.gallery-ratz .portfolio-main,
.gallery-josaphat .portfolio-main,
.gallery-josaphat .portfolio-office { grid-column:1/-1; }
.gallery-josaphat figure:not(.portfolio-main):not(.portfolio-office) { grid-column:2; }

@media (max-width:960px) {
  .portfolio-gallery { display:block; }
  .portfolio-gallery figure,.portfolio-gallery .portfolio-main { height:auto; margin-bottom:18px; background:transparent; }
  .portfolio-gallery img { width:100%; height:auto; object-fit:contain; }
  .portfolio-gallery figure:hover img { transform:none; }
}
