

/* ===== Base (from index.html) ===== */
:root{
      --paper: #f7f6f3;
      --text: #161617;
      --muted: #6d6e73;
      --accent: #d7b56d; /* or doux */
      --accent-2: #1f2937; /* gris nuit */
      --ring: rgba(215,181,109,.35);
      --shadow: 0 10px 30px rgba(0,0,0,.08);
      --radius: 18px;
      --w: min(1200px, 92vw);
    }
    *,*::before,*::after{box-sizing:border-box}
    html,body{margin:0; padding:0; font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans'; color:var(--text); background:var(--paper); overflow-x:hidden}
    a{color:inherit; text-decoration:none}
    img{max-width:100%; display:block}
    .container{width:var(--w); margin-inline:auto; padding-inline:16px}

    /* Header */
    header{position:fixed; inset-inline:0; top:0; z-index:50; transition:backdrop-filter .3s, background .3s, border-color .3s; backdrop-filter:saturate(180%) blur(10px); background:rgba(255,255,255,.58); border-bottom:1px solid #ece8df}
    .header-solid{backdrop-filter:saturate(180%) blur(10px); background:rgba(255,255,255,.70); border-color:#ece8df}
    .nav{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px}
    .brand{display:flex; align-items:center; gap:10px; font-weight:600}
    .brand .logo{width:36px; height:36px; object-fit:contain; border-radius:8px}
    .menu{display:flex; gap:18px; align-items:center}
    .menu a{opacity:.9}
    .menu a:hover{opacity:1}
    .nav a.btn{padding:10px 16px; border-radius:999px; box-shadow:0 8px 24px rgba(0,0,0,.08); border:1.5px solid #cbbd9d; background:#f7f6f3; font-weight:700}
    .nav a.btn.primary{background:var(--accent); border-color:transparent; color:#1b1b1b}
    /* Consent compact */
    .consent-block{padding:10px 12px; border:1px solid #e9e3d9; border-radius:12px; background:#fbf9f4; margin-top:8px}
    .consent-label{display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px}
    .consent-label input{margin-top:0}
    .consent-text{display:block}
    .consent-note{display:block; color:var(--muted); font-size:.9rem; line-height:1.4}
    .form-error{color:#d32f2f; font-size:.9rem; margin:6px 0 0}
    .burger{display:none; width:44px; height:44px; border-radius:12px; border:1px solid #e8e5df; background:#fff; align-items:center; justify-content:center}
    .burger span{width:20px; height:2px; background:#222; position:relative}
    .burger span:before,.burger span:after{content:""; position:absolute; left:0; width:100%; height:2px; background:#222}
    .burger span:before{top:-6px}.burger span:after{top:6px}

    /* Mobile nav */
    .mobile-nav{position:fixed; inset:0; z-index:60; display:none}
    .mobile-nav.show{display:block}
    .mobile-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.45)}
    .mobile-panel{position:absolute; top:0; left:0; right:0; background:#fff; border-bottom:1px solid #ece6d8; border-radius:0 0 18px 18px; box-shadow:0 30px 80px rgba(0,0,0,.22); transform:translateY(-100%); transition:transform .35s ease; padding:14px 16px}
    .mobile-nav.show .mobile-panel{transform:translateY(0)}
    .mobile-links{display:grid; gap:10px; padding:6px 2px}
    .mobile-links a{padding:12px 14px; border-radius:12px; border:1px solid #ece6d8; background:#fbf9f4; font-weight:600}

    /* Hero slideshow */
    .hero{position:relative; min-height:86vh; color:#fff; overflow:hidden}
    .slide{position:absolute; inset:0; opacity:0; transition:opacity 800ms ease}
    .slide.active{opacity:1}
    /* flou d'arrière-plan pour combler les bandes */
    .slide::before{content:""; position:absolute; inset:0; background: var(--slide) center/cover no-repeat; filter: blur(24px) brightness(.6); transform: scale(1.1);} 
    .slide img{position:absolute; inset:0; width:100%; height:100%; object-fit:contain}
    .hero::after{content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.25) 30%, rgba(0,0,0,.55)); pointer-events:none}
    .hero-content{position:relative; z-index:2; padding-top:120px}
    .kicker{display:inline-block; background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); padding:8px 12px; border-radius:999px; font-size:.9rem; letter-spacing:.2px}
    .title{font-family:'Playfair Display',serif; font-size:clamp(32px,5vw,64px); line-height:1.1; margin:16px 0 8px}
    .subtitle{font-size:clamp(14px,2.1vw,18px); opacity:.95; max-width:58ch}
    .cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:20px}
    .cta{display:inline-flex; align-items:center; gap:10px; padding:12px 18px; border-radius:999px; border:1.5px solid #cbbd9d; color:#111; background:##f7f6f329; box-shadow:0 6px 20px rgba(0,0,0,.08)}
    .cta.secondary{background:transparent; color:#fff; border-color:rgba(255,255,255,.45)}
    .pills{display:flex; gap:8px; flex-wrap:wrap; margin-top:18px}
    .pill{padding:8px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); font-size:.9rem}

    .hero-controls{position:absolute; inset-inline:0; bottom:20px; z-index:3; display:flex; align-items:center; justify-content:space-between; padding-inline:12px}
    .arrow{width:46px; height:46px; border-radius:999px; border:1px solid rgba(255,255,255,.45); background:rgba(255,255,255,.1); display:grid; place-items:center; cursor:pointer}
    .dots{display:flex; gap:8px}
    .dot{width:9px; height:9px; border-radius:999px; background:rgba(255,255,255,.45); cursor:pointer}
    .dot.active{background:#fff}

    /* Sections */
    section{padding:72px 0}
    .section-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:24px}
    .section-head h2{font-family:'Playfair Display',serif; font-size:clamp(28px,3.6vw,40px); margin:0}
    .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
    .card{background:#fff; border:1px solid #eee7db; border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden}
    .card .media{aspect-ratio:3/4; background: linear-gradient(120deg, #eae7df, #f6f3ec); background-size:cover; background-position:center}
    .card .content{padding:18px}
    .badge{display:inline-block; padding:6px 10px; border-radius:999px; border:1px solid #efe7d7; background:#fbf9f4; color:#6c5c39; font-size:.85rem}
    .card h3{margin:10px 0 6px; font-size:1.25rem}
    .card p{margin:0; color:var(--muted)}
    .card .actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
    .chip{padding:10px 14px; border-radius:999px; border:1.5px solid #cbbd9d; background:#f7f6f3; color:#111; font-size:.95rem; font-weight:600; box-shadow:0 6px 18px rgba(0,0,0,.06)}

    /* Icons (arrow) on CTA, chips, nav buttons */
    .nav a.btn::after, .cta::after, .chip::after{content:""; width:14px; height:14px; display:inline-block; margin-left:8px; background-color: currentColor; -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M13.3 5.3 12 6.6 16.4 11H4v2h12.4L12 17.4l1.3 1.3 6-6-6-6z"/></svg>') no-repeat center / contain; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M13.3 5.3 12 6.6 16.4 11H4v2h12.4L12 17.4l1.3 1.3 6-6-6-6z"/></svg>') no-repeat center / contain;}

    /* Bandeau confiance */
    .band{background:#faf7f0; border-block:1px solid #efe6d6}
    .band ul{display:flex; gap:24px; list-style:none; padding:0; margin:0; flex-wrap:wrap}
    .band li{display:flex; align-items:center; gap:10px}
    .tick{width:24px; height:24px; border-radius:50%; background:var(--accent); display:grid; place-items:center; color:#1a1712; font-weight:700}

    /* Teaser portfolio */
    .masonry{display:grid; grid-template-columns: repeat(3, 1fr); gap:14px}
    .frame{position:relative; width:100%; border-radius:14px; overflow:hidden; border:1px solid #eee7db; box-shadow:var(--shadow)}
    .frame.land{aspect-ratio:4/3}
    .frame.port{aspect-ratio:3/4}
    .frame img{width:100%; height:100%; object-fit:cover; transition: transform .25s ease}
    .frame:hover img{transform: scale(1.03)}

    /* Avis */
    .quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
    .quote{background:#fff; border:1px solid #eee7db; padding:18px; border-radius:16px; box-shadow:var(--shadow)}
    .stars{color:#d7b56d; font-size:18px}

    /* Footer */
    footer{background:#111216; color:#eae9e6; padding-top:56px}
    .foot-grid{display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:24px}
    .foot-grid h4{margin-top:0}
    .foot-bottom{border-top:1px solid #2b2c31; margin-top:24px; padding:16px 0; display:flex; justify-content:space-between; align-items:center; font-size:.95rem; color:#bdbbb6}
    .social{display:flex; gap:12px}

    /* Modals */
    .modal{position:fixed; inset:0; z-index:70; display:none; align-items:center; justify-content:center; padding:20px}
    .modal.show{display:flex}
    .modal .backdrop{position:absolute; inset:0; background:rgba(0,0,0,.45)}
    .modal .dialog{position:relative; background:#fff; border-radius:18px; padding:18px; width:min(640px,92vw); box-shadow:0 30px 80px rgba(0,0,0,.25); border:1px solid #efe7d7}
    .modal h3{margin:6px 0 8px}
    .x{position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:10px; border:1px solid #eee7db; display:grid; place-items:center; background:#fff; cursor:pointer}

    form .row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
    form .row.stack{grid-template-columns:1fr}
    label{font-weight:500; font-size:.95rem}
    input, textarea, select{width:100%; border:1px solid #e9e3d9; border-radius:12px; padding:10px; font:inherit; background:#fff}
    textarea{min-height:120px}
    .hint{font-size:.9rem; color:var(--muted)}
    .form-actions{display:flex; gap:10px; align-items:center; margin-top:12px; flex-wrap:wrap}
    .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; border-radius:12px; border:1px solid #e2dacb; background:#f3f2ee; cursor:pointer; box-shadow:var(--shadow)}
    .btn.primary{background:var(--accent); color:#1b1a16; border-color:transparent; font-weight:600}

    .toast{position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background:#111216; color:#fff; padding: 12px 16px; border-radius: 12px; border:1px solid #2a2a2f; display:none; z-index:99}
    .toast.show{display:block}

    /* Responsif */
    @media (max-width:980px){ .grid-3{grid-template-columns:1fr} .quotes{grid-template-columns:1fr} .foot-grid{grid-template-columns:1fr} .menu{display:none} .burger{display:flex} }

/* ===== Galerie additions ===== */
:root{
      --paper: #f7f6f3;
      --text: #161617;
      --muted: #6d6e73;
      --accent: #d7b56d;
      --ring: rgba(215,181,109,.35);
      --radius: 18px;
      --shadow: 0 10px 30px rgba(0,0,0,.08);
      --w: min(1200px, 92vw);
    }
    *,*::before,*::after{box-sizing:border-box}
    html,body{
      margin:0; padding:0;
      background:var(--paper); color:var(--text);
      font-family: 'Poppins',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,'Noto Sans';
      overflow-x:hidden;
    }
    button,input,select,textarea{font-family:inherit}
    a{color:inherit; text-decoration:none}
    img{max-width:100%; display:block}
    .container{width:var(--w); margin-inline:auto; padding-inline:16px}

    /* Header (aligné à l’index) */
    header{position:fixed; inset-inline:0; top:0; z-index:50; transition:backdrop-filter .3s, background .3s, border-color .3s; backdrop-filter:saturate(180%) blur(10px); background:rgba(255,255,255,.58); border-bottom:1px solid #ece8df}
    .header-solid{backdrop-filter:saturate(180%) blur(10px); background:rgba(255,255,255,.70); border-color:#ece8df}
    .nav{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px}
    .brand{display:flex; align-items:center; gap:10px; font-weight:600}
    .brand .logo{width:36px; height:36px; object-fit:contain; border-radius:8px}
    .menu{display:flex; gap:18px; align-items:center}
    .menu a{opacity:.9}
    .menu a:hover{opacity:1}
    .nav a.btn{padding:10px 16px; border-radius:999px; box-shadow:0 8px 24px rgba(0,0,0,.08); border:1.5px solid #cbbd9d; background:#f7f6f3; font-weight:700}
    .nav a.btn.primary{background:var(--accent); border-color:transparent; color:#1b1b1b}
    .burger{display:none; width:44px; height:44px; border-radius:12px; border:1px solid #e8e5df; background:#fff; align-items:center; justify-content:center}
    .burger span{width:20px; height:2px; background:#222; position:relative}
    .burger span:before,.burger span:after{content:""; position:absolute; left:0; width:100%; height:2px; background:#222}
    .burger span:before{top:-6px}.burger span:after{top:6px}

    /* Mobile nav */
    .mobile-nav{position:fixed; inset:0; z-index:60; display:none}
    .mobile-nav.show{display:block}
    .mobile-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.45)}
    .mobile-panel{position:absolute; top:0; left:0; right:0; background:#fff; border-bottom:1px solid #ece6d8; border-radius:0 0 18px 18px; box-shadow:0 30px 80px rgba(0,0,0,.22); transform:translateY(-100%); transition:transform .35s ease; padding:14px 16px}
    .mobile-nav.show .mobile-panel{transform:translateY(0)}
    .mobile-links{display:grid; gap:10px; padding:6px 2px}
    .mobile-links a{padding:12px 14px; border-radius:12px; border:1px solid #ece6d8; background:#fbf9f4; font-weight:600}

    /* Page head */
    .page-head{padding-top:110px; padding-bottom:14px}
    .page-head h1{font-family:'Playfair Display',serif; font-size:clamp(28px,3.6vw,40px); margin:0}
    .sub{color:var(--muted)}

    /* Filtres */
    .filters{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; margin:8px 0 18px}
    .filter-buttons{display:flex; gap:8px; flex-wrap:wrap; justify-content:center}
    .filter-buttons button{padding:10px 14px; border-radius:999px; border:1.5px solid #cbbd9d; background:#f7f6f3; font-weight:600; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.06)}
    .filter-buttons button.active{background:var(--accent); color:#1b1b1b; border-color:transparent}
    .filter-select{display:none; margin-inline:auto; text-align:center}
    .filter-select select{padding:10px 14px; border-radius:12px; border:1px solid #e2dacb; background:#fff}
    @media (max-width:720px){ .filter-buttons{display:none} .filter-select{display:block} }

    /* Grille (masonry) */
    .gallery{columns: 3 280px; column-gap:14px}
    .photo{break-inside: avoid; margin:0 0 14px; border-radius:14px; overflow:hidden; border:1px solid #eee7db; box-shadow:var(--shadow); position:relative; cursor:pointer}
    .photo img{width:100%; height:auto; display:block; transition: transform .25s ease, filter .25s ease}
    .photo:hover img{transform: scale(1.03)}
    .photo::after{content:""; position:absolute; inset:0; border-radius:14px; border:1.5px solid transparent; transition: box-shadow .25s ease, border-color .25s ease}
    .photo:hover::after{border-color: rgba(215,181,109,.5); box-shadow: 0 12px 30px rgba(0,0,0,.18)}

    /* Lightbox */
    .lightbox{position:fixed; inset:0; z-index:70; background:rgba(0,0,0,.85); display:none; align-items:center; justify-content:center}
    .lightbox.show{display:flex}
    .lb-inner{position:relative; width:min(94vw,1200px); height:min(90vh,1000px); display:grid; place-items:center; padding:24px 40px}
    .lb-inner img{max-width:calc(100vw - 120px); max-height:calc(100vh - 160px); width:auto; height:auto; object-fit:contain}
    .lb-x,.lb-prev,.lb-next{position:absolute; display:grid; place-items:center; width:44px; height:44px; border-radius:999px; border:1px solid rgba(255,255,255,.45); background:rgba(255,255,255,.08); color:#fff; cursor:pointer}
    .lb-x{top:10px; right:10px}
    .lb-prev{left:12px; top:50%; transform:translateY(-50%)}
    .lb-next{right:12px; top:50%; transform:translateY(-50%)}
    .lb-cta{position:absolute; bottom:12px; left:50%; transform:translateX(-50%); padding:12px 16px; border-radius:999px; border:1.5px solid #cbbd9d; background:#f7f6f3; color:#111; font-weight:700; box-shadow:0 8px 24px rgba(0,0,0,.18); transition: transform .15s ease, box-shadow .15s ease}
    .lb-cta:hover{transform:translateX(-50%) translateY(-2px); box-shadow:0 14px 34px rgba(0,0,0,.28); background: var(--accent); color:#1b1b1b}

    /* Modal contact (alignée à l’index) */
    .modal{position:fixed; inset:0; z-index:80; display:none; align-items:center; justify-content:center; padding:20px}
    .modal.show{display:flex}
    .modal .backdrop{position:absolute; inset:0; background:rgba(0,0,0,.45)}
    .modal .dialog{position:relative; background:#fff; border-radius:18px; padding:18px; width:min(640px,92vw); box-shadow:0 30px 80px rgba(0,0,0,.25); border:1px solid #efe7d7}
    .x{position:absolute; top:10px; right:10px; width:36px; height:36px; border-radius:10px; border:1px solid #eee7db; display:grid; place-items:center; background:#fff; cursor:pointer}
    form .row{display:grid; grid-template-columns: 1fr 1fr; gap:12px}
    @media (max-width:680px){ form .row{grid-template-columns:1fr} }
    label{font-weight:500; font-size:.95rem}
    input,textarea,select{width:100%; border:1px solid #e9e3d9; border-radius:12px; padding:10px; font:inherit; background:#fff}
    textarea{min-height:120px}
    .form-actions{display:flex; gap:10px; align-items:center; margin-top:12px}
    .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; border-radius:12px; border:1px solid #e2dacb; background:#f3f2ee; cursor:pointer; box-shadow:var(--shadow)}
    .btn.primary{background:var(--accent); color:#1b1a16; border-color:transparent; font-weight:600}

    /* Consentement RGPD (comme index) */
    .consent-block{padding:10px 12px; border:1px solid #e9e3d9; border-radius:12px; background:#fbf9f4; margin-top:8px}
    .consent-label{display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px}
    .consent-label input{margin-top:0}
    .consent-text{display:block}
    .consent-note{display:block; color:var(--muted); font-size:.9rem; line-height:1.4}
    .form-error{color:#d32f2f; font-size:.9rem; margin:6px 0 0}

    /* Footer */
    footer{background:#111216; color:#eae9e6; padding-top:56px; margin-top:40px}
    .foot-grid{display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:24px}
    .foot-grid h4{margin-top:0}
    .foot-bottom{border-top:1px solid #2b2c31; margin-top:24px; padding:16px 0; display:flex; justify-content:space-between; align-items:center; font-size:.95rem; color:#bdbbb6}
    .social{display:flex; gap:12px}

    @media (max-width:980px){ .menu{display:none} .burger{display:flex} .foot-grid{grid-template-columns:1fr} }
/* ===== Admin / Model ===== */
.admin-wrap{padding-top:120px; padding-bottom:40px}
.panel{background:#fff;border:1px solid #eee7db;border-radius:18px;box-shadow:var(--shadow);padding:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3b{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:980px){.grid-2,.grid-3b{grid-template-columns:1fr}}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid #eee7db;text-align:left;font-size:.95rem;vertical-align:top}
.table th{color:var(--muted);font-weight:600}
.small{font-size:.9rem;color:var(--muted)}
.tag{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid #efe7d7;background:#fbf9f4;color:#6c5c39;font-size:.85rem}
.warn{background:#fff4f4;border-color:#ffd6d6}
.success{background:#f2fbf3;border-color:#d6f1da}
hr.sep{border:none;border-top:1px solid #eee7db;margin:14px 0}
.input-inline{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.input-inline > div{flex:1;min-width:220px}
kbd{background:#111216;color:#fff;padding:2px 6px;border-radius:6px;font-size:.85rem}

/* ===== V3 tweaks ===== */
/* Extraits: keep only a soft zoom, no yellow bar/line */
.masonry a::before, .masonry a::after { content: none !important; }
.masonry a { border-left: none !important; box-shadow: none !important; }
.masonry img { transition: transform .35s ease, filter .35s ease; }
.masonry a:hover img { transform: scale(1.04); filter: contrast(1.02); }

/* Galerie: larger columns + dense mode */
.gallery { column-gap: 14px !important; }
@media (min-width: 1024px){ .gallery { column-count: 4 !important; } }
@media (min-width: 1280px){ .gallery { column-count: 5 !important; } }
.gallery.dense { column-gap: 10px !important; }
@media (min-width: 1024px){ .gallery.dense { column-count: 5 !important; } }
@media (min-width: 1280px){ .gallery.dense { column-count: 6 !important; } }

/* Lightbox backdrop click UX */
.lightbox { cursor: zoom-out; }
.lightbox .lb-inner { cursor: default; }

/* Filters: density toggle */
.density-toggle{display:flex;align-items:center;justify-content:flex-end}
@media(max-width:820px){.density-toggle{justify-content:flex-start}}

/* Avis switch */
.quotes .quote{display:none}
.quotes .quote.active{display:block}

/* ===== V5 fixes ===== */

/* Extraits: remove any gold lines + restore rounded corners */
.masonry a,
.masonry .frame { border-left: none !important; outline: none !important; box-shadow: none !important; }
.masonry a::before, .masonry a::after,
.masonry .frame::before, .masonry .frame::after { content: none !important; display:none !important; }
.masonry img { border-radius: 18px !important; overflow:hidden; display:block; }
.masonry a { border-radius: 18px !important; overflow:hidden; display:block; }

/* Extraits: soft zoom only */
.masonry img { transition: transform .35s ease, filter .35s ease; }
.masonry a:hover img { transform: scale(1.035); filter: contrast(1.02); }

/* Galerie: make tiles larger (fewer columns) */
.gallery { column-gap: 18px !important; }
@media (min-width: 1024px){ .gallery { column-count: 3 !important; } }
@media (min-width: 1280px){ .gallery { column-count: 4 !important; } }

/* Gallery cards rounding */
.photo img { border-radius: 18px !important; }

/* Remove density styles if any remain */
.gallery.dense { column-count: inherit !important; column-gap: inherit !important; }

/* ===== V7 overrides ===== */
a, a:visited { color: inherit; }
a:hover { color: inherit; }

/* Remove any gold hover lines on excerpts/portfolio cards */
.masonry a::before, .masonry a::after,
.masonry .frame::before, .masonry .frame::after,
.photo::before, .photo::after, .photo a::before, .photo a::after { content:none !important; display:none !important; }
.masonry a, .masonry .frame, .photo, .photo a { outline:none !important; border:none !important; box-shadow:none !important; }

/* Rounded corners restore */
.masonry a, .masonry img, .photo img { border-radius: 18px !important; overflow:hidden; }

/* Gallery size: 3 columns desktop (big images) */
.gallery { column-gap: 18px !important; }
@media (min-width: 900px){ .gallery { column-count: 3 !important; } }
@media (min-width: 1280px){ .gallery { column-count: 3 !important; } }

/* ===== V9 fixes ===== */
/* Extraits: grid layout (no vertical stacking) */
.masonry{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:18px !important;
}
@media (max-width: 980px){
  .masonry{ grid-template-columns:repeat(2, 1fr) !important; }
}
@media (max-width: 640px){
  .masonry{ grid-template-columns:1fr !important; }
}
/* keep rounded */
.masonry a, .masonry img{ border-radius:18px !important; overflow:hidden; }

/* Links: disable visited color shift */
a, a:visited{ color: inherit; }
a:hover{ color: inherit; }

/* Hero secondary button visibility */
.btn.outline, .btn.secondary{
  border-color: rgba(184,150,78,.55) !important;
}
.btn.outline{
  background: rgba(184,150,78,.18) !important;
  color: #111 !important;
}

/* Galerie: bigger tiles (3 columns desktop) */
.gallery{ column-count: 3 !important; }
@media (max-width: 980px){ .gallery{ column-count:2 !important; } }
@media (max-width: 640px){ .gallery{ column-count:1 !important; } }

/* ===== V10 gallery size ===== */
.gallery{
  columns: 3 420px !important;
  column-gap: 18px !important;
}
@media (max-width: 980px){ .gallery{ columns: 2 360px !important; } }
@media (max-width: 640px){ .gallery{ columns: 1 320px !important; } }

/* ===== V11 adjustments ===== */

/* Galerie: 3 columns but not huge */
.gallery{
  columns: 3 320px !important;
  column-gap: 16px !important;
}
@media (max-width: 980px){ .gallery{ columns: 2 300px !important; } }
@media (max-width: 640px){ .gallery{ columns: 1 280px !important; } }

/* Extraits (index): smaller grid */
.masonry{
  grid-template-columns: repeat(4, 1fr) !important;
  gap:14px !important;
}
@media (max-width: 1100px){
  .masonry{ grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 980px){
  .masonry{ grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 640px){
  .masonry{ grid-template-columns: 1fr !important; }
}

/* Avis: do not hide all quotes by default */
.quotes .quote{ display:block !important; }

/* ===== V13 Extraits: max 3, spacing premium ===== */
.masonry{ gap:18px !important; }
.masonry .frame{ display:block; border-radius:18px; overflow:hidden; }

/* ===== V14 mobile polish ===== */

/* Extraits: desktop grid (max 3), mobile horizontal slider with spacing */
.masonry{ display:grid !important; grid-template-columns:repeat(3, 1fr) !important; gap:18px !important; }
@media (max-width: 980px){ .masonry{ grid-template-columns:repeat(2, 1fr) !important; } }

@media (max-width: 640px){
  .masonry{
    display:flex !important;
    gap:14px !important;
    overflow-x:auto !important;
    padding: 0 6px 8px !important;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .masonry::-webkit-scrollbar{ height:6px; }
  .masonry .frame{
    flex: 0 0 88% !important;
    scroll-snap-align: start;
  }
}

/* Extra spacing safety (in case any margins collapse) */
.masonry .frame{ margin:0 !important; }
.masonry img{ display:block; }

/* Prestations on mobile: reduce height/padding so it doesn't fill the screen */
@media (max-width: 640px){
  .services, .prestations, .service-grid{ gap:12px !important; }
  .service-card, .service, .prest-card{
    padding: 14px !important;
    border-radius: 18px !important;
  }
  .service-card h3, .service h3, .prest-card h3{ font-size: 1.05rem !important; }
  .service-card p, .service p, .prest-card p{ font-size: .95rem !important; }
  .service-card .media, .prest-card .media, .service .media{
    height: 160px !important;
  }
}

/* ===== V15 spacing fixes for Extraits ===== */
.masonry{ row-gap:18px !important; column-gap:18px !important; }
.masonry{ align-items:stretch; }
.masonry .frame{ background: transparent; }
@media (max-width: 640px){
  .masonry{ flex-wrap:nowrap !important; }
  .masonry .frame{ margin-right:0 !important; }
}
.excerpt-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}
@media (max-width: 900px){
  .excerpt-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px){
  .excerpt-grid{ grid-template-columns:1fr; }
}

.excerpt-item{
  border-radius:18px;
  overflow:hidden;
  display:block;
}
.excerpt-item img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
}
.excerpt-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  opacity:0; /* évite le flash */
  transition: opacity .2s ease;
}

.excerpt-item{
  display:block;
  border-radius:18px;
  overflow:hidden;
  aspect-ratio: 4 / 5;   /* <-- format portrait premium */
  background: #111;      /* joli si jamais une image charge lentement */
}

.excerpt-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position: 50% 20%; /* <-- garde le visage plus haut */
  display:block;
}

@media (max-width: 900px){
  .excerpt-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px){
  .excerpt-grid{ grid-template-columns:1fr; }
}
