/*
Theme Name: Gratiné — V3.9.2
Author: Gratiné
Description: Site vitrine sur mesure pour Gratiné — chef à domicile à Rouen.
Version: 4.15.11
*/
:root{--orange:#ff914d;--yellow:#fab500;--ink:#171717;--cream:#fffaf5;--white:#fff;--muted:#6f675f;--line:#eadfd6;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Poppins,Arial,sans-serif;line-height:1.45}a{color:inherit}img{max-width:100%;height:auto}.container{width:min(calc(100% - 48px),var(--max));margin:auto}
.brand-group{display:flex;align-items:center;gap:16px;min-width:0}.brand-title{font-family:Poppins,Arial,sans-serif;font-size:25px;font-weight:600;color:#111;white-space:nowrap;letter-spacing:-.5px}.site-header{background:rgba(255,250,245,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(234,223,214,.7)}.nav{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand img{max-height:70px;width:auto;max-width:310px;object-fit:contain}.brand-text{font-family:"Arial Rounded MT Bold",Poppins,sans-serif;font-size:34px;font-weight:900}.brand-text span{color:var(--orange)}.menu{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0;font-size:15px;font-weight:600}.menu a{text-decoration:none}.menu .current-menu-item a,.menu a:hover{color:var(--orange)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 25px;border-radius:999px;background:var(--orange);border:2px solid var(--orange);color:#111;text-decoration:none;font-weight:800}.button.alt{background:transparent;color:var(--orange)}.mobile-toggle{display:none;border:0;background:none;font-size:28px}
.hero{position:relative;overflow:hidden;padding:62px 0 0;background:var(--cream)}.hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;min-height:550px}.hero-copy{position:relative;z-index:3;padding-bottom:55px}.kicker{color:#ed571e;font-weight:800;font-size:13px;letter-spacing:3px;margin-bottom:20px}.hero h1,h2,h3{font-family:"Arial Rounded MT Bold",Poppins,sans-serif;letter-spacing:-2px;line-height:.98;margin:0 0 20px}.hero h1{font-size:clamp(58px,6.4vw,94px);max-width:720px}.hero h1 span{color:var(--yellow)}.hero p{font-size:19px;max-width:560px;color:#3e3934;margin:0}.hero-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:27px}.hero-actions .button.alt{border-color:var(--yellow);color:#e58b00}.mini-benefits{display:flex;gap:38px;margin-top:34px}.mini-benefits>div{display:flex;gap:12px;align-items:center;font-size:14px}.mini-benefits span{font-size:30px;color:var(--orange);line-height:1}.hero-photo-wrap{position:relative;align-self:stretch;min-height:610px}.hero-photo{position:absolute;inset:0 -110px 0 0;overflow:hidden}.hero-photo img,.hero-photo video{width:100%;height:100%;object-fit:cover;display:block}.hero-photo video{background:#eee}.hero-photo.placeholder{background:linear-gradient(135deg,#f5e6d7,#f8c25c);display:flex;align-items:center;justify-content:center}.hero-photo.placeholder span{font-size:40px;font-weight:900;text-align:center;color:#fff}.scribble{position:absolute;right:18px;top:25px;color:var(--orange);font-family:cursive;font-size:32px;font-weight:700;line-height:1.05;transform:rotate(-5deg);z-index:4}.scribble i{display:block;font-style:normal;font-size:55px;margin-left:55px}.blob{position:absolute;z-index:4;bottom:0;border-radius:60% 40% 0 0;background:var(--yellow)}.blob-a{right:130px;width:130px;height:95px}.blob-b{right:0;width:180px;height:120px;background:var(--orange)}
.process{background:#fff5e9;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);padding:30px 0}.process article{display:flex;gap:20px;align-items:center;padding:10px 50px;border-right:1px solid var(--line)}.process article:last-child{border-right:0}.process-icon{width:86px;height:86px;flex:0 0 86px;border-radius:50%;background:var(--yellow);display:flex;align-items:center;justify-content:center;font-size:34px}.process h3{font-size:24px;letter-spacing:-1px;margin:0 0 7px}.process p{margin:0;color:var(--muted);font-size:16px}
.section{padding:88px 0}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:42px}.section-head.centered{justify-content:center;text-align:center}.section-head h2{font-size:clamp(42px,5vw,64px)}.under{height:4px;width:70px;border-radius:10px;background:var(--orange);margin:14px auto 0}.gallery-section{background:#fffdf9}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.gallery-item{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:22px;background:#f3e8df}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.3s}.gallery-item:hover img{transform:scale(1.04)}
.band{background:var(--orange);padding:80px 0}.band-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.band h2{font-size:clamp(44px,5vw,68px)}.band h2 span{color:#fff}.band p{max-width:650px;font-size:19px}.band .button.alt{border-color:#111;color:#111}.zone-section{background:var(--cream)}.zone-list{display:flex;flex-wrap:wrap;gap:12px}.zone-list span{background:#fff;border:1px solid var(--line);padding:14px 19px;border-radius:999px;font-weight:700}
.site-footer{background:var(--ink);color:#fff;padding:55px 0}.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}.footer-grid p{color:#cfc3bb}
@media(max-width:950px){.menu{display:none}.mobile-toggle{display:block}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:20px 0 40px}.hero-photo-wrap{min-height:430px;order:-1}.hero-photo{inset:0}.scribble{right:25px}.process-grid{grid-template-columns:1fr}.process article{border-right:0;border-bottom:1px solid var(--line);padding:22px}.process article:last-child{border-bottom:0}.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.container{width:min(calc(100% - 30px),var(--max))}.nav{min-height:75px}.brand img{max-height:52px;max-width:230px}.brand-group{gap:10px}.brand-title{font-size:16px;line-height:1.1;white-space:normal;max-width:150px}.hero{padding-top:25px}.hero h1{font-size:52px}.mini-benefits{gap:15px;flex-direction:column}.hero-photo-wrap{min-height:360px}.section{padding:65px 0}.gallery-grid{gap:9px}.band-inner{display:block}.band .button{margin-top:25px}}

/* Gratiné V3.4 — vidéos Instagram/Reels 9:16 */
.hero-photo-wrap{display:flex;align-items:center;justify-content:center;min-height:610px}
.hero-photo{position:relative!important;inset:auto!important;width:min(100%,430px);height:min(610px,72vh);aspect-ratio:9/16;border-radius:34px;overflow:hidden;box-shadow:0 20px 55px rgba(23,23,23,.14)}
.hero-photo img,.hero-photo video{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.hero-photo video{background:#eee}
.hero-photo.placeholder{display:flex;align-items:center;justify-content:center}
@media(max-width:950px){
 .hero-photo-wrap{min-height:520px}
 .hero-photo{width:min(78vw,390px);height:min(520px,75vh)}
}
@media(max-width:600px){
 .hero-photo-wrap{min-height:480px}
 .hero-photo{width:min(82vw,360px);height:min(480px,72vh);border-radius:26px}
}

.contact-section{background:#fffdf9}.contact-card{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;padding:48px;border:1px solid var(--line);border-radius:30px;background:#fff}.contact-card h2{font-size:clamp(42px,5vw,64px);margin-bottom:16px}.contact-card p{font-size:18px;color:var(--muted);max-width:620px}.contact-links{display:flex;flex-direction:column;gap:14px}.contact-link{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:18px;text-decoration:none;background:var(--cream)}.contact-link>span{font-size:28px}.contact-link small{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1.5px}.contact-link strong{display:block;font-size:18px;margin-top:2px}.site-footer a{text-decoration:none;color:#fff}.site-footer a:hover{color:var(--orange)}
@media(max-width:750px){.contact-card{grid-template-columns:1fr;padding:30px 22px;gap:25px}}

/* Gratiné V3.7 — services */
.gratine-services{background:#faf5ee;padding:78px 24px 88px}
.gratine-services-inner{max-width:1440px;margin:0 auto}
.gratine-services .gratine-eyebrow{margin:0 0 10px;text-align:center;letter-spacing:.28em;font-size:14px;color:#111}
.gratine-services h2{margin:0 auto 38px;max-width:1000px;text-align:center;font-size:clamp(32px,4vw,54px);line-height:1.05;letter-spacing:-.035em;color:#111}
.gratine-services-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.gratine-service-card{background:#fffdf9;border-radius:24px;padding:28px 24px 30px;min-height:285px;box-sizing:border-box;box-shadow:0 8px 28px rgba(17,17,17,.05)}
.gratine-service-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;background:#fff0e5;color:#ff914d;font-size:29px;font-weight:700}
.gratine-service-card h3{margin:0 0 10px;color:#111;font-size:22px;line-height:1.08;letter-spacing:-.025em}
.gratine-service-card p{margin:0;color:#333;font-size:16px;line-height:1.45}
@media (max-width:1100px){.gratine-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.gratine-services{padding:58px 18px 64px}.gratine-services-grid{grid-template-columns:1fr;gap:14px}.gratine-service-card{min-height:auto}}

/* Gratiné V3.8 */
.service-more{display:inline-block;margin-top:14px;color:var(--orange);font-weight:800;text-decoration:none}
.gratine-service-card{display:flex;flex-direction:column}.gratine-service-card .service-more{margin-top:auto;padding-top:10px}
.about-grid,.service-single-grid{display:grid;grid-template-columns:1fr .85fr;gap:60px;align-items:center}
.about-page h1,.service-single h1{font-size:clamp(48px,6vw,78px);margin-bottom:28px}
.about-content,.service-content{font-size:18px;color:#3e3934;max-width:720px}.about-content h2,.service-content h2{font-size:34px;margin-top:30px}.about-photo,.service-image{border-radius:30px;overflow:hidden;background:#f4e8dc;min-height:460px}.about-photo img,.service-image img{width:100%;height:100%;object-fit:cover;display:block}.service-placeholder{min-height:460px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;color:#9a8d83;font-size:20px;padding:30px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:14px}.contact-form .full{grid-column:1/-1}.contact-form input,.contact-form textarea{font:inherit;border:1px solid var(--line);border-radius:14px;padding:13px 15px;background:var(--cream);color:var(--ink)}.contact-form textarea{resize:vertical}.contact-form button{justify-self:start}
@media(max-width:800px){.about-grid,.service-single-grid{grid-template-columns:1fr;gap:30px}.about-photo,.service-image{min-height:360px}.service-placeholder{min-height:360px}.contact-form{grid-template-columns:1fr}.contact-form .full{grid-column:auto}}

/* Gratiné V3.8.2 — formulaire */
.gratine-contact-form{max-width:720px;margin:35px auto 60px}
.gratine-contact-form form{display:grid;gap:18px}
.gratine-contact-form label{display:grid;gap:8px;font-weight:600;color:#111}
.gratine-contact-form input,.gratine-contact-form textarea{width:100%;box-sizing:border-box;border:1px solid #ddd2c8;border-radius:14px;padding:13px 15px;font:inherit;background:#fffdf9}
.gratine-contact-form textarea{resize:vertical}
.gratine-contact-form button{justify-self:start;border:0;border-radius:999px;padding:14px 24px;background:#ff914d;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.gratine-form-message{padding:14px 18px;border-radius:14px;margin-bottom:18px}
.gratine-form-success{background:#eef8ee}
.gratine-form-error{background:#fff0ed}

/* Gratiné V3.8.3 — contact final */
.gratine-contact-native-form{display:grid;gap:18px;width:100%}
.gratine-contact-native-form label{display:grid;gap:8px;font-weight:600;color:#111}
.gratine-contact-native-form input,.gratine-contact-native-form textarea{width:100%;box-sizing:border-box;border:1px solid #ddd2c8;border-radius:14px;padding:13px 15px;font:inherit;background:#fffdf9}
.gratine-contact-native-form textarea{resize:vertical;min-height:150px}
.gratine-contact-native-form button{border:0;border-radius:999px;padding:14px 24px;background:#ff914d;color:#fff;font:inherit;font-weight:700;cursor:pointer;display:inline-block;width:max-content}
.gratine-form-message{padding:14px 18px;border-radius:14px;margin-bottom:18px}
.gratine-form-success{background:#eef8ee}
.gratine-form-error{background:#fff0ed}

/* Gratiné V3.8.4 — curseur formulaire */
.gratine-contact-form button,
.gratine-contact-native-form button,
.gratine-contact-form input[type="submit"],
.gratine-contact-native-form input[type="submit"],
.gratine-contact-form a,
.gratine-contact-native-form a {
  cursor: pointer !important;
  pointer-events: auto !important;
}
.gratine-contact-native-form button:disabled,
.gratine-contact-native-form input[type="submit"]:disabled {
  cursor: not-allowed !important;
}

/* Gratiné V3.8.5 — bouton Contact */
.gratine-contact-native-form button[type="submit"],
.gratine-contact-native-form .button,
.gratine-contact-form button[type="submit"] {
  appearance:none !important;
  -webkit-appearance:none !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  user-select:none !important;
  position:relative !important;
  z-index:5 !important;
}
.gratine-contact-native-form button[type="submit"]:hover {
  cursor:pointer !important;
  transform:translateY(-1px);
}

/* Gratiné V3.9 — services éditables et liens */
.gratine-service-link{display:inline-block;margin-top:18px;color:#111;font-weight:700;text-decoration:none}
.gratine-service-link:hover{text-decoration:underline}

/* Gratiné V3.9.1 — Contact sans formulaire */
.gratine-contact-simple{max-width:760px;margin:0 auto}
.gratine-contact-simple h1{margin:0 0 18px}
.gratine-contact-simple>p{max-width:680px;margin:0 0 32px}
.gratine-contact-card{display:flex;align-items:center;gap:20px;background:#fffdf9;border:1px solid #eadfd5;border-radius:20px;padding:22px 26px;margin:16px 0}
.gratine-contact-card-icon{width:52px;height:52px;flex:0 0 52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff0e5;color:#ff914d;font-size:25px;font-weight:700}
.gratine-contact-card span{display:block;font-size:12px;letter-spacing:.22em;color:#777;margin-bottom:5px}
.gratine-contact-card a{color:#111;text-decoration:none;font-size:21px;font-weight:700}
.gratine-contact-card a:hover{text-decoration:underline}

/* Gratiné V3.9.2 — contact simplifié */
.contact-simple{display:block}
.contact-simple-inner{max-width:780px}
.contact-simple .contact-links,.gratine-contact-simple .contact-links{display:grid;gap:16px;margin-top:28px}
.contact-simple .contact-link,.gratine-contact-simple .contact-link{display:flex;align-items:center;gap:18px;background:#fffdf9;border:1px solid var(--line);border-radius:20px;padding:20px 24px;text-decoration:none}
.contact-simple .contact-link>span,.gratine-contact-simple .contact-link>span{font-size:27px}
.contact-simple .contact-link small,.gratine-contact-simple .contact-link small{display:block;text-transform:uppercase;letter-spacing:2px;color:var(--muted);font-size:11px;margin-bottom:3px}
.contact-simple .contact-link strong,.gratine-contact-simple .contact-link strong{font-size:20px;color:#111}

/* Gratiné V3.9.4 — réseaux sociaux */
.social-links{display:flex;align-items:center;gap:10px}.social-links a{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--orange);color:#171717;text-decoration:none;transition:transform .2s,background .2s}.social-links a:hover{transform:translateY(-2px);background:var(--yellow)}.social-links svg{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:2}.social-links svg path{fill:currentColor;stroke:none}.social-links-footer{margin-top:12px}.footer-social{min-width:180px}.footer-social strong{font-size:15px}.social-links-footer a{background:#fff;color:var(--ink)}.social-links-footer a:hover{background:var(--yellow)}
@media(max-width:1100px){.social-links-header{display:none}}
@media(max-width:950px){.social-links-header{display:flex;margin-left:auto}.nav{gap:12px}.social-links-header a{width:36px;height:36px}.social-links-header svg{width:19px;height:19px}}

/* Tarifs Gratiné */
.pricing-intro{max-width:700px;margin:0 auto 34px;text-align:center;color:#5d554f}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.price-card{background:#fff;border:1px solid #f0e5dc;border-radius:24px;padding:28px;box-shadow:0 10px 30px rgba(23,23,23,.04);position:relative}.price-card.featured{border:2px solid var(--orange);transform:translateY(-5px)}.price-card.solidarity{background:#fff7ef}.price-icon{font-size:30px}.price-card h3{font-size:23px;margin:15px 0 8px}.price{font-size:30px;font-weight:800;color:var(--orange);margin-bottom:14px}.price em{font-size:14px;font-style:normal;font-weight:600;color:#6c625a}.price-card p{line-height:1.65;margin:0 0 14px;color:#514b46}.price-card small{display:block;color:#7b7169;line-height:1.5}.pricing-note{margin-top:28px;padding:18px 22px;border-radius:16px;background:#fff1e7;color:#514b46}@media(max-width:900px){.pricing-grid{grid-template-columns:repeat(2,1fr)}.price-card.featured{transform:none}}@media(max-width:600px){.pricing-grid{grid-template-columns:1fr}.price-card{padding:24px}}

/* V4.0 — visuels personnalisables */
.gratine-custom-visual{display:block;max-width:100%;height:auto;object-fit:contain}
.hero-custom-illustration{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.process-custom-visual{grid-column:1/-1;text-align:center;margin:-18px auto 8px;max-height:110px}
.process-custom-visual img{max-height:110px;width:auto;margin:auto}
.concept-custom-visual{text-align:center;margin:0 auto 18px}
.concept-custom-visual img{max-height:150px;width:auto;margin:auto}
.service-custom-image{height:150px;margin:-8px -8px 20px;overflow:hidden;border-radius:18px 18px 0 0;background:var(--cream,#fffaf5);display:flex;align-items:center;justify-content:center}
.service-custom-image img{width:100%;height:100%;object-fit:cover}
.about-custom-visual{position:absolute;right:7%;top:50%;transform:translateY(-50%);max-width:180px;z-index:1}
.about-custom-visual img{max-height:150px;width:auto}
.reservation-custom-visual{text-align:center;margin-bottom:18px}
.reservation-custom-visual img{max-height:140px;width:auto;margin:auto}
@media(max-width:800px){.about-custom-visual{position:static;transform:none;text-align:center;margin:0 auto 18px}.about-custom-visual img{max-height:110px}.service-custom-image{height:125px}}


/* V4.1 — Section podcast */
.podcast-section{background:#fff7ef}
.podcast-grid{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:60px;align-items:center}
.podcast-art{display:flex;justify-content:center;align-items:center}
.podcast-custom-visual{width:100%;max-width:360px;max-height:360px;object-fit:contain;border-radius:24px}
.podcast-placeholder{width:240px;height:240px;border-radius:28px;background:var(--orange,#ff914d);display:flex;align-items:center;justify-content:center;font-size:84px;box-shadow:12px 12px 0 var(--yellow,#fab500)}
.podcast-copy h2{font-size:clamp(36px,5vw,64px);line-height:1.02;margin:12px 0 20px}
.podcast-copy p{max-width:580px;color:var(--muted,#6b625b);font-size:18px;line-height:1.7;margin-bottom:26px}
@media(max-width:760px){.podcast-grid{grid-template-columns:1fr;gap:30px}.podcast-custom-visual{max-width:260px;max-height:260px}.podcast-copy{text-align:center}.podcast-copy p{margin-left:auto;margin-right:auto}}


/* =========================================================
   Gratiné — FormLayer reservation form
   Scoped only to the reservation page/form.
   ========================================================= */

.gratine-formlayer-wrap {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}

.gratine-formlayer-wrap .formlayer-form {
  width: 100%;
}

.gratine-formlayer-wrap .formlayer-form label {
  display: block;
  margin: 0 0 7px;
  font-weight: 700;
}

.gratine-formlayer-wrap .formlayer-form input,
.gratine-formlayer-wrap .formlayer-form select,
.gratine-formlayer-wrap .formlayer-form textarea {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 18px;
  padding: 13px 15px;
  min-height: 50px;
  border: 1px solid #e7d9ce;
  border-radius: 12px;
  background: #fffaf5;
  color: #171717;
  font: inherit;
}

.gratine-formlayer-wrap .formlayer-form textarea {
  min-height: 130px;
  resize: vertical;
}

.gratine-formlayer-wrap .formlayer-form input:focus,
.gratine-formlayer-wrap .formlayer-form select:focus,
.gratine-formlayer-wrap .formlayer-form textarea:focus {
  outline: none;
  border-color: #FF914D;
  box-shadow: 0 0 0 3px rgba(255,145,77,.15);
}

.gratine-formlayer-wrap .formlayer-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 26px;
  border: 2px solid #FF914D;
  border-radius: 999px;
  background: #FF914D;
  color: #171717;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.gratine-formlayer-wrap .formlayer-form button[type="submit"]:hover {
  filter: brightness(.97);
}

.gratine-formlayer-wrap .formlayer-form input[type="checkbox"] {
  display: inline-block;
  width: auto;
  min-height: auto;
  margin: 0 8px 0 0;
  padding: 0;
}

@media (max-width: 760px) {
  .gratine-formlayer-wrap {
    max-width: 100%;
  }
}


/* Gratiné V4.6 — ajustements demandés */
.hero-photo-wrap{min-height:760px}
.hero-photo{width:min(100%,470px);height:min(760px,82vh)}
.menu a.button:hover,.menu a.button:focus{color:#171717;background:var(--orange);border-color:var(--orange)}
@media(max-width:950px){.hero-photo-wrap{min-height:600px}.hero-photo{width:min(82vw,420px);height:min(600px,78vh)}}
@media(max-width:600px){.hero-photo-wrap{min-height:500px}.hero-photo{width:min(84vw,370px);height:min(500px,72vh)}}


/* Agenda des ateliers */
.ateliers-section{background:#fffaf5}.ateliers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.atelier-card{background:#fff;border:1px solid rgba(23,23,23,.10);border-radius:24px;overflow:hidden;box-shadow:0 10px 30px rgba(23,23,23,.06);display:flex;flex-direction:column}.atelier-image{display:block;aspect-ratio:16/10;overflow:hidden}.atelier-image img{width:100%;height:100%;object-fit:cover}.atelier-body{padding:24px}.atelier-date{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--orange,#ff914d);margin-bottom:8px}.atelier-body h3{margin:0 0 10px;font-size:1.45rem}.atelier-meta{font-weight:600;margin-bottom:10px}.atelier-price{font-size:1.25rem;font-weight:800;margin:10px 0}.atelier-places{font-size:.9rem;font-weight:600;margin-bottom:12px}.atelier-host-note{margin:12px 0 16px;padding:13px 14px;border-radius:14px;background:#fff3e9;border:1px solid rgba(255,145,77,.35);line-height:1.45}.atelier-host-note strong{display:block;color:#171717}.atelier-host-note span{font-size:.9rem;color:#5f554e}.atelier-desc{margin-bottom:18px}.atelier-desc p{margin:.4rem 0}.ateliers-all{text-align:center;margin-top:30px}.ateliers-empty{text-align:center;padding:28px;border:1px dashed rgba(23,23,23,.2);border-radius:20px}.ateliers-section .button{display:inline-block}.ateliers-section .button.alt{color:#171717}
@media(max-width:900px){.ateliers-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.ateliers-grid{grid-template-columns:1fr}.atelier-body{padding:20px}}
.archive-gratine_atelier .site-main{max-width:1200px;margin:auto}.atelier-archive-head{padding:60px 20px 30px;text-align:center}.atelier-archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:20px}.atelier-archive-grid .atelier-card{height:100%}@media(max-width:900px){.atelier-archive-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.atelier-archive-grid{grid-template-columns:1fr}}

/* Ateliers — affichage photo portrait sans retouche obligatoire */
.atelier-image{aspect-ratio:4/3;background:#f7f1eb}
.atelier-image img{object-fit:cover;object-position:center}
.atelier-desc h4{margin:20px 0 8px;font-size:1.05rem}
.atelier-desc ul{margin:8px 0 18px;padding-left:20px}
.atelier-host-note b{display:inline-block;margin-top:5px}


/* Gratiné V4.10 — mobile menu, Spotify, email responsive, mentions légales */
.mobile-toggle{display:none;align-items:center;justify-content:center;width:46px;height:46px;border:2px solid #171717;border-radius:12px;background:#fffdf9;color:#171717;font-size:28px;line-height:1;cursor:pointer;z-index:31}
.mobile-menu{display:none;background:#fffaf5;border-top:1px solid var(--line);box-shadow:0 12px 24px rgba(23,23,23,.08)}
.mobile-menu-inner{padding:16px 20px 22px}.mobile-menu-list,.mobile-menu-inner .menu{display:flex!important;flex-direction:column;align-items:stretch;gap:4px;list-style:none;margin:0;padding:0}.mobile-menu-list a,.mobile-menu-inner .menu a{display:block;padding:13px 10px;text-decoration:none;font-weight:700}.mobile-menu-inner .menu .button{display:block;text-align:center;margin-top:8px}.spotify-link a{display:inline-flex;align-items:center;gap:9px}.spotify-link svg{width:26px;height:26px;display:block}.spotify-link svg circle{fill:#1DB954;stroke:#1DB954}.spotify-link svg path{stroke:#fff}.legal-business{font-size:13px!important;line-height:1.55;color:#cfc3bb!important}.contact-email-value{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:950px){.mobile-toggle{display:inline-flex}.site-header>.container.nav>nav{display:none}.social-links-header{display:flex;margin-left:auto}.mobile-menu{display:block}.mobile-menu[hidden]{display:none}}
@media(max-width:600px){.mobile-toggle{width:42px;height:42px;font-size:25px}.social-links-header{display:none}.contact-link{align-items:flex-start}.contact-link strong{font-size:16px;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.footer-grid{gap:24px}.spotify-link strong{font-size:14px}}


/* V4.12 — Spotify propre + 3 réseaux visibles sur mobile */
.social-links-header .social-spotify svg{fill:none;stroke:currentColor;stroke-width:0}
.social-links-header .social-spotify svg circle{fill:#1DB954;stroke:#1DB954}
.social-links-header .social-spotify svg path{fill:none;stroke:#fff;stroke-width:1.55;stroke-linecap:round}
.spotify-link .spotify-brand-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px}
.spotify-link .spotify-brand-icon svg{width:28px;height:28px;display:block}
.spotify-link .spotify-brand-icon circle{fill:#1DB954;stroke:#1DB954}
.spotify-link .spotify-brand-icon path{fill:none;stroke:#fff;stroke-width:1.55;stroke-linecap:round}
@media(max-width:600px){.social-links-header{display:flex!important;margin-left:auto!important;gap:7px!important}.social-links-header a{width:34px;height:34px}.social-links-header svg{width:18px;height:18px}.mobile-toggle{order:4}.social-links-header{order:3}.brand-group{min-width:0}.brand-title{max-width:180px}.nav{gap:8px!important}}

/* V4.12.1 — réseaux mobile réellement visibles + Spotify aligné dans le footer */
@media (max-width: 600px){
  .site-header .nav{display:flex!important;align-items:center!important;gap:7px!important;overflow:visible!important;}
  .site-header .brand-group{flex:1 1 auto!important;min-width:0!important;max-width:calc(100% - 128px)!important;gap:8px!important;}
  .site-header .brand{flex:0 0 auto!important;}
  .site-header .brand img{max-width:54px!important;max-height:54px!important;}
  .site-header .brand-title{flex:1 1 auto!important;min-width:0!important;max-width:none!important;font-size:15px!important;line-height:1.08!important;white-space:normal!important;overflow:hidden!important;}
  .site-header .social-links-header{display:flex!important;flex:0 0 auto!important;gap:5px!important;margin-left:auto!important;order:3!important;}
  .site-header .social-links-header a{display:inline-flex!important;flex:0 0 29px!important;width:29px!important;height:29px!important;}
  .site-header .social-links-header svg{width:16px!important;height:16px!important;}
  .site-header .mobile-toggle{display:inline-flex!important;flex:0 0 38px!important;width:38px!important;height:38px!important;font-size:23px!important;order:4!important;}
}
.footer-social .social-links-footer{display:flex!important;align-items:center!important;gap:10px!important;}
.footer-social .social-links-footer > a{position:relative!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 40px!important;width:40px!important;height:40px!important;}
.footer-social .social-links-footer .social-spotify svg{fill:none!important;stroke:currentColor!important;stroke-width:0!important;}
.footer-social .social-links-footer .social-spotify svg circle{fill:#1DB954!important;stroke:#1DB954!important;}
.footer-social .social-links-footer .social-spotify svg path{fill:none!important;stroke:#fff!important;stroke-width:1.55!important;stroke-linecap:round!important;}

/* V4.12.2 — réseaux du header visibles dès les petits écrans mobiles */
@media (max-width: 767px){
  .site-header .nav{display:flex!important;align-items:center!important;gap:6px!important;min-height:76px!important;width:calc(100% - 24px)!important;}
  .site-header .brand-group{display:flex!important;align-items:center!important;flex:1 1 auto!important;min-width:0!important;max-width:none!important;gap:7px!important;}
  .site-header .brand{display:block!important;flex:0 0 auto!important;}
  .site-header .brand img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;object-fit:contain!important;}
  .site-header .brand-title{display:block!important;flex:1 1 auto!important;min-width:0!important;max-width:none!important;font-size:14px!important;line-height:1.08!important;letter-spacing:-.25px!important;white-space:normal!important;overflow:hidden!important;}
  .site-header .social-links-header{display:flex!important;align-items:center!important;justify-content:flex-end!important;flex:0 0 auto!important;gap:4px!important;margin:0!important;order:3!important;}
  .site-header .social-links-header a{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 28px!important;width:28px!important;height:28px!important;min-width:28px!important;border-radius:50%!important;}
  .site-header .social-links-header svg{width:15px!important;height:15px!important;}
  .site-header .mobile-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 36px!important;width:36px!important;height:36px!important;font-size:22px!important;order:4!important;padding:0!important;}
}
@media (max-width: 420px){
  .site-header .nav{width:calc(100% - 16px)!important;gap:4px!important;}
  .site-header .brand img{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;}
  .site-header .brand-title{font-size:12.5px!important;line-height:1.05!important;}
  .site-header .social-links-header{gap:3px!important;}
  .site-header .social-links-header a{flex-basis:25px!important;width:25px!important;height:25px!important;min-width:25px!important;}
  .site-header .social-links-header svg{width:13px!important;height:13px!important;}
  .site-header .mobile-toggle{flex-basis:34px!important;width:34px!important;height:34px!important;font-size:20px!important;}
}
@media (max-width: 350px){
  .site-header .brand-title{font-size:11.5px!important;}
  .site-header .social-links-header a{flex-basis:23px!important;width:23px!important;height:23px!important;min-width:23px!important;}
  .site-header .social-links-header svg{width:12px!important;height:12px!important;}
  .site-header .mobile-toggle{flex-basis:32px!important;width:32px!important;height:32px!important;font-size:19px!important;}
}

/* V4.12.3 — header mobile robuste : réseaux toujours visibles en portrait */
@media (max-width: 767px){
  .site-header .nav{flex-wrap:wrap!important;align-content:center!important;row-gap:6px!important;padding-top:7px!important;padding-bottom:7px!important;}
  .site-header .brand-group{flex:1 1 auto!important;width:calc(100% - 42px)!important;max-width:none!important;min-width:0!important;}
  .site-header .mobile-toggle{flex:0 0 36px!important;width:36px!important;margin-left:auto!important;}
  .site-header .social-links-header{order:5!important;flex:0 0 100%!important;width:100%!important;justify-content:center!important;display:flex!important;gap:7px!important;margin:0!important;padding:2px 0 1px!important;}
  .site-header .social-links-header a{width:30px!important;height:30px!important;min-width:30px!important;flex:0 0 30px!important;}
  .site-header .social-links-header svg{width:16px!important;height:16px!important;}
}
@media (max-width: 420px){
  .site-header .nav{width:calc(100% - 12px)!important;gap:4px!important;}
  .site-header .brand img{width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;}
  .site-header .brand-title{font-size:13px!important;line-height:1.05!important;}
  .site-header .mobile-toggle{flex-basis:34px!important;width:34px!important;height:34px!important;font-size:20px!important;}
  .site-header .social-links-header a{width:28px!important;height:28px!important;min-width:28px!important;flex-basis:28px!important;}
  .site-header .social-links-header svg{width:15px!important;height:15px!important;}
}
@media (max-width: 350px){
  .site-header .brand-title{font-size:12px!important;}
  .site-header .social-links-header{gap:5px!important;}
  .site-header .social-links-header a{width:27px!important;height:27px!important;min-width:27px!important;flex-basis:27px!important;}
}


/* V4.12.4 — navigation desktop : le bouton de réservation reste sur une seule ligne */
@media (min-width: 951px){
  .menu a{white-space:nowrap;}
  .menu .button, .menu a[href*="/reservation/"]{white-space:nowrap;}
}

/* Navigation rapide du one-page */
.onepage-scroll-controls{position:fixed;right:18px;bottom:22px;z-index:25;display:flex;flex-direction:column;gap:8px;}
.onepage-scroll-btn{width:44px;height:44px;border:2px solid #171717;border-radius:50%;background:#fffdf9;color:#171717;font-size:22px;font-weight:800;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.12);transition:transform .15s ease,background .15s ease,opacity .15s ease;}
.onepage-scroll-btn:hover{transform:translateY(-1px);background:#ff914d;}
.onepage-scroll-btn:disabled{opacity:.35;cursor:default;transform:none;}
.onepage-scroll-btn:focus-visible{outline:3px solid #fab500;outline-offset:2px;}
@media(max-width:600px){.onepage-scroll-controls{right:10px;bottom:14px;gap:6px;}.onepage-scroll-btn{width:40px;height:40px;font-size:20px;}}

/* V4.12.6 — accessibilité et navigation légale */
.skip-link{position:fixed;left:12px;top:12px;z-index:9999;transform:translateY(-160%);background:#171717;color:#fff;padding:10px 14px;border-radius:8px;font-weight:700;text-decoration:none;transition:transform .15s ease;}
.skip-link:focus{transform:translateY(0);outline:3px solid #FAB500;outline-offset:3px;}
:focus-visible{outline:3px solid #FAB500;outline-offset:3px;}
.footer-legal-links{padding:14px 0;border-top:1px solid rgba(23,23,23,.12);}
.footer-legal-links .container{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;}
.footer-legal-links a{text-decoration:underline;text-underline-offset:3px;}
.legal-page{padding:80px 0 100px;}
.legal-container{max-width:900px;}
.legal-container h1{font-size:clamp(2rem,5vw,4rem);margin:0 0 40px;}
.legal-container h2{margin-top:34px;font-size:1.35rem;}
.legal-container p,.legal-container li{line-height:1.75;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skip-link{transition:none!important}}
@media (max-width:600px){.footer-legal-links .container{justify-content:flex-start;gap:8px 14px}.footer-legal-links a{font-size:.9rem}.legal-page{padding:52px 0 70px}}


/* Header réseaux : ils restent visibles aussi sur grand écran, sans modifier la navigation existante. */
@media(min-width:1101px){.site-header .social-links-header{display:flex!important;margin-left:8px!important;flex:0 0 auto!important}.site-header .nav{gap:18px!important}.site-header .social-links-header a{width:38px!important;height:38px!important}.site-header .social-links-header svg{width:19px!important;height:19px!important;}}


/* Gratiné V4.13 — galerie fixe de 8 photos + carrousel moderne responsive */
.gallery-section .gratine-gallery-carousel{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  align-items:center;
  gap:12px;
}
.gallery-section .gratine-gallery-viewport{
  min-width:0;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:4px 2px 12px;
}
.gallery-section .gratine-gallery-viewport::-webkit-scrollbar{display:none}
.gallery-section .gratine-gallery-track{
  display:flex;
  flex-wrap:nowrap;
  gap:16px;
  width:max-content;
}
.gallery-section .gratine-gallery-slide{
  flex:0 0 clamp(150px,calc((100vw - 220px)/4),240px);
  width:clamp(150px,calc((100vw - 220px)/4),240px);
  aspect-ratio:9/16;
  margin:0;
  overflow:hidden;
  border-radius:22px;
  background:#f3e8df;
  scroll-snap-align:start;
  box-shadow:0 10px 30px rgba(23,23,23,.08);
}
.gallery-section .gratine-gallery-slide img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}
.gallery-section .gratine-gallery-slide:hover img{transform:scale(1.035)}
.gallery-section .gratine-gallery-arrow{
  width:48px;
  height:48px;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fff;
  color:var(--ink);
  font-size:34px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(23,23,23,.10);
  transition:transform .2s ease,opacity .2s ease,background .2s ease;
}
.gallery-section .gratine-gallery-arrow:hover:not(:disabled){transform:translateY(-2px);background:var(--yellow)}
.gallery-section .gratine-gallery-arrow:disabled{opacity:.3;cursor:default}
.gratine-gallery-progress{
  width:min(360px,70%);
  height:4px;
  margin:8px auto 0;
  border-radius:99px;
  background:#eadfd6;
  overflow:hidden;
}
.gratine-gallery-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--orange);transition:width .2s ease}
@media(max-width:950px){
  .gallery-section .gratine-gallery-carousel{grid-template-columns:40px minmax(0,1fr) 40px;gap:8px}
  .gallery-section .gratine-gallery-arrow{width:40px;height:40px;font-size:29px}
  .gallery-section .gratine-gallery-slide{flex-basis:clamp(150px,30vw,220px);width:clamp(150px,30vw,220px);aspect-ratio:9/16}
}
@media(max-width:600px){
  .gallery-section .gratine-gallery-carousel{display:block}
  .gallery-section .gratine-gallery-viewport{padding-left:0;padding-right:0}
  .gallery-section .gratine-gallery-track{gap:12px}
  .gallery-section .gratine-gallery-slide{flex-basis:min(58vw,220px);width:min(58vw,220px);aspect-ratio:9/16;border-radius:18px}
  .gallery-section .gratine-gallery-arrow{position:absolute;top:50%;z-index:2;transform:translateY(-50%);width:38px;height:38px;font-size:27px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px)}
  .gallery-section .gratine-gallery-arrow:hover:not(:disabled){transform:translateY(-50%)}
  .gallery-section .gratine-gallery-arrow.is-prev{left:10px}
  .gallery-section .gratine-gallery-arrow.is-next{right:10px}
}


/* V4.15 — agenda classique */
.gratine-calendar{max-width:1100px;margin:0 auto;padding:0 0 20px}.gratine-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:center;margin-bottom:22px}.gratine-calendar-head h2{margin:.1em 0;font-size:clamp(1.7rem,3vw,2.4rem);text-transform:capitalize}.gratine-calendar-head p{margin:0;color:#665e58}.gratine-cal-prev,.gratine-cal-next{width:48px;height:48px;border:1px solid rgba(23,23,23,.12);border-radius:50%;background:#fff;font-size:32px;line-height:1;cursor:pointer}.gratine-cal-prev:hover,.gratine-cal-next:hover{background:#ff914d;color:#171717}.gratine-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.gratine-calendar-week>div{text-align:center;font-weight:800;padding:10px 4px;text-transform:uppercase;font-size:.78rem;letter-spacing:.06em;color:#665e58}.gratine-calendar-days{border-left:1px solid rgba(23,23,23,.1);border-top:1px solid rgba(23,23,23,.1);border-radius:14px;overflow:hidden}.cal-cell{min-height:125px;background:#fff;border-right:1px solid rgba(23,23,23,.1);border-bottom:1px solid rgba(23,23,23,.1);padding:9px;position:relative}.cal-cell.empty{background:#f7f4f1}.cal-number{display:block;font-weight:800;margin-bottom:7px}.cal-event{display:block;width:100%;text-align:left;border:0;border-radius:9px;padding:7px 8px;margin:4px 0;font:inherit;cursor:pointer}.cal-event strong{display:block;font-size:.82rem;line-height:1.2}.cal-event small{display:block;margin-top:3px;font-size:.74rem}.cal-event.atelier{background:#ff914d;color:#171717}.cal-event.custom{background:#fab500;color:#171717}.cal-event.indispo{background:#171717;color:#fff}.gratine-calendar-legend{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;margin:18px 0;color:#5f554e;font-size:.9rem}.cal-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.cal-dot.atelier{background:#ff914d}.cal-dot.custom{background:#fab500}.cal-dot.unavailable{background:#171717}.gratine-calendar-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px}.gratine-calendar-modal[hidden]{display:none}.gratine-calendar-modal-bg{position:absolute;inset:0;background:rgba(23,23,23,.68)}.gratine-calendar-modal-box{position:relative;z-index:1;background:#fff;width:min(720px,100%);max-height:88vh;overflow:auto;border-radius:22px;padding:30px;box-shadow:0 25px 80px rgba(0,0,0,.3)}.gratine-calendar-close{position:absolute;right:12px;top:12px;width:42px;height:42px;border:0;border-radius:50%;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.15);font-size:28px;cursor:pointer}.gratine-calendar-modal-content h3{font-size:2rem;margin:.15em 0 .4em}.cal-modal-image{width:100%;max-height:340px;object-fit:cover;border-radius:14px;margin:12px 0 18px}.cal-price{font-weight:800;font-size:1.15rem}.gratine-cal-open{overflow:hidden}@media(max-width:720px){.cal-cell{min-height:105px;padding:6px}.cal-event{padding:6px;font-size:.8rem}.cal-event strong{font-size:.72rem}.cal-event small{font-size:.68rem}.gratine-calendar-modal-box{padding:24px 18px}.gratine-calendar-head{gap:8px}.gratine-cal-prev,.gratine-cal-next{width:42px;height:42px}}@media(max-width:520px){.gratine-calendar-week>div{font-size:.65rem}.cal-cell{min-height:88px}.cal-number{font-size:.82rem}.cal-event{padding:5px 4px}.cal-event strong{font-size:.64rem}.cal-event small{display:none}.gratine-calendar-legend{font-size:.8rem;gap:10px}}

/* Gratiné V4.15.2 — agenda limité à octobre/novembre/décembre + ateliers plus soignés + navigation plus aérée */
.gratine-calendar .gratine-cal-prev:disabled,
.gratine-calendar .gratine-cal-next:disabled{opacity:.28;cursor:not-allowed;background:#f5f1ed;color:#171717}
.gratine-calendar .gratine-cal-prev:not(:disabled):hover,
.gratine-calendar .gratine-cal-next:not(:disabled):hover{transform:translateY(-1px)}
.gratine-calendar .cal-event.atelier{
  background:linear-gradient(145deg,#ff914d 0%,#ff9d5e 100%);
  border:1px solid rgba(23,23,23,.08);
  border-left:5px solid #fab500;
  border-radius:14px;
  padding:9px 10px 10px;
  box-shadow:0 6px 16px rgba(23,23,23,.10);
  transition:transform .18s ease,box-shadow .18s ease;
}
.gratine-calendar .cal-event.atelier:hover,
.gratine-calendar .cal-event.atelier:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(23,23,23,.15);outline:none}
.gratine-calendar .cal-event-kicker{display:block;font-size:.62rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;opacity:.72;margin-bottom:3px}
.gratine-calendar .cal-event.atelier strong{font-size:.84rem;line-height:1.16;letter-spacing:-.01em}
.gratine-calendar .cal-event.atelier small{font-weight:800;margin-top:6px}
.gratine-calendar .cal-event.custom{border-radius:12px;padding:8px 10px;box-shadow:0 4px 12px rgba(23,23,23,.08)}
.gratine-calendar .cal-event.indispo{border-radius:10px;padding:7px 9px;font-weight:800}
.gratine-calendar-modal-box{padding:0;overflow:hidden;border-radius:28px;background:#fffdf9}
.gratine-calendar-modal-content{padding:30px 32px 34px}
.gratine-calendar-modal-content .atelier-modal-head{padding-right:42px}
.gratine-calendar-modal-content .atelier-modal-head .kicker{margin-bottom:10px}
.gratine-calendar-modal-content h3{font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.02;margin:0 0 16px}
.gratine-calendar-modal-content .cal-modal-image{display:block;width:calc(100% + 64px);max-width:none;height:min(390px,48vw);margin:0 -32px 22px;object-fit:cover;border-radius:0}
.gratine-calendar-modal-content .cal-modal-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.gratine-calendar-modal-content .cal-modal-meta span{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:#fff1e6;border:1px solid rgba(255,145,77,.28);font-weight:700;font-size:.9rem}
.gratine-calendar-modal-content .cal-price{font-size:1.35rem;margin:10px 0 4px}
.gratine-calendar-modal-content .cal-places{font-weight:700;margin:0 0 18px}
.gratine-calendar-modal-content .cal-modal-description{font-size:1.03rem;line-height:1.7;color:#3e3934;margin-bottom:18px}
.gratine-calendar-modal-content h4{font-size:1.05rem;margin:22px 0 8px}
.gratine-calendar-modal-content .cal-modal-program{line-height:1.7;color:#3e3934;margin-bottom:24px}
.gratine-calendar-modal-content .button{margin-top:8px;max-width:100%;box-sizing:border-box;white-space:normal;text-align:center;line-height:1.2}
@media(min-width:1101px){
  .site-header .nav{gap:32px!important}
  .site-header nav{flex:1 1 auto;min-width:0}
  .site-header .menu{justify-content:flex-end;gap:34px!important}
  .site-header .social-links-header{margin-left:14px!important}
}
@media(max-width:1100px) and (min-width:951px){.site-header .menu{gap:22px}.site-header .nav{gap:20px}}
@media(max-width:720px){
  .gratine-calendar-modal-content{padding:24px 20px 28px}
  .gratine-calendar-modal-content .cal-modal-image{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px;height:260px}
  .gratine-calendar-modal-content .cal-modal-meta span{font-size:.82rem}
}
@media(max-width:520px){
  .gratine-calendar .cal-event.atelier{border-left-width:3px;padding:6px 6px 7px;border-radius:11px}
  .gratine-calendar .cal-event-kicker{font-size:.52rem}
  .gratine-calendar .cal-event.atelier strong{font-size:.62rem}
  .gratine-calendar .cal-event.atelier small{font-size:.58rem;margin-top:4px}
}


/* V4.15.4 — Agenda : popup réellement responsive + navigation desktop plus respirable. */
.gratine-calendar-modal{padding:12px;align-items:center;overflow:auto;-webkit-overflow-scrolling:touch}
.gratine-calendar-modal-box{width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.gratine-calendar-modal-content{box-sizing:border-box}
.gratine-calendar-modal-content .cal-modal-image{max-height:320px}
.gratine-calendar-modal-content .button{display:flex;width:100%;min-height:48px;padding:13px 18px;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
@media(max-width:720px){
  .gratine-calendar-modal{padding:8px;align-items:flex-start}
  .gratine-calendar-modal-box{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:20px}
  .gratine-calendar-modal-content{padding:22px 16px 24px}
  .gratine-calendar-modal-content .atelier-modal-head{padding-right:38px}
  .gratine-calendar-modal-content h3{font-size:clamp(1.35rem,6vw,1.8rem);line-height:1.12;margin-bottom:12px}
  .gratine-calendar-modal-content .cal-modal-image{width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;height:190px;max-height:190px;object-fit:cover}
  .gratine-calendar-modal-content .cal-modal-meta{gap:6px;margin-bottom:14px}
  .gratine-calendar-modal-content .cal-modal-meta span{font-size:.78rem;padding:7px 9px}
  .gratine-calendar-modal-content .cal-modal-description{font-size:.95rem;line-height:1.55}
  .gratine-calendar-modal-content .cal-modal-program{line-height:1.55;font-size:.95rem}
  .gratine-calendar-modal-content .button{margin-top:14px;font-size:.95rem;line-height:1.25}
  .gratine-calendar-close{right:8px;top:8px;width:38px;height:38px;font-size:25px}
}
@media(min-width:1101px){
  .site-header .nav{gap:12px!important}
  .site-header nav{flex:1 1 auto;min-width:0}
  .site-header .menu{justify-content:flex-end;gap:18px!important;flex-wrap:nowrap!important;font-size:14px!important}
  .site-header .menu>li{flex:0 0 auto!important}
  .site-header .menu a{white-space:nowrap!important}
  .site-header .brand-title{font-size:22px!important}
  .site-header .social-links-header{margin-left:8px!important;gap:7px!important}
  .site-header .social-links-header a{width:34px!important;height:34px!important}
  .site-header .social-links-header svg{width:17px!important;height:17px!important}
}
@media(max-width:1100px) and (min-width:951px){
  .site-header .nav{gap:10px!important}
  .site-header .menu{gap:13px!important;font-size:13px!important;flex-wrap:nowrap!important}
  .site-header .menu a{white-space:nowrap!important}
  .site-header .brand-title{font-size:20px!important}
}

/* V4.15.7 — YouTube Tes pieds sous ta table */
.social-links .social-youtube{background:#ff0000;color:#fff;}
.social-links .social-youtube:hover{background:#cc0000;}
.social-links .social-youtube svg{fill:none;stroke:none;}
.social-links-footer .social-youtube{background:#fff;color:#ff0000;}
.social-links-footer .social-youtube:hover{background:var(--yellow);color:#ff0000;}

/* V4.15.8 — agenda mobile : alignement fiable des jours et des dates. */
.gratine-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;box-sizing:border-box}
.gratine-calendar-week,.gratine-calendar-days{box-sizing:border-box}
.gratine-calendar-week>div,.gratine-calendar-days .cal-cell{box-sizing:border-box;min-width:0}
.cal-cell{overflow:hidden}
@media(max-width:520px){.gratine-calendar-week>div{padding-left:2px;padding-right:2px;white-space:nowrap}.cal-cell{padding:5px 4px}.cal-number{line-height:1.2}.cal-event{min-width:0;overflow:hidden}.cal-event strong{white-space:normal;overflow-wrap:anywhere}}

/* V4.15.9 — agenda mobile : contenu des cases mieux réparti et lisible. */
@media(max-width:720px){
  .gratine-calendar-days{overflow:hidden}
  .gratine-calendar .cal-cell{min-width:0;min-height:112px;padding:7px 6px;overflow:hidden}
  .gratine-calendar .cal-number{font-size:.82rem;line-height:1;margin:0 0 7px;text-align:left}
  .gratine-calendar .cal-event{box-sizing:border-box;min-width:0;max-width:100%;margin:4px 0;padding:6px 6px;overflow:hidden;word-break:break-word;overflow-wrap:anywhere}
  .gratine-calendar .cal-event-kicker{font-size:.5rem;line-height:1.1;white-space:normal}
  .gratine-calendar .cal-event.atelier strong{font-size:.66rem;line-height:1.18;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;word-break:break-word}
  .gratine-calendar .cal-event.atelier small{font-size:.57rem;line-height:1.15;white-space:normal;overflow-wrap:anywhere}
  .gratine-calendar .cal-event.custom,
  .gratine-calendar .cal-event.indispo{font-size:.62rem;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:520px){
  .gratine-calendar-week>div{padding:8px 1px;font-size:.62rem;line-height:1}
  .gratine-calendar .cal-cell{min-height:108px;padding:6px 4px}
  .gratine-calendar .cal-number{font-size:.78rem;margin-bottom:6px}
  .gratine-calendar .cal-event.atelier{border-left-width:3px;padding:6px 5px;margin:3px 0}
  .gratine-calendar .cal-event-kicker{font-size:.47rem;letter-spacing:.06em;margin-bottom:2px}
  .gratine-calendar .cal-event.atelier strong{font-size:.63rem;line-height:1.16;-webkit-line-clamp:3}
  .gratine-calendar .cal-event.atelier small{font-size:.55rem;line-height:1.1;margin-top:4px}
  .gratine-calendar .cal-event.custom,
  .gratine-calendar .cal-event.indispo{padding:5px 4px;font-size:.59rem;line-height:1.15}
}


/* Gratiné V4.15.10 — mobile agenda : cases lisibles, sans débordement */
@media (max-width: 720px){
  .gratine-calendar-days{overflow:hidden !important;}
  .gratine-calendar-grid.gratine-calendar-days{grid-template-columns:repeat(7,minmax(0,1fr)) !important;}
  .gratine-calendar .cal-cell{box-sizing:border-box !important;min-width:0 !important;width:auto !important;min-height:104px !important;padding:5px 3px !important;overflow:hidden !important;}
  .gratine-calendar .cal-number{font-size:.78rem !important;line-height:1 !important;margin:0 0 5px !important;}
  .gratine-calendar .cal-event{box-sizing:border-box !important;width:100% !important;max-width:100% !important;min-width:0 !important;margin:3px 0 !important;padding:5px 4px !important;overflow:hidden !important;white-space:normal !important;word-break:normal !important;overflow-wrap:anywhere !important;}
  .gratine-calendar .cal-event-kicker{display:none !important;}
  .gratine-calendar .cal-event strong{display:-webkit-box !important;-webkit-box-orient:vertical !important;-webkit-line-clamp:2 !important;overflow:hidden !important;font-size:.64rem !important;line-height:1.12 !important;margin:0 !important;}
  .gratine-calendar .cal-event small{display:block !important;font-size:.54rem !important;line-height:1.05 !important;margin-top:3px !important;white-space:normal !important;}
  .gratine-calendar .cal-event.custom,.gratine-calendar .cal-event.indispo{font-size:.58rem !important;line-height:1.1 !important;}
}
@media (max-width: 520px){
  .gratine-calendar-week>div{font-size:.58rem !important;padding:7px 0 !important;letter-spacing:0 !important;}
  .gratine-calendar .cal-cell{min-height:96px !important;padding:5px 2px !important;}
  .gratine-calendar .cal-number{font-size:.72rem !important;margin-bottom:4px !important;}
  .gratine-calendar .cal-event{padding:4px 3px !important;border-radius:7px !important;}
  .gratine-calendar .cal-event strong{font-size:.59rem !important;line-height:1.08 !important;-webkit-line-clamp:2 !important;}
  .gratine-calendar .cal-event small{font-size:.51rem !important;line-height:1 !important;}
}

/* V4.15.10 — carrousel Story : conserver les 8 emplacements et le format 9:16 */
.gallery-section .gratine-gallery-track{flex-wrap:nowrap !important;width:max-content !important;}
.gallery-section .gratine-gallery-slide{aspect-ratio:9/16 !important;height:auto !important;}
@media(max-width:600px){
  .gallery-section .gratine-gallery-slide{flex:0 0 min(58vw,220px) !important;width:min(58vw,220px) !important;aspect-ratio:9/16 !important;height:auto !important;}
}

/* V4.15.11 — Playlist « Il écoute quoi, Gratiné ? » */
.playlist-section{background:#fff7ef}
.playlist-card{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:30px;align-items:center;padding:42px;border:1px solid var(--line);border-radius:30px;background:#fff}
.playlist-icon{width:76px;height:76px;border-radius:50%;background:var(--yellow);display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:900}
.playlist-copy h2{font-size:clamp(36px,4.5vw,58px);margin-bottom:14px}
.playlist-copy p{margin:0;max-width:680px;font-size:18px;color:var(--muted)}
.playlist-platforms{margin-top:14px;font-size:13px;font-weight:800;letter-spacing:.04em;color:#5d554f}
.playlist-action{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:190px;text-align:center}
.playlist-action small{max-width:190px;color:var(--muted);font-size:11px;line-height:1.35}
@media(max-width:760px){.playlist-card{grid-template-columns:1fr;text-align:center;padding:30px 24px}.playlist-icon{margin:0 auto}.playlist-copy p{margin-left:auto;margin-right:auto}.playlist-action{width:100%}.playlist-action .button{width:100%}.playlist-platforms{line-height:1.7}}
