/* Lamounier Centro Veterinário e Pet Shop */
:root{
  --navy:#0B1E4A;
  --navy-2:#122a63;
  --ink:#16213d;
  --muted:#5a6683;
  --blue:#1E6FE8;
  --blue-2:#3d8bff;
  --sky:#EAF2FF;
  --cream:#FBF7F0;
  --line:#e6e9f1;
  --white:#fff;
  --amber:#FFB02E;
  --coral:#F2683C;
  --alert:#E5484D;
  --wa:#1FB955;
  --wa-2:#17a149;
  --r-lg:28px;
  --r-md:18px;
  --r-sm:12px;
  --shadow:0 24px 60px -28px rgba(11,30,74,.35);
  --shadow-s:0 10px 30px -18px rgba(11,30,74,.35);
  --ease:cubic-bezier(.22,.9,.32,1);
  --f-display:"Bricolage Grotesque",system-ui,sans-serif;
  --f-body:"Manrope",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);color:var(--ink);background:var(--white);line-height:1.6;font-size:16px;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
svg{width:1.15em;height:1.15em;flex:none}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-weight:700;font-size:15.5px;padding:15px 24px;border-radius:999px;transition:transform .25s var(--ease),box-shadow .25s,background .2s;white-space:nowrap;border:1.5px solid transparent;cursor:pointer}
.btn svg{width:20px;height:20px}
.btn:hover{transform:translateY(-2px)}
.btn--sm{padding:10px 18px;font-size:14.5px}
.btn--wa{background:var(--wa);color:#fff;box-shadow:0 14px 30px -14px rgba(31,185,85,.8)}
.btn--wa:hover{background:var(--wa-2)}
.btn--ghost{background:#fff;color:var(--navy);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--navy)}
.btn--navy{background:var(--navy);color:#fff}
.btn--alert{background:var(--alert);color:#fff;box-shadow:0 14px 30px -14px rgba(229,72,77,.8)}
.btn--white{background:#fff;color:var(--navy);box-shadow:0 18px 40px -18px rgba(0,0,0,.5)}
.btn--white svg{color:var(--wa)}
.btn--insta{background:linear-gradient(90deg,#f9a03f,#e1306c 55%,#8a3ab9);color:#fff}

/* ---------- textos ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.eyebrow svg{width:16px;height:16px}
.eyebrow--alert{color:var(--alert)}
.title{font-family:var(--f-display);font-weight:700;font-size:clamp(30px,4.2vw,50px);line-height:1.05;letter-spacing:-.025em;color:var(--navy);margin-top:12px;text-wrap:balance}
.title em,.display em{font-style:normal;color:var(--blue)}
.sub{color:var(--muted);font-size:17.5px;margin-top:14px;max-width:58ch;text-wrap:pretty}
.head{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:52px}
.head--row{flex-direction:row;justify-content:space-between;align-items:flex-end;text-align:left;gap:24px;flex-wrap:wrap}
.head--light .title{color:#fff}
.head--light .sub{color:#b9c4e0}
.head--light .eyebrow{color:var(--amber)}

.section{padding:clamp(72px,10vw,120px) 0}
.section--cream{background:var(--cream)}
.section--sky{background:var(--sky)}
.section--navy{background:radial-gradient(1200px 600px at 15% 0%,#173580 0%,transparent 60%),var(--navy);color:#fff}

/* ---------- navegação ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.nav.is-solid{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.nav__in{display:flex;align-items:center;gap:28px;height:78px}
.nav__brand img{height:52px;width:auto}
.nav__links{display:flex;gap:26px;margin-left:auto;font-weight:600;font-size:15px;color:var(--ink)}
.nav__links a{position:relative;padding:6px 0}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--blue);transform:scaleX(0);transition:transform .3s var(--ease);transform-origin:left}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__toggle{display:none;background:none;border:0;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer;margin-left:auto}
.nav__toggle span{width:24px;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s}
.nav.is-open .nav__toggle span:first-child{transform:translateY(4px) rotate(45deg)}
.nav.is-open .nav__toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;padding:130px 0 90px;background:
  radial-gradient(900px 500px at 100% 0%,#dceaff 0%,transparent 60%),
  radial-gradient(700px 500px at 0% 100%,#fff1dc 0%,transparent 60%),var(--cream);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:8px 16px 8px 12px;border-radius:999px;font-weight:600;font-size:14px;color:var(--navy);box-shadow:var(--shadow-s)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 0 rgba(31,185,85,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(31,185,85,0)}100%{box-shadow:0 0 0 0 rgba(31,185,85,0)}}
.display{font-family:var(--f-display);font-weight:800;font-size:clamp(40px,6vw,76px);line-height:.98;letter-spacing:-.035em;color:var(--navy);margin-top:24px;text-wrap:balance}
.display em{position:relative;white-space:nowrap}
.display em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.16em;background:var(--amber);opacity:.55;border-radius:4px;z-index:-1}
.lead{font-size:clamp(17px,1.6vw,19.5px);color:var(--muted);margin-top:22px;max-width:52ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero__facts{display:flex;gap:0;margin-top:42px;border-top:1px solid var(--line);padding-top:24px}
.hero__facts li{flex:1;padding-right:18px}
.hero__facts li+li{padding-left:18px;border-left:1px solid var(--line)}
.hero__facts strong{display:block;font-family:var(--f-display);font-size:30px;font-weight:800;color:var(--navy);letter-spacing:-.02em;line-height:1.1}
.hero__facts span{font-size:14px;color:var(--muted);line-height:1.35;display:block;margin-top:4px}
.hero__media{position:relative}
.hero__photo{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/4.4;transform:rotate(1.2deg)}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:52% 50%}
.float{position:absolute;display:flex;align-items:center;gap:12px;background:#fff;border-radius:18px;padding:12px 18px 12px 12px;box-shadow:var(--shadow);font-size:14px;line-height:1.3;animation:bob 6s ease-in-out infinite}
.float strong{display:block;color:var(--navy);font-size:15px}
.float span{color:var(--muted)}
.float--a{top:9%;left:-34px}
.float--b{bottom:7%;right:-24px;animation-delay:-3s}
.float__icon{width:44px;height:44px;border-radius:12px;background:#ffe8e8;color:var(--alert);display:grid;place-items:center}
.float__icon svg{width:22px;height:22px}
.float--b img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:52% 18%}
@keyframes bob{50%{transform:translateY(-8px)}}
.hero__paw{position:absolute;width:120px;height:120px;color:var(--blue);opacity:.08;top:-50px;right:-30px;transform:rotate(18deg);z-index:-1}

/* ---------- serviços ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.svc{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:26px 24px 28px;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.svc:hover{box-shadow:var(--shadow);border-color:transparent}
.svc h3{font-family:var(--f-display);font-size:20px;font-weight:700;color:var(--navy);margin-top:20px;letter-spacing:-.01em;line-height:1.2}
.svc p{color:var(--muted);font-size:15px;margin-top:8px;line-height:1.55}
.svc__ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center}
.svc__ic svg{width:26px;height:26px}
.c-blue{background:#e6efff;color:#1E6FE8}.c-coral{background:#ffece5;color:#e0552a}.c-violet{background:#efeafe;color:#6c4ce0}.c-teal{background:#e2f6f3;color:#0f9b8e}
.c-sky{background:#e3f4fd;color:#0b8ad0}.c-amber{background:#fff4dc;color:#d98a00}.c-rose{background:#fde8f0;color:#d03b78}.c-green{background:#e3f7ea;color:#179a48}
.svc-24{margin-top:18px;display:flex;align-items:center;gap:28px;background:var(--navy);color:#fff;border-radius:var(--r-md);padding:24px 32px;transition:transform .35s var(--ease)}
.svc-24:hover{transform:translateY(-4px)}
.svc-24__big{font-family:var(--f-display);font-size:56px;font-weight:800;color:var(--amber);line-height:1;letter-spacing:-.04em}
.svc-24__txt{flex:1;color:#c6d0ea;font-size:16.5px}
.svc-24__txt strong{color:#fff}
.svc-24__go{display:inline-flex;align-items:center;gap:8px;font-weight:700;white-space:nowrap}

/* ---------- sobre ---------- */
.about{display:grid;grid-template-columns:.85fr 1fr;gap:72px;align-items:center}
.about__media{position:relative}
.about__photo{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.about__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.about__badge{position:absolute;right:-22px;bottom:40px;background:var(--amber);color:var(--navy);border-radius:20px;padding:16px 22px;box-shadow:var(--shadow);transform:rotate(-4deg)}
.about__badge strong{display:block;font-family:var(--f-display);font-size:34px;font-weight:800;line-height:1}
.about__badge span{font-weight:700;font-size:14px}
.about__role{font-weight:600;color:var(--blue);margin-top:10px}
.quote{font-family:var(--f-display);font-size:clamp(20px,2.2vw,25px);font-weight:500;line-height:1.35;color:var(--navy);border-left:4px solid var(--amber);padding:4px 0 4px 22px;margin:28px 0;letter-spacing:-.01em}
.about__copy>p:not(.eyebrow):not(.about__role){color:var(--muted);margin-top:14px}
.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.tags li{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:600;font-size:14.5px;color:var(--navy)}
.tags svg{color:var(--blue)}

/* ---------- equipe ---------- */
.team{display:grid;grid-template-columns:1fr .9fr;gap:72px;align-items:center}
.team__copy .btn{margin-top:30px}
.team__photo{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.team__photo img{width:100%;height:100%;object-fit:cover}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:1.1fr 1fr;grid-template-rows:auto auto;gap:20px}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:300px;background:#081536}
.tile--tall{grid-row:span 2;min-height:640px}
.tile video,.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(6,16,42,.92))}
.tile figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 28px;z-index:1;color:#d5ddf0;font-size:15.5px;max-width:52ch}
.tile__k{display:block;font-family:var(--f-display);font-size:26px;font-weight:700;color:#fff;margin-bottom:4px;letter-spacing:-.01em}

/* ---------- emergência ---------- */
.er{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:start}
.er__copy{position:sticky;top:110px}
.er__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.er__note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:15px;margin-top:20px}
.signs{display:grid;gap:12px}
.signs li{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:18px 20px;font-weight:600;color:var(--navy);font-size:16px;line-height:1.45;transition:border-color .25s,transform .25s var(--ease)}
.signs li:hover{border-color:#f3b4b6;transform:translateX(4px)}
.signs svg{width:22px;height:22px;color:#fff;background:var(--alert);border-radius:50%;padding:4px;margin-top:1px}

/* ---------- passos ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.step{background:#fff;border-radius:var(--r-md);padding:32px 30px;position:relative}
.step__n{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;font-family:var(--f-display);font-weight:800;font-size:20px}
.step h3{font-family:var(--f-display);font-size:22px;color:var(--navy);margin-top:20px;letter-spacing:-.01em}
.step p{color:var(--muted);margin-top:8px;font-size:15.5px}

/* ---------- instagram ---------- */
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee__track{display:flex;align-items:flex-start;gap:16px;width:max-content;animation:scroll 60s linear infinite;padding:6px 0 20px}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track a{flex:none;width:210px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-s);transition:transform .3s var(--ease)}
.marquee__track a:hover{transform:translateY(-6px) rotate(-1deg)}
.marquee__track img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
@keyframes scroll{to{transform:translateX(calc(-50% - 8px))}}

/* ---------- faq ---------- */
.faq{max-width:860px}
.faq__list{display:grid;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);transition:box-shadow .3s}
.faq details[open]{box-shadow:var(--shadow-s)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;font-weight:700;font-size:17px;color:var(--navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{width:22px;height:22px;color:var(--blue);transition:transform .3s var(--ease)}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details p{padding:0 26px 24px;color:var(--muted)}

/* ---------- contato ---------- */
.visit{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:stretch}
.visit__info{display:flex;flex-direction:column;gap:12px}
.info{display:flex;gap:16px;align-items:flex-start;background:var(--cream);border-radius:var(--r-md);padding:20px 22px;color:var(--muted);font-size:15.5px;line-height:1.5;transition:transform .25s var(--ease)}
a.info:hover{transform:translateX(4px)}
.info strong{display:block;color:var(--navy);font-size:16px;margin-bottom:2px}
.info__ic{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--blue);display:grid;place-items:center;flex:none}
.info__ic svg{width:22px;height:22px}
.visit__btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.visit__map{border-radius:var(--r-lg);overflow:hidden;min-height:420px;box-shadow:var(--shadow);background:var(--sky)}
.visit__map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}

/* ---------- CTA final ---------- */
.final{background:linear-gradient(135deg,var(--blue) 0%,#1553c4 55%,var(--navy) 100%);color:#fff;padding:96px 0;position:relative;overflow:hidden}
.final__in{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center}
.final h2{font-family:var(--f-display);font-weight:800;font-size:clamp(32px,5vw,58px);line-height:1.02;letter-spacing:-.03em;max-width:16ch;text-wrap:balance}
.final p{color:#d4e2ff;font-size:18px;margin:18px 0 32px}
.final__paw{position:absolute;width:260px;height:260px;opacity:.07;right:-40px;top:-90px;transform:rotate(20deg)}

/* ---------- rodapé ---------- */
.foot{background:#071334;color:#a9b5d4;padding:72px 0 28px;font-size:15px}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot__brand img{width:200px;height:auto}
.foot__verse{margin-top:18px;font-style:italic;max-width:30ch}
.foot h3{color:#fff;font-size:15px;margin-bottom:14px;font-weight:700}
.foot__grid a{display:block;padding:4px 0;transition:color .2s}
.foot__grid a:hover{color:#fff}
.foot__bar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding-top:24px;font-size:13.5px}
.foot__credit{color:#7f8db3}
.foot__credit strong{color:#c9d3ee;font-weight:700;letter-spacing:.02em}
.foot__credit a{transition:color .2s}
.foot__credit a:hover,.foot__credit a:hover strong{color:#fff}

/* ---------- botão flutuante ---------- */
.fab{position:fixed;right:20px;bottom:20px;z-index:60;width:60px;height:60px;border-radius:50%;background:var(--wa);color:#fff;display:grid;place-items:center;box-shadow:0 16px 34px -12px rgba(31,185,85,.9);transition:transform .3s var(--ease),opacity .3s;opacity:0;transform:scale(.6);pointer-events:none}
.fab.is-on{opacity:1;transform:scale(1);pointer-events:auto}
.fab:hover{transform:scale(1.08)}
.fab svg{width:32px;height:32px}

/* ---------- movimento ---------- */
:root{interpolate-size:allow-keywords}
.progress{position:fixed;inset:0 0 auto;height:3px;z-index:70;pointer-events:none}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--amber));transform:scaleX(0);transform-origin:left}

/* títulos palavra por palavra */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.1em 0 .14em;margin:-.1em 0 -.14em}
.w>span{display:inline-block;transform:translateY(115%) rotate(4deg);transform-origin:left bottom;transition:transform 1s var(--ease);transition-delay:calc(var(--i) * 55ms)}
.split.is-in .w>span{transform:none}
.js .split.reveal{opacity:1;transform:none}
.display em::after{transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease) .8s}
.display.is-in em::after{transform:scaleX(1)}

/* fotos entram rápido, com leve zoom */
.js .wipe{opacity:0;transition:opacity .6s ease}
.js .wipe img{transform:scale(1.08);transition:transform 1.2s var(--ease)}
.js .wipe.is-in{opacity:1}
.js .wipe.is-in img{transform:none}

/* topo */
.paws{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.paws svg{position:absolute;left:var(--x);bottom:-80px;width:calc(70px * var(--s));height:calc(70px * var(--s));color:var(--blue);opacity:0;animation:drift var(--d) linear infinite;animation-delay:var(--delay)}
@keyframes drift{0%{transform:translateY(0) rotate(-20deg);opacity:0}10%{opacity:.09}85%{opacity:.09}100%{transform:translateY(-900px) rotate(25deg);opacity:0}}
.hero__media{perspective:1200px}
.hero__photo{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(1.2deg);transition:transform .6s var(--ease)}
.hero__photo img{animation:kenburns 18s ease-in-out infinite alternate}
@keyframes kenburns{from{scale:1}to{scale:1.1}}
.float{translate:var(--fx,0) var(--fy,0);transition:translate .6s var(--ease)}
.trail{position:absolute;width:22px;height:22px;color:var(--blue);pointer-events:none;opacity:.35;z-index:1;animation:trail 1.4s var(--ease) forwards}
@keyframes trail{from{opacity:.35;scale:.4}20%{scale:1}to{opacity:0;scale:1}}

/* cartões com brilho e inclinação */
.svc{position:relative;overflow:hidden;transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) translateY(var(--lift,0));transition:transform .5s var(--ease),box-shadow .35s,border-color .35s}
.svc::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(30,111,232,.12),transparent 60%);opacity:0;transition:opacity .3s;pointer-events:none}
.svc:hover{--lift:-6px}
.svc:hover::before{opacity:1}
.svc__ic{transition:transform .5s var(--ease)}
.svc:hover .svc__ic{transform:scale(1.12) rotate(-8deg)}

/* botões magnéticos */
.magnet{translate:var(--bx,0) var(--by,0);transition:translate .4s var(--ease),transform .25s var(--ease),box-shadow .25s,background .2s}

/* passos */
.steps{position:relative}
.steps::before{content:"";position:absolute;top:55px;left:12%;right:12%;height:2px;background:linear-gradient(90deg,var(--blue),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease) .3s}
.steps.is-in::before{transform:scaleX(1)}
.js .step__n{transform:scale(0);transition:transform .7s cubic-bezier(.34,1.56,.64,1)}
.js .step.is-in .step__n{transform:scale(1);transition-delay:.25s}
.step{transition:transform .35s var(--ease),box-shadow .35s}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow)}

/* emergência entra pela lateral */
.js .signs .reveal{transform:translateX(40px)}
.js .signs .reveal.is-in{transform:none}

/* mosaico */
.tile video,.tile img{transition:transform 1.2s var(--ease)}
.tile:hover video,.tile:hover img{transform:scale(1.06)}
.tile figcaption{transition:transform .5s var(--ease)}
.tile:hover figcaption{transform:translateY(-6px)}

/* faq com abertura suave */
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .45s var(--ease),content-visibility .45s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq summary{transition:color .2s}
.faq summary:hover{color:var(--blue)}

/* chamada final */
.final{background-size:220% 220%;animation:shift 14s ease-in-out infinite alternate}
@keyframes shift{from{background-position:0% 30%}to{background-position:100% 70%}}
.final__paw{animation:spin 30s linear infinite}
@keyframes spin{to{rotate:360deg}}

/* menu ativo */
.nav__links a.is-active{color:var(--blue)}
.nav__links a.is-active::after{transform:scaleX(1)}

/* ---------- animação de entrada ---------- */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .signs .reveal{opacity:1;transform:none}
  .w>span,.js .step__n{transform:none!important}
  .js .wipe{opacity:1}.js .wipe img{transform:none}
  .marquee__track,.float,.dot,.paws svg,.hero__photo img,.final,.final__paw{animation:none}
}

/* ---------- responsivo ---------- */
.show-sm{display:none}
@media (max-width:1080px){
  .services{grid-template-columns:repeat(2,1fr)}
  .nav__links{gap:18px;font-size:14px}
}
@media (max-width:900px){
  .nav__links{position:fixed;inset:78px 0 auto;flex-direction:column;gap:0;background:#fff;padding:8px 20px 20px;box-shadow:0 20px 30px -20px rgba(11,30,74,.3);transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s var(--ease);margin:0}
  .nav__links a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
  .nav.is-open{background:#fff}
  .nav.is-open .nav__links{transform:none;opacity:1;pointer-events:auto}
  .nav__toggle{display:flex;margin-left:0}
  .nav__cta{margin-left:auto}
  .hero{padding:110px 0 70px}
  .hero__grid,.about,.er,.visit,.team{grid-template-columns:1fr}
  .team{gap:44px}
  .team__photo{max-width:520px}
  .hero__grid{gap:48px}
  .hero__photo{aspect-ratio:4/3;transform:none}
  .float--a{left:12px;top:-22px}
  .float--b{right:12px;bottom:-26px}
  .about{gap:48px}
  .about__media{max-width:440px}
  .about__badge{right:-8px}
  .er__copy{position:static}
  .bento{grid-template-columns:1fr}
  .tile--tall{grid-row:auto;min-height:520px}
  .steps{grid-template-columns:1fr}
  .steps::before{display:none}
  .foot__grid{grid-template-columns:1fr 1fr}
  .foot__brand{grid-column:1/-1}
}
@media (max-width:560px){
  .wrap{width:calc(100% - 32px)}
  .nav__in{height:68px;gap:12px}
  .nav__brand img{height:42px}
  .nav__links{top:68px}
  .nav__cta span{display:none}
  .nav__cta{padding:10px 12px}
  .hero{padding:96px 0 64px}
  .display{margin-top:20px}
  .hero__cta .btn{width:100%}
  .hero__facts strong{font-size:24px}
  .hero__facts li{padding-right:10px}
  .hero__facts li+li{padding-left:10px}
  .hero__facts span{font-size:12.5px}
  .float{font-size:12.5px;padding:9px 14px 9px 9px}
  .float strong{font-size:13.5px}
  .float__icon,.float--b img{width:38px;height:38px}
  .services{grid-template-columns:1fr}
  .hide-sm{display:none}.show-sm{display:inline}
  .services{gap:12px}
  .svc{display:grid;grid-template-columns:48px 1fr;column-gap:16px;padding:18px}
  .svc__ic{width:48px;height:48px}
  .svc p{font-size:14.5px;margin-top:4px}
  .svc h3{margin-top:0;align-self:center}
  .svc p{grid-column:2}
  .svc-24{flex-direction:column;align-items:flex-start;gap:10px;padding:24px}
  .head{margin-bottom:36px}
  .head--row .btn{width:100%}
  .tile--tall{min-height:460px}
  .tile{min-height:320px}
  .tile figcaption{padding:22px}
  .er__cta .btn{flex:1}
  .marquee__track a{width:160px}
  .faq summary{padding:18px 20px;font-size:16px}
  .faq details p{padding:0 20px 20px}
  .visit__btns .btn{flex:1}
  .visit__map,.visit__map iframe{min-height:320px}
  .foot__grid{grid-template-columns:1fr}
  .fab{right:16px;bottom:16px;width:56px;height:56px}
}
