*{box-sizing:border-box;margin:0;padding:0}:root{--bg-main:#faf9f7;--bg-card:#fff;--text-main:#1c1c1c;--text-muted:#6f6f6f;--accent:#b79b6c;--accent-hover:#a88a5c;--border-soft:#eceae6;--radius-soft:18px;--radius-full:999px;--transition-fast:.2s ease}body{background:var(--bg-main);color:var(--text-main);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}.page{margin:auto;max-width:780px;padding:60px 20px}h1,h2{font-family:Playfair Display,serif;font-weight:500}h1{font-size:40px;margin-bottom:30px}h2{font-size:24px;margin:28px 0 16px}p{color:var(--text-muted);font-size:15px}a{color:var(--text-main);text-decoration:none;transition:var(--transition-fast)}a:hover{opacity:.7}.btn,a#reserve{color:#fff}.btn{align-items:center;background:var(--text-main);border:none;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;padding:14px 32px;transition:var(--transition-fast)}.btn:hover{background:#000}.btn:disabled{background:#ccc;cursor:not-allowed}.btn.danger{background:#b3261e}.btn.danger:hover{background:#8f1f19}.btn-row{display:flex;gap:12px;margin-top:16px}.card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-soft);margin-bottom:28px;padding:34px}.input{background:transparent;border:none;border-bottom:1px solid var(--border-soft);font-size:15px;margin-bottom:18px;padding:14px 6px;width:100%}.input:focus{border-bottom-color:var(--text-main);outline:none}.input::-moz-placeholder{color:#aaa}.input::placeholder{color:#aaa}.textarea{font-family:inherit;min-height:130px;resize:vertical}.file-upload{margin-bottom:26px}.file-label{font-size:14px;font-weight:500;margin-bottom:8px}.file-name{color:var(--text-muted);font-size:13px;margin-top:10px}.header{background:#f9f8f6eb;display:flex;justify-content:space-between;margin-bottom:0;padding:26px 60px}.brand,.header{align-items:center}.brand{display:inline-flex}.logo{display:block;height:66px;mix-blend-mode:multiply;width:auto}.nav{align-items:center;display:flex;gap:28px}.nav a{color:var(--text-main);font-size:13px;font-weight:500;letter-spacing:.08em;margin-left:0;text-transform:uppercase}.nav a.router-link-active{color:var(--accent)}.section-heading{margin:0 auto 42px;max-width:680px;text-align:center}.section-kicker{color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.22em;margin-bottom:10px;text-transform:uppercase}.section-heading h2{font-size:clamp(30px,4vw,46px);line-height:1.08;margin:0 0 16px}.section-heading p{color:var(--text-muted);font-size:16px}@media(max-width:768px){.header{margin-bottom:0;padding:18px 22px}.logo{height:52px}.nav{gap:16px}.nav a{font-size:11px;letter-spacing:.06em}}.admin-icon-link{align-items:center;background:#ffffff8c;border:1px solid var(--border-soft);border-radius:999px;color:var(--text-muted);display:inline-flex;font-size:13px;height:28px;justify-content:center;margin-left:6px;opacity:.55;width:28px}.admin-icon-link:hover{background:var(--bg-card);color:var(--text-main);opacity:1}.reservation-page{background:var(--bg-main);min-height:100vh}.reservation-hero{margin:0 auto 44px;max-width:760px;text-align:center}.reservation-hero h1{font-size:clamp(40px,5vw,64px);line-height:1.04;margin-bottom:18px}.reservation-hero p{font-size:16px;margin:0 auto;max-width:620px}.reservation-content{margin:0 auto;max-width:780px}.reservation-step-card{margin-bottom:24px}.reservation-step-heading{align-items:flex-start;display:flex;gap:18px;margin-bottom:22px}.reservation-step-heading>span{align-items:center;background:var(--text-main);border-radius:999px;color:#fff;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:700;height:38px;justify-content:center;width:38px}.reservation-step-heading h2{margin:0 0 8px}.reservation-type-info{margin-bottom:18px}.reservation-form-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.reservation-error{margin:0 0 18px;text-align:center}.reservation-success-card{margin:0 auto;max-width:680px;text-align:center}@media(max-width:768px){.reservation-form-grid{gap:0;grid-template-columns:1fr}.reservation-step-heading{gap:14px}}.landing{width:100%}.hero{margin-bottom:70px;min-height:560px;overflow:hidden;position:relative}.hero-brand-section{align-items:center;background:radial-gradient(circle at 78% 45%,hsla(38,34%,57%,.16),transparent 34%),linear-gradient(135deg,#faf9f7,#f3eee7);display:flex;padding:80px 60px}.hero-inner{align-items:center;display:grid;gap:60px;grid-template-columns:1.05fr .95fr;margin:0 auto;max-width:1180px;width:100%}.hero-text{max-width:620px}.hero-kicker{color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.22em;margin-bottom:18px;text-transform:uppercase}.hero-text h1{color:var(--text-main);font-size:clamp(44px,5vw,72px);line-height:1.02;margin-bottom:24px}.hero-subtitle{color:var(--text-muted);font-size:17px;max-width:520px}.hero-mark{align-items:center;display:flex;justify-content:center}.hero-logo{display:block;filter:contrast(1.05);height:auto;mix-blend-mode:multiply;width:min(520px,38vw)}.hero-bg,.hero-cta{display:none}.gallery-section{margin-top:0;padding:0 60px 40px}.gallery{display:grid;gap:18px;grid-template-columns:repeat(4,1fr);margin-top:0}.gallery img{border-radius:18px;filter:saturate(.92) contrast(1.02);height:360px;-o-object-fit:cover;object-fit:cover;width:100%}.values{display:grid;gap:40px;grid-template-columns:repeat(3,1fr);padding:80px 40px;text-align:center}.value h3{font-size:16px;margin-bottom:10px}.value p{color:var(--text-muted);font-size:14px}@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}.hero-inner,.values{grid-template-columns:1fr}.hero-inner{gap:42px;text-align:center}.hero-text{max-width:none}.hero-subtitle{margin:0 auto}.hero-logo{width:min(420px,70vw)}}@media(max-width:768px){.hero{margin-bottom:56px;min-height:auto}.hero-brand-section{padding:56px 24px 64px}.hero-inner{gap:34px;grid-template-columns:1fr;text-align:center}.hero-text{max-width:none}.hero-text h1{font-size:40px}.hero-subtitle{font-size:15px;margin:0 auto}.hero-logo{width:min(320px,78vw)}.gallery-section{padding:0 22px 32px}.gallery{gap:12px;grid-template-columns:1fr 1fr}.gallery img{border-radius:14px;height:230px}}.site-footer{background:#f3eee7;border-top:1px solid var(--border-soft);display:grid;gap:48px;grid-template-columns:1.4fr .8fr .8fr;margin-top:20px;padding:54px 60px}.footer-logo{display:block;height:auto;margin-bottom:18px;mix-blend-mode:multiply;width:110px}.footer-brand p{color:var(--text-muted);font-size:14px;max-width:420px}.footer-contact,.footer-nav{align-items:flex-start;display:flex;flex-direction:column}.footer-contact h3,.footer-nav h3{font-size:13px;letter-spacing:.14em;margin-bottom:16px;text-transform:uppercase}.footer-contact a,.footer-nav a{color:var(--text-muted);font-size:14px;margin-bottom:10px}.footer-contact a:hover,.footer-nav a:hover{color:var(--text-main)}.footer-contact p{color:var(--text-muted);font-size:14px;margin-bottom:14px}.footer-admin-link{font-size:12px!important;margin-top:6px;opacity:.5}.footer-admin-link:hover{opacity:1}@media(max-width:768px){.site-footer{gap:32px;grid-template-columns:1fr;padding:42px 24px}.footer-logo{width:92px}}.reviews-page{background:var(--bg-main);min-height:100vh;overflow-x:hidden}.reviews-main{padding:70px 60px 110px}.reviews-hero{margin:0 auto 72px;max-width:760px;text-align:center}.reviews-hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;margin-bottom:22px}.reviews-hero p{font-size:16px;margin:0 auto;max-width:620px}.reviews-marquee{margin:0 auto;overflow:hidden;padding:0 48px;position:relative;width:min(1180px,calc(100vw - 180px))}.reviews-marquee:after,.reviews-marquee:before{content:"";height:100%;pointer-events:none;position:absolute;top:0;width:48px;z-index:2}.reviews-marquee:before{background:linear-gradient(90deg,var(--bg-main),transparent);left:0}.reviews-marquee:after{background:linear-gradient(270deg,var(--bg-main),transparent);right:0}.reviews-track{animation:reviews-scroll 35s linear infinite;display:flex;gap:22px;width:-moz-max-content;width:max-content;will-change:transform}.reviews-marquee:hover .reviews-track,.reviews-track:hover{animation-play-state:paused}@keyframes reviews-scroll{0%{transform:translate(0)}to{transform:translate(calc(-50% - 11px))}}.review-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:24px;display:flex;flex:0 0 360px;flex-direction:column;gap:22px;min-height:260px;padding:28px;width:360px}.review-top{align-items:flex-start;display:flex;gap:18px;justify-content:space-between}.review-top h3{font-size:17px;margin-bottom:4px}.review-top p{font-size:13px}.review-rating{color:var(--accent);display:inline-flex;font-size:13px;gap:2px;letter-spacing:1px;white-space:nowrap}.star.empty{color:#ded8ce}.review-text{color:var(--text-main);font-size:15px}.review-image{border-radius:16px;margin-top:auto;width:100%}.review-image,.review-submit-card{border:1px solid var(--border-soft)}.review-submit-card{align-items:start;background:radial-gradient(circle at top right,hsla(38,34%,57%,.12),transparent 36%),var(--bg-card);border-radius:28px;display:grid;gap:44px;grid-template-columns:.9fr 1.1fr;margin:72px auto 0;max-width:980px;padding:40px}.review-submit-card h2{font-size:34px;margin:0 0 14px}.review-form{width:100%}.rating-input{margin:4px 0 22px}.rating-input p{color:var(--text-muted);font-size:13px;margin-bottom:8px}.rating-star{background:transparent;border:none;color:#ded8ce;cursor:pointer;font-size:24px;padding:0 3px 0 0;transition:var(--transition-fast)}.rating-star.active{color:var(--accent)}.rating-star:hover{opacity:.8}.anonymous-option{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;gap:10px;margin:-4px 0 22px}.anonymous-option input{accent-color:var(--accent);height:15px;width:15px}.anonymous-option span{line-height:1.4}.submit-message{color:#1e6e3a;font-size:14px;margin-top:16px}.error-message{color:#b3261e;font-size:14px;margin-top:16px}@media(max-width:900px){.reviews-marquee{padding:0 22px;width:calc(100vw - 44px)}.review-submit-card{grid-template-columns:1fr;margin-top:56px}.review-card{flex-basis:340px;width:340px}}@media(max-width:768px){.reviews-main{padding:52px 22px 80px}.reviews-hero{margin-bottom:44px}.reviews-hero h1{font-size:40px}.reviews-marquee{padding:0 22px;width:calc(100vw - 44px)}.reviews-marquee:after,.reviews-marquee:before{width:36px}.reviews-track{animation-duration:28s}.review-card{border-radius:20px;flex-basis:310px;padding:24px;width:310px}.review-submit-card{border-radius:22px;margin-top:48px;padding:28px}.review-submit-card h2{font-size:30px}}.reviews-empty{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:24px;margin:0 auto;max-width:760px;padding:34px;text-align:center}.admin-card,.login-card{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:var(--radius-soft)}.admin-intro{color:var(--text-muted);font-size:15px;margin-bottom:42px;max-width:620px}.admin-page-heading{margin-bottom:36px}.back-link{color:var(--text-muted);display:inline-flex;font-size:14px;margin-bottom:28px}.back-link:hover{color:var(--text-main)}.admin-message,.error{margin-bottom:18px}.error{color:#b3261e}.success{color:#1e6e3a;margin-bottom:18px}.btn-row{display:flex;flex-wrap:wrap;gap:12px}.download-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.download-pill{background:#f0efec;border-radius:999px;color:#1c1c1c;cursor:pointer;font-size:13px;font-weight:500;padding:6px 14px;text-decoration:none;transition:all .2s ease}.download-pill:hover{background:#e6e3dc;transform:translateY(-1px)}.download-empty{color:#9a9a9a;font-size:13px;font-style:italic}.type-badge{border-radius:999px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.badge-pro{background:var(--text-main);color:#fff}.badge-particulier{background:var(--accent);color:#fff}.status{border-radius:999px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.status.validated{background:#e6f4ea;color:#1e6e3a}.status.pending{background:#fff4e0;color:#a86b00}.header-badges{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.link-type-toggle{background:#f0efec;border-radius:999px;display:grid;gap:6px;grid-template-columns:1fr 1fr;margin:12px 0 18px;padding:5px}.link-type-option{background:transparent;border:none;border-radius:999px;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:600;padding:10px 16px;transition:var(--transition-fast)}.link-type-option.active{background:var(--bg-card);box-shadow:0 6px 18px #1c1c1c14;color:var(--text-main)}.link-type-option:hover{color:var(--text-main)}.login{display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:520px;min-height:100vh;padding:90px 24px}.login h1{font-size:clamp(36px,5vw,54px);line-height:1.05;margin-bottom:16px;text-align:center}.login-intro{color:var(--text-muted);font-size:15px;margin:0 auto 34px;max-width:380px;text-align:center}.login-card{border-radius:26px;padding:34px}.login-card .input{margin-bottom:14px}.login-card .btn{margin-top:6px}.login-card .error{font-size:14px;margin-top:16px;text-align:center}.page.admin{max-width:1050px}.admin-cards{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-card{background:radial-gradient(circle at top right,hsla(38,34%,57%,.08),transparent 34%),var(--bg-card);border:1px solid var(--border-soft);border-radius:24px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;padding:32px;transition:var(--transition-fast)}.admin-card h3{font-size:18px;margin-bottom:12px}.admin-card p{color:var(--text-muted);font-size:14px}.admin-card:after{background:#f0efec;border-radius:999px;color:var(--text-main);content:"Ouvrir";font-size:12px;font-weight:600;margin-top:28px;padding:7px 14px;width:-moz-fit-content;width:fit-content}.admin-card:hover{border-color:#b79b6c8c;box-shadow:0 18px 45px #1c1c1c0f;transform:translateY(-3px)}.admin-slots{max-width:1180px}.slot,.slot-card,.slot-line{align-items:center;display:flex;justify-content:space-between}.slot{border-bottom:1px solid var(--border-soft);padding:16px 0}.slot:last-child{border-bottom:none}.slot.selected{font-weight:600}.empty-slots{color:var(--text-muted);font-style:italic;padding:20px;text-align:center}.empty-slots a{color:var(--accent);font-weight:500;text-decoration:underline}.step-desc{margin-bottom:18px}.selected-info{color:var(--text-muted);font-size:14px;margin-top:16px;text-align:center}.slots-top-grid{display:grid;gap:24px;grid-template-columns:.95fr 1.05fr;margin-bottom:42px}.admin-panel-card{margin-bottom:0}.admin-panel-card h2{font-size:26px;margin:0 0 12px}.form-grid,.particular-mail-grid{display:grid;gap:12px;margin-bottom:18px}.form-grid,.particular-mail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.link-row{align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto;margin:12px 0 24px}.link-input{background:var(--bg-main);font-family:monospace;font-size:13px}.send-title{font-family:inherit;font-size:15px;font-weight:600;margin:8px 0 14px}.link-feedback{color:var(--accent-hover);font-size:14px;margin-top:12px}.slots-list-grid{display:grid;gap:24px;grid-template-columns:1fr 1fr}.slots-column{min-width:0}.slots-column-header{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-bottom:18px}.slots-column-header h2{font-size:30px;margin:0}.slots-count{align-items:center;background:var(--text-main);border-radius:999px;color:#fff;display:inline-flex;font-size:13px;font-weight:700;height:38px;justify-content:center;min-width:38px;padding:0 12px}.slots-list{display:flex;flex-direction:column;gap:14px}.slot-admin-card{align-items:center;background:var(--bg-card);border:1px solid var(--border-soft);border-radius:20px;display:flex;gap:18px;justify-content:space-between;padding:22px}.slot-hour{color:var(--text-muted);font-size:14px;margin-top:4px}.slot-admin-right{align-items:center;display:flex;gap:12px}.compact-btn{font-size:13px;padding:10px 18px}.compact-empty{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:20px;padding:24px;text-align:center}.admin-reservations{max-width:1180px}.reservations-summary-grid{display:grid;gap:18px;grid-template-columns:repeat(3,1fr);margin-bottom:32px}.reservation-summary-card{margin-bottom:0;padding:26px}.summary-label{color:var(--text-muted);display:block;font-size:12px;letter-spacing:.12em;margin-bottom:12px;text-transform:uppercase}.reservation-summary-card strong{display:block;font-size:38px;line-height:1;margin-bottom:10px}.reservation-summary-card p{font-size:14px}.reservations-filter-card{align-items:center;display:flex;gap:24px;justify-content:space-between;margin-bottom:32px}.reservations-filter-card h2{font-size:30px;margin:0}.reservation-view-toggle{flex-shrink:0;margin:0;width:280px}.reservations-section{margin-top:0}.reservations-list{display:grid;gap:22px;grid-template-columns:1fr 1fr}.reservation-card{border-radius:24px;margin-bottom:0}.past-reservation-card{opacity:.78}.past-reservation-card:hover{opacity:1}.reservation-top{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px}.reservation-top h3{font-size:18px;margin-bottom:4px}.contact{color:var(--text-muted);font-size:13px}.reservation-slot-box{background:var(--bg-main);border:1px solid var(--border-soft);border-radius:18px;margin-bottom:18px;padding:16px 18px}.reservation-slot-box span{color:var(--text-muted);display:block;font-size:12px;letter-spacing:.12em;margin-bottom:6px;text-transform:uppercase}.reservation-slot-box strong{font-size:15px}.compact-documents{border-bottom:1px solid var(--border-soft);border-top:1px solid var(--border-soft);margin-bottom:18px;padding:14px 0 6px}.admin-reviews-page{max-width:1180px}.admin-reviews-list{display:flex;flex-direction:column;gap:22px}.admin-review-card{margin-bottom:0}.admin-review-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px}.admin-review-header h3{font-size:17px;margin-bottom:4px}.admin-review-header p{font-size:13px}.admin-review-rating{flex-shrink:0}.admin-review-message{color:var(--text-main);margin-bottom:24px}.admin-review-view-toggle{flex-shrink:0;grid-template-columns:repeat(3,1fr);margin:0;width:360px}.done-review-card{opacity:.82}.done-review-card:hover{opacity:1}.status.rejected{background:#fde8e8;color:#b3261e}.empty-admin-card h3{font-size:17px;margin-bottom:8px}@media(max-width:768px){.admin-review-view-toggle{width:100%}}.admin-messages-page{max-width:1180px}.admin-messages-list{margin-top:32px}.messages-grid{display:grid;gap:22px;grid-template-columns:1fr 1fr}.admin-message-card{border-radius:24px;margin-bottom:0}.done-message-card{opacity:.82}.done-message-card:hover{opacity:1}.admin-message-header{align-items:flex-start;display:flex;gap:18px;justify-content:space-between;margin-bottom:22px}.admin-message-header h3{font-size:18px;margin-bottom:4px}.admin-message-header p{font-size:13px}.admin-message-contact{background:var(--bg-main);border:1px solid var(--border-soft);border-radius:18px;margin-bottom:18px;padding:16px 18px}.admin-message-contact p{font-size:14px;margin-bottom:8px}.admin-message-contact p:last-child{margin-bottom:0}.admin-message-contact a{color:var(--text-main)}.admin-message-body{border-bottom:1px solid var(--border-soft);border-top:1px solid var(--border-soft);margin-bottom:18px;padding:18px 0}.admin-message-body p{color:var(--text-main);white-space:pre-line}@media(max-width:1000px){.messages-grid,.reservations-list,.slots-list-grid,.slots-top-grid{grid-template-columns:1fr}}@media(max-width:900px){.admin-cards{grid-template-columns:1fr 1fr}}@media(max-width:768px){.page.admin{max-width:780px}.admin-cards{grid-template-columns:1fr}.admin-card{min-height:150px;padding:28px}.login{padding:70px 22px}.login-card{border-radius:22px;padding:28px}.admin-message-header,.admin-review-header,.reservation-top{flex-direction:column}.admin-review-rating{margin-top:-8px}.btn-row{flex-direction:column}.btn-row .btn{width:100%}.form-grid,.link-row,.particular-mail-grid{grid-template-columns:1fr}.slot-admin-card{align-items:flex-start;flex-direction:column}.slot-admin-right{justify-content:space-between;width:100%}.compact-btn{flex-shrink:0}.reservations-summary-grid{grid-template-columns:1fr}.reservations-filter-card{align-items:stretch;flex-direction:column}.reservation-view-toggle{width:100%}}.contact-page{background:var(--bg-main);min-height:100vh;overflow-x:hidden}.contact-main{padding:70px 60px 110px}.contact-hero{margin:0 auto 56px;max-width:760px;text-align:center}.contact-hero h1{font-size:clamp(42px,6vw,72px);line-height:1.02;margin-bottom:22px}.contact-hero p{font-size:16px;margin:0 auto;max-width:620px}.contact-submit-card{align-items:start;background:radial-gradient(circle at top right,hsla(38,34%,57%,.12),transparent 36%),var(--bg-card);border:1px solid var(--border-soft);border-radius:28px;display:grid;gap:44px;grid-template-columns:.9fr 1.1fr;margin:0 auto;max-width:980px;padding:38px 40px 34px}.contact-submit-card h2{font-size:34px;margin:0 0 14px}.contact-submit-card p{font-size:15px}.contact-details{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.contact-details span{background:var(--bg-main);border:1px solid var(--border-soft);border-radius:999px;color:var(--text-muted);font-size:13px;padding:8px 14px}.contact-form{width:100%}.contact-form-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.contact-message{font-size:14px;margin-top:16px}.contact-message.success,.success.contact-message{color:#1e6e3a}.contact-message.error,.error.contact-message{color:#b3261e}@media(max-width:900px){.contact-submit-card{grid-template-columns:1fr;margin-top:56px}}@media(max-width:768px){.contact-main{padding:52px 22px 80px}.contact-hero{margin-bottom:44px}.contact-hero h1{font-size:40px}.contact-submit-card{border-radius:22px;margin-top:48px;padding:28px}.contact-submit-card h2{font-size:30px}.contact-form-grid{gap:0;grid-template-columns:1fr}}
