/* =========================
RESET / BASE
========================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"Helvetica Neue", Arial, sans-serif;
    background:#050505;
    color:#e6e6e6;
    line-height:1.7;
}


/* =========================
NAVIGATION
========================= */

nav{
    position:sticky;
    top:0;
    background:#050505;
    z-index:1000;
    padding:20px;
    text-align:center;
    border-bottom:1px solid #111;
}

nav a{
    color:#cfae70;
    text-decoration:none;
    margin:0 18px;
    font-size:14px;
    letter-spacing:.08em;
}

nav a:hover{
    color:#fff;
}

.lang-switch{
    margin-left:10px;
}


/* =========================
BUTTON
========================= */

.btn{
    display:inline-block;
    background:#cfae70;
    color:#050505; /* noir profond cohérent avec ton site */
    margin-top:10px;
    padding:16px 42px;
    font-size:14px;
    text-decoration:none;
    letter-spacing:.08em;
    border:1px solid #cfae70;
    transition:.25s ease;
}

.btn:hover{
    background:#e2c489;
    color:#050505;
    box-shadow:0 0 12px rgba(207,174,112,.35);
}

/* FIX PRIORITÉ BOUTON */

.section .btn{
    color:#050505 !important;
    border-bottom:none !important;
}

.section .btn:hover{
    color:#050505 !important;
}

/* =========================
COLLECTION GRID
========================= */

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:20px;
    margin-top:40px;
}

.card{
	border:1px solid #1b1b1b;
    padding:26px;
    text-align:center;
    transition:.2s;
    border:1px solid #1b1b1b;
    padding:26px;
    text-align:center;
    transition:.2s;

    /* correction lien luxe */
    color:inherit;
    text-decoration:none;
}

.card:hover{
    border-color:#cfae70;
}

.card img{
    width:100%;
    aspect-ratio:1/1;
    object-fit:contain;
    background:#0b0b0b;
    padding:14px;
}

.card img.coming-soon{
    object-fit:cover;
    object-position:center;
    background:#111;
    padding:0;
}

.card h3{
    font-size:16px;
    margin-bottom:10px;
}

.card h3{
    font-size:16px;
    margin-bottom:10px;
    color:#e6e6e6;
}

.card:hover h3{
    color:#cfae70;
}

.card p{
    font-size:13px;
    color:#bdbdbd;
}


/* =========================
FOOTER
========================= */

footer{
    text-align:center;
    padding:60px 20px;
    font-size:12px;
    color:#777;
    border-top:1px solid #111;
}

footer a{
    color:#cfae70;
    text-decoration:none;
}

footer a:hover{
    color:#fff;
}


/* =========================
FORM STYLING
========================= */

form{
    margin-top:24px;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    max-width:620px;
}

form input,
form textarea{
    flex:1 1 280px;
    padding:12px;
    background:#0c0c0c;
    border:1px solid #222;
    color:#ddd;
    font-size:14px;
}

form textarea{
    flex:1 1 100%;
    min-height:100px;
    resize:vertical;
}

form button{
    background:#cfae70;
    border:none;
    padding:12px 28px;
    font-size:14px;
	margin-top:6px;
    cursor:pointer;
    color:#000;
    transition:.2s;
}

form button:hover{
    background:#e2c489;
}

.form-note{
    margin-top:12px;
    font-size:13px;
    color:#cfae70;
    letter-spacing:.04em;
}

/* =========================
GLOBAL HERO — BASE (HOME ONLY)
========================= */

.hero{
    position:relative;
    width:100%;
    height:100vh;
    margin:0;
    padding:0;
    overflow:hidden;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.55);
}

.hero-content{
    position:relative;
    z-index:2;
}

.hero h1{
    font-size:40px;
    margin-bottom:22px;
}

.hero p{
    max-width:720px;
    margin:0 auto 36px;
    line-height:1.75;
}

/* HERO LINK FIX */

.hero p a{
    color:#cfae70;
    text-decoration:none;
    border-bottom:1px solid rgba(207,174,112,0.5);
    transition:.2s ease;
}

.hero p a:hover{
    color:#fff;
    border-bottom:1px solid #cfae70;
}

.hero-image{
    position:absolute;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    top:0;
    left:0;
    z-index:1;
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to bottom,
        rgba(0,0,0,0.3),
        rgba(0,0,0,0.7)
    );
    z-index:2;
}

.hero-content{
    position:relative;
    z-index:3;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:0 20px;
}

/* ===== HERO CINÉMATIQUE ===== */

.hero-image{
    object-position: center 30%;
    transform: scale(1.05);
}

.hero-content{
    max-width:900px;
    margin:auto;
}

.hero h1{
    font-size:48px;
    letter-spacing:.04em;
    margin-bottom:28px;
}

.hero p{
    font-size:17px;
    opacity:.92;
}

/* =========================
ACQUISITION HERO
========================= */

.acquisition-hero{
    position:relative;
    max-width:1200px;
    margin:80px auto 120px;
    padding:120px 40px;
    text-align:center;
    background:url("/assets/img/acquisition.webp") center/cover no-repeat;
    border:1px solid #111;
}

.acquisition-hero .hero-overlay{
    background:rgba(0,0,0,.60);
}

/* =========================
PAGE HERO BACKGROUNDS
========================= */

.process-hero{
    background:url("/assets/img/process.webp") center/cover no-repeat;
}

.material-hero{
    background:url("/assets/img/material.webp") center/cover no-repeat;
}

.schauenberg-hero{
    background:url("/assets/img/schauenberg-massif.webp") center/cover no-repeat;
}

.schauenberg-hero .hero-overlay{
    background:rgba(0,0,0,.65);
}

/* =========================
GLOBAL SECTION FLOW
========================= */

.section{
    max-width:820px;
    margin:120px auto 110px;
    padding:0 20px;
}

.section h2{
    margin-bottom:14px;
}

.section p{
    line-height:1.85;
}

.section a{
    color:#cfae70;
    text-decoration:none;
    border-bottom:1px solid rgba(207,174,112,0.4);
    transition:.2s ease;
}

.section a:hover{
    color:#fff;
    border-bottom:1px solid #cfae70;
}

/* =========================
INTRO SECTION
========================= */

.intro{
    margin-top:-40px;
}

/* =========================
MOBILE NAVIGATION
========================= */

.menu-toggle{
    display:none;
    font-size:26px;
    color:#cfae70;
    cursor:pointer;
}

.nav-links{
    display:inline-block;
}


/* =========================
RESPONSIVE
========================= */

@media (max-width: 768px){

nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.menu-toggle{
    display:block;
}

.nav-links{
    position:fixed;
    top:0;
    right:-100%;
    width:70%;
    height:100vh;
    background:#050505;
    display:flex;
    flex-direction:column;
    padding:80px 30px;
    transition:.3s;
    border-left:1px solid #111;
}

.nav-links a{
    margin:16px 0;
    font-size:16px;
}

.nav-links.active{
    right:0;
}

/* HERO */

.hero,
.acquisition-hero{
    margin:20px 10px 50px;
    padding:50px 16px;
}

.hero h1{
    font-size:22px;
    line-height:1.2;
}

.hero p{
    font-size:14px;
}

/* SECTIONS */

.section{
    margin-bottom:40px;
}

/* FORM */

form{
    flex-direction:column;
}

form input,
form textarea{
    width:100%;
}

/* ===== MOBILE POLISH ===== */

.hero,
.acquisition-hero{
    margin:20px 10px 50px;
    padding:50px 16px;
}

.hero h1{
    font-size:22px;
    line-height:1.2;
}

.hero p{
    font-size:14px;
}

}

/* ======================
IMMERSIVE VIEWER
====================== */

.viewer{
position:fixed;
inset:0;
background:rgba(0,0,0,.95);
display:none;
justify-content:center;
align-items:center;
z-index:9999;
}

.viewer img{
max-width:90%;
max-height:90%;
}

.viewer-close{
position:absolute;
top:20px;
right:30px;
font-size:28px;
color:#fff;
cursor:pointer;
}

.viewer-nav{
position:absolute;
top:50%;
transform:translateY(-50%);
font-size:40px;
color:#fff;
cursor:pointer;
padding:10px;
user-select:none;
}

.viewer-nav.prev{ left:20px; }
.viewer-nav.next{ right:20px; }

.viewer-nav:hover,
.viewer-close:hover{
color:#cfae70;
}

/* ======================
LUXURY TEXTURE ZOOM
====================== */

.zoom-wrap{
position:relative;
overflow:hidden;
border:1px solid #111;
cursor:zoom-in;
}

.zoom-wrap img{
width:100%;
transition:transform .6s ease;
}

.zoom-wrap:hover img{
transform:scale(1.4);
}

/* mobile → pas de zoom hover */

@media(max-width:768px){
.zoom-wrap:hover img{
transform:none;
}
}

/* ======================
STORYTELLING LUXE
====================== */

.story-block{
max-width:760px;
margin:120px auto;
}

.story-block h2{
margin-bottom:24px;
}

.story-block p{
margin-bottom:22px;
line-height:1.9;
color:#d2d2d2;
font-size:15px;
}

@media(max-width:768px){

.story-block{
margin:60px auto;
}

.story-block p{
font-size:14px;
}

}

/* ======================
SIGNATURE & CERTIFICAT
====================== */

.certificate-block{
max-width:760px;
margin:120px auto;
border-top:1px solid #111;
padding-top:60px;
}

.certificate-block h2{
margin-bottom:24px;
}

.certificate-block p{
margin-bottom:20px;
line-height:1.9;
color:#d2d2d2;
font-size:15px;
}

.certificate-note{
color:#cfae70;
letter-spacing:.04em;
}

/* mobile */

@media(max-width:768px){

.certificate-block{
margin:60px auto;
padding-top:40px;
}

.certificate-block p{
font-size:14px;
}

}

/* ======================
TECH BLOCK
====================== */

.tech-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:20px;
margin-top:20px;
}

.tech-grid div{
border:1px solid #111;
padding:18px;
}

.tech-grid span{
display:block;
color:#888;
font-size:13px;
margin-bottom:6px;
}

.tech-grid strong{
color:#cfae70;
font-size:16px;
}

/* ======================
PRESENCE
====================== */

.presence-block p{
margin-bottom:22px;
line-height:1.9;
}

/* ======================
SIGNATURE STORY
====================== */

.signature-story p{
margin-bottom:22px;
line-height:1.9;
}

/* ======================
LIMITED BADGE
====================== */

.limited-badge{
display:inline-block;
margin:14px 0 20px;
padding:8px 14px;
border:1px solid #cfae70;
color:#cfae70;
font-size:12px;
letter-spacing:.08em;
}

/* ======================
CERT GALLERY
====================== */

.cert-images{
display:grid;
grid-template-columns:1fr 1fr;
gap:20px;
margin-top:20px;
}

.cert-images img{
width:100%;
border:1px solid #111;
}

/* ======================
MOBILE
====================== */

@media(max-width:768px){

.tech-grid{
grid-template-columns:1fr;
}

.cert-images{
grid-template-columns:1fr;
}

}

.product-gallery img{
transition:.4s ease;
}

.product-gallery img:hover{
filter:brightness(1.08);
}

/* FORM MOBILE FIX */

@media (max-width:768px){

@media (max-width:768px){

.hero-standard h1{
    font-size:22px;
    line-height:1.25;
    padding:0 14px;
    word-break:break-word;
}

}

form{
    max-width:100%;
}

form input,
form textarea{
    flex:none;
    width:100%;
    padding:14px;
    font-size:15px;
}

form button{
    width:100%;
    padding:16px;
}

}

/* ======================
LEGAL
====================== */

.legal-note{
margin-top:20px;
font-size:0.9rem;
opacity:0.7;
line-height:1.6;
}

.legal-section{
margin-top:60px;
padding-top:20px;
border-top:1px solid rgba(255,255,255,0.1);
}

/* ======================
PRODUCT LAYOUT
====================== */

.product-wrap{
max-width:1100px;
margin:100px auto;
padding:0 20px;
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
}

.product-gallery img{
width:100%;
border:1px solid #111;
}

.thumbs{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:8px;
margin-top:12px;
}

.thumbs img{
cursor:pointer;
border:1px solid #111;
opacity:.7;
transition:.25s;
}

.thumbs img:hover{
opacity:1;
border-color:#cfae70;
}

.product-info h1{
margin-bottom:20px;
}

.product-info p{
margin-bottom:18px;
color:#cfcfcf;
line-height:1.8;
}

.product-status{
margin:20px 0;
color:#cfae70;
}

/* ======================
VIDEO BLOCK
====================== */

.video-block{
margin-top:80px;
}

.video-block iframe{
width:100%;
height:500px;
border:none;
}

/* ======================
PRODUCT MOBILE
====================== */

@media(max-width:768px){

.product-wrap{
grid-template-columns:1fr;
gap:30px;
}

.video-block iframe{
height:260px;
}

}

/* ======================
CTA CENTER FIX
====================== */

.cta-center{
    text-align:center;
    margin-top:40px;
}

.cta-center .btn{
    padding:16px 42px;
    font-size:15px;
}

/* =========================================
CINEMA HERO — DOMINATION MODE
========================================= */

/* A — Zoom ultra lent 20 secondes */

@keyframes slowZoom {
    0%   { transform: scale(1.05); }
    100% { transform: scale(1.12); }
}

.hero-image{
    animation: slowZoom 20s ease-in-out infinite alternate;
    will-change: transform;
}


/* B — Grain film subtil */

.hero::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size:3px 3px;
    opacity:.15;
    mix-blend-mode:overlay;
    pointer-events:none;
    z-index:3;
}


/* C — Micro lumière dorée */

.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(
        circle at 70% 30%,
        rgba(207,174,112,0.20),
        transparent 60%
    );
    mix-blend-mode:screen;
    pointer-events:none;
    z-index:2;
}

.hero::after{
    display:none !important;
}


/* Amélioration du texte pour impact premium */

.hero h1{
    font-size:52px;
    letter-spacing:.05em;
    font-weight:500;
}

.hero p{
    font-size:18px;
    opacity:.95;
    max-width:880px;
}


/* ==============================
UNIFIED HERO SYSTEM
============================== */

.hero-standard{
    position:relative;
    width:100%;
    min-height:100vh;
    padding:180px 0 120px;
}

.hero-standard .hero-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    animation: slowZoom 20s ease-in-out infinite alternate;
    will-change:transform;
}

.hero-standard .hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        to bottom,
        rgba(0,0,0,0.35),
        rgba(0,0,0,0.85)
    );
    z-index:2;
}

.hero-standard .hero-content{
    position:relative;
    z-index:3;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:0 20px;
    max-width:900px;
    margin:auto;
}

.hero-standard h1{
    font-size:52px;
    letter-spacing:.02em;
    margin-bottom:28px;
    max-width:900px;
}

.hero-standard p{
    font-size:18px;
    opacity:.95;
    max-width:780px;
}

/* --- Carte Bretagne Premium V2 --- */

.bretagne-map-wrapper {
margin-top: 80px;
display: flex;
justify-content: center;
}

.bretagne-map {
width: 100%;
max-width: 900px;
}

.bretagne-base {
fill: #0f0f0f;
stroke: #d4af37;
stroke-width: 2;
filter: drop-shadow(0 0 40px rgba(212,175,55,0.15));
}

.zone-dot {
fill: #d4af37;
opacity: 0.8;
cursor: pointer;
transition: all 0.5s ease;
animation: pulseGlow 4s infinite ease-in-out;
}

.zone-dot:hover {
opacity: 1;
r: 34;
filter: drop-shadow(0 0 25px rgba(212,175,55,0.8));
}

@keyframes pulseGlow {
0% { opacity: 0.6; }
50% { opacity: 1; }
100% { opacity: 0.6; }
}

.map-image-wrapper {
position: relative;
margin-top: 60px;
display: flex;
justify-content: center;
}

.map-image {
width: 100%;
max-width: 900px;
display: block;
}

.map-point {
position: absolute;
width: 22px;
height: 22px;
background: #d4af37;
border-radius: 50%;
box-shadow: 0 0 20px rgba(212,175,55,0.7);
animation: pulse 3s infinite ease-in-out;
}

.map-point a {
display: block;
width: 100%;
height: 100%;
}

.finistere { top: 48%; left: 28%; }
.morbihan { top: 60%; left: 48%; }
.cotesarmor { top: 40%; left: 60%; }

@keyframes pulse {
0% { opacity: 0.6; transform: scale(1); }
50% { opacity: 1; transform: scale(1.2); }
100% { opacity: 0.6; transform: scale(1); }
}

@media (max-width:768px){

.hero-standard h1{
    font-size:22px;
    line-height:1.2;
}

.hero-standard p{
    font-size:14px;
}

}

/* ======================
GLOSSAIRE SPACING
====================== */

.section .content-narrow h3{
    margin-top:38px;
    margin-bottom:14px;
}

.section .content-narrow h3:first-of-type{
    margin-top:20px;
}

.section .content-narrow h3 + p{
    margin-bottom:18px;
}

/* ======================
FAQ SPACING
====================== */

.section h3{
    margin-top:28px;
    margin-bottom:10px;
}

.section h3 + p{
    margin-bottom:18px;
}

/* ======================
TYPOGRAPHIE UNIFIÉE
====================== */

body{
    font-size:16px;
}

.section p,
.product-info p,
.story-block p,
.certificate-block p,
.presence-block p,
.signature-story p{
    font-size:16px;
    line-height:1.9;
}

/* ======================
FAQ SPACING GLOBAL FIX
====================== */

.section h3{
    margin-top:40px !important;
    margin-bottom:14px !important;
}

.section h3:first-of-type{
    margin-top:28px !important;
}

.section h3 + p{
    margin-bottom:24px !important;
}

/* ======================
FAQ SPACING CLEAN SYSTEM
====================== */

.faq-block h3{
    margin-top:38px;
    margin-bottom:12px;
}

.faq-block h3:first-of-type{
    margin-top:28px;
}

.faq-block p{
    margin-bottom:22px;
    line-height:1.75;
}

/* =========================
HERO IMAGE MOBILE FIX
========================= */

@media (max-width:768px){

.hero-standard{
    min-height:60vh;
    padding:120px 0 80px;
}

.hero-standard .hero-image{
    object-fit:contain;
    object-position:center;
    height:auto;
    max-height:60vh;
}

}

.hp-field{
position:absolute;
left:-9999px;
opacity:0;
height:0;
overflow:hidden;
}