/* Site-wide fixes shared by every page. */

/* Newsletter ("News from the Stables") on phones: email field and Subscribe button stacked,
   each full width and lined up with the text edges, instead of one white box around both. */
@media (max-width:479px){
.ec-news .ec-footer__form{gap:10px;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.ec-news .ec-footer__form:focus-within{box-shadow:none}
.ec-news .ec-footer__input{flex:none;width:100%;height:52px;padding:0 18px;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(10,14,40,.18)}
.ec-news .ec-footer__input:focus{box-shadow:0 0 0 2px #232856,0 8px 22px rgba(10,14,40,.18)}
.ec-news .ec-footer__submit{width:100%;height:52px;border-radius:14px}
.ec-news .ec-footer__news-title{margin-bottom:8px}
}

/* Home banner: only the first slide title is the page <h1>; the other slide titles are divs styled to match. */
.banner-slide div.hero-heading{margin:0;font-family:var(--_typography---h1--font-family);font-weight:var(--_typography---h1--font-weight)}

/* Footer: copyright line with the Legal Notice link */
.ec-footer__copy{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ec-footer__copy a{color:rgba(255,255,255,.8);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.35);transition:color .2s ease,text-decoration-color .2s ease}
.ec-footer__copy a:hover{color:#fff;text-decoration-color:#fff}
.ec-footer__copy a:focus-visible{outline:2px solid var(--ec-accent);outline-offset:3px;border-radius:2px}

/* Legal Notice page: one readable column */
.ec-legal__body{max-width:760px;color:#3d4160;font-size:16.5px;line-height:1.7}
.ec-legal__body h2{margin:48px 0 14px;color:#232856;font-size:26px;line-height:1.2;letter-spacing:-.5px;text-transform:none}
.ec-legal__body h2:first-of-type{margin-top:36px}
.ec-legal__body p{margin:0 0 14px}
.ec-legal__body a{color:#1d7ea1;text-decoration:underline;text-underline-offset:3px}
.ec-legal__lead{color:#575758;font-size:17.5px}
.ec-legal__facts{display:grid;grid-template-columns:1fr;margin:0;border-top:1px solid rgba(35,40,86,.1)}
.ec-legal__facts>div{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:16px;padding:12px 0;border-bottom:1px solid rgba(35,40,86,.1)}
.ec-legal__facts dt{color:#6b7090;font-family:"Plus Jakarta Sans",sans-serif;font-size:14px;font-weight:600}
.ec-legal__facts dd{margin:0;color:#232856}
@media (max-width:479px){.ec-legal__facts>div{grid-template-columns:1fr;gap:2px}.ec-legal__body h2{font-size:22px}}

/* Footer "Cookie settings" looks like the Legal Notice link */
.ec-footer__cookies{padding:0;border:0;background:none;color:rgba(255,255,255,.8);font:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.35);cursor:pointer}
.ec-footer__cookies:hover{color:#fff;text-decoration-color:#fff}
.ec-footer__cookies:focus-visible{outline:2px solid var(--ec-accent);outline-offset:3px;border-radius:2px}

/* Cookie consent panel (js/ecurie-consent.js): small frosted-glass card */
.ec-consent{position:fixed;z-index:2100;left:16px;bottom:16px;width:min(380px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:14px 14px 12px 16px;
  border:1px solid rgba(255,255,255,.65);border-radius:20px;color:#232856;font-family:Urbanist,sans-serif;
  background:linear-gradient(140deg,rgba(255,255,255,.78),rgba(255,255,255,.52));
  -webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(255,255,255,.25),0 18px 50px -18px rgba(20,24,52,.45);
  animation:ecConsentIn .35s cubic-bezier(.22,.8,.2,1) both}
.ec-consent.is-detailed{width:min(460px,calc(100% - 32px));padding:20px 20px 16px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ec-consent{background:rgba(255,255,255,.97)}}
@keyframes ecConsentIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.ec-consent__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ec-consent__title{display:flex;align-items:center;gap:8px;margin:0 0 6px;color:#232856;font-family:"Plus Jakarta Sans",sans-serif;font-size:15px;font-weight:600;line-height:1.25;letter-spacing:-.1px;text-transform:none}
.ec-consent.is-detailed .ec-consent__title{margin-bottom:8px;font-size:17px}
.ec-consent__icon{flex:none;color:#1d7ea1}
.ec-consent__note{margin:0 0 10px;padding:9px 12px;border-radius:12px;background:rgba(37,150,190,.12);color:#232856;font-size:13.5px;line-height:1.45}
.ec-consent__text{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:#3d4160}
.ec-consent__text a{color:#1d7ea1;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.ec-consent__cats{display:grid;margin:4px 0 14px;border-top:1px solid rgba(35,40,86,.1)}
.ec-consent__cat{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid rgba(35,40,86,.1)}
.ec-consent__cat-name{margin:0 0 2px;color:#232856;font-family:"Plus Jakarta Sans",sans-serif;font-size:14px;font-weight:600}
.ec-consent__cat-text{margin:0;font-size:13px;line-height:1.45;color:#4a4f6e}
.ec-consent__always{flex:none;padding-top:2px;color:#1d7ea1;font-family:"Plus Jakarta Sans",sans-serif;font-size:12px;font-weight:600;white-space:nowrap}
.ec-consent__switch{position:relative;flex:none;width:44px;height:26px;margin-top:2px;padding:0;border:0;border-radius:999px;background:rgba(35,40,86,.22);cursor:pointer;transition:background-color .2s ease}
.ec-consent__switch span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(20,24,52,.3);transition:transform .2s ease}
.ec-consent__switch[aria-checked="true"]{background:#232856}
.ec-consent__switch[aria-checked="true"] span{transform:translateX(18px)}
.ec-consent__switch:focus-visible,.ec-consent__btn:focus-visible{outline:2px solid var(--ec-accent);outline-offset:2px}
.ec-consent__actions{display:flex;align-items:center;gap:8px}
.ec-consent__btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border-radius:999px;font-family:"Plus Jakarta Sans",sans-serif;font-size:13.5px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .15s ease}
.ec-consent__btn:active{transform:scale(.97)}
/* Refuse and Accept look the same, as the CNIL asks */
.ec-consent__btn--solid{flex:1 1 0;border:1px solid rgba(255,255,255,.18);background:rgba(35,40,86,.9);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.ec-consent__btn--solid:hover{background:#232856}
.ec-consent__btn--line{flex:1 1 100%;border:1px solid rgba(35,40,86,.22);background:rgba(255,255,255,.55);color:#232856}
.ec-consent__btn--line:hover{border-color:#232856}
.ec-consent__btn--text{flex:none;min-height:40px;margin-right:auto;padding:0 8px 0 0;border:0;background:none;color:#232856;text-decoration:underline;text-underline-offset:3px}
.ec-consent.is-detailed .ec-consent__actions{flex-wrap:wrap}
@media (max-width:479px){
.ec-consent,.ec-consent.is-detailed{left:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100% - 20px);max-height:80dvh}
.ec-consent__btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){.ec-consent{animation:none}}

/* Blocked map placeholder */
.ec-consent-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:320px;height:100%;padding:28px;border-radius:inherit;background:#eef3f8;color:#232856;text-align:center;font-size:15px;line-height:1.5}
.ec-consent-ph p{margin:0;max-width:360px}
.ec-consent-ph__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 18px}
.ec-consent-ph .ec-consent__btn--solid{flex:none}
.ec-consent-ph__link{color:#1d7ea1;font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* French header button: "Réserver une visite" is longer than "Book a Visit", so it is set more compactly */
html[lang="fr"] .ec-header__cta{gap:6px;padding:10px 16px;font-size:13px;letter-spacing:-.1px}
html[lang="fr"] .ec-header__cta svg{width:14px;height:14px}

/* Phones: language button beside the menu button (hidden there by the page styles before) */
@media (max-width:767px){
.ec-header .ec-lang{display:block}
.ec-header .ec-header__actions{gap:10px}
.ec-header .ec-lang__btn{height:46px;gap:6px;padding:0 12px 0 11px;font-size:12.5px}
.ec-header .ec-lang__menu{right:0;left:auto}
}
/* narrow phones: flag-only round button, same size as the menu button ("EN"/"FR" stays readable by screen readers) */
@media (max-width:399px){
.ec-header .ec-header__actions{gap:8px}
.ec-header .ec-lang__btn{justify-content:center;width:46px;padding:0}
.ec-header .ec-lang__caret{display:none}
.ec-header .ec-lang__btn>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* very small phones (320px): a slightly smaller logo leaves room for both header buttons */
@media (max-width:359px){
.ec-header .ec-header__logo{gap:8px}
.ec-header .ec-header__logo img{height:38px}
.ec-header .ec-header__name{font-size:15px}
}
