@font-face{font-family:Bitter;src:url('bitter-latin.woff2') format('woff2');font-weight:400 700;font-display:optional}
@font-face{font-family:Lato;src:url('lato-latin.woff2') format('woff2');font-weight:400 700;font-display:optional}
:root{--paper:#f7f4ec;--white:#fffdf8;--ink:#252a27;--muted:#666b64;--line:#ddd7c8;--amber:#ffcc66;--rust:#9a453a;--green:#214e40;--deep:#183c32;--soft:#e5ece5;--max:74rem}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:1rem}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.65 Lato,Arial,sans-serif}
img{display:block;max-width:100%;height:auto}
a{color:var(--deep);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--rust)}
a:focus-visible,button:focus-visible{outline:3px solid var(--rust);outline-offset:4px}
h1,h2,h3{font-family:Bitter,Georgia,serif;font-weight:400;line-height:1.13;letter-spacing:-.025em}
h1{font-size:clamp(2.6rem,5.3vw,5rem);max-width:14ch;margin:0 0 1.15rem}
h2{font-size:clamp(1.7rem,3vw,2.8rem);margin:0 0 1rem}
p{max-width:70ch;margin:0 0 1rem}
.wrap{width:min(var(--max),calc(100% - 3rem));margin-inline:auto}
.skip{position:absolute;left:1rem;top:-5rem;z-index:20;padding:.75rem 1rem;background:var(--white);color:var(--ink)}
.skip:focus{top:1rem}
.header{background:var(--amber);border-bottom:1px solid rgba(37,42,39,.16)}
.header-row{min-height:6rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.brand{display:flex;flex-direction:column;line-height:1.1;color:var(--ink);text-decoration:none}
.brand-kicker,.eyebrow,.story-num,.footer-kicker,.contact-label{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.brand-title{font:400 1.65rem Bitter,Georgia,serif;margin-top:.25rem}
.header-phone{color:var(--ink);font-weight:700;text-decoration:none;border-bottom:1px solid currentColor}
.nav-shell{border-top:1px solid rgba(37,42,39,.16)}
.nav-row{min-height:3.5rem;display:flex;align-items:center}
.nav{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.45rem}
.nav a{font-size:.78rem;color:var(--ink);text-decoration:none;padding:.55rem .3rem;white-space:nowrap}
.nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--green)}
.nav a:hover{color:var(--deep)}
.nav .nav-cta{padding:.65rem .8rem;background:var(--green);color:var(--white)}
.nav .nav-cta:hover{background:var(--deep);color:var(--white)}
.nav-button{font:700 .9rem Lato,Arial,sans-serif;padding:.65rem .9rem;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer}
.eyebrow{color:var(--rust);margin-bottom:.9rem}
.lead{font-size:1.12rem;color:#404741;max-width:58ch}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.68rem 1rem;border:1px solid transparent;font-weight:700;text-decoration:none}
.button.dark{background:var(--green);color:var(--white)}
.button.dark:hover{background:var(--deep);color:var(--white)}
.button.light{background:var(--amber);color:var(--ink)}
.button.outline{border-color:var(--green);color:var(--green)}
.button.outline:hover{background:var(--green);color:var(--white)}
.text-link{display:inline-block;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.15rem}
.hero{display:grid;grid-template-columns:.88fr 1.12fr;gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(3rem,6vw,6rem)}
.hero .lead{font-size:1.2rem}
.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.2rem;margin-block:1.7rem}
.small{font-size:.83rem;color:var(--muted)}
.hero-image{margin:0;background:var(--green);padding:1rem 1rem 0 0}
.hero-image img{width:100%;aspect-ratio:1.25;object-fit:cover}
.hero-image figcaption{display:flex;flex-direction:column;padding:1rem;color:var(--white);font-size:.82rem}
.hero-image strong{font:400 1.1rem Bitter,Georgia,serif;color:var(--amber)}
.service-band{background:var(--green);color:var(--white)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.service-grid a{display:grid;grid-template-columns:2rem 1fr;gap:.35rem .8rem;padding:1.4rem 1rem;color:var(--white);text-decoration:none;border-right:1px solid rgba(255,255,255,.2)}
.service-grid a:first-child{border-left:1px solid rgba(255,255,255,.2)}
.service-grid a span{grid-row:span 2;color:var(--amber);font-size:.78rem}
.service-grid strong{font:400 1.2rem Bitter,Georgia,serif}
.service-grid small{font-size:.81rem;color:#e1e9e2}
.service-grid a:hover{background:var(--deep)}
.intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem;padding-block:5.5rem}
.featured{padding-block:4.5rem;background:var(--white)}
.featured h2{margin-bottom:2rem}
.featured-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:1rem}
.featured-grid a{display:flex;flex-direction:column;background:var(--paper);color:var(--ink);text-decoration:none}
.featured-grid a:first-child{grid-row:span 2}
.featured-grid img{width:100%;height:14rem;object-fit:cover}
.featured-grid a:first-child img{height:100%;min-height:30rem}
.featured-grid strong{font:400 1.1rem Bitter,Georgia,serif;padding:1rem}
.atelier-teaser{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;padding-block:5rem}
.atelier-teaser figure{margin:0}.atelier-teaser img{width:180px;height:170px;object-fit:cover}
.page-intro{padding-block:4.7rem 3rem}
.page-intro h1{max-width:15ch}
.jump-links{display:flex;flex-wrap:wrap;gap:.6rem 1.3rem;margin-top:1.3rem}
.jump-links a{font-size:.9rem;font-weight:700;text-decoration:none;border-bottom:1px solid #dfa947}
.story-list{padding-bottom:5rem}
.story{display:grid;grid-template-columns:7rem 1fr minmax(16rem,.8fr);gap:1.6rem;padding-block:3rem;border-top:1px solid var(--line);scroll-margin-top:1rem}
.story-num{color:var(--rust);padding-top:.3rem}
.story h2{font-size:clamp(1.6rem,2.5vw,2.3rem);max-width:18ch}
.story-art .art-figure{margin:0 0 1rem}
.art-figure img{width:auto;max-width:100%;max-height:32rem;object-fit:contain;object-position:center}
.art-figure figcaption{font-size:.8rem;line-height:1.45;color:var(--muted);margin-top:.6rem;max-width:55ch}
.product-section{padding-bottom:5rem}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;border-top:1px solid var(--line)}
.product{margin:0;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.product img{width:auto;max-width:100%;max-height:17rem;object-fit:contain;object-position:left center}
.product figcaption{font-size:.85rem;color:var(--ink);margin-top:.75rem;max-width:36ch}
.news-list{padding-bottom:5rem}
.news{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,6rem);align-items:center;padding-block:3rem;border-top:1px solid var(--line);scroll-margin-top:1rem}
.news h2{max-width:17ch}
.double-grid,.quote-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:2rem 5rem}
.double-grid .art-figure img,.quote-grid .art-figure img{max-height:34rem}
.double-case{background:var(--white);padding-block:3rem}
.partner{margin-top:1.5rem;padding:1.2rem 1.4rem;border-left:3px solid #dfa947;background:var(--paper)}
.partner .eyebrow{margin-bottom:.55rem}
.prices{display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem;padding-block:5rem}
.price-cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.price-cards article{background:var(--white);border-top:3px solid #dfa947;padding:1.3rem}
.price-cards article p{font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--rust)}
.price-cards strong{display:block;font:400 1.5rem Bitter,Georgia,serif;margin-bottom:.6rem}
.price-cards small{color:var(--muted)}
.quote-band{padding-block:4rem;background:var(--soft)}
.identity{display:grid;grid-template-columns:1.2fr .8fr;gap:5rem;align-items:center;padding-bottom:5rem}
.identity blockquote{font:400 clamp(1.3rem,2.5vw,2rem)/1.4 Bitter,Georgia,serif;color:var(--green);margin:2rem 0}
.identity cite{display:block;font:400 .83rem Lato,Arial,sans-serif;color:var(--muted);margin-top:.75rem}
.identity-photo{max-width:13rem}
.contact-section{background:var(--soft);padding-block:4.5rem}
.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:5rem;align-items:start}
.contact-card{font-style:normal;background:var(--white);padding:2rem}
.contact-card p{margin-bottom:.5rem}
.contact-label{color:var(--rust);margin-top:1.2rem}
.contact-label:first-child{margin-top:0}
.contact-card .button{margin-top:1rem}
.visit{padding-block:4rem}
.ref-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-bottom:3rem}
.ref-card{display:grid;grid-template-columns:8rem 1fr;gap:1.1rem;padding:1.2rem;background:var(--white);border-top:2px solid #dfa947}
.ref-card h2{font-size:1.3rem;margin-bottom:.4rem}
.ref-card .art-figure{margin:0;display:flex;align-items:center;justify-content:center;background:var(--paper);min-height:5rem;padding:.5rem}
.ref-card img{max-height:4rem;object-fit:contain}
.ref-card figcaption{font-size:.68rem}
.ref-card .reference-label{background:var(--paper);display:grid;place-items:center;min-height:5rem;font-size:.76rem;color:var(--muted)}
.ref-card p{font-size:.87rem;color:var(--muted)}
.ref-contact{border-top:1px solid var(--line);padding-block:2rem 4rem}
.end-cta{background:var(--green);color:var(--white);padding-block:2.8rem}
.end-row{display:flex;justify-content:space-between;align-items:center;gap:2rem}
.end-row .eyebrow{color:var(--amber)}
.end-row h2{margin:0;max-width:18ch}
.footer{background:#222a26;color:#f5f1e7}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;padding-block:2.8rem}
.footer a{color:#f5f1e7}
.footer-kicker{color:var(--amber)}
.artist-names{font:400 1.1rem/1.7 Bitter,Georgia,serif}
.footer-bottom{border-top:1px solid rgba(255,255,255,.17);padding-block:.9rem;font-size:.76rem;color:#c8d0c9}
@media(max-width:1020px){.nav{gap:.15rem}.nav a{font-size:.71rem;padding-inline:.2rem}.nav .nav-cta{padding-inline:.5rem}.story{grid-template-columns:5rem 1fr .8fr;gap:1rem}}
@media(max-width:760px){
 .wrap{width:calc(100% - 2rem)}
 .header-row{min-height:5rem}.brand-title{font-size:1.4rem}.header-phone{font-size:.82rem}
 .nav-row{display:block;padding-block:.55rem}.nav-button:not([hidden]){display:block;width:100%;text-align:left}
 .nav{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-block:.4rem}
 .nav a{font-size:.91rem;padding:.62rem .25rem;border-bottom:1px solid rgba(37,42,39,.15)}
 .nav .nav-cta{text-align:center;margin-top:.5rem;padding:.7rem}
 .hero{grid-template-columns:1fr;gap:2rem;padding-block:3rem}.hero h1{font-size:clamp(2.7rem,11vw,4rem)}
 .service-grid{grid-template-columns:1fr}.service-grid a,.service-grid a:first-child{border-left:0;border-right:0;border-bottom:1px solid rgba(255,255,255,.2);padding:1.1rem .2rem}
 .intro{grid-template-columns:1fr;gap:1rem;padding-block:4rem}
 .featured-grid{grid-template-columns:1fr}.featured-grid a:first-child{grid-row:auto}.featured-grid a:first-child img{height:18rem;min-height:0}.featured-grid img{height:17rem}
 .atelier-teaser{grid-template-columns:1fr;gap:2rem;padding-block:4rem}
 .page-intro{padding-block:3rem 2.4rem}.page-intro h1{font-size:clamp(2.6rem,11vw,3.9rem)}
 .story{grid-template-columns:1fr;gap:.35rem;padding-block:2.3rem}
 .story-num,.story-copy,.story-art{grid-column:1;grid-row:auto}.story-num{margin-bottom:.15rem}
 .story-art .art-figure img{max-height:27rem}
 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
 .product img{max-height:12rem}.product figcaption{font-size:.79rem}
 .news{grid-template-columns:1fr;gap:1.2rem;padding-block:2.3rem}
 .double-grid,.quote-grid{grid-template-columns:1fr;gap:1.3rem;padding-block:1.5rem 3.5rem}
 .prices{grid-template-columns:1fr;gap:1.5rem;padding-block:3.5rem}.price-cards{grid-template-columns:1fr}
 .identity{grid-template-columns:1fr;gap:1.5rem;padding-bottom:3rem}
 .contact-grid{grid-template-columns:1fr;gap:1.5rem}
 .ref-grid{grid-template-columns:1fr}
 .end-row{align-items:flex-start;flex-direction:column}
 .footer-grid{grid-template-columns:1fr;gap:1rem;padding-block:2rem}
}
@media(max-width:380px){.wrap{width:calc(100% - 1.25rem)}.brand-title{font-size:1.2rem}.header-phone{font-size:.74rem}.product-grid{grid-template-columns:1fr}.ref-card{grid-template-columns:5rem 1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Tâche50 — objets verriers en maçonnerie, articles de restauration restent séquentiels. */
.product-grid{display:block;columns:3;column-gap:clamp(14px,2vw,24px);align-items:initial}
.product-grid .product{display:inline-block;width:100%;margin:0 0 20px;vertical-align:top;break-inside:avoid}
.product-grid .product img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}
.story-art .art-figure img{width:auto;max-width:100%;height:auto;max-height:none;object-fit:contain}
@media(max-width:760px){.product-grid{columns:2}}
@media(max-width:380px){.product-grid{columns:1}}
/* Ajustement mobile : téléphone lisible sur une ligne à 320px. */
@media(max-width:380px){.header-row{gap:.5rem}.brand{min-width:0;flex:1}.brand-title{font-size:1.05rem;white-space:nowrap}.header-phone{flex:0 0 auto;white-space:nowrap;font-size:.68rem}}
@media(max-width:340px){.brand-title{font-size:.98rem}.header-phone{font-size:.64rem}}

:root{--gallery-surface:#261f26;--gallery-ink:#fff;--gallery-accent:#e8c776;}

/* Tâche50 — visionneuse locale accessible, ratios complets et commandes textuelles. */
.gallery-trigger{display:block;width:100%;padding:0;border:0;background:transparent;text-align:inherit;cursor:zoom-in}
.gallery-trigger:focus-visible,[data-gallery-trigger]:focus-visible{outline:3px solid var(--gallery-accent,var(--mint));outline-offset:3px}
.gallery-lightbox{width:min(1320px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);padding:clamp(12px,2vw,24px);border:1px solid rgba(255,255,255,.35);background:var(--gallery-surface,#172323);color:var(--gallery-ink,#fff);box-shadow:0 18px 80px rgba(0,0,0,.45)}
.gallery-lightbox::backdrop{background:rgba(7,13,15,.9);backdrop-filter:blur(2px)}
.gallery-lightbox-top,.gallery-lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}
.gallery-lightbox-top{margin-bottom:10px}.gallery-lightbox-top h2{margin:0;font:inherit;font-size:clamp(18px,2.5vw,25px);font-weight:600;line-height:1.2;color:inherit}
.gallery-lightbox button{min-height:42px;padding:8px 12px;border:1px solid var(--gallery-accent,#d7c18b);background:transparent;color:inherit;font:inherit;font-size:14px;font-weight:600;line-height:1.25;cursor:pointer}
.gallery-lightbox button:hover:not(:disabled){background:var(--gallery-accent,#d7c18b);color:#151515}
.gallery-lightbox button:focus-visible{outline:3px solid var(--gallery-accent,#d7c18b);outline-offset:3px}
.gallery-lightbox button:disabled{opacity:.45;cursor:default}
.gallery-lightbox-frame{display:grid;place-items:center;margin:0;min-height:180px;max-height:calc(100vh - 170px);gap:8px}
.gallery-lightbox-frame img{display:block;width:auto;height:auto;max-width:100%;max-height:calc(100vh - 235px);object-fit:contain}
.gallery-lightbox-frame figcaption{max-width:70ch;text-align:center;color:inherit;font-size:14px;line-height:1.4}
.gallery-lightbox-controls{margin-top:12px}.gallery-lightbox-controls p{margin:0;color:inherit;font-size:13px;white-space:nowrap}
@media(max-width:520px){.gallery-lightbox{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:10px}.gallery-lightbox-top h2{font-size:17px}.gallery-lightbox button{min-height:44px;padding:8px;font-size:12px}.gallery-lightbox-frame{max-height:calc(100vh - 150px)}.gallery-lightbox-frame img{max-height:calc(100vh - 215px)}.gallery-lightbox-controls{gap:6px}.gallery-lightbox-controls p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.gallery-lightbox{scroll-behavior:auto}}
