
/* ============================================================
   CABVET RESPONSIVE SCALE V3.0
   Fluid typography + buttons + forms by viewport resolution
   Loaded last, designed not to alter page structure.
   ============================================================ */

:root{
  --cv-rs-body: clamp(15px, 0.875rem + 0.12vw, 18px);
  --cv-rs-small: clamp(12px, 0.70rem + 0.10vw, 14px);
  --cv-rs-label: clamp(12.5px, 0.72rem + 0.12vw, 15px);
  --cv-rs-nav: clamp(13px, 0.73rem + 0.16vw, 16px);

  --cv-rs-h1: clamp(38px, 2.1rem + 2.25vw, 78px);
  --cv-rs-h2: clamp(30px, 1.70rem + 1.45vw, 56px);
  --cv-rs-h3: clamp(21px, 1.18rem + 0.65vw, 34px);
  --cv-rs-h4: clamp(17px, 0.98rem + 0.30vw, 23px);

  --cv-rs-btn-font: clamp(13.5px, 0.76rem + 0.14vw, 16px);
  --cv-rs-btn-h: clamp(44px, 2.45rem + 0.38vw, 54px);
  --cv-rs-btn-x: clamp(14px, 0.55rem + 0.85vw, 25px);
  --cv-rs-btn-radius: clamp(11px, 0.55rem + 0.28vw, 16px);

  --cv-rs-input-font: clamp(15px, 0.86rem + 0.12vw, 17px);
  --cv-rs-input-h: clamp(46px, 2.55rem + 0.35vw, 54px);

  --cv-rs-card-title: clamp(18px, 1rem + 0.35vw, 25px);
}

/* -------- General public typography -------- */

body.cabvet-site{
  font-size: var(--cv-rs-body);
  line-height: 1.62;
}

body.cabvet-site h1{
  font-size: var(--cv-rs-h1);
  line-height: 1.00;
  letter-spacing: clamp(-0.055em, -0.04em, -0.025em);
}

body.cabvet-site h2{
  font-size: var(--cv-rs-h2);
  line-height: 1.06;
}

body.cabvet-site h3{
  font-size: var(--cv-rs-h3);
  line-height: 1.14;
}

body.cabvet-site h4{
  font-size: var(--cv-rs-h4);
  line-height: 1.18;
}

body.cabvet-site p,
body.cabvet-site li{
  font-size: var(--cv-rs-body);
  line-height: 1.66;
}

body.cabvet-site small,
body.cabvet-site .small,
body.cabvet-site .mini,
body.cabvet-site .kicker,
body.cabvet-site .eyebrow{
  font-size: var(--cv-rs-small);
}

/* -------- Buttons / CTA -------- */

body.cabvet-site button:not(.cv-menu):not(.cabvet-gdpr-floating):not(.cv-mobile-scheme-switch):not(.cabvet-mobile-theme-switch),
body.cabvet-site .btn,
body.cabvet-site .cv-btn,
body.cabvet-site a.btn,
body.cabvet-site a.cv-btn,
body.cabvet-site input[type="submit"],
body.cabvet-site input[type="button"]{
  min-height: var(--cv-rs-btn-h);
  padding-left: var(--cv-rs-btn-x);
  padding-right: var(--cv-rs-btn-x);
  border-radius: var(--cv-rs-btn-radius);
  font-size: var(--cv-rs-btn-font);
  line-height: 1.2;
}

/* Online CTA / prominent CTAs */
body.cabvet-site .cv-online-launch-actions a,
body.cabvet-site .cabvet-online-promo-link{
  min-height: var(--cv-rs-btn-h);
  padding-left: var(--cv-rs-btn-x);
  padding-right: var(--cv-rs-btn-x);
  font-size: var(--cv-rs-btn-font);
}

/* -------- Forms -------- */

body.cabvet-site input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
body.cabvet-site select,
body.cabvet-site textarea{
  font-size: var(--cv-rs-input-font);
  line-height: 1.4;
  border-radius: clamp(10px, 0.55rem + 0.15vw, 14px);
}

body.cabvet-site input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
body.cabvet-site select{
  min-height: var(--cv-rs-input-h);
}

body.cabvet-site textarea{
  min-height: clamp(120px, 15vh, 190px);
}

body.cabvet-site label,
body.cabvet-site .form-label{
  font-size: var(--cv-rs-label);
  line-height: 1.45;
}

/* -------- Header / navigation -------- */

body.cabvet-site .sig-links > a,
body.cabvet-site .sig-links > button,
body.cabvet-site .sig-header a{
  font-size: var(--cv-rs-nav);
}

body.cabvet-site .sig-header .cv-nav-cta{
  min-height: clamp(40px, 2.2rem + 0.28vw, 48px);
  padding-left: clamp(12px, 0.55rem + 0.55vw, 20px);
  padding-right: clamp(12px, 0.55rem + 0.55vw, 20px);
}

/* -------- Cards / special modules -------- */

body.cabvet-site .ticket-product-copy b,
body.cabvet-site .trust-card h3,
body.cabvet-site .feature-card h3,
body.cabvet-site .card h3{
  font-size: var(--cv-rs-card-title);
}

body.cabvet-site .ticket-product-copy small,
body.cabvet-site .trust-card p,
body.cabvet-site .trust-row span,
body.cabvet-site .trust-status-item small{
  font-size: clamp(13.5px, 0.76rem + 0.16vw, 16px);
}

/* GDPR */
body.cabvet-site .cabvet-gdpr-copy b{
  font-size: clamp(16px, 0.9rem + 0.28vw, 20px);
}

body.cabvet-site .cabvet-gdpr-copy p,
body.cabvet-site .cabvet-gdpr-category p{
  font-size: clamp(13px, 0.73rem + 0.15vw, 15px);
}

body.cabvet-site .cabvet-gdpr-btn{
  min-height: clamp(42px, 2.4rem + 0.30vw, 50px);
  padding-inline: clamp(12px, 0.55rem + 0.5vw, 20px);
  font-size: clamp(12.5px, 0.7rem + 0.15vw, 15px);
}

/* Footer */
body.cabvet-site .cabvet-footer-premium .cabvet-footer-slogan{
  font-size: clamp(27px, 1.45rem + 1.05vw, 44px);
  line-height: 1.04;
}

body.cabvet-site .cabvet-footer-premium .cabvet-footer-description{
  font-size: clamp(13.5px, 0.77rem + 0.16vw, 16px);
}

body.cabvet-site .cabvet-footer-premium .cabvet-footer-col h4{
  font-size: clamp(11.5px, 0.66rem + 0.11vw, 14px);
}

body.cabvet-site .cabvet-footer-premium .cabvet-footer-col a,
body.cabvet-site .cabvet-footer-premium .cabvet-footer-col button{
  font-size: clamp(12.5px, 0.70rem + 0.14vw, 15px);
  line-height: 1.55;
}

body.cabvet-site .cabvet-footer-premium .cabvet-footer-copyline,
body.cabvet-site .cabvet-footer-premium .cabvet-footer-legal{
  font-size: clamp(11px, 0.63rem + 0.11vw, 13.5px);
}

/* ============================================================
   PHONE 320–480
   ============================================================ */
@media (max-width:480px){
  :root{
    --cv-rs-body: clamp(15.5px, 4.15vw, 17px);
    --cv-rs-small: clamp(12.5px, 3.35vw, 14px);
    --cv-rs-label: clamp(13.5px, 3.55vw, 15px);
    --cv-rs-nav: clamp(15px, 4vw, 17px);

    --cv-rs-h1: clamp(34px, 9.7vw, 45px);
    --cv-rs-h2: clamp(27px, 7.4vw, 36px);
    --cv-rs-h3: clamp(21px, 5.6vw, 27px);

    --cv-rs-btn-font: clamp(14px, 3.75vw, 16px);
    --cv-rs-btn-h: clamp(46px, 12vw, 52px);
    --cv-rs-btn-x: clamp(14px, 4vw, 19px);

    --cv-rs-input-font: 16px;
    --cv-rs-input-h: clamp(48px, 12.8vw, 54px);
  }

  body.cabvet-site{
    line-height: 1.64;
  }

  body.cabvet-site .sig-header .sig-links[data-nav] > a{
    min-height: 50px;
    font-size: var(--cv-rs-nav);
    line-height: 1.3;
  }

  body.cabvet-site .cv-menu[data-nav-toggle]{
    width: clamp(44px, 12vw, 48px);
    height: clamp(44px, 12vw, 48px);
    min-width: clamp(44px, 12vw, 48px);
    font-size: clamp(22px, 6vw, 26px);
  }

  body.cabvet-site .cv-online-launch-actions,
  body.cabvet-site .cabvet-online-promo-actions{
    grid-template-columns:1fr;
  }

  body.cabvet-site .cabvet-gdpr-actions{
    display:grid;
    grid-template-columns:1fr;
  }

  body.cabvet-site .cabvet-gdpr-btn{
    width:100%;
  }

  body.cabvet-site .cabvet-footer-premium .cabvet-footer-col a,
  body.cabvet-site .cabvet-footer-premium .cabvet-footer-col button{
    font-size: clamp(14px, 3.7vw, 16px);
  }

  body.cabvet-site .cabvet-footer-premium .cabvet-footer-legal{
    font-size: clamp(12px, 3.1vw, 13.5px);
  }
}

/* Extra-small phone */
@media (max-width:360px){
  :root{
    --cv-rs-body:15.5px;
    --cv-rs-h1:34px;
    --cv-rs-h2:27px;
    --cv-rs-btn-font:14px;
    --cv-rs-btn-h:46px;
  }
}

/* ============================================================
   LARGE PHONE / TABLET 481–1024
   ============================================================ */
@media (min-width:481px) and (max-width:1024px){
  :root{
    --cv-rs-body: clamp(16px, 1.45vw, 17.5px);
    --cv-rs-nav: clamp(15px, 1.42vw, 17px);
    --cv-rs-h1: clamp(42px, 6vw, 60px);
    --cv-rs-h2: clamp(32px, 4vw, 44px);
    --cv-rs-btn-font: clamp(14.5px, 1.35vw, 16px);
    --cv-rs-btn-h: clamp(46px, 4.7vw, 52px);
    --cv-rs-input-font: clamp(16px, 1.42vw, 17px);
  }
}

/* ============================================================
   LAPTOP 1025–1365
   Typical 1280×720 / 1366×768
   ============================================================ */
@media (min-width:1025px) and (max-width:1365px){
  :root{
    --cv-rs-body:15.5px;
    --cv-rs-small:12px;
    --cv-rs-nav:13px;

    --cv-rs-h1:clamp(44px,4.5vw,60px);
    --cv-rs-h2:clamp(32px,3vw,42px);
    --cv-rs-h3:clamp(21px,1.8vw,27px);

    --cv-rs-btn-font:13.5px;
    --cv-rs-btn-h:44px;
    --cv-rs-btn-x:15px;

    --cv-rs-input-font:15px;
    --cv-rs-input-h:46px;
  }
}

/* ============================================================
   STANDARD DESKTOP 1366–1919
   ============================================================ */
@media (min-width:1366px) and (max-width:1919px){
  :root{
    --cv-rs-body: clamp(15.5px, 0.82vw, 17px);
    --cv-rs-nav: clamp(13px, 0.70vw, 15px);
    --cv-rs-h1: clamp(54px, 4.2vw, 72px);
    --cv-rs-h2: clamp(38px, 2.7vw, 50px);
    --cv-rs-btn-font: clamp(13.5px, 0.72vw, 15.5px);
    --cv-rs-btn-h: clamp(44px, 2.7vw, 50px);
  }
}

/* ============================================================
   FULL HD / 2K+ 1920–2559
   ============================================================ */
@media (min-width:1920px) and (max-width:2559px){
  :root{
    --cv-rs-body:17px;
    --cv-rs-small:13px;
    --cv-rs-label:14px;
    --cv-rs-nav:15px;

    --cv-rs-h1:76px;
    --cv-rs-h2:52px;
    --cv-rs-h3:30px;

    --cv-rs-btn-font:15px;
    --cv-rs-btn-h:50px;
    --cv-rs-btn-x:22px;

    --cv-rs-input-font:16px;
    --cv-rs-input-h:50px;
  }
}

/* ============================================================
   ULTRAWIDE / 4K 2560+
   Cap growth: readable, not gigantic.
   ============================================================ */
@media (min-width:2560px){
  :root{
    --cv-rs-body:18px;
    --cv-rs-small:14px;
    --cv-rs-label:15px;
    --cv-rs-nav:16px;

    --cv-rs-h1:82px;
    --cv-rs-h2:58px;
    --cv-rs-h3:34px;

    --cv-rs-btn-font:16px;
    --cv-rs-btn-h:54px;
    --cv-rs-btn-x:26px;

    --cv-rs-input-font:17px;
    --cv-rs-input-h:54px;
  }
}

/* Accessibility / touch target */
@media (pointer:coarse){
  body.cabvet-site button,
  body.cabvet-site .btn,
  body.cabvet-site .cv-btn,
  body.cabvet-site a.btn,
  body.cabvet-site a.cv-btn{
    min-height:max(46px,var(--cv-rs-btn-h));
  }
}
