:root{
    --ink:#161915;
    --paper:#FAFAF6;
    --paper-2:#F0F1E9;
    --line:#DCDFD2;
    --bamboo:#6FAF33;
    --bamboo-dark:#3E7A1F;
    --signal:#6FAF33;
    --signal-dark:#3E7A1F;
    --leaf-light:#B7DE7E;
    --steel:#7A8073;
    --white:#FFFFFF;
    --radius:14px;
    --wrap:1160px;
    --font-display:"Bricolage Grotesque",system-ui,sans-serif;
    --font-body:"Figtree",system-ui,sans-serif;
    --header-h:118px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    padding-top:var(--header-h);
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    font-size:16.5px;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:var(--font-display);
    font-weight:700;
    margin:0;
    letter-spacing:-0.03em;
    line-height:1.1;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  button{font:inherit;}
  .wrap{max-width:var(--wrap);margin:0 auto;padding-inline:22px;}
  ::selection{background:var(--signal);color:var(--white);}
  :focus-visible{outline:2px solid var(--signal);outline-offset:3px;}

  /* bamboo atmosphere */
  .bamboo-bg{
    background-color:var(--paper);
    background-image:
      radial-gradient(ellipse 80% 50% at 100% 0%, rgba(111,175,51,.12), transparent 55%),
      radial-gradient(ellipse 60% 40% at 0% 100%, rgba(183,222,126,.18), transparent 50%),
      repeating-linear-gradient(
        90deg,
        transparent 0,
        transparent 48px,
        rgba(220,223,210,.35) 48px,
        rgba(220,223,210,.35) 50px
      );
  }

  .eyebrow{
    font-family:var(--font-body);
    font-size:12px;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--bamboo-dark);
    display:inline-flex;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
  }
  .eyebrow::before{
    content:"";
    width:18px;height:18px;
    border-radius:50%;
    background:
      radial-gradient(circle at 35% 35%, #fff 2.5px, transparent 2.8px),
      radial-gradient(circle at 65% 35%, #fff 2.5px, transparent 2.8px),
      var(--ink);
    flex-shrink:0;
  }

  /* header */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(250,250,246,.92);
    backdrop-filter:blur(12px);
    border-bottom:1px solid transparent;
    transition:border-color .2s, box-shadow .2s;
  }
  header.scrolled{
    border-color:var(--line);
    box-shadow:0 8px 24px rgba(22,25,21,.04);
  }
  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 22px;max-width:var(--wrap);margin:0 auto;gap:20px;
  }
  .brand{
    display:flex;align-items:center;gap:12px;
    font-family:var(--font-display);font-weight:800;font-size:18px;
    letter-spacing:-0.02em;
  }
  .brand-mark{
    width:44px;height:44px;border-radius:50%;
    overflow:hidden;flex-shrink:0;
    background:var(--ink);
    display:grid;place-items:center;
  }
  .brand-mark img{width:100%;height:100%;object-fit:cover;}
  .brand .accent{color:var(--bamboo);}
  nav{display:flex;gap:22px;font-size:14.5px;font-weight:600;}
  nav a{position:relative;padding:6px 0;opacity:.78;transition:opacity .15s,color .15s;}
  nav a:hover{opacity:1;color:var(--bamboo-dark);}
  nav .nav-cta-mobile{display:none;}
  .head-right{display:flex;align-items:center;gap:16px;}
  .phone-block{text-align:right;font-size:13.5px;line-height:1.35;font-weight:600;}
  .phone-block a{display:block;}
  .phone-block a:hover{color:var(--bamboo-dark);}
  .soc-bar{
    display:flex;
    justify-content:center;
    padding:6px 22px;
    background:var(--ink);
    border-bottom:none;
  }
  .soc-bar__inner{
    width:100%;
    max-width:var(--wrap);
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    gap:14px;
  }
  .soc-branch{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    font-size:12.5px;
    line-height:1.3;
    font-weight:600;
    color:var(--paper);
  }
  .soc-branch--left{text-align:left;justify-content:flex-start;}
  .soc-branch--right{
    text-align:right;
    justify-self:end;
    justify-content:flex-end;
    flex-direction:row-reverse;
  }
  .soc-branch__logo{
    display:block;
    height:24px;
    width:auto;
    max-width:110px;
    object-fit:contain;
    flex-shrink:0;
  }
  .soc-branch__text{min-width:0;}
  .soc-branch__addr{
    display:block;
    margin-bottom:2px;
    font-size:11.5px;
    font-weight:500;
    color:rgba(250,250,246,.58);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .soc-branch a{
    color:var(--paper);
    white-space:nowrap;
  }
  .soc-branch a:hover{color:var(--leaf-light);}
  .soc-bar__row{
    margin:0;
    justify-content:center;
    gap:6px;
    flex-wrap:nowrap;
  }
  .soc-bar__row .soc{
    width:30px;
    height:30px;
    min-width:30px;
    min-height:30px;
  }
  .soc-bar__row .soc svg{width:14px;height:14px;}
  .soc-bar__row .soc:hover{transform:translateY(-1px) scale(1.05);}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    background:var(--ink);color:var(--paper);
    min-height:48px;padding:0 22px;font-weight:700;font-size:14.5px;
    border:1.5px solid var(--ink);border-radius:999px;
    cursor:pointer;white-space:nowrap;
    transition:background .18s,color .18s,border-color .18s,transform .12s;
    font-family:var(--font-body);
  }
  .btn:hover{background:var(--bamboo);border-color:var(--bamboo);color:var(--white);}
  .btn:active{transform:translateY(1px);}
  .btn.outline{background:transparent;color:var(--ink);}
  .btn.outline:hover{background:var(--ink);color:var(--paper);}
  .btn.ghost-light{
    background:transparent;color:var(--paper);border-color:rgba(250,250,246,.35);
  }
  .btn.ghost-light:hover{background:var(--paper);color:var(--ink);border-color:var(--paper);}
  .btn.bamboo{background:var(--bamboo);border-color:var(--bamboo);color:var(--white);}
  .btn.bamboo:hover{background:var(--leaf-light);border-color:var(--leaf-light);color:var(--ink);}
  .menu-toggle{
    display:none;position:relative;background:none;border:none;cursor:pointer;
    width:44px;height:44px;padding:0;flex-shrink:0;
  }
  .menu-toggle span{
    position:absolute;left:50%;top:50%;
    width:22px;height:2px;margin-left:-11px;
    background:var(--ink);border-radius:2px;
    transition:transform .22s ease,opacity .18s ease,top .22s ease;
  }
  .menu-toggle span:nth-child(1){transform:translateY(-7px);}
  .menu-toggle span:nth-child(2){transform:translateY(0);}
  .menu-toggle span:nth-child(3){transform:translateY(7px);}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:rotate(45deg);}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0);}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:rotate(-45deg);}

  /* hero — one composition, brand-first, full-bleed visual */
  .hero{
    position:relative;
    min-height:min(92vh,820px);
    display:flex;align-items:stretch;
    background:var(--ink);
    color:var(--paper);
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute;inset:0;
    background:
      radial-gradient(ellipse 70% 60% at 75% 45%, rgba(111,175,51,.22), transparent 60%),
      radial-gradient(circle at 12% 20%, rgba(183,222,126,.08), transparent 35%),
      repeating-linear-gradient(90deg, transparent 0, transparent 56px, rgba(255,255,255,.03) 56px, rgba(255,255,255,.03) 58px);
    pointer-events:none;
  }
  .hero-inner{
    position:relative;z-index:1;
    width:100%;max-width:var(--wrap);margin:0 auto;padding:48px 22px 56px;
    display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center;
  }
  .hero-copy{max-width:34rem;}
  .hero-brand{
    font-family:var(--font-display);
    font-weight:800;
    font-size:clamp(48px,7.2vw,92px);
    line-height:0.95;
    letter-spacing:-0.045em;
    margin:0 0 22px;
  }
  .hero-brand .line2{display:block;}
  .hero-brand .fix{color:var(--bamboo);}
  .hero-lede{
    font-size:clamp(17px,1.6vw,19px);
    color:#C5C9C0;
    max-width:38ch;
    margin:0 0 32px;
    font-weight:500;
  }
  .hero-cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
  .hero-social{margin:0;}
  .hero-cta .hero-social{flex:0 0 auto;}
  .hero-visual{
    position:relative;
    display:flex;align-items:center;justify-content:center;
    min-height:340px;
  }
  .panda-stage{
    width:min(100%,460px);
    aspect-ratio:1;
    position:relative;
    display:grid;
    place-items:center;
  }
  .panda-stage .logo-wrap{
    width:92%;
    max-width:440px;
    position:relative;
    animation:logoFloat 4.8s ease-in-out infinite;
    transform-origin:50% 90%;
    will-change:transform;
  }
  .panda-stage .logo-mascot{
    width:100%;
    height:auto;
    display:block;
    filter:drop-shadow(0 18px 28px rgba(0,0,0,.45));
  }
  @keyframes logoFloat{
    0%,100%{transform:translateY(0) rotate(0deg);}
    50%{transform:translateY(-12px) rotate(-1deg);}
  }
  .hero-fade{
    animation:riseIn .9s cubic-bezier(.22,1,.36,1) both;
  }
  .hero-fade.delay{animation-delay:.15s;}
  .hero-fade.delay-2{animation-delay:.28s;}
  .hero-fade.delay-3{animation-delay:.4s;}
  @keyframes riseIn{
    from{opacity:0;transform:translateY(22px);}
    to{opacity:1;transform:none;}
  }
  .hero-brand .fix{
    display:inline-block;
    animation:accentGlow 2.8s ease-in-out infinite;
  }
  @keyframes accentGlow{
    0%,100%{filter:brightness(1);transform:scale(1);}
    50%{filter:brightness(1.15);transform:scale(1.02);}
  }

  /* scroll reveals */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
    will-change:opacity,transform;
  }
  .reveal.from-left{transform:translateX(-28px);}
  .reveal.from-right{transform:translateX(28px);}
  .reveal.scale-in{transform:translateY(16px) scale(.96);}
  .reveal.is-visible{
    opacity:1;
    transform:none;
  }
  .reveal-stagger > .reveal:nth-child(1){transition-delay:.04s;}
  .reveal-stagger > .reveal:nth-child(2){transition-delay:.1s;}
  .reveal-stagger > .reveal:nth-child(3){transition-delay:.16s;}
  .reveal-stagger > .reveal:nth-child(4){transition-delay:.22s;}
  .reveal-stagger > .reveal:nth-child(5){transition-delay:.28s;}
  .reveal-stagger > .reveal:nth-child(6){transition-delay:.34s;}
  .reveal-stagger > .reveal:nth-child(7){transition-delay:.4s;}
  .reveal-stagger > .reveal:nth-child(8){transition-delay:.46s;}
  .reveal-stagger > .reveal:nth-child(9){transition-delay:.52s;}
  .reveal-stagger > .reveal:nth-child(10){transition-delay:.58s;}
  .reveal-stagger > .reveal:nth-child(11){transition-delay:.64s;}
  .reveal-stagger > .reveal:nth-child(12){transition-delay:.7s;}

  .fact strong.is-counting{animation:countPulse .35s ease;}
  @keyframes countPulse{
    0%{transform:scale(1);}
    50%{transform:scale(1.08);}
    100%{transform:scale(1);}
  }

  .btn{
    position:relative;
    overflow:hidden;
  }
  .btn::after{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(120deg, transparent 20%, rgba(255,255,255,.22) 50%, transparent 80%);
    transform:translateX(-120%);
    transition:transform .55s ease;
  }
  .btn:hover::after{transform:translateX(120%);}

  .service-link{
    transition:background .25s, padding .25s, transform .25s cubic-bezier(.22,1,.36,1);
  }
  .service-link:hover{transform:translateX(4px);}
  .service-num{transition:transform .25s, color .25s;}
  .service-link:hover .service-num{transform:scale(1.12);}

  .more-item{
    transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s;
  }
  .more-item:hover{
    transform:translateY(-6px);
    box-shadow:0 20px 40px rgba(22,25,21,.18);
  }
  .more-deco{transition:transform .6s ease, opacity .35s;}
  .more-item:hover .more-deco{transform:rotate(12deg) scale(1.08);opacity:.28;}

  .offer{transition:transform .3s, border-color .3s, background .3s;}
  .offer:hover{transform:translateY(-3px);border-color:var(--bamboo);background:#fff;}

  .why-paw{transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
  .why-item:hover .why-paw{transform:rotate(-18deg) scale(1.15);}

  .process-step .n{transition:transform .3s, background .3s, color .3s;}
  .process-step:hover .n{
    transform:scale(1.1);
    background:var(--bamboo);
    color:var(--white);
  }

  .price-panel.active{
    animation:panelIn .35s cubic-bezier(.22,1,.36,1);
  }
  @keyframes panelIn{
    from{opacity:0;transform:translateY(8px);}
    to{opacity:1;transform:none;}
  }

  .brand-mark{
    transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .brand:hover .brand-mark{transform:rotate(-8deg) scale(1.06);}

  .hero::after{
    content:"";
    position:absolute;
    width:280px;height:280px;
    border-radius:50%;
    right:8%;top:18%;
    background:radial-gradient(circle, rgba(111,175,51,.18), transparent 70%);
    animation:orbPulse 6s ease-in-out infinite;
    pointer-events:none;
  }
  @keyframes orbPulse{
    0%,100%{transform:scale(1);opacity:.7;}
    50%{transform:scale(1.25);opacity:1;}
  }

  /* facts strip — below first viewport composition */
  .facts{
    background:var(--paper);
    border-bottom:1px solid var(--line);
    padding:28px 0;
  }
  .facts-row{
    display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
  }
  .fact strong{
    display:block;
    font-family:var(--font-display);
    font-size:clamp(28px,3vw,36px);
    font-weight:800;
    letter-spacing:-0.03em;
    color:var(--bamboo-dark);
    line-height:1;
    margin-bottom:6px;
  }
  .fact span{font-size:14px;color:var(--steel);font-weight:500;}

  .section-pad{padding:88px 0;}
  .sec-head{max-width:640px;margin-bottom:48px;}
  .sec-head h2{font-size:clamp(30px,3.6vw,44px);}
  .sec-head p{color:var(--steel);font-size:17px;margin-top:14px;font-weight:500;}

  /* services — interactive rows, not decorative cards */
  .services-list{
    display:grid;grid-template-columns:1fr 1fr;gap:0;
    border-top:1px solid var(--line);
  }
  .service-link{
    display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start;
    padding:28px 8px;border-bottom:1px solid var(--line);
    transition:background .25s, padding .25s, transform .25s cubic-bezier(.22,1,.36,1);
  }
  .service-link:nth-child(odd){padding-right:28px;border-right:1px solid var(--line);}
  .service-link:nth-child(even){padding-left:28px;}
  .service-link:hover{background:rgba(111,175,51,.06);transform:translateX(4px);}
  .service-num{
    font-family:var(--font-display);font-weight:800;font-size:15px;
    color:var(--bamboo);letter-spacing:-0.02em;padding-top:4px;
    transition:transform .25s, color .25s;
  }
  .service-link:hover .service-num{transform:scale(1.12);}
  .service-link h3{font-size:22px;margin-bottom:8px;}
  .service-link p{margin:0;color:var(--steel);font-size:15px;max-width:42ch;}
  .service-go{
    font-size:22px;color:var(--bamboo-dark);opacity:0;transform:translateX(-6px);
    transition:opacity .18s,transform .18s;align-self:center;
  }
  .service-link:hover .service-go{opacity:1;transform:none;}

  /* pricing */
  .price-wrap{
    background:var(--ink);color:var(--paper);border-radius:22px;overflow:hidden;
  }
  .price-tabs{
    display:flex;flex-wrap:wrap;gap:8px;padding:18px 18px 14px;border-bottom:1px solid #2B302E;
  }
  .price-tabs button{
    background:transparent;border:none;color:#9CA39D;
    font-family:var(--font-body);font-weight:600;font-size:14px;
    padding:11px 16px;cursor:pointer;border-radius:999px;
    transition:color .15s,background .15s;
  }
  .price-tabs button.active{color:var(--ink);background:var(--bamboo);}
  .price-tabs button:hover:not(.active){color:var(--paper);}
  .price-panel{display:none;padding:4px 22px 16px;}
  .price-panel.active{display:block;}
  .price-row{
    display:flex;justify-content:space-between;gap:20px;align-items:baseline;
    padding:15px 0;border-bottom:1px solid #232725;font-size:15.5px;
  }
  .price-row:last-child{border-bottom:none;}
  .price-row .name{color:#D8DAD4;font-weight:500;}
  .price-row .cost{color:var(--leaf-light);white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums;}

  /* more services */
  .more-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  }
  .more-item{
    position:relative;
    min-height:220px;
    border-radius:20px;
    padding:28px;
    overflow:hidden;
    display:flex;flex-direction:column;justify-content:flex-end;
    color:var(--white);
    isolation:isolate;
  }
  .more-item::before{
    content:"";position:absolute;inset:0;z-index:-1;
    background:linear-gradient(160deg, transparent 20%, rgba(22,25,21,.55) 100%);
  }
  .more-item:nth-child(1){background:var(--bamboo);}
  .more-item:nth-child(2){background:var(--bamboo-dark);}
  .more-item:nth-child(3){background:var(--ink);}
  .more-item h3{font-size:22px;margin-bottom:12px;max-width:16ch;}
  .more-item .go{font-weight:700;font-size:14px;opacity:.9;}
  .more-item:hover .go{opacity:1;}
  .more-deco{position:absolute;right:-20px;top:-20px;opacity:.18;width:160px;height:160px;z-index:-1;}

  .offers{
    display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;
  }
  .offer{
    border:1.5px solid var(--line);
    border-radius:16px;
    padding:22px 24px;
    font-family:var(--font-display);
    font-weight:700;
    font-size:18px;
    letter-spacing:-0.02em;
    background:var(--white);
  }
  .offer::before{
    content:"";
    display:block;width:28px;height:6px;border-radius:4px;
    background:var(--bamboo);margin-bottom:14px;
  }

  /* why */
  .why-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  }
  .why-item{
    display:flex;align-items:flex-start;gap:14px;
    padding:18px 8px;
    font-weight:600;font-size:15.5px;
  }
  .why-paw{
    width:28px;height:28px;flex-shrink:0;margin-top:1px;
    color:var(--bamboo);
  }

  /* process */
  .process{
    display:grid;grid-template-columns:repeat(5,1fr);gap:0;
    counter-reset:step;
  }
  .process-step{
    position:relative;
    padding:0 18px 0 0;
  }
  .process-step:not(:last-child)::after{
    content:"";
    position:absolute;top:18px;left:56px;right:12px;height:2px;
    background:linear-gradient(90deg,var(--bamboo),var(--line));
  }
  .process-step .n{
    width:36px;height:36px;border-radius:50%;
    display:grid;place-items:center;
    background:var(--ink);color:var(--paper);
    font-family:var(--font-display);font-weight:800;font-size:14px;
    margin-bottom:16px;position:relative;z-index:1;
  }
  .process-step:first-child .n{background:var(--bamboo);color:var(--white);}
  .process-step p{margin:0;font-size:15px;font-weight:500;max-width:18ch;}

  /* about */
  .about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center;}
  .about-visual{
    border-radius:24px;overflow:hidden;background:var(--ink);
    aspect-ratio:1;position:relative;
    display:grid;place-items:center;
    padding:12px;
  }
  .about-visual img{
    width:100%;
    height:auto;
    max-width:380px;
    display:block;
    filter:drop-shadow(0 16px 28px rgba(0,0,0,.35));
  }
  .about-text p{color:var(--steel);margin:0 0 16px;font-weight:500;}
  .addr-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px;}
  .addr-card{
    border-top:3px solid var(--bamboo);
    padding:18px 4px 8px;
  }
  .addr-card .label{
    font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    color:var(--bamboo-dark);margin-bottom:8px;
  }
  .addr-card h4{font-size:17px;margin-bottom:8px;}
  .addr-card .meta{font-size:14px;color:var(--steel);margin-bottom:3px;font-weight:500;}
  .addr-card a.tel{
    display:block;font-weight:700;margin-top:10px;font-size:15px;
  }
  .addr-card a.tel:hover{color:var(--bamboo-dark);}
  .map-block{margin-top:48px;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .map-col{display:flex;flex-direction:column;gap:12px;min-width:0;}
  .map-mall{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:4px;min-height:56px;text-align:center;
  }
  .map-mall__logo{
    display:block;height:40px;width:auto;max-width:min(100%,220px);
    object-fit:contain;
  }
  .map-mall__addr{
    font-size:13px;font-weight:600;color:var(--steel);letter-spacing:.01em;
  }
  .map-block iframe{
    width:100%;height:280px;border:0;border-radius:18px;
    filter:grayscale(.2) contrast(1.02);
  }

  /* reviews */
  .reviews-wrap{
    background:var(--paper-2);border-radius:20px;padding:10px;overflow:hidden;
  }
  .reviews-wrap iframe{width:100%;height:560px;border:none;border-radius:14px;}
  .reviews-link{
    display:inline-flex;gap:8px;align-items:center;margin-top:18px;
    font-weight:700;font-size:14.5px;color:var(--bamboo-dark);
  }
  .reviews-link:hover{color:var(--ink);}

  /* CTA */
  .cta-section{
    background:
      radial-gradient(ellipse 50% 80% at 100% 0%, rgba(111,175,51,.25), transparent 55%),
      var(--ink);
    color:var(--paper);
    border-radius:28px;
    padding:48px;
    display:grid;grid-template-columns:1fr 1fr;gap:40px;
    align-items:start;
    min-width:0;
    overflow:hidden;
  }
  .cta-copy{min-width:0;}
  .cta-section h2{
    font-size:clamp(28px,3.2vw,40px);
    margin-bottom:14px;
    overflow-wrap:anywhere;
  }
  .cta-lead{
    color:#B7BAB5;
    margin:12px 0 26px;
    max-width:40ch;
    font-weight:500;
  }
  .cta-section .phones{
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:0;
  }
  .cta-section .phones a{
    display:block;
    font-family:var(--font-display);
    font-size:clamp(20px,2.4vw,28px);
    font-weight:800;
    letter-spacing:-0.03em;
    line-height:1.2;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .cta-section .phones a:hover{color:var(--leaf-light);}
  .social-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }
  .social-row a,
  .soc{
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
    padding:0;
    border:none;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    flex-shrink:0;
    transition:transform .15s,filter .15s,box-shadow .15s;
  }
  .social-row a:hover,
  .soc:hover{
    transform:translateY(-2px) scale(1.06);
    filter:brightness(1.08);
  }
  .soc svg{
    width:18px;
    height:18px;
    display:block;
    fill:currentColor;
  }
  .social-row--nets{margin-top:12px;}
  .cta-copy .social-row{margin-top:20px;}
  .cta-copy .social-row--nets{margin-top:0;}

  .soc-viber{
    background:#7360F2;
    box-shadow:0 6px 14px rgba(115,96,242,.3);
  }
  .soc-telegram{
    background:#2AABEE;
    box-shadow:0 6px 14px rgba(42,171,238,.3);
  }
  .soc-whatsapp{
    background:#25D366;
    box-shadow:0 6px 14px rgba(37,211,102,.3);
  }
  .soc-vk{
    background:#0077FF;
    box-shadow:0 6px 14px rgba(0,119,255,.3);
  }
  .soc-instagram{
    background:linear-gradient(45deg,#f58529 0%,#dd2a7b 45%,#8134af 75%,#515bd4 100%);
    box-shadow:0 6px 14px rgba(221,42,123,.3);
  }
  .soc-tiktok{
    background:#111;
    box-shadow:0 6px 14px rgba(0,0,0,.35);
  }
  .soc-tiktok:hover{filter:brightness(1.15);}
  .form-box{
    background:rgba(29,34,32,.92);
    border:1px solid #2E332F;
    border-radius:20px;padding:28px;
    min-width:0;
    width:100%;
  }
  .form-box label{
    display:block;font-size:12.5px;font-weight:700;letter-spacing:.04em;
    text-transform:uppercase;color:#9CA39D;margin-bottom:8px;margin-top:16px;
  }
  .form-box label:first-of-type{margin-top:0;}
  .form-box input[type=text],.form-box input[type=tel]{
    width:100%;max-width:100%;
    background:#14181A;border:1.5px solid #2E332F;border-radius:12px;
    color:var(--paper);padding:14px 16px;font-family:var(--font-body);font-size:16px;
  }
  .form-box input:focus{border-color:var(--bamboo);outline:none;}
  .field-error{color:#ff8f8f;font-size:13px;min-height:1em;margin-top:4px;}
  .consent{display:flex;align-items:flex-start;gap:10px;margin-top:16px;font-size:13px;color:#9CA39D;}
  .consent input{margin-top:3px;accent-color:var(--bamboo);flex-shrink:0;width:18px;height:18px;}
  .consent label{margin:0 !important;text-transform:none !important;letter-spacing:0 !important;font-weight:500 !important;color:#9CA39D !important;font-size:13px !important;line-height:1.4;}
  .form-box .btn{width:100%;margin-top:20px;}
  .success-msg{
    background:rgba(111,175,51,.15);border:1px solid var(--bamboo);
    color:var(--leaf-light);padding:12px 14px;border-radius:12px;margin-bottom:16px;
    font-weight:600;
  }

  /* footer */
  footer{background:var(--ink);color:#9CA39D;padding:48px 0 28px;font-size:14px;}
  .foot-top{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-start;}
  .foot-top .brand{color:var(--paper);margin-bottom:4px;}
  .foot-grid{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
    border-top:1px solid #232725;padding-top:22px;margin-top:28px;
  }
  footer a:hover{color:var(--paper);}

  /* base mobile safety */
  html,body{overflow-x:clip;}
  img,svg,iframe,video{max-width:100%;}

  /* ---------- tablet ---------- */
  @media (max-width:1100px){
    .wrap{padding-inline:18px;}
    .topbar{padding:12px 18px;gap:14px;}
    nav{gap:16px;font-size:14px;}
    .hero-inner{gap:20px;padding:40px 18px 48px;}
    .process{gap:12px;}
    .process-step{padding-right:10px;}
  }

  /* ---------- tablet / small laptop ---------- */
  @media (max-width:980px){
    .menu-toggle{display:block;flex-shrink:0;}
    .head-cta{display:none;}
    .topbar{flex-wrap:nowrap;gap:10px;}
    .brand{font-size:16px;gap:10px;min-width:0;}
    .brand-mark{width:40px;height:40px;}
    .brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .soc-bar{padding:4px 14px;}
    .soc-bar__inner{gap:10px;}
    .soc-branch{gap:8px;font-size:11.5px;}
    .soc-branch__logo{height:20px;max-width:90px;}
    .soc-branch__addr{font-size:10.5px;}
    .soc-bar__row{gap:5px;}
    .soc-bar__row .soc{
      width:28px;height:28px;min-width:28px;min-height:28px;
    }
    .soc-bar__row .soc svg{width:13px;height:13px;}
    .head-right{gap:8px;margin-left:auto;}
    nav{
      display:none;
      position:fixed;top:var(--header-h);left:0;right:0;
      background:rgba(250,250,246,.98);backdrop-filter:blur(14px);
      flex-direction:column;padding:12px 18px 20px;gap:2px;
      border-bottom:1px solid var(--line);
      box-shadow:0 18px 36px rgba(22,25,21,.1);
      z-index:99;
      max-height:calc(100dvh - var(--header-h));
      overflow-y:auto;
      -webkit-overflow-scrolling:touch;
    }
    nav.open{display:flex;}
    nav .nav-cta-mobile{display:block;}
    nav a{
      padding:14px 8px;opacity:1;font-size:17px;
      border-bottom:1px solid var(--line);
    }
    nav a:last-child{border-bottom:none;}
    nav .nav-cta-mobile{
      margin-top:10px;
      text-align:center;
      background:var(--ink);
      color:var(--paper);
      border-radius:999px;
      border-bottom:none !important;
      font-weight:700;
    }
    .hero{min-height:auto;}
    .hero-inner{
      grid-template-columns:1fr;
      padding:28px 18px 36px;
      gap:8px;
      text-align:center;
    }
    .hero-copy{max-width:none;margin:0 auto;}
    .hero-lede{margin-left:auto;margin-right:auto;}
    .hero-social{margin-left:0;}
    .hero-visual{order:-1;min-height:220px;margin-bottom:4px;}
    .panda-stage{width:min(68vw,280px);}
    .hero::after{width:180px;height:180px;right:auto;left:50%;margin-left:-90px;top:6%;}
    .facts{padding:22px 0;}
    .facts-row{grid-template-columns:repeat(2,1fr);gap:14px 12px;}
    .fact{text-align:center;padding:8px 4px;}
    .fact strong{font-size:clamp(26px,7vw,32px);}
    .section-pad{padding:64px 0;}
    .sec-head{margin-bottom:32px;text-align:left;}
    .services-list{grid-template-columns:1fr;border-top:1px solid var(--line);}
    .service-link,
    .service-link:nth-child(odd),
    .service-link:nth-child(even){
      grid-template-columns:auto 1fr auto;
      padding:20px 4px;
      border-right:none;
    }
    .service-go{opacity:.7;transform:none;}
    .service-link h3{font-size:19px;}
    .price-tabs{
      flex-wrap:nowrap;
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
      gap:8px;
      padding:16px 0 14px;
      scroll-snap-type:x proximity;
    }
    .price-tabs::before,
    .price-tabs::after{
      content:"";
      flex:0 0 22px;
    }
    .price-tabs::-webkit-scrollbar{display:none;}
    .price-tabs button{
      flex:0 0 auto;
      scroll-snap-align:start;
      padding:11px 15px;
      border-radius:999px;
      margin-bottom:0;
      background:#1d2220;
    }
    .price-tabs button.active{background:var(--bamboo);color:var(--ink);}
    .price-panel{padding:4px 22px 14px;}
    .price-row{padding:14px 0;gap:12px;}
    .more-grid{grid-template-columns:1fr 1fr;gap:14px;}
    .offers{grid-template-columns:1fr 1fr;gap:12px;}
    .why-grid{grid-template-columns:1fr 1fr;gap:6px 10px;}
    .why-item{padding:12px 4px;font-size:14.5px;}
    .process{grid-template-columns:1fr;gap:18px;}
    .process-step:not(:last-child)::after{display:none;}
    .process-step{
      display:flex;gap:14px;align-items:flex-start;padding:0;
      border-left:2px solid var(--line);
      padding-left:14px;
      margin-left:16px;
    }
    .process-step:first-child{border-color:var(--bamboo);}
    .process-step .n{margin:0 0 0 -33px;flex-shrink:0;}
    .process-step p{max-width:none;padding-top:6px;}
    .about-grid{grid-template-columns:1fr;gap:28px;}
    .about-visual{aspect-ratio:1;max-height:none;padding:10px;}
    .addr-cards{grid-template-columns:1fr;gap:12px;}
    .map-block{grid-template-columns:1fr;gap:20px;margin-top:28px;}
    .map-block iframe{height:220px;border-radius:14px;}
    .reviews-wrap iframe{height:420px;}
    .cta-section{
      grid-template-columns:1fr;
      padding:28px 20px;
      gap:24px;
      border-radius:22px;
    }
    .cta-lead{max-width:none;margin-bottom:20px;}
    .cta-section .phones a{font-size:clamp(20px,5.5vw,24px);}
    .social-row{margin-top:18px;gap:10px;}
    .social-row a{flex:0 0 auto;}
    .form-box{padding:22px 18px;}
    .foot-top{flex-direction:column;gap:18px;}
    .foot-grid{flex-direction:column;align-items:flex-start;gap:8px;}
  }

  /* ---------- phone ---------- */
  @media (max-width:640px){
    .wrap{padding-inline:16px;}
    .topbar{padding:10px 14px;}
    .brand{font-size:15px;gap:8px;}
    .brand-mark{width:36px;height:36px;}
    .phone-block{display:none;}
    .soc-bar{padding:3px 12px 5px;}
    .soc-bar__inner{grid-template-columns:1fr;justify-items:center;}
    .soc-branch{display:none;}
    .soc-bar__row{gap:5px;}
    .soc-bar__row .soc{
      width:28px;height:28px;min-width:28px;min-height:28px;
    }
    .soc-bar__row .soc svg{width:13px;height:13px;}
    .hero-inner{padding:20px 16px 28px;}
    .hero-visual{min-height:180px;}
    .panda-stage{width:min(78vw,240px);}
    .hero-brand{font-size:clamp(36px,11vw,48px);margin-bottom:14px;}
    .hero-lede{font-size:15.5px;margin-bottom:22px;}
    .hero-cta{
      flex-direction:column;
      align-items:stretch;
      gap:10px;
    }
    .hero-cta .btn{width:100%;min-height:50px;}
    .hero-cta .hero-social{
      justify-content:center;
      margin-left:0;
      margin-top:4px;
    }
    .facts-row{gap:10px;}
    .fact strong{margin-bottom:4px;}
    .fact span{font-size:12.5px;line-height:1.35;}
    .section-pad{padding:52px 0;}
    .sec-head{margin-bottom:28px;}
    .sec-head h2{font-size:clamp(26px,7.5vw,34px);}
    .sec-head p{font-size:15px;}
    .service-link{
      grid-template-columns:auto 1fr;
      gap:12px;
      padding:18px 2px;
    }
    .service-go{display:none;}
    .service-link h3{font-size:18px;}
    .service-link p{font-size:14px;}
    .price-wrap{border-radius:18px;}
    .price-tabs{padding:18px 0 16px;gap:8px;}
    .price-tabs::before,
    .price-tabs::after{flex:0 0 22px;}
    .price-tabs button{padding:12px 15px;font-size:13.5px;}
    .price-panel{padding:4px 22px 14px;}
    .price-row{
      flex-direction:column;
      align-items:flex-start;
      gap:3px;
      padding:14px 0;
      font-size:14.5px;
    }
    .price-row .name{line-height:1.35;}
    .price-row .cost{padding-top:0;line-height:1.2;}
    .more-grid,.offers,.why-grid{grid-template-columns:1fr;}
    .more-item{min-height:180px;padding:22px;border-radius:16px;}
    .more-item h3{font-size:19px;}
    .offer{font-size:16px;padding:18px 18px;border-radius:14px;}
    .why-item{align-items:center;}
    .about-visual{padding:8px;border-radius:16px;}
    .addr-card{padding:14px 2px;}
    .addr-card h4{font-size:16px;}
    .map-block iframe{height:200px;}
    .reviews-wrap{padding:6px;border-radius:14px;}
    .reviews-wrap iframe{height:360px;}
    .cta-section{
      padding:20px 14px;
      border-radius:18px;
      gap:20px;
      width:100%;
      box-sizing:border-box;
    }
    .cta-section .eyebrow{
      font-size:11px;
      letter-spacing:.12em;
      margin-bottom:10px;
      white-space:normal;
      line-height:1.35;
    }
    .cta-section h2{
      font-size:clamp(24px,7vw,30px);
      line-height:1.15;
    }
    .cta-lead{
      font-size:15px;
      margin:10px 0 18px;
      line-height:1.5;
    }
    .cta-section .phones{gap:10px;}
    .cta-section .phones a{
      font-size:clamp(18px,5.2vw,22px);
      padding:10px 14px;
      background:rgba(255,255,255,.04);
      border:1px solid #2E332F;
      border-radius:12px;
      text-align:center;
      letter-spacing:-0.02em;
    }
    .social-row{
      display:flex;
      flex-wrap:wrap;
      justify-content:center;
      gap:10px;
      margin-top:14px;
    }
    .social-row--nets{margin-top:0;}
    .social-row a,
    .soc{
      width:40px;
      height:40px;
      min-width:40px;
      min-height:40px;
      padding:0;
      font-size:0;
    }
    .form-box{
      padding:18px 14px;
      border-radius:16px;
    }
    .form-box label{font-size:11.5px;}
    .form-box input[type=text],
    .form-box input[type=tel]{
      padding:13px 14px;
      border-radius:10px;
    }
    .consent{gap:8px;align-items:flex-start;}
    .consent label{font-size:12.5px !important;}
    .form-box .btn{min-height:50px;margin-top:16px;}
    footer{padding:36px 0 24px;}
    .foot-top .brand{font-size:16px;}
  }

  /* ---------- small phone ---------- */
  @media (max-width:380px){
    .price-tabs{padding:16px 0 14px;}
    .price-tabs::before,
    .price-tabs::after{flex:0 0 20px;}
    .price-tabs button{padding:10px 13px;font-size:13px;}
    .price-panel{padding:2px 20px 12px;}
    .price-row{padding:13px 0;}
    .hero-brand{font-size:34px;}
  }

  /* touch: keep interactive cues without hover */
  @media (hover:none){
    .service-go{opacity:.65;transform:none;}
    .btn:active{transform:scale(.98);}
    .more-item:active{transform:translateY(-2px);}
    .service-link:hover{transform:none;}
    .service-link:active{background:rgba(111,175,51,.08);}
  }

  /* safe areas (notch / home indicator) */
  @supports (padding: max(0px)){
    .topbar{
      padding-left:max(14px, env(safe-area-inset-left));
      padding-right:max(14px, env(safe-area-inset-right));
    }
    .wrap{
      padding-left:max(16px, env(safe-area-inset-left));
      padding-right:max(16px, env(safe-area-inset-right));
    }
    footer{padding-bottom:max(24px, env(safe-area-inset-bottom));}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    .logo-wrap,
    .hero-fade,.hero-brand .fix,.hero::after,.price-panel.active{animation:none !important;}
    .reveal,.reveal.from-left,.reveal.from-right,.reveal.scale-in{
      opacity:1 !important;transform:none !important;transition:none !important;
    }
    .btn::after{display:none;}
    *{transition:none !important;}
  }