/*
Theme Name: Cabinet Vétérinaire Jaeger
Theme URI: https://www.veterinaire-jaeger.lu
Author: Addedsense
Author URI: https://addedsense.lu
Description: Single main theme for Cabinet Vétérinaire Jaeger (Luxembourg). Hand-coded, no child theme. The home page is built by the theme from ACF Free fields, Beaver Builder is used on the other pages.
Version: 1.0.0
Text Domain: vetjaeger
*/

/* === 1. FONTS === */
@font-face{font-family:"Bricolage Grotesque";src:url("assets/fonts/bricolage-grotesque-var.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url("assets/fonts/figtree-var.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

/* === 2. TOKENS === */
:root{
  --as-font-heading:"Bricolage Grotesque",system-ui,sans-serif;
  --as-font-body:"Figtree",system-ui,sans-serif;
  --as-weight-body:400;--as-weight-medium:500;--as-weight-strong:600;--as-weight-heading:700;

  --as-color-white:#FFFFFF;
  --as-color-brand:#434B8C;
  --as-color-brand-700:#343B73;
  --as-color-brand-900:#1F2347;
  --as-color-brand-200:#C9CDE6;
  --as-color-brand-100:#E6E8F4;
  --as-color-brand-50:#F4F5FA;
  --as-color-ink:#1E2140;
  --as-color-muted:#565B7A;
  --as-color-bg:#FFFFFF;
  --as-color-surface:#F4F5FA;
  --as-color-line:#E4E5EE;
  --as-color-star:#F4C95D;

  --as-color-tint-1:#F9E3D6;
  --as-color-tint-2:#DDEBDD;
  --as-color-tint-3:#F8EFC8;
  --as-color-tint-4:#E4E1F4;
  --as-color-tint-5:#DCEAF4;
  --as-color-tint-6:#F6DDE2;
  --as-color-hero-bg:var(--as-color-tint-4);

  --as-color-glass:rgba(255,255,255,.88);
  --as-color-glass-strong:rgba(255,255,255,.85);
  --as-color-ring:rgba(255,255,255,.55);
  --as-color-on-dark-soft:rgba(255,255,255,.08);
  --as-color-on-dark-border:rgba(255,255,255,.18);
  --as-color-on-dark-line:rgba(255,255,255,.15);
  --as-color-hover-light:rgba(255,255,255,.18);
  --as-color-stripe-1:rgba(255,255,255,.55);
  --as-color-stripe-2:rgba(255,255,255,.25);

  --as-shadow-banner:0 18px 50px -20px rgba(31,35,71,.3);
  --as-shadow-menu:0 24px 50px -18px rgba(31,35,71,.35);
  --as-shadow-notice:0 0 0 6px var(--as-color-ring),0 26px 50px -16px rgba(31,35,71,.6);
  --as-shadow-pop:0 24px 50px -18px rgba(31,35,71,.45);

  --as-text-s:.875rem;--as-text-m:1rem;--as-text-l:1.125rem;
  --as-text-h3:clamp(1.25rem,1.1rem + .6vw,1.5rem);
  --as-text-h2:clamp(2rem,1.4rem + 2.4vw,3.25rem);
  --as-text-prose-h2:clamp(1.5rem,1.2rem + 1.2vw,2rem);
  --as-text-h1:clamp(2.5rem,1.5rem + 3.2vw,4.25rem);

  --as-space-1:.25rem;--as-space-2:.5rem;--as-space-3:.75rem;--as-space-4:1rem;--as-space-5:1.5rem;
  --as-space-6:2rem;--as-space-7:3rem;--as-space-8:4.5rem;--as-space-9:7rem;
  --as-container:1400px;
  --as-radius:20px;--as-radius-s:12px;--as-radius-hero:40px;--as-radius-pill:999px;

  --as-section-pad:var(--as-space-7);

  --as-size-tap:48px;
  --as-size-icon:40px;
  --as-size-chip:50px;
  --as-size-badge:76px;
  --as-size-logo:80px;
  --as-size-header:100px;
  --as-size-hero:560px;

  --as-ease-out:cubic-bezier(.23,1,.32,1);
}

/* === 3. BASE === */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:130px}
body{margin:0;font-family:var(--as-font-body);font-size:var(--as-text-m);font-weight:var(--as-weight-body);line-height:1.6;color:var(--as-color-ink);background:var(--as-color-bg);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--as-font-heading);font-weight:var(--as-weight-heading);line-height:1.05;letter-spacing:-.025em;margin:0;text-wrap:balance}
p{margin:0}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--as-color-brand);outline-offset:3px;border-radius:6px}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.as-container{width:100%;max-width:var(--as-container);margin-inline:auto;padding-inline:var(--as-space-5)}
.as-section{padding-block:var(--as-section-pad)}
.as-eyebrow{font-size:var(--as-text-s);font-weight:var(--as-weight-strong);letter-spacing:.08em;text-transform:uppercase;color:var(--as-color-brand)}
.as-section__head{display:flex;justify-content:space-between;align-items:end;gap:var(--as-space-5);margin-bottom:var(--as-space-7);flex-wrap:wrap}
.as-section__title{font-size:var(--as-text-h2)}

/* === 4. SHARED COMPONENTS === */
.as-btn{text-align:center;display:inline-flex;align-items:center;gap:var(--as-space-2);justify-content:center;min-height:var(--as-size-tap);padding:.7rem 1.4rem;border-radius:var(--as-radius-pill);border:2px solid transparent;font:var(--as-weight-strong) var(--as-text-m)/1 var(--as-font-body);text-decoration:none;cursor:pointer;transition:transform 160ms var(--as-ease-out),background-color 160ms ease,color 160ms ease,border-color 160ms ease}
.as-btn:active{transform:scale(.97)}
.as-btn--primary{background:var(--as-color-brand);color:var(--as-color-white)}
.as-btn--soft{background:var(--as-color-tint-3);color:var(--as-color-brand-900)}
.as-btn__short{display:none}
@media (hover:hover) and (pointer:fine){
  .as-btn--primary:hover{background:var(--as-color-brand-700)}
  .as-btn--soft:hover{background:var(--as-color-brand-200)}
}

/* === SECTION: PAGE TEXT (Beaver Builder text on inner pages) === */
.fl-builder-content .fl-rich-text{font-size:var(--as-text-l);line-height:1.7;color:var(--as-color-ink)}
.fl-builder-content .fl-rich-text p{margin:0 0 var(--as-space-4)}
.fl-builder-content .fl-rich-text h1,.fl-builder-content .fl-rich-text h2,.fl-builder-content .fl-rich-text h3,.fl-builder-content .fl-rich-text h4{font-family:var(--as-font-heading);font-weight:var(--as-weight-heading);letter-spacing:-.02em;line-height:1.15;color:var(--as-color-brand-900);margin:var(--as-space-6) 0 var(--as-space-3)}
.fl-builder-content .fl-rich-text h1,.fl-builder-content .fl-rich-text h2{font-size:var(--as-text-prose-h2)}
.fl-builder-content .fl-rich-text h3{font-size:var(--as-text-h3)}
.fl-builder-content .fl-rich-text h4{font-size:var(--as-text-l)}
.fl-builder-content .fl-rich-text>:first-child{margin-top:0}
.fl-builder-content .fl-rich-text>:last-child{margin-bottom:0}
.fl-builder-content .fl-rich-text ul,.fl-builder-content .fl-rich-text ol{margin:0 0 var(--as-space-4);padding-left:1.25em}
.fl-builder-content .fl-rich-text li{margin-bottom:var(--as-space-2)}
.fl-builder-content .fl-rich-text a{color:var(--as-color-brand);font-weight:var(--as-weight-strong);text-underline-offset:3px}
.fl-builder-content .fl-rich-text img{border-radius:var(--as-radius);height:auto}

/* === SECTION: HEADER === */
.as-header{position:sticky;top:0;z-index:50;background:var(--as-color-glass);backdrop-filter:blur(12px);border-bottom:1px solid var(--as-color-line)}
.as-header__inner{display:flex;align-items:center;gap:var(--as-space-6);min-height:var(--as-size-header)}
.as-header__logo img{height:var(--as-size-logo);width:auto}
.as-header__nav{margin-left:auto;display:flex;align-items:center;gap:var(--as-space-5)}
.as-menu__link{font-weight:var(--as-weight-medium);text-decoration:none;color:var(--as-color-ink);padding:.5rem .25rem;position:relative}
.as-menu__link::after{content:"";position:absolute;left:.25rem;right:.25rem;bottom:2px;height:2px;background:var(--as-color-brand);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--as-ease-out)}
.as-menu__link[aria-current],.as-menu__group.is-active .as-menu__link{color:var(--as-color-brand)}
@media (hover:hover){.as-menu__link:hover::after{transform:scaleX(1)}}
/* Submenu group: link + toggle + dropdown */
.as-menu__group{position:relative;display:flex;align-items:center}
.as-menu__toggle{flex:none;width:28px;height:32px;border:0;background:none;padding:0;cursor:pointer;display:grid;place-items:center;color:var(--as-color-ink);border-radius:var(--as-radius-s)}
.as-menu__toggle svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform 200ms var(--as-ease-out)}
.as-menu__group[data-open] .as-menu__toggle svg{transform:rotate(180deg)}
.as-menu__sublink{display:flex;align-items:center;min-height:44px;padding:0 var(--as-space-4);border-radius:var(--as-radius-s);font-weight:var(--as-weight-medium);text-decoration:none;color:var(--as-color-ink);white-space:nowrap}
.as-menu__sublink[aria-current]{color:var(--as-color-brand);background:var(--as-color-brand-50)}
@media (min-width:1024px){
  .as-menu__sub{position:absolute;top:100%;left:calc(var(--as-space-3) * -1);min-width:260px;padding:var(--as-space-3);background:var(--as-color-white);border-radius:var(--as-radius);box-shadow:var(--as-shadow-menu);opacity:0;visibility:hidden;transform:translateY(-6px);transform-origin:top left;transition:opacity 160ms var(--as-ease-out),transform 160ms var(--as-ease-out),visibility 0s 160ms;z-index:60}
  .as-menu__sub::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
  .as-menu__group:hover .as-menu__sub,.as-menu__group:focus-within .as-menu__sub,.as-menu__group[data-open] .as-menu__sub{opacity:1;visibility:visible;transform:none;transition:opacity 160ms var(--as-ease-out),transform 160ms var(--as-ease-out)}
  .as-menu__group:hover .as-menu__toggle svg,.as-menu__group:focus-within .as-menu__toggle svg{transform:rotate(180deg)}
}
@media (hover:hover){.as-menu__sublink:hover,.as-menu__toggle:hover{background:var(--as-color-brand-50)}}
.as-header__actions{display:flex;align-items:center;gap:var(--as-space-3)}
.as-phone{display:inline-flex;align-items:center;gap:var(--as-space-2);font-weight:var(--as-weight-strong);text-decoration:none;color:var(--as-color-ink);white-space:nowrap;border-radius:var(--as-radius-pill);padding:.25rem .5rem .25rem .25rem;transition:background-color 160ms ease,transform 160ms var(--as-ease-out)}
.as-phone svg{flex:none;width:var(--as-size-icon);height:var(--as-size-icon);padding:10px;border-radius:50%;background:var(--as-color-tint-1);stroke:var(--as-color-brand);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.as-phone:active{transform:scale(.97)}
@media (hover:hover){.as-phone:hover{background:var(--as-color-brand-50)}}
.as-lang{display:flex;background:var(--as-color-brand-50);border-radius:var(--as-radius-pill);padding:3px}
.as-lang a{font-size:var(--as-text-s);font-weight:var(--as-weight-strong);text-decoration:none;padding:.35rem .65rem;border-radius:var(--as-radius-pill);color:var(--as-color-muted)}
.as-lang a[aria-current]{background:var(--as-color-brand);color:var(--as-color-white)}
.as-burger{display:none;flex:none;width:var(--as-size-tap);height:var(--as-size-tap);border-radius:50%;border:0;background:var(--as-color-brand-50);cursor:pointer;place-items:center;transition:transform 160ms var(--as-ease-out),background-color 160ms ease}
.as-burger:active{transform:scale(.94)}
.as-burger span,.as-burger span::before,.as-burger span::after{display:block;width:20px;height:2px;border-radius:2px;background:var(--as-color-brand);content:"";transition:transform 220ms var(--as-ease-out),background-color 160ms ease}
.as-burger span{position:relative}
.as-burger span::before{position:absolute;top:-6px}
.as-burger span::after{position:absolute;top:6px}
.as-burger[aria-expanded="true"] span{background:transparent}
.as-burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.as-burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.as-mnav{display:none}

/* Header RDV dropdown: one button, two choices */
.as-rdv{position:relative}
.as-rdv__toggle svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform 200ms var(--as-ease-out)}
.as-rdv[data-open] .as-rdv__toggle svg{transform:rotate(180deg)}
.as-rdv__menu{position:absolute;top:calc(100% + 10px);right:0;width:320px;display:flex;flex-direction:column;gap:var(--as-space-2);padding:var(--as-space-3);background:var(--as-color-white);border-radius:var(--as-radius);box-shadow:var(--as-shadow-menu);opacity:0;visibility:hidden;transform:translateY(-8px);transform-origin:top right;transition:opacity 160ms var(--as-ease-out),transform 160ms var(--as-ease-out),visibility 0s 160ms;z-index:60}
.as-rdv[data-open] .as-rdv__menu{opacity:1;visibility:visible;transform:none;transition:opacity 160ms var(--as-ease-out),transform 160ms var(--as-ease-out)}
.as-rdv__item{display:flex;flex-direction:column;gap:2px;padding:var(--as-space-4);border-radius:var(--as-radius-s);background:var(--as-color-brand);text-decoration:none;color:var(--as-color-white);transition:transform 160ms var(--as-ease-out)}
.as-rdv__item--2{background:var(--as-color-tint-3);color:var(--as-color-brand-900)}
.as-rdv__item:active{transform:scale(.98)}
.as-rdv__title{font:var(--as-weight-heading) var(--as-text-l)/1.2 var(--as-font-heading)}
.as-rdv__text{font-size:var(--as-text-s);color:var(--as-color-brand-100)}
.as-rdv__item--2 .as-rdv__text{color:var(--as-color-muted)}
@media (hover:hover) and (pointer:fine){.as-rdv__item:hover{transform:translateY(-2px)}}

/* === SECTION: HERO === */
.as-hero{padding-top:var(--as-space-5);padding-bottom:var(--as-section-pad)}
.as-hero__card{position:relative;border-radius:var(--as-radius-hero);background:var(--as-color-hero-bg);overflow:hidden;min-height:var(--as-size-hero);display:grid;grid-template-columns:.85fr 1.15fr}
.as-hero__content{padding:var(--as-space-8) var(--as-space-7) 8rem;display:flex;flex-direction:column;justify-content:center;gap:var(--as-space-5)}
.as-hero__title{font-size:var(--as-text-h1);color:var(--as-color-brand-900)}
.as-hero__title em{font-style:normal;color:var(--as-color-brand)}
.as-hero__lead{font-size:var(--as-text-l);color:var(--as-color-muted);max-width:34ch}
.as-hero__media{position:relative;aspect-ratio:3/2;align-self:center;margin:var(--as-space-5) var(--as-space-5) 6.5rem 0;border-radius:calc(var(--as-radius-hero) - 12px);overflow:hidden;background:repeating-linear-gradient(135deg,var(--as-color-stripe-1) 0 14px,var(--as-color-stripe-2) 14px 28px);display:grid;place-items:center;text-align:center;color:var(--as-color-brand-900);font-weight:var(--as-weight-strong)}
.as-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 55%}
.as-hero__media>span{background:var(--as-color-glass-strong);padding:.6rem 1rem;border-radius:var(--as-radius-pill);font-size:var(--as-text-s)}

/* Compact hero on inner pages: lower, no banner */
.as-hero--page .as-hero__card{min-height:0}
.as-hero--page .as-hero__content{padding:var(--as-space-7)}
.as-hero--page .as-hero__title{font-size:var(--as-text-h2)}
.as-hero--page .as-hero__media{aspect-ratio:2/1;margin:var(--as-space-5) var(--as-space-5) var(--as-space-5) 0}

/* Banner under the hero: animals + appointment buttons, overlaps the hero bottom */
.as-banner{position:relative;margin:-5.5rem var(--as-space-6) 0;background:var(--as-color-white);border-radius:var(--as-radius);box-shadow:var(--as-shadow-banner);padding:var(--as-space-4) var(--as-space-5);display:flex;align-items:center;gap:var(--as-space-5);flex-wrap:wrap;animation:as-rise 500ms 200ms var(--as-ease-out) both}
.as-banner__label{font-family:var(--as-font-heading);font-weight:var(--as-weight-heading);font-size:var(--as-text-l);letter-spacing:-.01em}
.as-banner__animals{display:flex;gap:var(--as-space-3);list-style:none;margin:0;padding:0}
.as-animal{display:flex;align-items:center;gap:var(--as-space-2);padding:.45rem 1rem .45rem .5rem;border-radius:var(--as-radius-pill);background:var(--as-color-brand-50);font-weight:var(--as-weight-strong);font-size:var(--as-text-s)}
.as-animal svg{width:var(--as-size-chip);height:var(--as-size-chip);padding:8px;border-radius:50%;background:var(--as-color-white);stroke:var(--as-color-brand);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.as-animal:nth-child(1) svg{background:var(--as-color-tint-1)}
.as-animal:nth-child(2) svg{background:var(--as-color-tint-5)}
.as-animal:nth-child(3) svg{background:var(--as-color-tint-2)}
.as-banner__cta{margin-left:auto;display:flex;gap:var(--as-space-3);flex-wrap:wrap}

/* Inner page title (no hero) */
.as-pagehead{padding-block:var(--as-space-7) 0}
.as-pagehead__title{font-size:var(--as-text-h1);color:var(--as-color-brand-900)}

/* === SECTION: NOTICE === */
.as-notice{display:flex;align-items:center;gap:var(--as-space-4);background:var(--as-color-brand);color:var(--as-color-white);border-radius:var(--as-radius);box-shadow:var(--as-shadow-notice);padding:var(--as-space-4);z-index:6;transition:opacity 220ms var(--as-ease-out),transform 220ms var(--as-ease-out);animation:as-rise 500ms 350ms var(--as-ease-out) both}
.as-notice[hidden]{display:none}
.as-notice.is-leaving{opacity:0;transform:translateY(-8px) scale(.98)}
.as-notice__badge{flex:none;width:var(--as-size-badge);height:var(--as-size-badge);border-radius:50%;display:grid;place-items:center;background:var(--as-color-tint-1);animation:as-wiggle 2.4s 1s ease-in-out infinite}
.as-notice[data-type="closed"] .as-notice__badge{background:var(--as-color-tint-5)}
.as-notice[data-type="info"] .as-notice__badge{background:var(--as-color-tint-2)}
.as-notice__badge svg{width:44px;height:44px;stroke:var(--as-color-brand);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.as-notice__badge svg .as-fill{fill:var(--as-color-brand);stroke:none}
.as-notice__body{display:flex;flex-direction:column;gap:2px;min-width:0}
.as-notice__title{font:var(--as-weight-heading) var(--as-text-h3)/1.15 var(--as-font-heading);letter-spacing:-.01em}
.as-notice__text{font-size:var(--as-text-m);color:var(--as-color-brand-100)}
.as-notice__link{color:inherit;text-underline-offset:3px}
.as-notice__close{flex:none;margin-left:auto;align-self:flex-start;width:var(--as-size-icon);height:var(--as-size-icon);border-radius:50%;border:0;background:transparent;color:var(--as-color-white);cursor:pointer;display:grid;place-items:center;transition:background-color 160ms ease,transform 160ms var(--as-ease-out)}
.as-notice__close:active{transform:scale(.92)}
.as-notice__close svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}
@media (hover:hover){.as-notice__close:hover{background:var(--as-color-hover-light)}}
.as-hero__media>.as-notice{position:absolute;bottom:var(--as-space-4);right:var(--as-space-4);max-width:calc(100% - 2rem);width:500px}
@keyframes as-wiggle{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
/* Notice reopen button (after it was closed) */
.as-notice__reopen{position:absolute;right:var(--as-space-4);bottom:var(--as-space-4);z-index:6;width:56px;height:56px;border:0;border-radius:50%;background:var(--as-color-brand);box-shadow:var(--as-shadow-notice);display:grid;place-items:center;cursor:pointer;animation:as-rise 400ms var(--as-ease-out) both;transition:transform 160ms var(--as-ease-out)}
.as-notice__reopen[hidden]{display:none}
.as-notice__reopen:active{transform:scale(.94)}
.as-notice__reopen svg{width:32px;height:32px;stroke:var(--as-color-white);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;animation:as-wiggle 2.4s 1s ease-in-out infinite}
.as-notice__reopen svg .as-fill{fill:var(--as-color-white);stroke:none}
@media (hover:hover) and (pointer:fine){.as-notice__reopen:hover{transform:scale(1.06)}}
.as-notice__reopen--fixed{position:fixed;right:auto;left:var(--as-space-4);bottom:var(--as-space-4);z-index:45}

/* Notice on pages without a hero: the same card at the top of the content */
.as-notice--inline{margin:var(--as-space-5) 0 0;width:600px;max-width:100%}

/* Notice on service pages (compact hero): the same card on the picture, below it on small screens */
.as-hero--page .as-hero__card>.as-notice{position:absolute;right:calc(var(--as-space-5) + var(--as-space-4));bottom:calc(var(--as-space-5) + var(--as-space-4));width:500px;max-width:calc(100% - 3rem)}
.as-hero--page .as-hero__card>.as-notice__reopen{right:calc(var(--as-space-5) + var(--as-space-4));bottom:calc(var(--as-space-5) + var(--as-space-4))}

/* === SECTION: WELCOME === */
.as-welcome{text-align:center}
.as-welcome__inner{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--as-space-5);align-items:center}
.as-welcome__title{font-size:var(--as-text-h2)}
.as-welcome__text{font-size:var(--as-text-l);color:var(--as-color-muted)}

/* === SECTION: SERVICES === */
.as-services{background:var(--as-color-surface);border-radius:var(--as-radius-hero);margin-inline:var(--as-space-4);margin-block:var(--as-section-pad);padding-block:var(--as-space-8)}
.as-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--as-space-5)}
.as-card{position:relative;display:flex;flex-direction:column;gap:var(--as-space-3);padding:var(--as-space-6);border-radius:var(--as-radius);background:var(--as-color-tint-1);min-height:260px;text-decoration:none;transition:transform 220ms var(--as-ease-out)}
.as-card:nth-child(2){background:var(--as-color-tint-5)}
.as-card:nth-child(3){background:var(--as-color-tint-3)}
.as-card:nth-child(4){background:var(--as-color-tint-2)}
.as-card:nth-child(5){background:var(--as-color-tint-6)}
.as-card:nth-child(6){background:var(--as-color-tint-4)}
.as-card__num{font-family:var(--as-font-heading);font-weight:var(--as-weight-strong);font-size:var(--as-text-s);color:var(--as-color-brand)}
.as-card__title{font-size:var(--as-text-h3)}
.as-card__text{color:var(--as-color-muted)}
.as-card__more{margin-top:auto;font-weight:var(--as-weight-strong);color:var(--as-color-brand);display:inline-flex;gap:.4rem;align-items:center}
.as-card__more svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;transition:transform 200ms var(--as-ease-out)}
@media (hover:hover){.as-card:hover{transform:translateY(-4px)}.as-card:hover .as-card__more svg{transform:translateX(4px)}}
.as-card:active{transform:scale(.98)}

/* === SECTION: TEAM === */
.as-team__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--as-space-5)}
.as-person{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);border-radius:var(--as-radius);overflow:hidden;background:var(--as-color-surface)}
.as-person__photo{height:100%;min-height:340px;width:100%;object-fit:cover}
.as-person__body{padding:var(--as-space-6);display:flex;flex-direction:column;justify-content:center;gap:var(--as-space-2)}
.as-person__name{font-size:var(--as-text-h3)}
.as-person__role{color:var(--as-color-brand);font-weight:var(--as-weight-strong)}
.as-person__text{margin-top:var(--as-space-3);font-size:var(--as-text-m);color:var(--as-color-muted)}

/* === SECTION: FAQ === */
.as-faq__head{margin-bottom:var(--as-space-6)}
.as-faq__head .as-section__title{margin-top:var(--as-space-1)}
.as-faq__cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--as-space-3) var(--as-space-5);align-items:start}
.as-faq__list{display:flex;flex-direction:column;gap:var(--as-space-3)}
.as-faq__item{border-radius:var(--as-radius);background:var(--as-color-surface);overflow:hidden;transition:transform 220ms var(--as-ease-out),background-color 200ms ease}
.as-faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--as-space-4);padding:var(--as-space-5);background:none;border:0;text-align:left;font:var(--as-weight-strong) var(--as-text-l)/1.3 var(--as-font-body);color:inherit;cursor:pointer;min-height:64px}
.as-faq__q:focus:not(:focus-visible){outline:none}
.as-faq__q:focus-visible{outline:2px solid var(--as-color-brand);outline-offset:-4px;border-radius:var(--as-radius)}
.as-faq__icon{flex:none;width:32px;height:32px;border-radius:50%;background:var(--as-color-white);display:grid;place-items:center;transition:transform 240ms var(--as-ease-out),background-color 200ms ease}
.as-faq__icon svg{width:16px;height:16px;stroke:var(--as-color-brand);stroke-width:2.2;fill:none}
.as-faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows 260ms var(--as-ease-out)}
.as-faq__a>div{overflow:hidden}
.as-faq__a p{padding:0 var(--as-space-5) var(--as-space-5);color:var(--as-color-muted);max-width:60ch;opacity:0;transform:translateY(-6px);transition:opacity 180ms ease,transform 240ms var(--as-ease-out)}
.as-faq__a a{color:var(--as-color-brand);font-weight:var(--as-weight-strong)}
/* Small motion: hover lift, icon pop, press, answer text slides in */
@media (hover:hover) and (pointer:fine){
  .as-faq__item:hover{transform:translateY(-2px);background:var(--as-color-brand-100)}
  .as-faq__item:hover .as-faq__icon{transform:scale(1.12)}
  .as-faq__item[data-open]:hover .as-faq__icon{transform:rotate(45deg) scale(1.12)}
}
.as-faq__item:active{transform:scale(.99)}
.as-faq__item[data-open] .as-faq__a p{opacity:1;transform:none;transition-delay:70ms}
.as-faq__item[data-open] .as-faq__a{grid-template-rows:1fr}
.as-faq__item[data-open] .as-faq__icon{transform:rotate(45deg);background:var(--as-color-brand)}
.as-faq__item[data-open] .as-faq__icon svg{stroke:var(--as-color-white)}

/* === SECTION: REVIEWS === */
.as-reviews{background:var(--as-color-brand-900);color:var(--as-color-white);border-radius:var(--as-radius-hero);margin-inline:var(--as-space-4);margin-block:var(--as-section-pad);padding-block:var(--as-space-8)}
.as-reviews .as-eyebrow{color:var(--as-color-brand-200)}
.as-reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--as-space-5)}
.as-review{margin:0;background:var(--as-color-on-dark-soft);border:1px solid var(--as-color-on-dark-border);border-radius:var(--as-radius);padding:var(--as-space-6);display:flex;flex-direction:column;gap:var(--as-space-4)}
.as-review__stars{color:var(--as-color-star);letter-spacing:.2em}
.as-review__text{margin:0;color:var(--as-color-brand-100)}
.as-review__who{margin-top:auto;font-weight:var(--as-weight-strong);font-size:var(--as-text-s);color:var(--as-color-brand-200)}

/* === SECTION: GALLERY === */
.as-gallery{padding:var(--as-section-pad) 0}
.as-gallery__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:var(--as-space-2)}
.as-gallery__item{position:relative;aspect-ratio:4/5;border-radius:var(--as-radius);overflow:hidden;background:var(--as-color-brand-100);transition:transform 350ms var(--as-ease-out),box-shadow 350ms var(--as-ease-out)}
.as-gallery__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (hover:hover) and (pointer:fine){
  .as-gallery__item:hover{transform:scale(1.35);z-index:5;box-shadow:var(--as-shadow-pop)}
  .as-gallery__item:first-child:hover{transform-origin:left center}
  .as-gallery__item:last-child:hover{transform-origin:right center}
}

/* === SECTION: CONTACT === */
.as-contact__box{display:grid;grid-template-columns:1fr 1.3fr;gap:var(--as-space-7);align-items:center;background:var(--as-color-hero-bg);border-radius:var(--as-radius-hero);padding:var(--as-space-8) var(--as-space-7)}
.as-contact__intro{display:flex;flex-direction:column;gap:var(--as-space-4)}
.as-contact__text{color:var(--as-color-muted);font-size:var(--as-text-l);max-width:36ch}
.as-contact__phone{font:var(--as-weight-heading) var(--as-text-h3)/1.2 var(--as-font-heading)}
.as-contact__phone a{text-decoration:none;color:var(--as-color-brand)}
.as-contact__options{display:grid;grid-template-columns:1fr 1fr;gap:var(--as-space-4)}
.as-option{display:flex;flex-direction:column;gap:var(--as-space-2);padding:var(--as-space-6);border-radius:var(--as-radius);background:var(--as-color-tint-1);text-decoration:none;min-height:220px;transition:transform 220ms var(--as-ease-out)}
.as-option--2{background:var(--as-color-tint-2)}
.as-option__title{font:var(--as-weight-heading) var(--as-text-h3)/1.1 var(--as-font-heading)}
.as-option__text{color:var(--as-color-muted)}
.as-option__go{margin-top:auto;font-weight:var(--as-weight-strong);color:var(--as-color-brand);display:inline-flex;gap:.4rem;align-items:center}
.as-option__go svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;transition:transform 200ms var(--as-ease-out)}
@media (hover:hover){.as-option:hover{transform:translateY(-4px)}.as-option:hover .as-option__go svg{transform:translateX(4px)}}
.as-option:active{transform:scale(.98)}
.as-contact__note{grid-column:1/-1;font-size:var(--as-text-s);color:var(--as-color-muted)}

/* === SECTION: FOOTER === */
.as-footer{background:var(--as-color-brand-900);color:var(--as-color-brand-100);margin-top:var(--as-section-pad);border-radius:var(--as-radius-hero) var(--as-radius-hero) 0 0;padding-block:var(--as-space-8) var(--as-space-6)}
.as-footer__grid{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:var(--as-space-7)}
.as-footer__title{font:var(--as-weight-heading) var(--as-text-l)/1.2 var(--as-font-heading);color:var(--as-color-white);margin-bottom:var(--as-space-3)}
.as-footer__logo{display:block;margin-bottom:var(--as-space-4)}
.as-footer__logo img{height:72px;width:auto;filter:brightness(0) invert(1)}
.as-footer__address{font-style:normal;display:flex;flex-direction:column;gap:var(--as-space-1)}
.as-footer__block{margin-top:var(--as-space-5)}
.as-footer a{text-decoration:none}
.as-footer a:hover{text-decoration:underline}
.as-hours{display:grid;grid-template-columns:auto 1fr;gap:var(--as-space-1) var(--as-space-5);margin:0}
.as-hours dt{font-weight:var(--as-weight-strong);color:var(--as-color-white)}
.as-hours dd{margin:0}
.as-footer__note{margin-top:var(--as-space-3);font-size:var(--as-text-s);color:var(--as-color-brand-200)}
.as-urgence{background:var(--as-color-on-dark-soft);border:1px solid var(--as-color-on-dark-border);border-radius:var(--as-radius);padding:var(--as-space-5)}
.as-urgence__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--as-space-3)}
.as-urgence__list strong{color:var(--as-color-white)}
.as-urgence__tel{display:block;white-space:nowrap}
.as-footer__map{margin-top:var(--as-space-4);display:block;border-radius:var(--as-radius-s);overflow:hidden}
.as-footer__map--text{display:inline-flex;align-items:center;gap:var(--as-space-2);padding:.7rem 1.2rem;border-radius:var(--as-radius-pill);border:1px solid var(--as-color-on-dark-border);background:var(--as-color-on-dark-soft);font-weight:var(--as-weight-strong);transition:background-color 160ms ease,transform 160ms var(--as-ease-out)}
.as-footer__map--text svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.as-footer a.as-footer__map--text:hover{text-decoration:none;background:var(--as-color-hover-light)}
.as-footer__map--text:active{transform:scale(.98)}
.as-footer__map img{width:100%;height:auto}
.as-footer__legal{margin-top:var(--as-space-7);padding-top:var(--as-space-5);border-top:1px solid var(--as-color-on-dark-line);display:flex;gap:var(--as-space-5);justify-content:space-between;flex-wrap:wrap;font-size:var(--as-text-s);color:var(--as-color-brand-200)}
.as-footer__credit{margin-left:auto}

/* Entrance (decorative, once) */
@keyframes as-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.as-hero__content>*{animation:as-rise 500ms var(--as-ease-out) both}
.as-hero__content>*:nth-child(2){animation-delay:60ms}
.as-hero__content>*:nth-child(3){animation-delay:120ms}

/* === 6. RESPONSIVE === */
@media (max-width:1280px){
  .as-phone__num{display:none}
  .as-phone{padding:0}
}
@media (max-width:1100px){
  .as-services__grid,.as-reviews__grid{grid-template-columns:1fr 1fr}
  .as-team__grid{grid-template-columns:1fr}
  .as-faq__cols{grid-template-columns:1fr}
  .as-footer__grid{grid-template-columns:1fr 1fr}
  .as-contact__box{grid-template-columns:1fr}
  .as-hero__media>.as-notice{width:auto;left:var(--as-space-3);right:var(--as-space-3);bottom:var(--as-space-3)}
  .as-gallery__list{grid-template-columns:repeat(3,1fr)}
  .as-hero__card{grid-template-columns:1fr}
  .as-hero__content{padding:var(--as-space-7) var(--as-space-5) var(--as-space-4)}
  .as-hero__media{margin:0 var(--as-space-4) 6.5rem}
  .as-hero--page .as-hero__content{padding:var(--as-space-6) var(--as-space-5) var(--as-space-4)}
  .as-hero--page .as-hero__media{margin:0 var(--as-space-4) var(--as-space-4)}
  .as-hero--page .as-hero__card>.as-notice{position:static;width:auto;max-width:none;margin:0 var(--as-space-4) var(--as-space-4)}
  .as-hero--page .as-hero__card>.as-notice__reopen{right:calc(var(--as-space-4) * 2);bottom:calc(var(--as-space-4) * 2)}
}
/* Menu breaks below 1024 */
@media (max-width:1023.98px){
  .as-header__nav{display:none}
  .as-header__actions{margin-left:auto}
  .as-burger{display:grid}
  .as-mnav{display:block;position:absolute;top:calc(100% + 8px);left:var(--as-space-4);right:var(--as-space-4);background:var(--as-color-white);border-radius:var(--as-radius);box-shadow:var(--as-shadow-menu);padding:var(--as-space-3);opacity:0;visibility:hidden;transform:translateY(-8px);transform-origin:top right;transition:opacity 180ms var(--as-ease-out),transform 180ms var(--as-ease-out),visibility 0s 180ms}
  .as-mnav[data-open]{opacity:1;visibility:visible;transform:none;transition:opacity 180ms var(--as-ease-out),transform 180ms var(--as-ease-out)}
  .as-mnav a{display:flex;align-items:center;min-height:var(--as-size-tap);padding:0 var(--as-space-4);border-radius:var(--as-radius-s);font-weight:var(--as-weight-strong);text-decoration:none;color:var(--as-color-ink)}
  .as-mnav a:active{background:var(--as-color-brand-50)}
  .as-mnav .as-menu__link::after{display:none}
  .as-mnav .as-menu__group{flex-wrap:wrap}
  .as-mnav .as-menu__group .as-menu__link{flex:1}
  .as-mnav .as-menu__toggle{width:var(--as-size-tap);height:var(--as-size-tap)}
  .as-mnav .as-menu__sub{display:none;width:100%;padding-bottom:var(--as-space-2)}
  .as-mnav .as-menu__group[data-open] .as-menu__sub{display:block}
  .as-mnav .as-menu__sublink{white-space:normal;padding-left:var(--as-space-6);font-weight:var(--as-weight-medium)}
  .as-mnav__lang{display:none;gap:var(--as-space-2);padding:var(--as-space-3) var(--as-space-4) var(--as-space-2);margin-top:var(--as-space-2);border-top:1px solid var(--as-color-line)}
  .as-mnav__lang a{min-height:44px;padding:0 var(--as-space-4);background:var(--as-color-brand-50);border-radius:var(--as-radius-pill)}
  .as-mnav__lang a[aria-current]{background:var(--as-color-brand);color:var(--as-color-white)}
}
@media (hover:hover){.as-mnav a:hover{background:var(--as-color-brand-50)}}
@media (max-width:700px){
  :root{--as-section-pad:var(--as-space-6)}
  .as-header__inner{position:relative;min-height:76px;gap:var(--as-space-3)}
  .as-header__logo img{height:56px}
  .as-header__actions{gap:var(--as-space-2)}
  .as-btn__long{display:none}
  .as-btn__short{display:inline}
  .as-header__actions .as-btn{min-height:44px;padding:.5rem 1.1rem}
  .as-rdv{position:static}
  .as-rdv__menu{left:var(--as-space-4);right:var(--as-space-4);width:auto;top:calc(100% - 4px)}
  .as-services__grid,.as-reviews__grid,.as-footer__grid{grid-template-columns:1fr}
  .as-person{grid-template-columns:1fr}
  .as-person__photo{min-height:280px}
  .as-banner{margin-inline:var(--as-space-3);flex-direction:column;align-items:stretch;text-align:center}
  .as-banner__animals{flex-wrap:wrap;justify-content:center}
  .as-banner__cta{margin:0;justify-content:center}
  .as-banner__cta .as-btn{flex:1}
  .as-contact__box{padding:var(--as-space-7) var(--as-space-5)}
  .as-contact__options{grid-template-columns:1fr}
  .as-notice__badge{width:52px;height:52px}
  .as-gallery__list{grid-template-columns:repeat(2,1fr)}
  .as-services,.as-reviews{margin-inline:var(--as-space-2);border-radius:var(--as-radius)}
}
@media (max-width:445.98px){
  .as-header__actions .as-lang{display:none}
  .as-mnav__lang{display:flex}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .as-notice__badge,.as-notice__reopen svg{animation:none}
}
