/* ===================================
   CLINIQUE DU JARDIN — Cabinet vétérinaire
   Friendly · jaune doux + bleu lagon · arrondi
   =================================== */
:root{
  --sun:#f5c64a;--sun-soft:#fde9a8;
  --lagoon:#0e8e9b;--lagoon-deep:#08555e;--lagoon-soft:#cfe9ec;
  --bg:#fffdf6;--ink:#1c2a2c;--ink-soft:#4a5d60;--mute:#8c9b9c;
  --coral:#f47a55;
  --serif:"Lora",serif;--sans:"Nunito",sans-serif;
  --pad:clamp(20px,4vw,56px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;color:var(--ink);letter-spacing:-0.01em}
h1{font-size:clamp(44px,7vw,96px)}
h2{font-size:clamp(32px,4.6vw,60px)}
h3{font-size:clamp(20px,2.2vw,30px);font-weight:600}
h4{font-family:var(--sans);font-size:13px;letter-spacing:0.18em;text-transform:uppercase;color:var(--mute);font-weight:700}

.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;background:var(--sun-soft);color:var(--lagoon-deep);font-size:12px;font-weight:700;letter-spacing:0.1em;border-radius:999px;text-transform:uppercase}
.eyebrow::before{content:"🐾";font-size:14px}

/* ========== HEADER DOUBLE-ROW ========== */
.topbar{
  background:var(--lagoon-deep);color:var(--lagoon-soft);
  padding:8px var(--pad);display:flex;justify-content:space-between;align-items:center;
  font-size:13px;font-weight:500;flex-wrap:wrap;gap:14px
}
.topbar a{color:var(--lagoon-soft)}
.topbar a:hover{color:var(--sun)}
.topbar .urgence{display:inline-flex;align-items:center;gap:8px;background:var(--coral);padding:5px 14px;border-radius:999px;color:#fff;font-weight:700}
.topbar .urgence::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse 1.5s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

.site-header{
  background:var(--bg);position:sticky;top:0;z-index:50;
  padding:18px var(--pad);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:30px;
  box-shadow:0 1px 0 rgba(28,42,44,.05)
}
.brand{display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:26px;font-weight:600;color:var(--lagoon-deep)}
.brand .mark{width:48px;height:48px;background:var(--sun);border-radius:50% 50% 50% 0;display:flex;align-items:center;justify-content:center;transform:rotate(-15deg);font-size:24px}
.brand small{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--mute);margin-top:-4px}

.main-nav{display:flex;justify-content:center;gap:30px}
.main-nav a{font-weight:600;font-size:14px;color:var(--ink-soft);padding:8px 4px;border-bottom:2px solid transparent;transition:all .2s ease}
.main-nav a:hover,.main-nav a.active{color:var(--lagoon-deep);border-bottom-color:var(--sun)}

.btn-rdv{
  background:var(--lagoon);color:#fff;padding:14px 26px;border-radius:999px;
  font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:10px;
  transition:transform .2s ease,background .2s ease
}
.btn-rdv:hover{background:var(--lagoon-deep);transform:translateY(-2px)}

.burger{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;padding:0;flex-direction:column;justify-content:center;align-items:center;gap:4px}
.burger span{width:22px;height:2px;background:var(--lagoon-deep);border-radius:2px}

@media(max-width:900px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);flex-direction:column;padding:20px var(--pad);box-shadow:0 10px 30px rgba(0,0,0,.08)}
  .main-nav.open{display:flex}
  .burger{display:flex}
  .topbar{font-size:12px}
}

/* ========== HERO ========== */
.hero{position:relative;padding:60px var(--pad) 80px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;position:relative;z-index:2}
.hero h1{margin:18px 0 20px}
.hero h1 .acc{color:var(--coral);font-style:italic;font-weight:500}
.hero .lede{font-size:19px;color:var(--ink-soft);max-width:50ch;margin-bottom:28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

.btn-primary{background:var(--coral);color:#fff;padding:18px 30px;border-radius:999px;font-weight:700;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:transform .2s ease,box-shadow .3s ease;box-shadow:0 8px 20px -8px rgba(244,122,85,.5)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px rgba(244,122,85,.6)}
.btn-ghost{background:transparent;color:var(--lagoon-deep);padding:18px 30px;border-radius:999px;font-weight:700;border:2px solid var(--lagoon-deep);display:inline-flex;align-items:center;gap:10px}
.btn-ghost:hover{background:var(--lagoon-deep);color:#fff}

.hero-visual{position:relative}
.hero-visual::before{
  content:"";position:absolute;width:120%;height:120%;
  background:radial-gradient(circle at 50% 50%,var(--sun-soft) 0%,transparent 60%);
  top:-10%;left:-10%;z-index:0
}
.hero-photo{position:relative;z-index:1;width:100%;aspect-ratio:1;object-fit:cover;border-radius:60% 40% 50% 50% / 50% 50% 40% 60%;box-shadow:0 30px 60px -25px rgba(14,142,155,.4)}

.float-card{position:absolute;background:#fff;padding:14px 20px;border-radius:24px;box-shadow:0 12px 30px -10px rgba(28,42,44,.18);z-index:3;display:flex;align-items:center;gap:12px;font-weight:600;font-size:14px}
.float-card .ic{width:38px;height:38px;border-radius:50%;background:var(--lagoon-soft);display:flex;align-items:center;justify-content:center;color:var(--lagoon-deep);font-size:18px}
.float-card.fc-1{top:6%;left:-3%}
.float-card.fc-2{bottom:14%;right:-5%}
.float-card.fc-3{bottom:-2%;left:10%}
.float-card small{display:block;font-weight:500;font-size:11px;color:var(--mute)}

@media(max-width:800px){.hero-grid{grid-template-columns:1fr;gap:30px}.float-card.fc-1,.float-card.fc-2,.float-card.fc-3{display:none}}

/* ========== STATS RIBBON ========== */
.stats-band{background:var(--lagoon-deep);color:#fff;padding:50px var(--pad);display:grid;grid-template-columns:repeat(4,1fr);gap:30px;text-align:center}
.stats-band .stat strong{display:block;font-family:var(--serif);font-size:48px;color:var(--sun);line-height:1}
.stats-band .stat span{display:block;font-size:13px;margin-top:8px;letter-spacing:0.08em;color:var(--lagoon-soft)}
@media(max-width:700px){.stats-band{grid-template-columns:1fr 1fr}}

/* ========== SERVICES ========== */
.services{padding:100px var(--pad)}
.section-head{text-align:center;max-width:600px;margin:0 auto 60px}
.section-head h2{margin-top:14px}
.serv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.serv{
  background:#fff;padding:36px 30px;border-radius:28px;
  transition:transform .3s ease,box-shadow .3s ease;
  border:2px solid var(--lagoon-soft);
}
.serv:hover{transform:translateY(-6px);box-shadow:0 20px 40px -16px rgba(14,142,155,.2);border-color:var(--sun)}
.serv .ico{width:56px;height:56px;border-radius:50%;background:var(--sun-soft);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:20px}
.serv h3{margin-bottom:10px}
.serv p{color:var(--ink-soft);font-size:15px;margin-bottom:18px}
.serv .read{color:var(--lagoon-deep);font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.serv .read::after{content:"→";transition:transform .2s ease}
.serv:hover .read::after{transform:translateX(4px)}
@media(max-width:900px){.serv-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.serv-grid{grid-template-columns:1fr}}

/* ========== STEPS ========== */
.steps{background:var(--lagoon-soft);padding:100px var(--pad)}
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px;counter-reset:s}
.step{background:#fff;padding:30px;border-radius:24px;position:relative;counter-increment:s}
.step::before{content:counter(s,decimal-leading-zero);position:absolute;top:-14px;right:20px;background:var(--coral);color:#fff;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;font-weight:600}
.step h3{font-size:22px;margin-bottom:8px}
.step p{font-size:14px;color:var(--ink-soft)}
@media(max-width:900px){.steps-grid{grid-template-columns:1fr 1fr}}
@media(max-width:500px){.steps-grid{grid-template-columns:1fr}}

/* ========== TEAM ========== */
.team{padding:100px var(--pad)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:50px}
.member{text-align:center}
.member-photo{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;margin-bottom:20px;border:6px solid var(--sun-soft)}
.member h3{font-size:24px;margin-bottom:4px}
.member .role{color:var(--coral);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.member p{font-size:14px;color:var(--ink-soft);margin-top:14px;max-width:30ch;margin-left:auto;margin-right:auto}
@media(max-width:800px){.team-grid{grid-template-columns:1fr;gap:40px}}

/* ========== FAQ ========== */
.faq{padding:100px var(--pad);background:var(--sun-soft)}
.faq-list{max-width:780px;margin:50px auto 0}
.faq-item{background:#fff;border-radius:22px;margin-bottom:14px;overflow:hidden}
.faq-item summary{padding:22px 26px;cursor:pointer;font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:24px;color:var(--coral);font-weight:300}
.faq-item[open] summary::after{content:"−"}
.faq-item p{padding:0 26px 22px;color:var(--ink-soft);font-size:15px;line-height:1.7}

/* ========== CTA HUGE ========== */
.cta-huge{background:var(--coral);color:#fff;padding:80px var(--pad);text-align:center;position:relative;overflow:hidden}
.cta-huge::before{content:"🐶 🐱 🐰 🐹 🐢 🦜";position:absolute;font-size:80px;opacity:.08;top:50%;left:50%;transform:translate(-50%,-50%);letter-spacing:30px;white-space:nowrap;width:200%}
.cta-huge h2{color:#fff;max-width:18ch;margin:14px auto 22px}
.cta-huge p{max-width:50ch;margin:0 auto 30px;color:rgba(255,255,255,.9);font-size:17px}
.cta-huge .btn-primary{background:#fff;color:var(--coral);box-shadow:none}
.cta-huge .btn-primary:hover{background:var(--lagoon-deep);color:#fff}

/* ========== PAGE HEADERS ========== */
.page-hero{padding:80px var(--pad) 50px;background:var(--lagoon-soft);text-align:center}
.page-hero h1{margin:18px 0 14px}
.page-hero p{max-width:50ch;margin:0 auto;color:var(--ink-soft);font-size:17px}

/* ========== SERVICES DETAIL ========== */
.serv-detail{padding:80px var(--pad)}
.serv-row{display:grid;grid-template-columns:1fr 1.4fr;gap:60px;align-items:center;padding:50px 0;border-bottom:1px dashed var(--lagoon-soft)}
.serv-row:nth-child(even){grid-template-columns:1.4fr 1fr}
.serv-row:nth-child(even) .serv-row-img{order:2}
.serv-row-img{aspect-ratio:5/4;object-fit:cover;width:100%;border-radius:24px}
.serv-row h2{margin-bottom:16px}
.serv-row p{font-size:16px;color:var(--ink-soft);margin-bottom:14px}
.serv-row ul{list-style:none;display:grid;gap:8px;margin-top:18px}
.serv-row li{padding-left:32px;position:relative;font-size:14px;color:var(--ink)}
.serv-row li::before{content:"✓";position:absolute;left:0;width:20px;height:20px;background:var(--sun);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--lagoon-deep);font-size:12px}
@media(max-width:800px){.serv-row,.serv-row:nth-child(even){grid-template-columns:1fr;gap:30px}.serv-row:nth-child(even) .serv-row-img{order:initial}}

/* ========== PRENDRE RDV ========== */
.rdv-page{padding:80px var(--pad);display:grid;grid-template-columns:1fr 1.2fr;gap:50px}
.rdv-info .info-card{background:var(--lagoon-soft);padding:28px;border-radius:24px;margin-bottom:18px}
.rdv-info h4{color:var(--lagoon-deep);margin-bottom:8px}
.rdv-info p{font-family:var(--serif);font-size:20px;color:var(--ink)}
.rdv-form{background:#fff;border-radius:30px;padding:40px;box-shadow:0 20px 40px -20px rgba(14,142,155,.15);border:2px solid var(--lagoon-soft)}
.rdv-form h3{margin-bottom:22px}
.rdv-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.rdv-form label{font-weight:600;font-size:13px;margin-bottom:6px;display:block;color:var(--ink-soft)}
.rdv-form input,.rdv-form select,.rdv-form textarea{
  width:100%;padding:14px 18px;border:2px solid var(--lagoon-soft);border-radius:14px;
  font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--bg);outline:none;transition:border-color .25s ease
}
.rdv-form input:focus,.rdv-form select:focus,.rdv-form textarea:focus{border-color:var(--coral)}
.rdv-form textarea{min-height:120px;resize:vertical}
.pet-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pet-chips label{padding:10px 18px;border:2px solid var(--lagoon-soft);border-radius:999px;cursor:pointer;font-weight:600;font-size:14px;color:var(--ink-soft);transition:all .2s ease;margin:0}
.pet-chips input{display:none}
.pet-chips input:checked+label,.pet-chips label:hover{background:var(--sun);border-color:var(--sun);color:var(--ink)}
@media(max-width:800px){.rdv-page{grid-template-columns:1fr}.rdv-form .row{grid-template-columns:1fr}}

/* ========== FOOTER ========== */
.site-footer{background:var(--lagoon-deep);color:var(--lagoon-soft);padding:60px var(--pad) 24px}
.footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-brand .brand{color:#fff;margin-bottom:12px}
.footer-brand p{color:rgba(255,255,255,.7);max-width:36ch;font-size:14px}
.footer-col h4{color:var(--sun);margin-bottom:18px}
.footer-col a,.footer-col span{display:block;padding:5px 0;font-size:14px;color:rgba(255,255,255,.7)}
.footer-col a:hover{color:var(--sun)}
.footer-bot{display:flex;justify-content:space-between;padding-top:24px;font-size:12px;color:rgba(255,255,255,.5)}
@media(max-width:800px){.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-bot{flex-direction:column;gap:8px;text-align:center}}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.reveal[data-delay="1"]{transition-delay:.1s}
.reveal[data-delay="2"]{transition-delay:.2s}
