@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/dm-sans-latin.468d56b6b2.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/dm-sans-latin-ext.219b02c7d8.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
:root{--bg:#171a19;--surface:#202422;--text:#f5f4ef;--muted:#b8bdb8;--line:#ffffff24;--accent:#d2b98c;--header:#171a19f5;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:155px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 'DM Sans',sans-serif;transition:background .4s,color .4s}body.wedding{--bg:#fff;--surface:#f5f5f1;--text:#282d2a;--muted:#626962;--line:#272c2826;--accent:#826c46;--header:#fffffff5}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.16;letter-spacing:-.025em}h1{font-size:clamp(36px,4.3vw,54px)}h2{font-size:clamp(29px,3vw,38px)}h3{font-size:19px;font-weight:500;line-height:1.4}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;top:10px;left:10px;z-index:10000;padding:12px;background:var(--text);color:var(--bg)}.wrap{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:1000;background:var(--header);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:85px}.logo{position:relative;display:block;width:75px;height:75px;overflow:hidden;flex-shrink:0}.logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.logo .logo-light{display:none}body.wedding .logo .logo-dark{display:none}body.wedding .logo .logo-light{display:block}.universe{display:flex;align-items:center;gap:12px;font-size:14px;white-space:nowrap}.universe #wedding-label{color:var(--muted)}body.wedding #daily-label{color:var(--muted)}body.wedding #wedding-label{color:var(--text)}#switch{position:relative;width:52px;height:30px;padding:3px;border:1px solid #ffffff36;background:#3b423d;border-radius:40px;flex-shrink:0}#switch:before{content:'';position:absolute;inset:-7px}#switch span{width:22px;height:22px;border-radius:50%;background:white;display:block;box-shadow:0 2px 4px #0003;transition:transform .3s}body.wedding #switch{background:#a9936f;border-color:#a9936f}body.wedding #switch span{transform:translateX(22px)}.header-phone{font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:.03em}.main-nav{display:flex;align-items:center;justify-content:center;gap:29px;font-size:14px;overflow-x:auto;scrollbar-width:thin}.main-nav a{display:block;padding:10px 0 13px;white-space:nowrap;color:var(--muted);border-bottom:2px solid transparent}.main-nav a:hover,.main-nav a[aria-current]{color:var(--text);border-color:var(--accent)}.eyebrow,.small-label{text-transform:uppercase;font-size:11px;letter-spacing:1.6px;color:var(--accent);font-weight:500}.eyebrow{margin-bottom:16px}.welcome{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.9fr);column-gap:65px;padding-top:45px;padding-bottom:40px}.welcome-heading{grid-column:1;grid-row:1;align-self:end}.welcome-copy{grid-column:1;grid-row:2;padding-top:21px}.portrait{grid-column:2;grid-row:1/3;align-self:center}.portrait img{width:100%;aspect-ratio:4/4.8;object-fit:cover;object-position:center bottom;max-height:460px;object-fit:contain;background:radial-gradient(ellipse at 50% 35%,#ffffff0a,transparent 75%)}.portrait figcaption{font-size:12px;color:var(--muted);margin-top:11px}.intro{color:var(--muted);max-width:550px;line-height:1.7}.hero-services{font-size:16px;margin-top:18px;color:var(--text)}.hero-services small{display:block;color:var(--muted);font-size:13px;margin-top:2px}.hero-area{border-top:1px solid var(--line);margin-top:18px;padding-top:13px}.hero-area p{font-size:13px;color:var(--muted);line-height:1.65;margin:5px 0 2px}.hero-area .text-link{font-size:12px}.contact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:11px 20px;background:var(--text);color:var(--bg);border:1px solid var(--text);border-radius:2px;font-size:14px;line-height:1.4;text-align:center;transition:background .2s,border-color .2s}.button:hover{background:var(--accent);border-color:var(--accent)}.button.ghost{background:transparent;color:var(--text);border-color:var(--line)}.button.ghost:hover{border-color:var(--text)}.social-row{display:flex;gap:15px;font-size:13px;color:var(--muted);align-items:center;margin-top:11px}.social-row a{padding:4px 0}.social-row a:hover{color:var(--text)}.text-link{display:inline-block;font-size:14px;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px;background:none;color:inherit;border:0;padding:4px 0}.bio-band{display:flex;align-items:center;gap:40px;border-top:1px solid var(--line);padding-top:26px;padding-bottom:28px;color:var(--muted);font-size:14px}.bio-band p{flex:1;max-width:950px}.signature{font:italic 26px Georgia,serif;color:var(--accent);white-space:nowrap}.section{padding-block:76px}.section-tint{background:var(--surface)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:35px}.section-heading>p{max-width:330px;color:var(--muted);font-size:14px;line-height:1.8}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.steps.four{grid-template-columns:repeat(4,1fr);gap:28px}.steps article{border-top:1px solid var(--line);padding-top:20px}.step-number{font-size:12px;color:var(--accent)}.steps h3{margin:13px 0}.steps p{font-size:15px;color:var(--muted);line-height:1.8}.section-note{margin-top:26px;font-size:13px;line-height:1.8;color:var(--muted);max-width:930px}.price-nav{display:flex;flex-wrap:wrap;gap:9px 23px;font-size:13px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:32px}.price-nav a{padding-block:4px}.price-nav a:hover{text-decoration:underline;text-underline-offset:4px}.price-tables{max-width:960px}.price-group{margin-top:35px;scroll-margin-top:155px}.price-group:first-child{margin-top:0}.price-group h3{font:400 23px Georgia,serif;margin-bottom:15px}.price-group table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px}.price-group thead th{font-size:12px;font-weight:400;color:var(--muted);text-align:right;padding:8px 0 11px}.price-group th:first-child{width:58%;text-align:left;padding-right:15px}.price-group tbody th{font-weight:400}.price-group td,.price-group tbody th{border-top:1px solid var(--line);padding:14px 0;line-height:1.65;vertical-align:top}.price-group td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.price-group .single-price{text-align:right}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:870px}.gallery img{width:100%;aspect-ratio:4/3.6;object-fit:cover;object-position:center}.gallery figcaption{margin-top:10px;color:var(--muted);font-size:13px}.map-layout{display:grid;grid-template-columns:265px minmax(0,1fr);gap:40px}.map-sidebar h3{margin-bottom:18px}.city-list{display:flex;flex-direction:column}.city-list button{background:none;border:0;border-bottom:1px solid var(--line);padding:11px 4px;text-align:left;color:var(--text);font-size:14px;line-height:1.5}.city-list button span{color:var(--accent);font-size:11px;margin-right:14px}.city-list button.selected{background:var(--bg)}.map-reset{margin-top:14px}.map-sidebar p,.map-message{font-size:13px;color:var(--muted);line-height:1.75;margin-top:18px}#map{height:410px;background:#d8ded7;z-index:0;color:#232a25}#map .map-loading{padding:25px;font-size:14px}.leaflet-tile-pane{filter:grayscale(1) brightness(1.03) contrast(.92)}.city-marker span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#232d27;color:#fff;border:2px solid #fff;border-radius:50%;font:12px 'DM Sans',sans-serif;box-shadow:0 2px 5px #0004}.leaflet-control-attribution{font-size:10px!important}.leaflet-popup-content{font:14px/1.6 'DM Sans',sans-serif}.faq-layout{display:grid;grid-template-columns:.8fr 1.4fr;gap:70px}.faq-heading{position:sticky;top:175px;align-self:start}.faq-heading p:not(.eyebrow){color:var(--muted);font-size:15px;margin:20px 0}.faq-group{margin-bottom:32px}.faq-group:last-child{margin-bottom:0}.faq-group h3{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin-bottom:10px}.faq-group details{border-bottom:1px solid var(--line);padding:16px 0}.faq-group summary{cursor:pointer;list-style:none;position:relative;padding-right:28px;font-size:15px;line-height:1.6}.faq-group summary::-webkit-details-marker{display:none}.faq-group summary:after{content:'+';position:absolute;right:2px;top:-2px;color:var(--accent);font-size:22px}.faq-group details[open] summary:after{content:'−'}.faq-group details p{color:var(--muted);font-size:14px;margin-top:13px;line-height:1.8;padding-right:18px}.shop-section{padding-block:45px}.shop-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.shop-inner p:not(.eyebrow){font-size:14px;color:var(--muted);margin-top:14px}.contact-section{display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact-section p{color:var(--muted);font-size:15px;max-width:540px;margin-top:20px}.contact-section .eyebrow{margin-top:0}.contact-section .contact-actions{margin-top:8px}.contact-section .hours,.contact-section .payment{font-size:13px}.contact-section .social-row{font-size:14px}.footer{border-top:1px solid var(--line);padding-block:25px}.footer-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;color:var(--muted);font-size:12px}.footer-links{display:flex;gap:20px}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.welcome{gap:34px;grid-template-columns:1.4fr 1fr}.main-nav{gap:22px;justify-content:flex-start}.steps.four{grid-template-columns:repeat(2,1fr)}.faq-layout{gap:35px}.map-layout{grid-template-columns:225px 1fr;gap:25px}}
@media(max-width:640px){html{scroll-padding-top:128px}.wrap{width:calc(100% - 32px)}.header-row{min-height:72px;gap:12px}.logo{width:61px;height:61px}.logo img{width:100%}.header-phone{display:none}.universe{font-size:12px;gap:9px}#switch{width:46px;height:28px;padding:3px}#switch span{width:20px;height:20px}body.wedding #switch span{transform:translateX(18px)}.main-nav{gap:23px;font-size:13px;scrollbar-width:none;margin-right:0;width:calc(100% - 16px)}.main-nav a{padding:9px 0 10px}.welcome{grid-template-columns:minmax(0,1fr) 110px;gap:0 16px;padding-top:25px;padding-bottom:28px}.welcome-heading{align-self:center;grid-row:1;grid-column:1}.welcome .eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:10px}.welcome h1{font-size:30px;line-height:1.17;letter-spacing:-.035em}.portrait{grid-row:1;grid-column:2;align-self:center}.portrait img{aspect-ratio:3/4;object-position:center top;max-height:160px;object-fit:cover}.portrait figcaption{font-size:10px;margin-top:5px;line-height:1.4}.welcome-copy{grid-column:1/3;grid-row:2;padding-top:17px}.intro{font-size:14px;line-height:1.65}.hero-services{font-size:14px;margin-top:12px}.hero-services small{font-size:12px}.hero-area{margin-top:12px;padding-top:10px}.hero-area p{font-size:12px;line-height:1.65;margin:4px 0}.small-label{font-size:10px;letter-spacing:1px}.welcome .contact-actions{margin-top:13px;gap:8px}.button{padding:11px 16px;font-size:13px}.social-row{margin-top:6px}.bio-band{display:block;padding-top:22px;padding-bottom:25px;font-size:13px}.signature{display:block;margin-top:13px;font-size:23px}.section{padding-block:48px}.section-heading{display:block;margin-bottom:25px}.section-heading>p,.section-heading>a{margin-top:18px}.eyebrow{font-size:10px;margin-bottom:12px}h2{font-size:30px}.steps,.steps.four{grid-template-columns:1fr;gap:23px}.steps article{display:grid;grid-template-columns:25px 1fr;gap:0 12px;padding-top:17px}.step-number{grid-column:1;grid-row:1/3;margin-top:3px}.steps h3{grid-column:2;margin:0 0 9px;font-size:17px}.steps p{grid-column:2;font-size:14px;line-height:1.8}.section-note{font-size:12px;margin-top:21px}.price-nav{gap:4px 18px;font-size:12px;margin-bottom:24px;padding-bottom:17px}.price-group{margin-top:30px;scroll-margin-top:128px}.price-group h3{font-size:21px}.price-group table{font-size:12px}.price-group thead th{font-size:10px}.price-group th:first-child{width:53%;padding-right:9px}.price-group td,.price-group tbody th{padding-block:12px}.gallery{gap:15px}.gallery img{aspect-ratio:3/4}.gallery figcaption{font-size:12px}.map-layout{grid-template-columns:1fr;gap:23px}.map-sidebar h3{font-size:17px}.city-list{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.city-list button{font-size:13px;padding:10px 0}.city-list button span{margin-right:7px;font-size:10px}.map-sidebar p{font-size:12px;margin-top:12px}#map{height:300px}.map-message{font-size:12px;margin-top:12px}.faq-layout{grid-template-columns:1fr;gap:28px}.faq-heading{position:static}.faq-heading p:not(.eyebrow){font-size:14px;margin:15px 0}.faq-group h3{font-size:12px}.faq-group summary{font-size:14px}.faq-group details p{font-size:14px}.shop-section{padding-block:35px}.shop-inner{display:block}.shop-inner .button{margin-top:22px}.shop-inner p:not(.eyebrow){font-size:14px}.contact-section{grid-template-columns:1fr;gap:23px}.contact-section p{font-size:14px;margin-top:17px}.contact-section .contact-actions{margin-top:0}.footer-inner{font-size:11px;gap:14px}.footer-links{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Portrait monochrome partagé par les deux univers. */
.portrait img{filter:grayscale(1)}

/* En-tête et rythme visuel partagés entre les deux univers. */
:root{--header-height:195px}
html{scroll-padding-top:var(--header-height)}
.header-row{min-height:140px;padding-block:8px;gap:32px}
.logo{width:124px;height:124px}
.universe-choice{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.universe-caption{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
.universe-selector{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1.55fr;width:350px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:50px;box-shadow:inset 0 1px 3px #0000000d}
.universe-selector a{position:relative;z-index:1;border:0;background:transparent;color:var(--muted);min-height:43px;padding:8px 15px;white-space:nowrap;font-size:13px;border-radius:40px;transition:color .35s}
.universe-selector a[aria-current=page]{color:var(--bg);font-weight:600}
.universe-slider{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc((100% - 10px)/2.55);background:var(--text);border-radius:40px;box-shadow:0 2px 8px #0002;transition:left .45s cubic-bezier(.22,1,.36,1),width .45s cubic-bezier(.22,1,.36,1),background .4s}
.universe-selector[data-universe=wedding] .universe-slider{left:calc(5px + (100% - 10px)/2.55);width:calc((100% - 10px)*1.55/2.55)}
.main-nav{border-top:1px solid var(--line);justify-content:space-between;gap:20px}
.main-nav a{padding-block:13px;font-size:14px}
.welcome{padding-top:48px}
.section{position:relative;padding-block:88px}
.section-tint{background:linear-gradient(180deg,var(--bg),var(--surface) 65px,var(--surface) calc(100% - 65px),var(--bg));border-block:1px solid var(--line)}
.section.wrap:before{content:'';display:block;position:absolute;top:0;left:0;width:65px;height:2px;background:var(--accent);opacity:.65}
.section-heading{margin-bottom:42px}
.price-group{scroll-margin-top:var(--header-height)}
.faq-heading{top:calc(var(--header-height) + 12px)}
.shop-section{border-block:1px solid var(--line);padding-block:55px;background:var(--surface)}


@media(max-width:640px){
 :root{--header-height:170px}
 .header-row{min-height:114px;gap:12px;padding-block:7px}
 .logo{width:92px;height:92px}
 .universe-choice{flex:1;min-width:0;gap:7px;align-items:stretch}
 .universe-caption{text-align:right;font-size:9px;letter-spacing:1px}
 .universe-selector{width:100%;padding:4px;grid-template-columns:1fr 1.55fr}
 .universe-selector a{font-size:11px;white-space:normal;line-height:1.35;min-height:43px;padding:7px 6px}
 .universe-slider{top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2.55)}
 .universe-selector[data-universe=wedding] .universe-slider{left:calc(4px + (100% - 8px)/2.55);width:calc((100% - 8px)*1.55/2.55)}
 .main-nav{justify-content:flex-start;gap:23px}
 .main-nav a{font-size:13px;padding-block:11px}
 .welcome{padding-top:27px}
 .section{padding-block:54px}
 .section-heading{margin-bottom:28px}
 .section.wrap:before{width:45px}
 .section-tint{background:linear-gradient(180deg,var(--bg),var(--surface) 38px,var(--surface) calc(100% - 38px),var(--bg))}
 .shop-section{padding-block:39px}
 .faq-heading{position:static}
}


/* Liens vers les actualités, sans galerie à entretenir. */
.social-feature{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:80px}
.social-intro>p:last-child{max-width:430px;margin-top:23px;color:var(--muted);font-size:15px;line-height:1.8}
.social-destinations a{display:flex;align-items:center;gap:22px;padding:27px 0;border-bottom:1px solid var(--line);transition:color .2s}
.social-destinations a:first-child{border-top:1px solid var(--line)}
.social-destinations img{flex-shrink:0;filter:invert(1);opacity:.9}
.social-destinations strong{display:block;font-weight:500;font-size:20px}
.social-destinations small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.social-arrow{margin-left:auto;font-size:25px;transition:transform .2s}
.social-destinations a:hover .social-arrow{transform:translate(3px,-3px)}
.social-destinations a:hover{color:var(--accent)}
@media(max-width:640px){.social-feature{grid-template-columns:1fr;gap:30px}.social-destinations a{padding:23px 0;gap:18px}.social-destinations strong{font-size:18px}.social-intro>p:last-child{font-size:14px;margin-top:18px}}
@media(prefers-reduced-motion:reduce){.social-arrow{transition:none}}

.portrait figcaption{text-align:center}

body.wedding .social-destinations img{filter:none}

.length-guidance{max-width:960px;margin-top:36px;padding:25px 28px;border-left:2px solid var(--accent);background:var(--bg)}
.length-guidance h3{font-family:Georgia,serif;font-size:22px;margin-bottom:12px}
.length-guidance p{font-size:14px;color:var(--muted);line-height:1.8}
.length-guidance a{margin-top:12px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.review{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:24px}
.review blockquote{margin:0;flex:1;font:400 18px/1.75 Georgia,serif}
.review figcaption{font-size:13px;color:var(--accent);margin-top:22px}
.reviews-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;border-top:1px solid var(--line);margin-top:36px;padding-top:20px}
.reviews-footer p{font-size:12px;color:var(--muted)}
@media(max-width:640px){.length-guidance{padding:20px}.length-guidance h3{font-size:20px}.reviews-grid{grid-template-columns:1fr;gap:28px}.review blockquote{font-size:17px}.review figcaption{margin-top:14px}}

.bridal-gallery{max-width:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;align-items:start}
.bridal-gallery figure{min-width:0}

.bridal-gallery img{aspect-ratio:4/5;object-position:center;filter:saturate(.82) contrast(.96)}
.bridal-gallery figure:nth-child(3) img{object-position:50% 40%;filter:saturate(.72) contrast(.94) brightness(1.04)}
.bridal-gallery figure:nth-child(4) img{object-fit:cover;object-position:50% 70%;filter:none}
.bridal-gallery figure:last-child img{filter:saturate(.85) contrast(.96) brightness(1.04)}
.bridal-gallery figcaption{font-size:12px;letter-spacing:.02em;margin-top:12px}
.review-stars{font-size:13px;letter-spacing:3px;color:var(--accent);margin-bottom:17px}
 .gallery-hint{display:none}
.bridal-gallery:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
@media(max-width:900px){.bridal-gallery{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:190px;overflow-x:auto;gap:16px;scroll-snap-type:x mandatory;padding-bottom:16px;scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface)}.bridal-gallery figure{scroll-snap-align:start}.bridal-gallery figcaption{font-size:11px}.gallery-hint{display:block;font-size:12px;color:var(--muted);margin-top:12px}}


.review-actions{display:flex;align-items:center;flex-wrap:wrap;gap:18px 26px}

.nav-shell{position:relative}
.nav-shell .main-nav{width:100%;margin:0;scrollbar-width:none;padding-inline:38px}
.nav-shell .main-nav::-webkit-scrollbar{display:none}
.nav-more,.nav-prev{position:absolute;top:1px;bottom:1px;width:40px;border:0;background:var(--header);color:var(--text);font-size:28px;line-height:1;padding:0;z-index:2}
.nav-more{right:0;box-shadow:-12px 0 12px var(--header)}
.nav-prev{left:0;box-shadow:12px 0 12px var(--header)}
.nav-more[hidden],.nav-prev[hidden]{display:none}

.photo-open{display:block;position:relative;width:100%;padding:0;border:0;background:none;color:white;cursor:zoom-in}
.photo-zoom{position:absolute;right:8px;bottom:8px;width:25px;height:25px;border-radius:50%;background:#0007;font:20px/25px sans-serif}
#photo-viewer{border:0;padding:48px 20px 20px;width:min(1100px,96vw);max-width:96vw;max-height:96dvh;background:#151515;color:#fff;overflow:auto}
#photo-viewer::backdrop{background:#000d}
#photo-viewer figure{margin:0;text-align:center}
#photo-viewer img{display:block;margin:auto;width:auto;height:auto;max-width:100%;max-height:78dvh;object-fit:contain}
#photo-viewer figcaption{margin-top:12px;font-size:13px}
.photo-close{position:absolute;right:12px;top:7px;color:#fff;background:none;border:0;font-size:32px;width:40px;height:40px}
body.photo-viewing{overflow:hidden}
.photo-open{overflow:hidden}
.bridal-gallery figure:nth-child(1) img{transform:scale(1.25);transform-origin:50% 16%}
.bridal-gallery figure:nth-child(2) img{transform:none}
.bridal-gallery figure:nth-child(3) img{object-position:50% 30%}
.bridal-gallery figure:nth-child(4) img{transform:scale(1.85);transform-origin:49% 76%}
.bridal-gallery figure:nth-child(5) img{transform:scale(1.1);transform-origin:50% 35%}

/* Trois univers, un seul langage graphique. */
:root{--bg:#1C1A19;--surface:#282422;--header:#1C1A19f5}
body.wedding{--bg:#F7F4F0;--surface:#fff;--text:#1C1A19;--header:#F7F4F0f5}
body.workshops{--bg:#926935;--surface:#865F31;--text:#F7F4F0;--muted:#F1E6D8;--line:#F7F4F036;--accent:#E7C997;--header:#926935f5}
body.workshops .social-destinations img{filter:brightness(0) invert(1);opacity:.9}
.universe-selector{width:520px;grid-template-columns:repeat(3,minmax(0,1fr))}
.universe-selector a{white-space:normal;line-height:1.25;padding-inline:10px}
.universe-slider{left:5px;width:calc((100% - 10px)/3);transition:transform .45s cubic-bezier(.22,1,.36,1),background .4s}
.universe-selector[data-universe=wedding] .universe-slider{left:5px;width:calc((100% - 10px)/3);transform:translateX(100%)}
.universe-selector[data-universe=workshops] .universe-slider{left:5px;width:calc((100% - 10px)/3);transform:translateX(200%)}
.contact-email{margin:8px 0 0;color:var(--muted);font-size:12px;letter-spacing:.02em}
.contact-section .contact-email{font-size:13px;margin-top:10px}
.workshop-price-detail{max-width:760px;margin-top:12px;color:var(--muted);font-size:14px;line-height:1.8}
.workshop-terms{max-width:960px;margin-top:36px;padding:25px 28px;border-left:2px solid var(--accent);background:var(--bg)}
.workshop-terms h3{font-family:Georgia,serif;font-size:22px;margin-bottom:12px}
.workshop-terms p{color:var(--muted);font-size:14px;line-height:1.8}
.map-locality{margin-top:13px!important;font-size:12px!important;color:var(--accent)!important}
.workshop-map-note{font-size:12px;color:var(--muted);line-height:1.75;margin-top:14px}
.review-label{display:block;color:var(--muted);font-size:11px;margin-top:4px}
@media(max-width:640px){
 .universe-selector{grid-template-columns:repeat(3,minmax(0,1fr))}
 .universe-selector a{font-size:10.4px;line-height:1.25;min-height:50px;padding:6px 4px}
 .universe-slider{top:4px;bottom:4px;left:4px;width:calc(33.333333% - 2.666667px)}
 .universe-selector[data-universe=wedding] .universe-slider{left:calc(33.333333% + 1.333333px);width:calc(33.333333% - 2.666667px)}
 .universe-selector[data-universe=workshops] .universe-slider{left:calc(66.666667% - 1.333333px);width:calc(33.333333% - 2.666667px)}
 .workshop-price-detail{font-size:13px}
 .workshop-terms{padding:20px}
 .workshop-terms h3{font-size:20px}
}

/* Ateliers reprend la signature noire de l'univers Quotidien. */
body.workshops .logo .logo-dark{display:block}
body.workshops .logo .logo-light{display:none}

/* La phrase d'introduction ouvre chaque biographie ; le parcours vient ensuite. */
.bio-copy{max-width:570px;margin-top:19px;color:var(--muted);font-size:14px;line-height:1.8}
.bio-copy p+p{margin-top:14px}
.bio-copy+.hero-area{margin-top:23px}
.welcome-copy{padding-top:12px}
.welcome-copy .intro{max-width:560px;color:var(--text);font-size:17px;line-height:1.62;letter-spacing:-.01em;font-style:italic}
@media(max-width:640px){
 .welcome-copy{padding-top:11px}
 .welcome-copy .intro{font-size:15px;line-height:1.65}
 .bio-copy{margin-top:25px;font-size:14px;line-height:1.72}
 .bio-copy p+p{margin-top:12px}
 .bio-copy+.hero-area{margin-top:18px}
}

/* Les zones restent compactes, quelle que soit la longueur de la liste. */
@media (min-width:641px){
 .map-layout{grid-template-columns:minmax(300px,.78fr) minmax(0,1.55fr);gap:48px}
 .map-sidebar{align-self:center}
}
.city-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.city-list button{display:flex;align-items:center;min-height:43px;border:1px solid var(--line);padding:9px 11px;border-radius:2px;line-height:1.35}
.city-list button:hover,.city-list button.selected{background:var(--text);border-color:var(--text);color:var(--bg)}

/* La grille Ateliers donne une vraie place à chaque formule et à son tarif. */
.workshop-price-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:none}
.workshop-price-tables .price-group{margin:0;padding:24px;border:1px solid var(--line);background:#ffffff12}
.workshop-price-tables .price-group:last-child{grid-column:span 2}
.workshop-price-tables .price-group h3{font-size:25px;margin-bottom:19px}
.workshop-price-tables .price-group table{border-top:1px solid var(--line)}
.workshop-price-tables .price-group td{font-size:18px;font-weight:600;color:var(--accent);white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.workshop-price-tables .price-group th:first-child{width:67%}

@media(max-width:640px){
 html{scroll-padding-top:166px}
 .header-row{display:grid;grid-template-columns:1fr;justify-items:center;gap:8px;min-height:0;padding-block:9px}
 .logo{width:58px;height:58px}
 .universe-choice{width:100%;align-items:stretch;gap:0}
 .universe-caption{display:none}
 .universe-selector{width:100%;padding:4px}
 .universe-selector a{min-height:50px;padding:6px 5px;font-size:clamp(10.5px,3.1vw,12px);line-height:1.25}
 .universe-slider{top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3);transition:transform .45s cubic-bezier(.22,1,.36,1),background .4s}
 .universe-selector[data-universe=wedding] .universe-slider{left:4px;width:calc((100% - 8px)/3);transform:translateX(100%)}
 .universe-selector[data-universe=workshops] .universe-slider{left:4px;width:calc((100% - 8px)/3);transform:translateX(200%)}
 .city-list{gap:7px 8px}
 .city-list button{min-height:42px;padding:8px 9px;font-size:12px}
 .workshop-price-tables{grid-template-columns:1fr;gap:13px}
 .workshop-price-tables .price-group,.workshop-price-tables .price-group:last-child{grid-column:auto;padding:20px}
 .workshop-price-tables .price-group h3{font-size:22px}
 .workshop-price-tables .price-group th:first-child{width:60%;padding-right:8px}
 .workshop-price-tables .price-group td{font-size:16px;white-space:normal}
}

/* Le logo accueille la visite, puis se fait discret pour libérer la lecture. */
@media(max-width:640px){
 .logo{width:80px;height:80px;transition:width .3s ease,height .3s ease}
 body.header-compact .logo{width:58px;height:58px}
}

/* Navigation classique, mêmes dimensions et mêmes couleurs. */
.universe-selector a{display:flex;align-items:center;justify-content:center;text-align:center}
[hidden]{display:none!important}
.icon{display:inline-block;vertical-align:middle;flex:none}
.social-arrow .icon{display:block}
.stars{display:inline-flex;align-items:center;gap:6px;color:var(--accent)}
.photo-zoom .icon{vertical-align:top;margin-top:2px}
.nav-prev,.nav-more{display:flex;align-items:center;justify-content:center}
.photo-close{display:flex;align-items:center;justify-content:center}
.text-link .icon{margin-left:5px}
/* Ré-aérage uniforme de 7 %, sans toucher aux composants internes. */
.section{padding-block:94px}
.shop-section{padding-block:59px}
@media(max-width:640px){.section{padding-block:58px}.shop-section{padding-block:42px}}
/* La carte de secours est présente avant tout chargement interactif. */
.map-shell{position:relative;height:410px;background:#d8ded7;overflow:hidden}
.map-fallback,.map-canvas{position:absolute!important;inset:0;width:100%;height:100%!important}
.map-fallback img{width:100%;height:100%;object-fit:contain;background:#636363}
.map-canvas{opacity:0;z-index:1}
.map-ready .map-canvas{opacity:1}
.map-ready .map-fallback{visibility:hidden}
.map-attribution{position:absolute;bottom:0;right:0;background:#ffffffe6;color:#232a25;font:10px/1.5 Arial,sans-serif;padding:2px 5px}
.city-list button:disabled{opacity:1;cursor:default}
.city-list button:disabled:hover{background:none;color:var(--text);border-color:var(--line)}
@media(max-width:640px){.map-shell{height:300px}}
.auxiliary-main{padding-block:68px 94px}
.auxiliary-heading{margin-bottom:58px;max-width:850px}
.auxiliary-heading h1{margin-bottom:25px}
.auxiliary-heading>p:not(.eyebrow){color:var(--muted);max-width:650px;margin:22px 0 26px}
.historical-reviews{columns:2;column-gap:64px}
.historical-review{break-inside:avoid;margin-bottom:42px;padding-top:24px;border-top:1px solid var(--line)}
.historical-review blockquote{font-size:17px}
.historical-review figcaption{margin-top:15px}
.partners-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}
.partner-card{border-top:1px solid var(--line);padding-top:25px}
.partner-card img{width:100%;height:240px;object-fit:contain;margin-bottom:25px}
.partner-card h2{font-size:25px;margin-bottom:16px}
.partner-card .text-link{font-size:13px}
.legal-content{max-width:880px}
.legal-content h1{margin-bottom:50px}
.legal-content section+section{margin-top:44px}
.legal-content h2{font-size:29px;margin-bottom:22px}
.legal-content p+p{margin-top:16px}
.legal-content p,.legal-content dd{color:var(--muted)}
.legal-content dl{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px 25px}
.legal-content dt{font-weight:500}
.legal-content dd{margin:0}
.footer-links{flex-wrap:wrap}
/* 404 : composition encadrée de blanc, sans bandeau de tête. */
body.error-page{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}
.error-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(48px,7vw,96px) clamp(24px,7vw,110px);background:#fff}
.error-panel{position:relative;overflow:hidden;width:100%;max-width:1060px}
.error-colors{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr)}
.error-colors span:first-child{background:#1C1A19}.error-colors span:nth-child(2){background:#F7F4F0}.error-colors span:last-child{background:#926935}
.error-layout{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:center;min-height:560px;padding:0 36px}
.error-copy{padding:32px;background:#F7F4F0;align-self:center;margin-block:36px;position:relative;z-index:1;min-width:0}
.error-copy h1{font-size:clamp(34px,3.3vw,44px);margin-bottom:22px}
.error-copy>p:not(.eyebrow){color:var(--muted);font-size:15px}
.error-actions{display:grid;margin:26px 0 20px}
.error-actions a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;min-height:48px}
.error-actions .icon{flex-shrink:0}
.error-phone{font-size:13px;color:var(--muted)}
.error-portrait{display:block;align-self:end;justify-self:center;width:100%;max-width:470px;height:auto;object-fit:contain;object-position:bottom}
@media(max-width:900px){.partners-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.historical-reviews{column-gap:32px}.error-stage{padding:56px 48px}.error-layout{gap:12px;padding-inline:24px;min-height:540px}.error-copy{padding:24px}.error-copy h1{font-size:34px}}
@media(max-width:640px){.auxiliary-main{padding-block:38px 60px}.auxiliary-heading{margin-bottom:38px}.historical-reviews{columns:1}.historical-review{margin-bottom:30px}.partners-grid{grid-template-columns:1fr;gap:35px}.partner-card img{height:220px}.legal-content dl{grid-template-columns:1fr;gap:6px}.legal-content dt:not(:first-child){margin-top:14px}.error-stage{padding:40px 24px 48px;align-items:center}.error-layout{display:flex;flex-direction:column;gap:24px;min-height:0;padding:0 20px}.error-copy{width:100%;padding:24px;margin:24px 0 0}.error-copy h1{font-size:clamp(28px,7.5vw,34px);margin-bottom:18px}.error-copy>p:not(.eyebrow){font-size:14px}.error-portrait{width:100%;max-width:340px;align-self:center}.error-actions{margin-block:22px 18px}.error-actions a{font-size:13px}}
