
/* ===== glanpaws-brand ===== */
/* =========================================================================
   GLAN PAWS PET GROOMING LLC — Brand Design Layer
   Palette derived directly from the official logo:
     neon pink  #FA3A99   neon lime #AEF406   ink black #0B0B0F
   Built for: Hello Elementor + Elementor Pro
   ========================================================================= */

:root{
  /* --- logo-true brand colours --- */
  --gp-pink:      #FA3A99;   /* logo pink — display / glow only            */
  --gp-pink-act:  #E11A80;   /* darkened pink — AA-safe for buttons/links  */
  --gp-pink-deep: #B7115F;
  --gp-lime:      #AEF406;   /* logo lime — NEVER as text on white         */
  --gp-lime-deep: #86BE04;
  --gp-ink:       #0B0B0F;
  --gp-charcoal:  #16161C;
  --gp-heading:   #12121A;
  --gp-body:      #5A5A66;
  --gp-muted:     #8A8A97;

  /* --- surfaces --- */
  --gp-white:     #FFFFFF;
  --gp-soft:      #F7F7FA;
  --gp-pinktint:  #FFF0F8;
  --gp-limetint:  #F4FCE0;
  --gp-border:    #ECECF1;

  /* --- shape + depth --- */
  --gp-r-sm: 14px;
  --gp-r-md: 22px;
  --gp-r-lg: 34px;
  --gp-r-xl: 48px;
  --gp-shadow-sm: 0 4px 16px rgba(18,18,26,.06);
  --gp-shadow-md: 0 14px 40px rgba(18,18,26,.09);
  --gp-shadow-lg: 0 28px 70px rgba(18,18,26,.13);
  --gp-glow-pink: 0 12px 34px rgba(250,58,153,.38);
  --gp-glow-lime: 0 12px 34px rgba(174,244,6,.34);

  /* --- rhythm --- */
  --gp-sec-y: 120px;
  --gp-ease: cubic-bezier(.22,.8,.28,1);
}

/* =============================== BASE ================================== */

html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--gp-body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;               /* hard guard against decorative bleed */
}

/* Every heading uses the display face */
h1,h2,h3,h4,h5,h6,
.gp-display{
  font-family:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--gp-heading);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.1;
  margin:0 0 .5em;
}

/* Fluid type scale — desktop → mobile without layout jumps */
h1,.gp-h1{ font-size:clamp(2.15rem, 1.35rem + 3.4vw, 4rem);   line-height:1.04; letter-spacing:-.035em; }
h2,.gp-h2{ font-size:clamp(1.75rem, 1.20rem + 2.3vw, 2.95rem); line-height:1.10; letter-spacing:-.03em; }
h3,.gp-h3{ font-size:clamp(1.25rem, 1.05rem + 0.8vw, 1.72rem); line-height:1.25; letter-spacing:-.02em; }
h4,.gp-h4{ font-size:clamp(1.08rem, 1.00rem + 0.4vw, 1.32rem); line-height:1.32; letter-spacing:-.01em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

/* Readable measure for body copy under a heading */
.gp-lead{ font-size:clamp(1.02rem,.98rem + .3vw,1.16rem); line-height:1.7; color:var(--gp-body); max-width:56ch; }
.gp-measure{ max-width:60ch; }
.gp-center .gp-lead,
.gp-center .gp-measure{ margin-left:auto; margin-right:auto; }

/* Visible focus for keyboard users — never removed */
a:focus-visible,button:focus-visible,
.elementor-button:focus-visible,
.gp-chip:focus-visible,
summary:focus-visible,
.e-n-accordion-item-title:focus-visible{
  outline:3px solid var(--gp-pink-act);
  outline-offset:3px;
  border-radius:6px;
}

/* ============================ SECTION RHYTHM =========================== */

.gp-sec       > .e-con-inner,
.gp-sec       { --padding-block-start:var(--gp-sec-y); --padding-block-end:var(--gp-sec-y); }
.gp-sec-tight { --padding-block-start:84px; --padding-block-end:84px; }

/* Section surfaces — alternate these so no two neighbours match */
.gp-bg-soft    { background-color:var(--gp-soft); }
.gp-bg-pink    { background-color:var(--gp-pinktint); }
.gp-bg-lime    { background-color:var(--gp-limetint); }
.gp-bg-ink     { background-color:var(--gp-ink); }

/* Dark bands: this is where the logo's neon actually glows */
.gp-bg-ink h1,.gp-bg-ink h2,.gp-bg-ink h3,.gp-bg-ink h4{ color:#fff; }
.gp-bg-ink p,.gp-bg-ink li{ color:rgba(255,255,255,.72); }
.gp-bg-ink .gp-eyebrow{ color:var(--gp-lime); }
.gp-bg-ink .gp-eyebrow::before{ background:var(--gp-lime); }

/* Ambient neon haze inside dark bands */
.gp-bg-ink{ position:relative; overflow:hidden; isolation:isolate; }
.gp-bg-ink::before,
.gp-bg-ink::after{
  content:""; position:absolute; z-index:-1; border-radius:50%;
  filter:blur(90px); pointer-events:none;
}
.gp-bg-ink::before{ width:520px; height:520px; top:-160px; left:-140px;
  background:radial-gradient(circle,rgba(250,58,153,.42),transparent 68%); }
.gp-bg-ink::after { width:560px; height:560px; bottom:-220px; right:-160px;
  background:radial-gradient(circle,rgba(174,244,6,.28),transparent 68%); }

/* ============================== EYEBROW ================================ */

.gp-eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:"Outfit",sans-serif;
  font-size:.8rem; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gp-pink-act);
  margin-bottom:.9rem;
}
.gp-eyebrow::before{
  content:""; width:26px; height:3px; border-radius:3px;
  background:var(--gp-pink); flex:none;
}
.gp-center .gp-eyebrow{ justify-content:center; }

/* Pink highlight inside a heading */
.gp-hl{ color:var(--gp-pink-act); }
.gp-bg-ink .gp-hl{ color:var(--gp-pink); }

/* Hand-drawn underline accent under a word */
.gp-underline{ position:relative; white-space:nowrap; }
.gp-underline::after{
  content:""; position:absolute; left:0; right:0; bottom:.06em; height:.34em;
  background:var(--gp-lime); border-radius:.2em; z-index:-1; opacity:.85;
}

/* ============================== BUTTONS ================================ */

.elementor-button{
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600; letter-spacing:.01em;
  border-radius:999px;
  transition:transform .3s var(--gp-ease), box-shadow .3s var(--gp-ease),
             background-color .3s var(--gp-ease), color .3s var(--gp-ease);
  will-change:transform;
}

/* PRIMARY — neon pink, the single strongest action on any screen */
.gp-btn-primary .elementor-button,
a.gp-btn-primary{
  background-color:var(--gp-pink-act);
  color:#fff;
  padding:17px 34px;
  box-shadow:var(--gp-glow-pink);
}
.gp-btn-primary .elementor-button:hover,
a.gp-btn-primary:hover{
  background-color:var(--gp-pink);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(250,58,153,.5);
}

/* SECONDARY — WhatsApp / supporting action */
.gp-btn-ghost .elementor-button,
a.gp-btn-ghost{
  background-color:transparent;
  color:var(--gp-heading);
  padding:15px 30px;
  border:2px solid var(--gp-border);
}
.gp-btn-ghost .elementor-button:hover,
a.gp-btn-ghost:hover{
  border-color:var(--gp-pink);
  color:var(--gp-pink-act);
  background-color:#fff;
  transform:translateY(-3px);
  box-shadow:var(--gp-shadow-md);
}
.gp-bg-ink .gp-btn-ghost .elementor-button{
  color:#fff; border-color:rgba(255,255,255,.26);
}
.gp-bg-ink .gp-btn-ghost .elementor-button:hover{
  background-color:#fff; color:var(--gp-ink); border-color:#fff;
}

/* LIME — used only on dark, always with black text (15.7:1) */
.gp-btn-lime .elementor-button,
a.gp-btn-lime{
  background-color:var(--gp-lime);
  color:var(--gp-ink);
  padding:17px 34px;
  box-shadow:var(--gp-glow-lime);
}
.gp-btn-lime .elementor-button:hover,
a.gp-btn-lime:hover{
  background-color:#c2ff2b; color:var(--gp-ink);
  transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(174,244,6,.45);
}

/* TERTIARY — quiet text link with a sliding underline */
.gp-btn-text .elementor-button,
a.gp-link{
  background:transparent; color:var(--gp-pink-act);
  padding:0; font-weight:600;
  position:relative;
}
.gp-btn-text .elementor-button::after,
a.gp-link::after{
  content:""; position:absolute; left:0; bottom:-4px; width:100%; height:2px;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .35s var(--gp-ease);
}
.gp-btn-text .elementor-button:hover::after,
a.gp-link:hover::after{ transform:scaleX(1); transform-origin:left; }

/* ====================== ORGANIC IMAGE MASK SYSTEM ======================= */
/* Deliberately varied so no two image slots on the page look alike.        */

.gp-m-blob img,
.gp-m-arch img,
.gp-m-egg  img,
.gp-m-leaf img,
.gp-m-oval img,
.gp-m-squircle img,
.gp-m-circle img{ display:block; width:100%; height:100%; object-fit:cover; }

.gp-m-blob img    { border-radius:62% 38% 44% 56% / 52% 46% 54% 48%; }
.gp-m-arch img    { border-radius:50% 50% var(--gp-r-lg) var(--gp-r-lg) / 42% 42% var(--gp-r-lg) var(--gp-r-lg); }
.gp-m-egg  img    { border-radius:50% 50% 46% 46% / 58% 58% 42% 42%; }
.gp-m-leaf img    { border-radius:56% 14% 56% 14%; }
.gp-m-oval img    { border-radius:48% / 34%; }
.gp-m-circle img  { border-radius:50%; aspect-ratio:1/1; }
.gp-m-squircle img{ border-radius:var(--gp-r-xl); }

/* Slow organic morph — barely perceptible, adds life to the hero blob */
@media (prefers-reduced-motion: no-preference){
  .gp-m-blob.gp-morph img{ animation:gpMorph 16s ease-in-out infinite; }
  @keyframes gpMorph{
    0%,100%{ border-radius:62% 38% 44% 56% / 52% 46% 54% 48%; }
    50%    { border-radius:44% 56% 60% 40% / 46% 58% 42% 54%; }
  }
}

/* Image lift on hover */
.gp-img-hover img{ transition:transform .6s var(--gp-ease); }
.gp-img-hover:hover img{ transform:scale(1.045); }

/* Colour plate sitting behind an image — layered composition */
.gp-plate{ position:relative; }
.gp-plate::before{
  content:""; position:absolute; inset:auto;
  width:78%; height:78%; z-index:0;
  border-radius:58% 42% 50% 50% / 48% 52% 48% 52%;
}
.gp-plate-pink::before{ background:var(--gp-pinktint); right:-6%; bottom:-6%; }
.gp-plate-lime::before{ background:var(--gp-limetint); left:-6%;  top:-6%;   }
.gp-plate > *{ position:relative; z-index:1; }

/* ======================= DECORATIVE PAW PATTERN ========================= */
/* Used sparingly — hero, pets and CTA only. Never behind body copy.        */

.gp-paws{ position:relative; }
.gp-paws::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23FA3A99'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:150px 150px;
  opacity:.045;
}
.gp-bg-ink.gp-paws::before{ opacity:.07; }
.gp-paws > *{ position:relative; z-index:1; }

/* Soft floating orbs */
.gp-orb{ position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:0; }
.gp-orb-pink{ background:rgba(250,58,153,.20); }
.gp-orb-lime{ background:rgba(174,244,6,.20); }
@media (prefers-reduced-motion: no-preference){
  .gp-float{ animation:gpFloat 9s ease-in-out infinite; }
  @keyframes gpFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-16px); } }
}

/* ================================ CARDS ================================= */

.gp-card{
  background:#fff;
  border:1px solid var(--gp-border);
  border-radius:var(--gp-r-lg);
  padding:34px 30px;
  height:100%;
  transition:transform .38s var(--gp-ease), box-shadow .38s var(--gp-ease),
             border-color .38s var(--gp-ease);
}
.gp-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--gp-shadow-lg);
  border-color:transparent;
}

/* Numbered process step — big ghosted numeral, no card chrome */
.gp-step{ position:relative; padding-top:8px; }
.gp-step__n{
  font-family:"Outfit",sans-serif; font-weight:800;
  font-size:4.4rem; line-height:1;
  color:transparent;
  -webkit-text-stroke:2px rgba(250,58,153,.32);
  display:block; margin-bottom:.15em;
}
.gp-bg-ink .gp-step__n{ -webkit-text-stroke-color:rgba(174,244,6,.5); }

/* Icon chip inside benefit cards */
.gp-icon-chip .elementor-icon{
  width:58px; height:58px; border-radius:18px;
  display:grid; place-items:center;
  background:var(--gp-pinktint); color:var(--gp-pink-act);
  transition:background-color .38s var(--gp-ease), color .38s var(--gp-ease), transform .38s var(--gp-ease);
}
.gp-card:hover .gp-icon-chip .elementor-icon{
  background:var(--gp-pink-act); color:#fff; transform:rotate(-6deg) scale(1.06);
}
.gp-icon-lime .elementor-icon{ background:var(--gp-limetint); color:#4d6b02; }
.gp-card:hover .gp-icon-lime .elementor-icon{ background:var(--gp-lime); color:var(--gp-ink); }

/* ========================= PET CATEGORY TILES =========================== */

.gp-pet{ position:relative; display:block; overflow:hidden; border-radius:var(--gp-r-xl);
  transition:transform .45s var(--gp-ease), box-shadow .45s var(--gp-ease); }
.gp-pet:hover{ transform:translateY(-8px); box-shadow:var(--gp-shadow-lg); }
.gp-pet img{ transition:transform .7s var(--gp-ease); }
.gp-pet:hover img{ transform:scale(1.06); }

/* Small pet tiles (rabbit / bird) — illustration-led, no photo needed */
.gp-pet-mini{
  background:#fff; border:1px solid var(--gp-border);
  border-radius:var(--gp-r-lg); padding:30px 26px;
  transition:transform .38s var(--gp-ease), box-shadow .38s var(--gp-ease);
}
.gp-pet-mini:hover{ transform:translateY(-6px); box-shadow:var(--gp-shadow-md); }

/* ========================== DUBAI AREA CHIPS ============================ */

.gp-chips{ display:flex; flex-wrap:wrap; gap:11px; }
.gp-chip{
  display:inline-flex; align-items:center; gap:.45em;
  padding:10px 19px; border-radius:999px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.9);
  font-size:.93rem; font-weight:500; text-decoration:none;
  transition:all .3s var(--gp-ease);
}
.gp-chip::before{
  content:""; width:6px; height:6px; border-radius:50%;
  background:var(--gp-lime); flex:none;
}
.gp-chip:hover{
  background:var(--gp-lime); color:var(--gp-ink);
  border-color:var(--gp-lime); transform:translateY(-2px);
}
.gp-chip:hover::before{ background:var(--gp-ink); }

/* ============================ TESTIMONIALS ============================== */

.gp-quote{
  background:#fff; border-radius:var(--gp-r-lg);
  padding:38px 34px 32px; height:100%;
  border:1px solid var(--gp-border);
  position:relative;
  transition:transform .38s var(--gp-ease), box-shadow .38s var(--gp-ease);
}
.gp-quote:hover{ transform:translateY(-6px); box-shadow:var(--gp-shadow-md); }
.gp-quote::before{
  content:"“"; position:absolute; top:6px; right:26px;
  font-family:"Outfit",serif; font-size:6rem; line-height:1;
  color:var(--gp-pink); opacity:.16;
}

/* Honest placeholder marker — remove when real reviews arrive */
.gp-placeholder-note{
  display:inline-flex; align-items:center; gap:.5em;
  padding:9px 17px; border-radius:999px;
  background:var(--gp-limetint); color:#3f5a02;
  border:1px dashed var(--gp-lime-deep);
  font-size:.83rem; font-weight:600;
}

/* =============================== FAQ ==================================== */

.gp-faq .e-n-accordion-item{
  background:#fff; border:1px solid var(--gp-border);
  border-radius:var(--gp-r-md) !important;
  margin-bottom:14px; overflow:hidden;
  transition:box-shadow .3s var(--gp-ease), border-color .3s var(--gp-ease);
}
.gp-faq .e-n-accordion-item:hover{ border-color:var(--gp-pink); box-shadow:var(--gp-shadow-sm); }
.gp-faq .e-n-accordion-item[open]{ box-shadow:var(--gp-shadow-md); border-color:transparent; }
.gp-faq .e-n-accordion-item-title{
  padding:23px 26px; cursor:pointer;
  font-family:"Outfit",sans-serif; font-weight:700;
  font-size:1.06rem; color:var(--gp-heading);
}
.gp-faq .e-n-accordion-item[open] .e-n-accordion-item-title{ color:var(--gp-pink-act); }
.gp-faq .e-n-accordion-item-title-text{ line-height:1.45; }

/* ========================== SCROLL REVEAL =============================== */

@media (prefers-reduced-motion: no-preference){
  .gp-reveal{ opacity:0; transform:translateY(26px);
    transition:opacity .7s var(--gp-ease), transform .7s var(--gp-ease); }
  .gp-reveal.is-in{ opacity:1; transform:none; }
  .gp-reveal-d1{ transition-delay:.09s; }
  .gp-reveal-d2{ transition-delay:.18s; }
  .gp-reveal-d3{ transition-delay:.27s; }
}
.gp-reveal.is-in{ opacity:1; transform:none; }

/* ============================== HEADER ================================== */

.gp-header{
  background:var(--gp-ink);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.gp-header a{ text-decoration:none; }

/* Nav links — lime underline grows from the left on hover */
.gp-nav .elementor-item{
  color:rgba(255,255,255,.86) !important;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:500; font-size:.97rem;
  padding:8px 0 !important; margin:0 15px;
  position:relative;
}
.gp-nav .elementor-item::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:2px;
  background:var(--gp-lime); border-radius:2px;
  transform:scaleX(0); transform-origin:right;
  transition:transform .34s var(--gp-ease);
}
.gp-nav .elementor-item:hover{ color:#fff !important; }
.gp-nav .elementor-item:hover::after{ transform:scaleX(1); transform-origin:left; }
.gp-nav .elementor-item.elementor-item-active{ color:#fff !important; }
.gp-nav .elementor-item.elementor-item-active::after{ transform:scaleX(1); }

/* Phone chip in the header */
.gp-header-phone{
  display:inline-flex; align-items:center; gap:.55em;
  color:#fff !important; font-weight:600; font-size:.97rem;
  padding:9px 18px; border-radius:999px;
  border:1px solid rgba(255,255,255,.2);
  transition:all .3s var(--gp-ease);
}
.gp-header-phone:hover{ border-color:var(--gp-lime); color:var(--gp-lime) !important; }

/* Logo never distorts and always reads as a link */
.gp-logo img{ height:56px; width:auto; display:block; transition:transform .35s var(--gp-ease); }
.gp-logo:hover img{ transform:scale(1.05); }

/* Mobile drop-down panel */
.gp-nav .elementor-nav-menu--dropdown{
  background:var(--gp-charcoal) !important;
  border-radius:0 0 var(--gp-r-md) var(--gp-r-md);
}
.gp-nav .elementor-nav-menu--dropdown a{
  color:rgba(255,255,255,.9) !important;
  font-size:1.02rem !important; padding:15px 24px !important;
  border-bottom:1px solid rgba(255,255,255,.07);
}
.gp-nav .elementor-nav-menu--dropdown a:hover{
  background:rgba(250,58,153,.16) !important; color:#fff !important;
}
.gp-nav .elementor-menu-toggle{ color:#fff !important; background:transparent !important; }

/* ============================== FOOTER ================================== */

.gp-footer{ background:var(--gp-ink); color:rgba(255,255,255,.62); }
.gp-footer h3,.gp-footer h4{ color:#fff; font-size:1.02rem; letter-spacing:0; margin-bottom:1.1em; }
.gp-footer a{ color:rgba(255,255,255,.62); text-decoration:none; transition:color .26s var(--gp-ease), padding-left .26s var(--gp-ease); }
.gp-footer a:hover{ color:var(--gp-lime); }
.gp-footer .gp-flist a:hover{ padding-left:6px; }
.gp-flist{ list-style:none; margin:0; padding:0; }
.gp-flist li{ margin-bottom:11px; line-height:1.5; }

.gp-social{ display:flex; gap:11px; }
.gp-social a{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.07); color:#fff;
  transition:all .3s var(--gp-ease);
}
.gp-social a:hover{ background:var(--gp-pink-act); color:#fff; transform:translateY(-3px); }
.gp-social svg{ width:18px; height:18px; fill:currentColor; }

.gp-footer-bottom{
  border-top:1px solid rgba(255,255,255,.09);
  padding-top:26px; margin-top:8px;
  font-size:.9rem; color:rgba(255,255,255,.45);
}

/* “Powered by DX Creativ” — quiet, but the name carries brand colour */
.gp-credit{ font-size:.9rem; color:rgba(255,255,255,.42); }
.gp-credit a{ color:var(--gp-pink); font-weight:600; }
.gp-credit a:hover{ color:var(--gp-lime); }

/* ============================ RESPONSIVE ================================ */

@media (max-width:1200px){
  :root{ --gp-sec-y:104px; }
}

@media (max-width:1024px){
  :root{ --gp-sec-y:88px; --gp-r-xl:38px; --gp-r-lg:28px; }
  .gp-card{ padding:30px 26px; }
  .gp-step__n{ font-size:3.6rem; }
}

@media (max-width:767px){
  :root{ --gp-sec-y:64px; --gp-r-xl:30px; --gp-r-lg:24px; --gp-r-md:18px; }
  body{ font-size:16px; }
  .gp-lead{ font-size:1rem; }
  .gp-card{ padding:26px 22px; }
  .gp-quote{ padding:30px 24px 26px; }

  /* Buttons go comfortably wide and tappable, but never edge-to-edge ugly */
  .gp-btn-primary .elementor-button,
  .gp-btn-lime .elementor-button,
  .gp-btn-ghost .elementor-button{
    width:100%; justify-content:center; padding:16px 24px;
  }
  .gp-btn-stack .elementor-widget-button{ width:100%; }

  /* Decoration is dialled back so mobile stays clean and fast */
  .gp-orb{ display:none; }
  .gp-plate::before{ display:none; }
  .gp-paws::before{ background-size:110px 110px; opacity:.035; }
  .gp-bg-ink::before,.gp-bg-ink::after{ filter:blur(60px); }
  .gp-step__n{ font-size:3rem; }

  /* Masks simplify on small screens so faces are never awkwardly clipped */
  .gp-m-blob img{ border-radius:44% 56% 50% 50% / 40% 40% 60% 60%; }
  .gp-m-arch img{ border-radius:50% 50% var(--gp-r-md) var(--gp-r-md) / 30% 30% var(--gp-r-md) var(--gp-r-md); }
}

@media (max-width:430px){
  .gp-eyebrow{ font-size:.74rem; letter-spacing:.13em; }
  .gp-chip{ padding:9px 15px; font-size:.87rem; }
}



/* ===== glanpaws-layout ===== */
/* =========================================================================
   GLAN PAWS - Layout layer (header, footer, homepage sections)

   WHY THE PAIRED SELECTORS:
   Elementor 4.2 does not output a Container's Advanced > "CSS Classes"
   (_css_classes) on the front end; only Widgets do. Containers are therefore
   targeted by their stable auto-generated class .elementor-element-{id},
   with the intended semantic class kept alongside for readability.
   IDs were authored deliberately:
     gphero*=hero  gpwhy*=why  gphow*=how it works  gpsvc*=services
     gppets*=pets  gpdxb*=dubai  gprev*=reviews  gpcta*=cta  gpfaq*=faq
     gphdr*=header  gpftr*=footer
   ========================================================================= */

.e-con{ --container-max-width:1240px; }
.e-con-boxed > .e-con-inner{ max-width:1240px; margin-inline:auto; }

/* Grid children must not stretch to Elementor's default full width */
.gp-grid > .e-con{ width:auto !important; max-width:none !important; }

/* ============================ SECTION SURFACES ========================== */

.elementor-element-gpwhy00{ background-color:#F7F7FA; }
.elementor-element-gppets00{ background-color:#FFF0F8; }
.elementor-element-gprev00{ background-color:#F4FCE0; }
.elementor-element-gphow00,
.elementor-element-gpdxb00,
.elementor-element-gpftr01{ background-color:#0B0B0F; }

/* Neon haze inside the dark bands - the logo's own environment */
.elementor-element-gphow00,
.elementor-element-gpdxb00{ position:relative; overflow:hidden; isolation:isolate; }
.elementor-element-gphow00::before,
.elementor-element-gpdxb00::before{
  content:""; position:absolute; z-index:0; border-radius:50%; pointer-events:none;
  width:520px; height:520px; top:-170px; left:-140px; filter:blur(90px);
  background:radial-gradient(circle,rgba(250,58,153,.45),transparent 68%);
}
.elementor-element-gphow00::after,
.elementor-element-gpdxb00::after{
  content:""; position:absolute; z-index:0; border-radius:50%; pointer-events:none;
  width:560px; height:560px; bottom:-230px; right:-160px; filter:blur(90px);
  background:radial-gradient(circle,rgba(174,244,6,.3),transparent 68%);
}
.elementor-element-gphow00 > .e-con-inner,
.elementor-element-gpdxb00 > .e-con-inner{ position:relative; z-index:1; }

/* Dark-band typography */
.elementor-element-gphow00 .elementor-heading-title,
.elementor-element-gpdxb00 .elementor-heading-title,
.elementor-element-gpftr01 .elementor-heading-title{ color:#FFFFFF; }
.elementor-element-gphow00 .elementor-widget-text-editor,
.elementor-element-gphow00 .elementor-widget-text-editor p,
.elementor-element-gpdxb00 .elementor-widget-text-editor,
.elementor-element-gpdxb00 .elementor-widget-text-editor p{ color:rgba(255,255,255,.72); }
.elementor-element-gphow00 .gp-eyebrow,
.elementor-element-gpdxb00 .gp-eyebrow{ color:#AEF406; }
.elementor-element-gphow00 .gp-eyebrow::before,
.elementor-element-gpdxb00 .gp-eyebrow::before{ background:#AEF406; }
.elementor-element-gphow00 .gp-step__n{ -webkit-text-stroke-color:rgba(174,244,6,.55); }
.elementor-element-gpdxb00 .gp-btn-ghost .elementor-button,
.elementor-element-gphow00 .gp-btn-ghost .elementor-button{ color:#fff; border-color:rgba(255,255,255,.28); }

/* Paw pattern - hero, how, pets, footer only */
.elementor-element-gphero00,
.elementor-element-gphow00,
.elementor-element-gppets00,
.elementor-element-gpftr01{ position:relative; }
.elementor-element-gphero00::before,
.elementor-element-gphow00 .e-con-inner::before,
.elementor-element-gppets00::before,
.elementor-element-gpftr01::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23FA3A99'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:150px 150px; opacity:.045;
}
.elementor-element-gphow00 .e-con-inner::before,
.elementor-element-gpftr01::before{ opacity:.07; }
.elementor-element-gphero00 > .e-con-inner,
.elementor-element-gppets00 > .e-con-inner{ position:relative; z-index:1; }

/* ================================ HEADER ================================ */

.elementor-element-gphdr01{ background-color:#0B0B0F; border-bottom:1px solid rgba(255,255,255,.08); }

.gp-header__bar, .elementor-element-gphdr02{
  display:flex !important; flex-direction:row !important;
  align-items:center; justify-content:space-between;
  gap:30px; flex-wrap:nowrap !important;
}
.elementor-element-gphdr02 > .e-con-inner{
  display:flex; flex-direction:row; align-items:center;
  justify-content:space-between; gap:30px; flex-wrap:nowrap; width:100%;
}
.elementor-element-gphdr02 > .e-con-inner > *{ width:auto !important; }

/* Nav */
.gp-header__nav{ flex:1 1 auto; }
.gp-nav .elementor-nav-menu--main .elementor-nav-menu{ justify-content:center; gap:6px; }
.gp-nav .elementor-nav-menu--main .elementor-item{
  color:rgba(255,255,255,.86) !important;
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-weight:500 !important; font-size:.97rem !important;
  padding:9px 15px !important; position:relative;
}
.gp-nav .elementor-nav-menu--main .elementor-item::after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px;
  background:#AEF406; border-radius:2px;
  transform:scaleX(0); transform-origin:right;
  transition:transform .34s cubic-bezier(.22,.8,.28,1);
}
.gp-nav .elementor-nav-menu--main .elementor-item:hover{ color:#fff !important; }
.gp-nav .elementor-nav-menu--main .elementor-item:hover::after,
.gp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active::after{
  transform:scaleX(1); transform-origin:left;
}
.gp-nav .elementor-nav-menu--main .elementor-item.elementor-item-active{ color:#fff !important; }
.gp-nav .elementor-nav-menu--main .sub-arrow{ margin-inline-start:6px; }

/* Submenu */
.gp-nav .elementor-nav-menu--dropdown,
.gp-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown{
  background-color:#16161C !important; border-radius:0 0 18px 18px;
}
.gp-nav .elementor-nav-menu--dropdown a{
  color:rgba(255,255,255,.88) !important; font-size:1rem !important;
  padding:14px 22px !important; border-bottom:1px solid rgba(255,255,255,.07);
}
.gp-nav .elementor-nav-menu--dropdown a:hover,
.gp-nav .elementor-nav-menu--dropdown a.elementor-item-active{
  background-color:rgba(250,58,153,.18) !important; color:#fff !important;
}
.gp-nav .elementor-menu-toggle{ color:#fff !important; background:transparent !important; }

/* Header right cluster */
.gp-header__cta, .elementor-element-gphdr05{
  display:flex !important; flex-direction:row !important;
  align-items:center; gap:14px; flex:0 0 auto; width:auto !important;
}
.elementor-element-gphdr05 > .e-con-inner{ display:flex; flex-direction:row; align-items:center; gap:14px; }
.elementor-element-gphdr05 .elementor-widget{ width:auto !important; margin:0 !important; }

.gp-header-phone{
  display:inline-flex; align-items:center; gap:.55em;
  color:#fff !important; font-weight:600; font-size:.95rem; text-decoration:none;
  padding:10px 18px; border-radius:999px; border:1px solid rgba(255,255,255,.22);
  transition:all .3s cubic-bezier(.22,.8,.28,1); white-space:nowrap;
}
.gp-header-phone:hover{ border-color:#AEF406; color:#AEF406 !important; }
.gp-header__book .elementor-button{ padding:13px 26px !important; font-size:.94rem; white-space:nowrap; }
.gp-logo img{ height:60px; width:auto; display:block; transition:height .32s cubic-bezier(.22,.8,.28,1); }

.elementor-element-gphdr01.elementor-sticky--effects{
  background-color:rgba(11,11,15,.93);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 8px 30px rgba(0,0,0,.35);
}
.elementor-element-gphdr01.elementor-sticky--effects .gp-logo img{ height:48px; }

@media (max-width:1200px){
  .gp-nav .elementor-nav-menu--main .elementor-item{ padding:9px 10px !important; font-size:.93rem !important; }
  .elementor-element-gphdr02 > .e-con-inner{ gap:16px; }
}
@media (max-width:1024px){
  .elementor-element-gphdr02 > .e-con-inner{ gap:14px; }
  .gp-header__nav{ flex:0 0 auto; order:3; }
  .elementor-element-gphdr05{ order:2; margin-left:auto; }
}
@media (max-width:767px){
  .gp-header__book{ display:none; }
  .gp-header-phone{ padding:0; width:44px; height:44px; justify-content:center; }
  .gp-header-phone__num{ display:none; }
  .gp-logo img{ height:46px; }
  .elementor-element-gphdr02 > .e-con-inner{ gap:10px; }
}

/* ================================= HERO ================================= */

.elementor-element-gphero00{ overflow:hidden; }

.gp-hero__grid, .elementor-element-gphero02{
  display:grid !important;
  grid-template-columns:1.02fr .98fr;
  gap:64px; align-items:center;
}
.elementor-element-gphero02 > .e-con{ width:auto !important; max-width:none !important; }
.elementor-element-gphero03{ position:relative; z-index:2; }
.elementor-element-gphero03 .elementor-widget-heading{ margin-bottom:14px; }

.gp-hero__actions, .elementor-element-gphero07{
  display:flex !important; flex-direction:row !important;
  gap:14px; flex-wrap:wrap; align-items:center; margin-top:30px;
}
.elementor-element-gphero07 .elementor-widget{ width:auto !important; margin:0 !important; }

.gp-hero__trust{
  display:flex; flex-wrap:wrap; gap:10px 22px;
  margin-top:34px; padding-top:26px; border-top:1px solid #ECECF1;
}
.gp-hero__trust span{
  display:inline-flex; align-items:center; gap:.5em;
  font-size:.92rem; font-weight:500; color:#12121A;
}
.gp-hero__trust svg{ width:17px; height:17px; color:#E11A80; flex:none; }

.elementor-element-gphero20{ position:relative; }
.gp-hero__inset{
  position:absolute !important; right:-6px; bottom:-28px;
  width:172px; z-index:3;
  border-radius:50%; overflow:hidden;
  border:7px solid #fff; box-shadow:0 28px 70px rgba(18,18,26,.16);
}
.gp-hero__inset img{ border-radius:50%; aspect-ratio:1/1; object-fit:cover; }

.gp-orb{ position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:0; }
.gp-orb-pink{ background:rgba(250,58,153,.2); }
.gp-orb-lime{ background:rgba(174,244,6,.2); }
.elementor-element-gphero00 .gp-orb-1{ width:340px; height:340px; top:40px;  right:-60px; }
.elementor-element-gphero00 .gp-orb-2{ width:260px; height:260px; bottom:20px; left:-70px; }

@media (max-width:1024px){
  .elementor-element-gphero02{ grid-template-columns:1fr; gap:48px; }
  .elementor-element-gphero20{ max-width:560px; margin-inline:auto; }
  .gp-hero__inset{ width:140px; right:0; }
}
@media (max-width:767px){
  .elementor-element-gphero02{ gap:36px; }
  .elementor-element-gphero07{ margin-top:24px; gap:11px; width:100%; }
  .elementor-element-gphero07 .elementor-widget{ width:100% !important; }
  .gp-hero__trust{ margin-top:26px; padding-top:20px; gap:9px 16px; }
  .gp-hero__trust span{ font-size:.86rem; }
  .gp-hero__inset{ width:104px; right:4px; bottom:-14px; border-width:5px; }
  .gp-orb{ display:none; }
}

/* ============================= WHY CHOOSE US ============================ */

.gp-why__grid, .elementor-element-gpwhy01{
  display:grid !important;
  grid-template-columns:.92fr 1.08fr;
  gap:70px; align-items:center;
}
.elementor-element-gpwhy01 > .e-con{ width:auto !important; max-width:none !important; }
.elementor-element-gpwhy02{ position:relative; }
.gp-why__inset{
  position:absolute !important; left:-30px; bottom:-30px; width:214px; z-index:3;
  border-radius:22px; overflow:hidden;
  border:7px solid #fff; box-shadow:0 28px 70px rgba(18,18,26,.16);
}
.gp-why__inset img{ border-radius:14px; }

.gp-benefits, .elementor-element-gpwhy14{
  display:grid !important; grid-template-columns:1fr 1fr;
  gap:34px 32px; margin-top:38px;
}
.elementor-element-gpwhy14 > .elementor-widget{ width:auto !important; margin:0 !important; }

@media (max-width:1024px){
  .elementor-element-gpwhy01{ grid-template-columns:1fr; gap:56px; }
  .elementor-element-gpwhy02{ max-width:520px; margin-inline:auto; }
}
@media (max-width:767px){
  .elementor-element-gpwhy14{ grid-template-columns:1fr; gap:28px; margin-top:30px; }
  .gp-why__inset{ width:130px; left:-6px; bottom:-16px; border-width:5px; }
}

/* ============================= HOW IT WORKS ============================= */

.gp-how__grid, .elementor-element-gphow10{
  display:grid !important; grid-template-columns:repeat(3,1fr);
  gap:44px; margin-top:52px;
}
.elementor-element-gphow10 > .e-con{ width:auto !important; max-width:none !important; }
.gp-step__n{
  font-family:"Outfit",sans-serif; font-weight:800;
  font-size:4.4rem; line-height:1; display:block; margin-bottom:.1em;
  color:transparent; -webkit-text-stroke:2px rgba(250,58,153,.35);
}
@media (max-width:900px){
  .elementor-element-gphow10{ grid-template-columns:1fr; gap:34px; margin-top:38px; }
  .gp-step__n{ font-size:3.2rem; }
}

/* =============================== SERVICES =============================== */

.gp-svc__head, .elementor-element-gpsvc01{
  display:grid !important; grid-template-columns:1fr 1fr;
  gap:48px; align-items:end; margin-bottom:56px;
}
.elementor-element-gpsvc01 > .e-con{ width:auto !important; max-width:none !important; }

.gp-svc__feature, .elementor-element-gpsvc10{
  display:grid !important; grid-template-columns:1fr 1fr;
  gap:30px; margin-bottom:30px;
}
.elementor-element-gpsvc10 > .e-con{ width:auto !important; max-width:none !important; }

.elementor-element-gpsvc11,
.elementor-element-gpsvc21{
  background:#fff; border:1px solid #ECECF1; border-radius:34px; overflow:hidden;
  transition:transform .4s cubic-bezier(.22,.8,.28,1), box-shadow .4s cubic-bezier(.22,.8,.28,1);
}
.elementor-element-gpsvc11:hover,
.elementor-element-gpsvc21:hover{ transform:translateY(-8px); box-shadow:0 28px 70px rgba(18,18,26,.13); }
.elementor-element-gpsvc11 .elementor-widget-image img,
.elementor-element-gpsvc21 .elementor-widget-image img{
  width:100%; height:230px; object-fit:cover;
  transition:transform .7s cubic-bezier(.22,.8,.28,1);
}
.elementor-element-gpsvc11:hover .elementor-widget-image img,
.elementor-element-gpsvc21:hover .elementor-widget-image img{ transform:scale(1.05); }
.elementor-element-gpsvc13 > .e-con-inner,
.elementor-element-gpsvc23 > .e-con-inner,
.elementor-element-gpsvc13,
.elementor-element-gpsvc23{ padding:28px 30px 30px !important; }

.gp-svc__grid, .elementor-element-gpsvc30{
  display:grid !important; grid-template-columns:repeat(4,1fr); gap:26px;
}
.elementor-element-gpsvc30 > .elementor-widget{ width:auto !important; margin:0 !important; }

@media (max-width:1024px){
  .elementor-element-gpsvc01{ grid-template-columns:1fr; gap:20px; margin-bottom:44px; }
  .elementor-element-gpsvc30{ grid-template-columns:1fr 1fr; }
}
@media (max-width:767px){
  .elementor-element-gpsvc10{ grid-template-columns:1fr; gap:22px; margin-bottom:22px; }
  .elementor-element-gpsvc30{ grid-template-columns:1fr; gap:18px; }
  .elementor-element-gpsvc11 .elementor-widget-image img,
  .elementor-element-gpsvc21 .elementor-widget-image img{ height:200px; }
  .elementor-element-gpsvc13,
  .elementor-element-gpsvc23{ padding:24px 22px 26px !important; }
}

/* ============================ PETS WE GROOM ============================= */

.gp-pets__main, .elementor-element-gppets10{
  display:grid !important; grid-template-columns:1fr 1fr; gap:34px; margin-bottom:30px;
}
.elementor-element-gppets10 > .e-con{ width:auto !important; max-width:none !important; }

.elementor-element-gppets11,
.elementor-element-gppets21{
  background:#fff; border-radius:48px; overflow:hidden;
  border:1px solid rgba(18,18,26,.06);
  transition:transform .45s cubic-bezier(.22,.8,.28,1), box-shadow .45s cubic-bezier(.22,.8,.28,1);
}
.elementor-element-gppets11:hover,
.elementor-element-gppets21:hover{ transform:translateY(-9px); box-shadow:0 28px 70px rgba(18,18,26,.13); }
.elementor-element-gppets11 .elementor-widget-image img,
.elementor-element-gppets21 .elementor-widget-image img{
  width:100%; height:360px; object-fit:cover;
  transition:transform .75s cubic-bezier(.22,.8,.28,1);
}
.elementor-element-gppets11:hover .elementor-widget-image img,
.elementor-element-gppets21:hover .elementor-widget-image img{ transform:scale(1.06); }
/* Different mask on each so the pair never reads as cloned */
.elementor-element-gppets21 .elementor-widget-image img{ border-radius:0 0 46% 46% / 0 0 20% 20%; }
.elementor-element-gppets13,
.elementor-element-gppets23{ padding:28px 32px 32px !important; }

.gp-pets__mini, .elementor-element-gppets30{
  display:grid !important; grid-template-columns:1fr 1fr; gap:30px;
}
.elementor-element-gppets30 > .elementor-widget{ width:auto !important; margin:0 !important; }

.gp-mini-tile{
  display:flex; align-items:center; gap:24px; height:100%;
  background:#fff; border:1px solid rgba(18,18,26,.06);
  border-radius:34px; padding:28px 30px; text-decoration:none;
  transition:transform .38s cubic-bezier(.22,.8,.28,1), box-shadow .38s cubic-bezier(.22,.8,.28,1);
}
.gp-mini-tile:hover{ transform:translateY(-6px); box-shadow:0 14px 40px rgba(18,18,26,.09); }
.gp-mini-tile__icon{
  width:70px; height:70px; flex:none; border-radius:22px;
  display:grid; place-items:center; background:#F4FCE0; color:#4D6B02;
  transition:background-color .38s ease, color .38s ease, transform .38s ease;
}
.gp-mini-tile:hover .gp-mini-tile__icon{ background:#AEF406; color:#0B0B0F; transform:rotate(-7deg); }
.gp-mini-tile__icon svg{ width:36px; height:36px; }
.gp-mini-tile h3{ font-family:"Outfit",sans-serif; font-size:1.2rem; color:#12121A; margin:0 0 .3em; }
.gp-mini-tile p{ margin:0; font-size:.94rem; line-height:1.6; color:#5A5A66; }
.gp-mini-tile__go{ margin-left:auto; flex:none; color:#E11A80; transition:transform .34s ease; }
.gp-mini-tile:hover .gp-mini-tile__go{ transform:translateX(5px); }

@media (max-width:900px){
  .elementor-element-gppets10{ grid-template-columns:1fr; gap:26px; }
  .elementor-element-gppets30{ grid-template-columns:1fr; gap:20px; }
  .elementor-element-gppets11 .elementor-widget-image img,
  .elementor-element-gppets21 .elementor-widget-image img{ height:300px; }
}
@media (max-width:767px){
  .elementor-element-gppets13,
  .elementor-element-gppets23{ padding:24px 24px 28px !important; }
  .gp-mini-tile{ padding:22px; gap:18px; border-radius:26px; }
  .gp-mini-tile__icon{ width:58px; height:58px; border-radius:18px; }
  .gp-mini-tile__icon svg{ width:30px; height:30px; }
  .gp-mini-tile__go{ display:none; }
}

/* ========================= PET GROOMING IN DUBAI ======================== */

.gp-dubai__grid, .elementor-element-gpdxb01{
  display:grid !important; grid-template-columns:1.05fr .95fr;
  gap:66px; align-items:center;
}
.elementor-element-gpdxb01 > .e-con{ width:auto !important; max-width:none !important; }
.elementor-element-gpdxb02 img{ border-radius:56% 14% 56% 14%; }

.gp-chips{ display:flex; flex-wrap:wrap; gap:11px; margin-top:26px; }
.gp-chip{
  display:inline-flex; align-items:center; gap:.45em;
  padding:10px 19px; border-radius:999px;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.9); font-size:.93rem; font-weight:500; text-decoration:none;
  transition:all .3s cubic-bezier(.22,.8,.28,1);
}
.gp-chip::before{ content:""; width:6px; height:6px; border-radius:50%; background:#AEF406; flex:none; }
.gp-chip:hover{ background:#AEF406; color:#0B0B0F; border-color:#AEF406; transform:translateY(-2px); }
.gp-chip:hover::before{ background:#0B0B0F; }
.gp-dubai__note{ margin-top:24px; font-size:.93rem; color:rgba(255,255,255,.55); }

@media (max-width:1024px){
  .elementor-element-gpdxb01{ grid-template-columns:1fr; gap:48px; }
  .elementor-element-gpdxb02{ max-width:520px; margin-inline:auto; }
}
@media (max-width:767px){
  .elementor-element-gpdxb02 img{ border-radius:30px; }
  .gp-chip{ padding:9px 15px; font-size:.87rem; }
}

/* ============================== TESTIMONIALS ============================ */

.gp-reviews__grid, .elementor-element-gprev10{
  display:grid !important; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:46px;
}
.elementor-element-gprev10 > .elementor-widget{ width:auto !important; margin:0 !important; }

.gp-quote{
  background:#fff; border:1px solid #ECECF1; border-radius:34px;
  padding:38px 34px 32px; height:100%; position:relative;
  transition:transform .38s cubic-bezier(.22,.8,.28,1), box-shadow .38s cubic-bezier(.22,.8,.28,1);
}
.gp-quote:hover{ transform:translateY(-6px); box-shadow:0 14px 40px rgba(18,18,26,.09); }
.gp-quote::before{
  content:"\201C"; position:absolute; top:4px; right:26px;
  font-family:"Outfit",serif; font-size:6rem; line-height:1; color:#FA3A99; opacity:.16;
}
.gp-quote__text{ font-size:1.02rem; line-height:1.7; color:#5A5A66; margin-bottom:22px; position:relative; }
.gp-quote__who{ display:flex; align-items:center; gap:13px; }
.gp-quote__avatar{
  width:44px; height:44px; border-radius:50%; flex:none;
  background:#FFF0F8; color:#E11A80; display:grid; place-items:center;
  font-weight:700; font-family:"Outfit",sans-serif;
}
.gp-quote__name{ display:block; font-weight:700; color:#12121A; font-size:.97rem; line-height:1.3; }
.gp-quote__meta{ display:block; font-size:.86rem; color:#8A8A97; }

.gp-placeholder-note{
  display:inline-flex; align-items:center; gap:.5em;
  padding:9px 17px; border-radius:999px;
  background:#fff; color:#3F5A02; border:1px dashed #86BE04;
  font-size:.83rem; font-weight:600;
}

@media (max-width:1024px){
  .elementor-element-gprev10{ grid-template-columns:1fr; max-width:620px; margin-inline:auto; }
}

/* ============================== CTA BAND =============================== */

.elementor-element-gpcta00{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,#E11A80 0%,#FA3A99 46%,#7D0D47 100%);
}
.elementor-element-gpcta00::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23ffffff'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:170px 170px; opacity:.07;
}
.elementor-element-gpcta00 > .e-con-inner{ position:relative; z-index:1; }
.elementor-element-gpcta00 .elementor-heading-title{ color:#fff; }
.elementor-element-gpcta00 .elementor-widget-text-editor,
.elementor-element-gpcta00 .elementor-widget-text-editor p{ color:rgba(255,255,255,.88); }
.elementor-element-gpcta00 .gp-eyebrow{ color:#AEF406; }
.elementor-element-gpcta00 .gp-eyebrow::before{ background:#AEF406; }
.elementor-element-gpcta00 .gp-btn-ghost .elementor-button{ color:#fff; border-color:rgba(255,255,255,.5); }
.elementor-element-gpcta00 .gp-btn-ghost .elementor-button:hover{ background:#fff; color:#E11A80; border-color:#fff; }

.gp-cta__grid, .elementor-element-gpcta01{
  display:grid !important; grid-template-columns:1.15fr .85fr;
  gap:56px; align-items:center;
}
.elementor-element-gpcta01 > .e-con{ width:auto !important; max-width:none !important; }
.gp-cta__actions, .elementor-element-gpcta06{
  display:flex !important; flex-direction:row !important;
  gap:14px; flex-wrap:wrap; margin-top:30px;
}
.elementor-element-gpcta06 .elementor-widget{ width:auto !important; margin:0 !important; }
.elementor-element-gpcta10 img{ border-radius:40px; box-shadow:0 30px 70px rgba(0,0,0,.3); }

@media (max-width:1024px){ .elementor-element-gpcta01{ grid-template-columns:1fr; gap:44px; } }
@media (max-width:767px){
  .elementor-element-gpcta06{ width:100%; gap:11px; }
  .elementor-element-gpcta06 .elementor-widget{ width:100% !important; }
}

/* ================================= FAQ ================================== */

.gp-faq__grid, .elementor-element-gpfaq01{
  display:grid !important; grid-template-columns:.82fr 1.18fr;
  gap:64px; align-items:start;
}
.elementor-element-gpfaq01 > .e-con{ width:auto !important; max-width:none !important; }
.elementor-element-gpfaq02{ position:sticky; top:120px; }
.elementor-element-gpfaq02 .elementor-widget-button{ margin-top:8px; }

@media (max-width:1024px){
  .elementor-element-gpfaq01{ grid-template-columns:1fr; gap:40px; }
  .elementor-element-gpfaq02{ position:static; }
}

/* ================================ FOOTER ================================ */

.gp-footer__grid, .elementor-element-gpftr02{
  display:grid !important;
  grid-template-columns:1.7fr 1fr 1.15fr 1.15fr 1.3fr;
  gap:52px 40px; align-items:start;
}
.elementor-element-gpftr02 > .e-con{ width:auto !important; max-width:none !important; }
.elementor-element-gpftr01 .elementor-widget-text-editor,
.elementor-element-gpftr01 .elementor-widget-text-editor p{ color:rgba(255,255,255,.62); }
.elementor-element-gpftr05{ margin:18px 0 22px !important; font-size:.96rem; max-width:34ch; }
.elementor-element-gpftr07{ margin-top:22px; }
.elementor-element-gpftr07 .elementor-button{ padding:13px 26px !important; font-size:.92rem; }

.gp-fnav .elementor-icon-list-icon{ display:none !important; }
.gp-fnav .elementor-icon-list-item{ margin:0 !important; }
.gp-fnav .elementor-icon-list-item > a,
.gp-fnav .elementor-icon-list-text{
  color:rgba(255,255,255,.62) !important; font-size:.95rem; line-height:1.5;
  transition:color .26s ease, padding-left .26s ease;
}
.gp-fnav .elementor-icon-list-item > a:hover,
.gp-fnav .elementor-icon-list-item:hover .elementor-icon-list-text{
  color:#AEF406 !important; padding-left:6px;
}

.gp-social{ display:flex; gap:11px; margin-top:4px; }
.gp-social a{
  width:42px; height:42px; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(255,255,255,.07); color:#fff;
  transition:all .3s cubic-bezier(.22,.8,.28,1);
}
.gp-social a:hover{ background:#E11A80; transform:translateY(-3px); }
.gp-social svg{ width:18px; height:18px; fill:currentColor; }

.gp-fcontact{ list-style:none; margin:0; padding:0; }
.gp-fcontact li{
  display:flex; align-items:flex-start; gap:11px; margin-bottom:14px;
  font-size:.95rem; line-height:1.5; color:rgba(255,255,255,.62);
}
.gp-fcontact svg{ width:17px; height:17px; flex:none; margin-top:3px; color:#FA3A99; }
.gp-fcontact a{ color:rgba(255,255,255,.62); text-decoration:none; transition:color .26s ease; }
.gp-fcontact a:hover{ color:#AEF406; }

.gp-footer-bottom, .elementor-element-gpftr50{
  display:flex !important; flex-direction:row !important;
  align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.09); margin-top:44px;
}
.elementor-element-gpftr50 > .e-con-inner{
  display:flex; flex-direction:row; align-items:center;
  justify-content:space-between; gap:16px; flex-wrap:wrap; width:100%;
}
.elementor-element-gpftr50 .elementor-widget{ width:auto !important; margin:0 !important; }
.gp-copy p{ margin:0; font-size:.9rem; color:rgba(255,255,255,.45) !important; }
.gp-credit{ font-size:.9rem; color:rgba(255,255,255,.42); }
.gp-credit a{ color:#FA3A99; font-weight:600; text-decoration:none; }
.gp-credit a:hover{ color:#AEF406; }

@media (max-width:1100px){
  .elementor-element-gpftr02{ grid-template-columns:1.6fr 1fr 1fr; gap:44px 32px; }
}
@media (max-width:767px){
  .elementor-element-gpftr02{ grid-template-columns:1fr; gap:36px; }
  .elementor-element-gpftr05{ max-width:none; }
  .elementor-element-gpftr50 > .e-con-inner{ flex-direction:column; align-items:flex-start; }
}

/* ============================ SHARED HELPERS =========================== */

.gp-eyebrow{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:"Outfit",sans-serif; font-size:.8rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:#E11A80; margin-bottom:.9rem;
}
.gp-eyebrow::before{ content:""; width:26px; height:3px; border-radius:3px; background:#FA3A99; flex:none; }

.elementor-element-gppets01,
.elementor-element-gprev01{ text-align:center; }
.elementor-element-gppets01 .gp-eyebrow,
.elementor-element-gprev01 .gp-eyebrow{ justify-content:center; }
.elementor-element-gppets01 .gp-lead,
.elementor-element-gprev01 .gp-lead{ margin-inline:auto; }
.gp-sec-head, .elementor-element-gphow01{ max-width:760px; }
.gp-lead{ font-size:1.1rem; line-height:1.7; max-width:58ch; }

/* Card chrome for the four compact service widgets */
.gp-card{
  background:#fff; border:1px solid #ECECF1; border-radius:34px;
  padding:34px 30px; height:100%;
  transition:transform .38s cubic-bezier(.22,.8,.28,1), box-shadow .38s cubic-bezier(.22,.8,.28,1), border-color .38s ease;
}
.gp-card:hover{ transform:translateY(-8px); box-shadow:0 28px 70px rgba(18,18,26,.13); border-color:transparent; }
@media (max-width:767px){ .gp-card{ padding:26px 22px; } }

/* Nothing may push the page sideways on any breakpoint */
.e-con,.e-con-inner,.elementor-widget{ min-width:0; }
img{ max-width:100%; height:auto; }


/* ===== glanpaws-pages ===== */
/* =========================================================================
   GLAN PAWS - Inner page system

   HOW THIS WORKS (read before editing)
   ------------------------------------
   Elementor 4.2 does not output a page Container's "CSS Classes" value, so we
   cannot style sections by class. Instead every inner-page container is given a
   deliberate Elementor element id built from short tokens, and this file targets
   those with substring attribute selectors, e.g. [data-id*="zg2"].

   All tokens start with "z" so they can never collide with the homepage ids
   (gphero*, gpwhy*, ...) or with widget ids (which are w + digits only).

   SURFACE TOKENS      LAYOUT TOKENS              COMPONENT TOKENS
     zsft soft grey      zg2  2-col grid            zcrd card shell
     zpnk pink tint      zg3  3-col grid            zcbd card body padding
     zlim lime tint      zg4  4-col grid            zmed media wrapper (relative)
     zink black + glow   zspl split, media left     zhed section head (max 760)
     zgrd pink gradient  zspr split, media right    zhec section head, centred
     zpaw paw texture    zrow flex row (buttons)    zfaq accordion wrapper

   Sections are BOXED containers (so they get the 1240px inner width);
   grids inside them are FULL containers (so their children are direct).
   ========================================================================= */

/* ============================== SURFACES ================================ */

[data-id*="zsft"]{ background-color:#F7F7FA; }
[data-id*="zpnk"]{ background-color:#FFF0F8; }
[data-id*="zlim"]{ background-color:#F4FCE0; }
[data-id*="zink"]{ background-color:#000000; position:relative; overflow:hidden; isolation:isolate; }

/* Neon haze inside dark bands - the logo's native environment */
[data-id*="zink"]::before,
[data-id*="zink"]::after{
  content:""; position:absolute; z-index:0; border-radius:50%;
  filter:blur(90px); pointer-events:none;
}
[data-id*="zink"]::before{
  width:520px; height:520px; top:-170px; left:-140px;
  background:radial-gradient(circle,rgba(250,58,153,.42),transparent 68%);
}
[data-id*="zink"]::after{
  width:560px; height:560px; bottom:-230px; right:-160px;
  background:radial-gradient(circle,rgba(174,244,6,.28),transparent 68%);
}
[data-id*="zink"] > .e-con-inner{ position:relative; z-index:1; }

[data-id*="zink"] .elementor-heading-title{ color:#FFFFFF; }
[data-id*="zink"] .elementor-widget-text-editor,
[data-id*="zink"] .elementor-widget-text-editor p,
[data-id*="zink"] li{ color:rgba(255,255,255,.72); }
[data-id*="zink"] .gp-eyebrow{ color:#AEF406; }
[data-id*="zink"] .gp-eyebrow::before{ background:#AEF406; }
[data-id*="zink"] .gp-step__n{ -webkit-text-stroke-color:rgba(174,244,6,.55); }
[data-id*="zink"] .gp-btn-ghost .elementor-button{ color:#fff; border-color:rgba(255,255,255,.28); }
[data-id*="zink"] .gp-btn-ghost .elementor-button:hover{ background:#fff; color:#0B0B0F; border-color:#fff; }

/* Pink gradient CTA band */
[data-id*="zgrd"]{
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,#E11A80 0%,#FA3A99 46%,#7D0D47 100%);
}
[data-id*="zgrd"] > .e-con-inner{ position:relative; z-index:1; }
[data-id*="zgrd"] .elementor-heading-title{ color:#FFFFFF; }
[data-id*="zgrd"] .elementor-widget-text-editor,
[data-id*="zgrd"] .elementor-widget-text-editor p{ color:rgba(255,255,255,.88); }
[data-id*="zgrd"] .gp-eyebrow{ color:#AEF406; }
[data-id*="zgrd"] .gp-eyebrow::before{ background:#AEF406; }
[data-id*="zgrd"] .gp-btn-ghost .elementor-button{ color:#fff; border-color:rgba(255,255,255,.5); }
[data-id*="zgrd"] .gp-btn-ghost .elementor-button:hover{ background:#fff; color:#E11A80; border-color:#fff; }

/* Paw texture - opacity is baked into the SVG so it composes with any surface */
[data-id*="zpaw"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23FA3A99' fill-opacity='0.05'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:150px 150px;
  background-repeat:repeat;
}

/* ================================ LAYOUT =============================== */

[data-id*="zg2"],
[data-id*="zg3"],
[data-id*="zg4"],
[data-id*="zspl"],
[data-id*="zspr"]{ display:grid !important; align-items:start; }

[data-id*="zg2"]{ grid-template-columns:repeat(2,1fr); gap:30px; }
[data-id*="zg3"]{ grid-template-columns:repeat(3,1fr); gap:28px; }
[data-id*="zg4"]{ grid-template-columns:repeat(4,1fr); gap:24px; }
[data-id*="zspl"]{ grid-template-columns:.95fr 1.05fr; gap:64px; align-items:center; }
[data-id*="zspr"]{ grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }

/* Grid children must fill their track and be allowed to shrink */
[data-id*="zg2"] > .e-con,   [data-id*="zg2"] > .elementor-widget,
[data-id*="zg3"] > .e-con,   [data-id*="zg3"] > .elementor-widget,
[data-id*="zg4"] > .e-con,   [data-id*="zg4"] > .elementor-widget,
[data-id*="zspl"] > .e-con,  [data-id*="zspl"] > .elementor-widget,
[data-id*="zspr"] > .e-con,  [data-id*="zspr"] > .elementor-widget{
  width:100% !important; max-width:100% !important; min-width:0 !important; margin:0 !important;
}

/* Flex row for button groups and inline chips */
[data-id*="zrow"]{
  display:flex !important; flex-direction:row !important;
  flex-wrap:wrap; align-items:center; gap:14px;
}
[data-id*="zrow"] > .elementor-widget{ width:auto !important; margin:0 !important; }

/* Section heads */
[data-id*="zhed"]{ max-width:760px; }
[data-id*="zhec"]{ max-width:760px; margin-inline:auto; text-align:center; }
[data-id*="zhec"] .gp-eyebrow{ justify-content:center; }
[data-id*="zhec"] .gp-lead{ margin-inline:auto; }

/* Media wrapper - lets insets and plates position against it */
[data-id*="zmed"]{ position:relative; }

/* ============================== COMPONENTS ============================= */

[data-id*="zcrd"]{
  background:#FFFFFF; border:1px solid #ECECF1; border-radius:30px;
  overflow:hidden; height:100%;
  transition:transform .4s cubic-bezier(.22,.8,.28,1),
             box-shadow .4s cubic-bezier(.22,.8,.28,1),
             border-color .4s ease;
}
[data-id*="zcrd"]:hover{
  transform:translateY(-8px);
  box-shadow:0 28px 70px rgba(18,18,26,.13);
  border-color:transparent;
}
[data-id*="zcrd"] .elementor-widget-image img{
  width:100%; height:210px; object-fit:cover;
  transition:transform .7s cubic-bezier(.22,.8,.28,1);
}
[data-id*="zcrd"]:hover .elementor-widget-image img{ transform:scale(1.05); }
[data-id*="zcbd"]{ padding:26px 28px 30px !important; }
[data-id*="zcbd"] .elementor-widget:not(:last-child){ margin-bottom:11px; }

/* Card on a dark band */
[data-id*="zink"] [data-id*="zcrd"]{
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.12);
}
[data-id*="zink"] [data-id*="zcrd"]:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(174,244,6,.4);
  box-shadow:none;
}

/* Accordion inside any inner page */
[data-id*="zfaq"] .elementor-accordion{ border:0; }
[data-id*="zfaq"] .elementor-accordion-item{
  background:#FFFFFF; border:1px solid #ECECF1 !important;
  border-radius:20px !important; margin-bottom:14px; overflow:hidden;
  transition:border-color .3s ease, box-shadow .3s ease;
}
[data-id*="zfaq"] .elementor-accordion-item:hover{
  border-color:#FA3A99 !important; box-shadow:0 4px 16px rgba(18,18,26,.06);
}
[data-id*="zfaq"] .elementor-tab-title{
  padding:21px 26px !important; background:transparent !important;
  border:0 !important; margin:0 !important;
  display:flex; align-items:center; gap:14px;
}
[data-id*="zfaq"] .elementor-tab-title,
[data-id*="zfaq"] .elementor-tab-title a,
[data-id*="zfaq"] .elementor-accordion-title{
  font-family:"Outfit",sans-serif !important; font-weight:700 !important;
  font-size:1.04rem !important; color:#12121A !important;
  line-height:1.45 !important; letter-spacing:-.01em !important;
}
[data-id*="zfaq"] .elementor-tab-title.elementor-active,
[data-id*="zfaq"] .elementor-tab-title.elementor-active a,
[data-id*="zfaq"] .elementor-tab-title.elementor-active .elementor-accordion-title{ color:#E11A80 !important; }
[data-id*="zfaq"] .elementor-accordion-icon{
  color:#E11A80 !important; width:18px !important; flex:none;
  margin-right:0 !important; padding-right:0 !important;
}
[data-id*="zfaq"] .elementor-accordion-icon i{ font-size:13px !important; }
[data-id*="zfaq"] .elementor-tab-content{
  padding:0 26px 24px 58px !important; border:0 !important;
  background:transparent !important;
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:1rem !important; line-height:1.72 !important; color:#5A5A66 !important;
}
[data-id*="zfaq"] .elementor-tab-content p{ margin:0 0 .9em; }
[data-id*="zfaq"] .elementor-tab-content p:last-child{ margin:0; }

/* ---------------------- Reusable content components -------------------- */

/* Tick list - used for "what's included" blocks */
.gp-checks{ list-style:none; margin:0; padding:0; display:grid; gap:13px; }
.gp-checks.gp-checks--2{ grid-template-columns:1fr 1fr; gap:13px 26px; }
.gp-checks li{
  display:flex; align-items:flex-start; gap:11px;
  font-size:1rem; line-height:1.55; color:#3F3F4A;
}
.gp-checks li::before{
  content:""; flex:none; width:21px; height:21px; margin-top:2px; border-radius:50%;
  background:#FFF0F8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E11A80' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m20 6-11 11-5-5'/%3E%3C/svg%3E") center/13px 13px no-repeat;
}
[data-id*="zink"] .gp-checks li{ color:rgba(255,255,255,.8); }
[data-id*="zink"] .gp-checks li::before{
  background-color:rgba(174,244,6,.14);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23AEF406' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m20 6-11 11-5-5'/%3E%3C/svg%3E");
}

/* Soft callout / honest note */
.gp-note{
  border-left:3px solid #FA3A99;
  background:#FFF6FB; border-radius:0 16px 16px 0;
  padding:18px 22px; font-size:.97rem; line-height:1.65; color:#4A4A55;
}
.gp-note strong{ color:#12121A; }
[data-id*="zink"] .gp-note{
  background:rgba(255,255,255,.05); color:rgba(255,255,255,.75);
  border-left-color:#AEF406;
}
[data-id*="zink"] .gp-note strong{ color:#fff; }

/* Small stat / fact tile (statements only, never invented numbers) */
.gp-fact{
  border:1px solid #ECECF1; border-radius:22px; padding:22px 24px;
  background:#fff; height:100%;
}
.gp-fact__k{
  display:block; font-family:"Outfit",sans-serif; font-weight:800;
  font-size:1.05rem; color:#12121A; margin-bottom:.3em;
}
.gp-fact__v{ font-size:.94rem; line-height:1.6; color:#5A5A66; }

/* Numbered step (shares .gp-step__n from brand.css) */
.gp-stepbox h3{ margin-bottom:.45em; }

/* Media insets and plates */
.gp-inset-circle{
  position:absolute !important; right:-8px; bottom:-24px; width:158px; z-index:3;
  border-radius:50%; overflow:hidden; border:7px solid #fff;
  box-shadow:0 28px 70px rgba(18,18,26,.18);
}
.gp-inset-circle img{ border-radius:50%; aspect-ratio:1/1; object-fit:cover; }
.gp-inset-card{
  position:absolute !important; left:-30px; bottom:-28px; width:210px; z-index:3;
  border-radius:22px; overflow:hidden; border:7px solid #fff;
  box-shadow:0 28px 70px rgba(18,18,26,.18);
}
.gp-inset-card img{ border-radius:14px; }

/* Decorative colour plate behind a masked image */
[data-id*="zmed"].gp-plate-l::before,
[data-id*="zmed"].gp-plate-p::before{
  content:""; position:absolute; z-index:0;
  width:78%; height:78%; border-radius:58% 42% 50% 50% / 48% 52% 48% 52%;
}
[data-id*="zmed"] > *{ position:relative; z-index:1; }

/* ============================== RESPONSIVE ============================= */

@media (max-width:1024px){
  [data-id*="zspl"],
  [data-id*="zspr"]{ grid-template-columns:1fr; gap:46px; }
  [data-id*="zg4"]{ grid-template-columns:repeat(2,1fr); }
  [data-id*="zg3"]{ grid-template-columns:repeat(2,1fr); }
  [data-id*="zmed"]{ max-width:560px; margin-inline:auto; }
}

@media (max-width:767px){
  [data-id*="zg2"],
  [data-id*="zg3"],
  [data-id*="zg4"]{ grid-template-columns:1fr; gap:20px; }
  [data-id*="zspl"],
  [data-id*="zspr"]{ gap:34px; }
  [data-id*="zcbd"]{ padding:22px 22px 26px !important; }
  [data-id*="zcrd"] .elementor-widget-image img{ height:190px; }
  [data-id*="zrow"]{ width:100%; gap:11px; }
  [data-id*="zrow"] > .elementor-widget{ width:100% !important; }
  [data-id*="zrow"] .elementor-button{ width:100%; justify-content:center; }
  .gp-checks.gp-checks--2{ grid-template-columns:1fr; }
  .gp-inset-circle{ width:104px; right:2px; bottom:-14px; border-width:5px; }
  .gp-inset-card{ width:132px; left:-4px; bottom:-16px; border-width:5px; }
  [data-id*="zmed"].gp-plate-l::before,
  [data-id*="zmed"].gp-plate-p::before{ display:none; }
  [data-id*="zink"]::before,
  [data-id*="zink"]::after{ filter:blur(60px); }
  [data-id*="zfaq"] .elementor-tab-title{ padding:18px 20px !important; gap:12px; }
  [data-id*="zfaq"] .elementor-tab-content{ padding:0 20px 20px !important; }
}


/* ===== glanpaws-tune ===== */
/* =========================================================================
   GLAN PAWS - Tuning layer (loaded last)
   Overrides Elementor/theme defaults that outrank the brand + layout layers.
   Literal hex values, so nothing depends on custom-property resolution.

   TWO ELEMENTOR QUIRKS THIS FILE WORKS AROUND
   1. On PAGES, a Container's "CSS Classes" (_css_classes) is not rendered, so
      section styling is keyed to .elementor-element-{id}. (Theme templates -
      header/footer - DO render them.)
   2. A container set to content_width:"boxed" wraps its children in an extra
      .e-con-inner, so any grid/flex must be applied to that inner element,
      not to the container itself.
   ========================================================================= */

/* ===================== GRID CHILD SIZING (critical) ===================== */
/* Grid items must fill their own track and be allowed to shrink (min-width:0),
   or long words push the whole page sideways. */

.elementor-element-gphero02 > .e-con,
.elementor-element-gpwhy01  > .e-con,
.elementor-element-gphow10  > .e-con,
.elementor-element-gpsvc01  > .e-con,
.elementor-element-gpsvc10  > .e-con,
.elementor-element-gppets10 > .e-con,
.elementor-element-gpdxb01  > .e-con,
.elementor-element-gpcta01  > .e-con,
.elementor-element-gpfaq01  > .e-con,
.elementor-element-gpwhy14  > .elementor-widget,
.elementor-element-gpsvc30  > .elementor-widget,
.elementor-element-gppets30 > .elementor-widget,
.elementor-element-gprev10  > .elementor-widget{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}

/* Absolute guard: nothing may create a horizontal scrollbar */
html,body{ max-width:100%; overflow-x:hidden; }
.e-con,.e-con-inner,.elementor-widget{ min-width:0; }

/* ========================= FOOTER GRID (boxed) ========================== */
/* gpftr02 is a BOXED container, so the five columns live inside .e-con-inner. */

.gp-footer__grid,
.elementor-element-gpftr02{ display:block !important; }

.elementor-element-gpftr02 > .e-con-inner{
  display:grid !important;
  grid-template-columns:1.7fr 1fr 1.15fr 1.15fr 1.3fr;
  gap:52px 40px;
  align-items:start;
  width:100%;
}
.elementor-element-gpftr02 > .e-con-inner > .e-con{
  width:100% !important; max-width:100% !important; min-width:0 !important; margin:0 !important;
}
@media (max-width:1100px){
  .elementor-element-gpftr02 > .e-con-inner{ grid-template-columns:1.6fr 1fr 1fr; gap:44px 32px; }
}
@media (max-width:767px){
  .elementor-element-gpftr02 > .e-con-inner{ grid-template-columns:1fr; gap:34px; }
}

/* ------------------------------- HEADINGS ------------------------------ */

.elementor-widget-heading .elementor-heading-title{
  font-family:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#12121A; font-weight:800; letter-spacing:-.02em; line-height:1.1;
}
.elementor-widget-heading h1.elementor-heading-title{ font-size:clamp(2.15rem,1.35rem + 3.4vw,4rem);   line-height:1.04; letter-spacing:-.035em; }
.elementor-widget-heading h2.elementor-heading-title{ font-size:clamp(1.75rem,1.20rem + 2.3vw,2.95rem); line-height:1.10; letter-spacing:-.03em; }
.elementor-widget-heading h3.elementor-heading-title{ font-size:clamp(1.25rem,1.05rem + 0.8vw,1.72rem); line-height:1.25; letter-spacing:-.02em; }

.elementor-element-gphow00 .elementor-heading-title,
.elementor-element-gpdxb00 .elementor-heading-title,
.elementor-element-gpcta00 .elementor-heading-title,
.gp-footer .elementor-heading-title{ color:#FFFFFF; }
.gp-footer .elementor-heading-title{ font-size:1.02rem !important; letter-spacing:0; }

.elementor-heading-title .gp-hl{ color:#E11A80; }
.elementor-element-gphow00 .elementor-heading-title .gp-hl,
.elementor-element-gpdxb00 .elementor-heading-title .gp-hl,
.elementor-element-gpcta00 .elementor-heading-title .gp-hl{ color:#FA3A99; }

/* -------------------------------- COPY --------------------------------- */

.elementor-widget-text-editor{
  font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#5A5A66;
}

/* ------------------------------- BUTTONS ------------------------------- */

.elementor-widget-button .elementor-button{
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600; font-size:.98rem; letter-spacing:.01em;
  border-radius:999px; border:0; text-decoration:none;
  transition:transform .3s cubic-bezier(.22,.8,.28,1),
             box-shadow .3s cubic-bezier(.22,.8,.28,1),
             background-color .3s cubic-bezier(.22,.8,.28,1),
             color .3s cubic-bezier(.22,.8,.28,1),
             border-color .3s cubic-bezier(.22,.8,.28,1);
}

.gp-btn-primary .elementor-button{
  background-color:#E11A80; color:#FFFFFF;
  padding:17px 34px; box-shadow:0 12px 34px rgba(250,58,153,.38);
}
.gp-btn-primary .elementor-button:hover{
  background-color:#FA3A99; color:#FFFFFF;
  transform:translateY(-3px); box-shadow:0 18px 44px rgba(250,58,153,.5);
}

.gp-btn-ghost .elementor-button{
  background-color:transparent; color:#12121A;
  padding:15px 30px; border:2px solid #ECECF1;
}
.gp-btn-ghost .elementor-button:hover{
  background-color:#FFFFFF; color:#E11A80; border-color:#FA3A99;
  transform:translateY(-3px); box-shadow:0 14px 40px rgba(18,18,26,.09);
}
.elementor-element-gphow00 .gp-btn-ghost .elementor-button,
.elementor-element-gpdxb00 .gp-btn-ghost .elementor-button{ color:#FFFFFF; border-color:rgba(255,255,255,.28); }
.elementor-element-gpcta00 .gp-btn-ghost .elementor-button{ color:#FFFFFF; border-color:rgba(255,255,255,.5); }
.elementor-element-gpcta00 .gp-btn-ghost .elementor-button:hover{ background-color:#FFFFFF; color:#E11A80; border-color:#FFFFFF; }

.gp-btn-lime .elementor-button{
  background-color:#AEF406; color:#0B0B0F;
  padding:17px 34px; box-shadow:0 12px 34px rgba(174,244,6,.34);
}
.gp-btn-lime .elementor-button:hover{
  background-color:#C2FF2B; color:#0B0B0F;
  transform:translateY(-3px); box-shadow:0 18px 44px rgba(174,244,6,.45);
}

.gp-btn-white .elementor-button{
  background-color:#FFFFFF; color:#E11A80;
  padding:17px 34px; box-shadow:0 12px 34px rgba(0,0,0,.22);
}
.gp-btn-white .elementor-button:hover{
  background-color:#0B0B0F; color:#FFFFFF;
  transform:translateY(-3px); box-shadow:0 18px 44px rgba(0,0,0,.3);
}

.gp-btn-text .elementor-button{
  background-color:transparent; color:#E11A80;
  padding:0; box-shadow:none; position:relative;
}
.gp-btn-text .elementor-button:hover{ background-color:transparent; color:#B7115F; transform:none; box-shadow:none; }
.gp-btn-text .elementor-button::after{
  content:""; position:absolute; left:0; bottom:-4px; width:100%; height:2px;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .35s cubic-bezier(.22,.8,.28,1);
}
.gp-btn-text .elementor-button:hover::after{ transform:scaleX(1); transform-origin:left; }

/* Footer CTA sits tighter than the page buttons */
.gp-footer__cta .elementor-button{ padding:13px 26px !important; font-size:.92rem; }

/* ------------------------------ ICON BOXES ----------------------------- */

.gp-benefit .elementor-icon-box-wrapper{ text-align:left !important; }
.gp-benefit .elementor-icon-box-icon{
  margin-bottom:18px !important; margin-right:0 !important; text-align:left !important;
}
.gp-benefit .elementor-icon-box-icon .elementor-icon,
.gp-benefit .elementor-icon{
  width:56px !important; height:56px !important;
  border-radius:17px !important;
  display:inline-flex !important; align-items:center; justify-content:center;
  background-color:#FFF0F8 !important; color:#E11A80 !important;
  font-size:22px !important; padding:0 !important;
  transition:background-color .36s ease, color .36s ease, transform .36s ease;
}
.gp-benefit .elementor-icon svg{ width:24px; height:24px; fill:currentColor; }
.gp-benefit:hover .elementor-icon{
  background-color:#E11A80 !important; color:#FFFFFF !important;
  transform:rotate(-6deg) scale(1.06);
}
.gp-benefit .elementor-icon-box-title{ margin-bottom:.45em !important; }
.gp-benefit .elementor-icon-box-title,
.gp-benefit .elementor-icon-box-title span{
  font-family:"Outfit",sans-serif !important; font-weight:700 !important;
  font-size:1.16rem !important; color:#12121A !important; line-height:1.3 !important;
}
.gp-benefit .elementor-icon-box-description{
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:.96rem !important; line-height:1.65 !important; color:#5A5A66 !important;
}

/* ------------------------------- ACCORDION ----------------------------- */

.elementor-element-gpfaq00 .elementor-accordion{ border:0; }
.elementor-element-gpfaq00 .elementor-accordion-item{
  background:#FFFFFF;
  border:1px solid #ECECF1 !important;
  border-radius:20px !important;
  margin-bottom:14px; overflow:hidden;
  transition:border-color .3s ease, box-shadow .3s ease;
}
.elementor-element-gpfaq00 .elementor-accordion-item:hover{
  border-color:#FA3A99 !important; box-shadow:0 4px 16px rgba(18,18,26,.06);
}
.elementor-element-gpfaq00 .elementor-tab-title{
  padding:21px 26px !important; background:transparent !important; border:0 !important;
  margin:0 !important; display:flex; align-items:center; gap:14px;
}
.elementor-element-gpfaq00 .elementor-tab-title,
.elementor-element-gpfaq00 .elementor-tab-title a,
.elementor-element-gpfaq00 .elementor-accordion-title{
  font-family:"Outfit",sans-serif !important; font-weight:700 !important;
  font-size:1.04rem !important; color:#12121A !important; line-height:1.45 !important;
  letter-spacing:-.01em !important;
}
.elementor-element-gpfaq00 .elementor-tab-title.elementor-active,
.elementor-element-gpfaq00 .elementor-tab-title.elementor-active a,
.elementor-element-gpfaq00 .elementor-tab-title.elementor-active .elementor-accordion-title{
  color:#E11A80 !important;
}
.elementor-element-gpfaq00 .elementor-accordion-icon{
  color:#E11A80 !important; width:18px !important; flex:none;
  margin-right:0 !important; padding-right:0 !important;
}
.elementor-element-gpfaq00 .elementor-accordion-icon i{ font-size:13px !important; }
.elementor-element-gpfaq00 .elementor-tab-content{
  padding:0 26px 24px 58px !important; border:0 !important; background:transparent !important;
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:1rem !important; line-height:1.72 !important; color:#5A5A66 !important;
}
.elementor-element-gpfaq00 .elementor-tab-content p{ margin:0; }
@media (max-width:767px){
  .elementor-element-gpfaq00 .elementor-tab-title{ padding:18px 20px !important; gap:12px; }
  .elementor-element-gpfaq00 .elementor-tab-content{ padding:0 20px 20px 20px !important; }
}

/* --------------------- DECORATIVE PLATE BEHIND IMAGE -------------------- */

.elementor-element-gpwhy02{ position:relative; }
.elementor-element-gpwhy02::before{
  content:""; position:absolute; z-index:0;
  width:78%; height:78%; left:-6%; top:-5%;
  background:#F4FCE0;
  border-radius:58% 42% 50% 50% / 48% 52% 48% 52%;
}
.elementor-element-gpwhy02 > *{ position:relative; z-index:1; }
@media (max-width:767px){ .elementor-element-gpwhy02::before{ display:none; } }

/* ---------------------------- WIDGET SPACING --------------------------- */

.elementor-element-gphero03 .elementor-widget:not(:last-child){ margin-bottom:0; }
.elementor-element-gphero03 .elementor-widget-heading{ margin-bottom:14px; }
.elementor-element-gpsvc13 .elementor-widget:not(:last-child),
.elementor-element-gpsvc23 .elementor-widget:not(:last-child),
.elementor-element-gppets13 .elementor-widget:not(:last-child),
.elementor-element-gppets23 .elementor-widget:not(:last-child){ margin-bottom:12px; }
.gp-footer .elementor-widget:not(:last-child){ margin-bottom:0; }

.elementor-widget-image img{ display:block; }

/* Paw texture kept whisper-quiet so it never competes with the copy */
.elementor-element-gphero00::before,
.elementor-element-gppets00::before{ opacity:.03 !important; }
.elementor-element-gphow00 .e-con-inner::before{ opacity:.05 !important; }
.gp-footer.gp-paws::before{ opacity:.05 !important; }


/* ===== glanpaws-polish ===== */
/* =========================================================================
   GLAN PAWS - Final polish (loaded last)
   QA corrections plus components introduced by the inner pages.
   ========================================================================= */

/* ---- Logo seam --------------------------------------------------------- */
.gp-header,
.elementor-element-gphdr01{ background-color:#000000 !important; }
.gp-footer,
.elementor-element-gpftr01{ background-color:#000000 !important; }
.elementor-element-gphdr01.elementor-sticky--effects{
  background-color:rgba(0,0,0,.93) !important;
}
/* The sticky spacer must match the header, or a light band can show above a
   dark hero on inner pages. */
.elementor-sticky__spacer{ background-color:#000000; }

/* ---- Navigation underline stays brand lime ----------------------------- */
.gp-nav .elementor-nav-menu--main .elementor-item::after{
  background-color:#AEF406 !important;
}

/* ---- Tap targets ------------------------------------------------------- */
/* NOTE: never set `display` on the burger - Elementor toggles it per
   breakpoint, and forcing it visible makes it appear on desktop too. */
.gp-nav .elementor-menu-toggle{
  width:46px !important; height:46px !important;
  align-items:center; justify-content:center;
  border-radius:10px; padding:0 !important;
}

/* Touch-sized targets on tablets AND phones (tablets are touch devices too) */
@media (max-width:1024px){
  .gp-btn-text .elementor-button{
    min-height:44px; display:inline-flex !important; align-items:center;
  }
  .gp-btn-text .elementor-button::after{ bottom:10px; }

  /* Footer link lists were only 23px tall - give them a real target */
  .gp-fnav .elementor-icon-list-item > a{ display:block; padding:10px 0; }
  .gp-fnav .elementor-icon-list-item{ margin-bottom:0 !important; }
  .gp-fcontact li{ margin-bottom:18px; }
  .gp-fcontact a{ display:inline-block; padding:5px 0; }
}

/* Phone-only layout adjustments */
@media (max-width:767px){
  .elementor-element-gphow00{ padding-bottom:88px !important; }
}

/* ---- Tablet refinements ------------------------------------------------ */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-gpsvc30{ grid-template-columns:repeat(2,1fr); }
  .elementor-element-gphow10{ grid-template-columns:repeat(3,1fr); gap:28px; }
  .elementor-element-gpftr02 > .e-con-inner{ grid-template-columns:1.5fr 1fr 1fr; }
}

/* ======================== PAW TEXTURE INTENSITY ========================= */
/* Supersedes the fill-opacity baked into pages.css. On light tints 5% reads
   as busy, so light surfaces drop to ~3% while dark bands keep more presence. */
[data-id*="zpaw"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23FA3A99' fill-opacity='0.028'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
  background-size:165px 165px;
}
[data-id*="zink"][data-id*="zpaw"]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' width='120' height='120'%3E%3Cg fill='%23FA3A99' fill-opacity='0.055'%3E%3Cellipse cx='34' cy='34' rx='9' ry='12' transform='rotate(-18 34 34)'/%3E%3Cellipse cx='56' cy='26' rx='9' ry='12'/%3E%3Cellipse cx='78' cy='34' rx='9' ry='12' transform='rotate(18 78 34)'/%3E%3Cellipse cx='90' cy='56' rx='8' ry='11' transform='rotate(32 90 56)'/%3E%3Cpath d='M56 48c13 0 24 10 24 22 0 8-6 14-14 14-5 0-8-3-12-3s-7 3-12 3c-8 0-14-6-14-14 0-12 11-22 24-22z'/%3E%3C/g%3E%3C/svg%3E");
}

/* ==================== HOMEPAGE RABBIT / BIRD TILES ===================== */
/* These two tiles now carry real photography instead of line icons. The round
   crop is deliberately different from the dog tile (square foot) and the cat
   tile (curved foot) so the four pet cards never read as clones. */
.gp-mini-tile__photo{
  width:104px; height:104px; flex:none;
  border-radius:50%; overflow:hidden;
  background:#F4FCE0;
  box-shadow:0 10px 26px rgba(18,18,26,.14);
  transition:transform .4s cubic-bezier(.22,.8,.28,1);
}
.gp-mini-tile__photo img{
  width:100%; height:100%; object-fit:cover; display:block; border-radius:50%;
}
.gp-mini-tile:hover .gp-mini-tile__photo{ transform:scale(1.06) rotate(-3deg); }
@media (max-width:767px){
  .gp-mini-tile__photo{ width:78px; height:78px; }
}

/* =========================== LIGHT AREA CHIPS =========================== */
.gp-chips--light .gp-chip{
  background:#FFFFFF;
  border:1px solid #E4E4EC;
  color:#12121A;
}
.gp-chips--light .gp-chip::before{ background:#FA3A99; }
.gp-chips--light a.gp-chip:hover{
  background:#12121A; color:#FFFFFF; border-color:#12121A;
}
.gp-chips--light a.gp-chip:hover::before{ background:#AEF406; }
.gp-chips--light span.gp-chip{ cursor:default; }

/* ============================ CONTACT CARDS ============================= */

.gp-contact-card{
  display:flex; flex-direction:column; height:100%;
  background:#FFFFFF; border:1px solid #ECECF1; border-radius:26px;
  padding:32px 30px; text-decoration:none;
  transition:transform .38s cubic-bezier(.22,.8,.28,1),
             box-shadow .38s cubic-bezier(.22,.8,.28,1),
             border-color .38s ease;
}
.gp-contact-card:hover{
  transform:translateY(-8px);
  box-shadow:0 28px 70px rgba(18,18,26,.13);
  border-color:transparent;
}
.gp-contact-card__ic{
  width:56px; height:56px; border-radius:17px; margin-bottom:20px;
  display:grid; place-items:center;
  background:#FFF0F8; color:#E11A80;
  transition:background-color .38s ease, color .38s ease, transform .38s ease;
}
.gp-contact-card__ic svg{ width:25px; height:25px; }
.gp-contact-card:hover .gp-contact-card__ic{ transform:rotate(-6deg) scale(1.06); }
.gp-contact-card--wa  .gp-contact-card__ic{ background:#E8F9EF; color:#1EA855; }
.gp-contact-card--wa:hover  .gp-contact-card__ic{ background:#25D366; color:#fff; }
.gp-contact-card--call:hover .gp-contact-card__ic{ background:#E11A80; color:#fff; }
.gp-contact-card--mail .gp-contact-card__ic{ background:#F4FCE0; color:#4D6B02; }
.gp-contact-card--mail:hover .gp-contact-card__ic{ background:#AEF406; color:#0B0B0F; }

.gp-contact-card__k{
  display:block; font-family:"Outfit",sans-serif; font-weight:700;
  font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  color:#8A8A97; margin-bottom:.5em;
}
.gp-contact-card__v{
  display:block; font-family:"Outfit",sans-serif; font-weight:800;
  font-size:1.24rem; color:#12121A; line-height:1.3;
  margin-bottom:.9em; word-break:break-word;
}
.gp-contact-card__go{
  display:block; margin-top:auto;
  font-weight:600; font-size:.95rem; color:#E11A80;
  transition:transform .3s ease;
}
.gp-contact-card:hover .gp-contact-card__go{ transform:translateX(4px); }

@media (max-width:767px){
  .gp-contact-card{ padding:24px 22px; border-radius:22px; }
  .gp-contact-card__ic{ width:48px; height:48px; margin-bottom:16px; }
  .gp-contact-card__v{ font-size:1.12rem; }
}

/* ============================ BOOKING FORM ============================== */

.gp-form .elementor-form-fields-wrapper{ margin:0 -8px; }
.gp-form .elementor-field-group{ padding:0 8px 18px; }
.gp-form .elementor-field-group > label{
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600; font-size:.9rem; color:#12121A; margin-bottom:8px;
}
.gp-form .elementor-field-textual{
  background:#FFFFFF !important;
  border:1px solid #E4E4EC !important;
  border-radius:14px !important;
  padding:14px 16px !important;
  font-family:"Plus Jakarta Sans",sans-serif !important;
  font-size:.97rem !important; color:#12121A !important;
  line-height:1.5 !important; min-height:auto;
  transition:border-color .25s ease, box-shadow .25s ease;
}
.gp-form .elementor-field-textual::placeholder{ color:#A5A5B2; }
.gp-form .elementor-field-textual:focus{
  border-color:#FA3A99 !important;
  box-shadow:0 0 0 3px rgba(250,58,153,.13);
  outline:none;
}
.gp-form select.elementor-field-textual{ appearance:auto; }
.gp-form .elementor-button[type="submit"]{
  background-color:#E11A80; color:#FFFFFF;
  border:0; border-radius:999px;
  padding:16px 34px; width:auto;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600; font-size:.98rem;
  box-shadow:0 12px 34px rgba(250,58,153,.38);
  transition:transform .3s cubic-bezier(.22,.8,.28,1), box-shadow .3s ease, background-color .3s ease;
}
.gp-form .elementor-button[type="submit"]:hover{
  background-color:#FA3A99;
  transform:translateY(-3px);
  box-shadow:0 18px 44px rgba(250,58,153,.5);
}
.gp-form .elementor-message{
  font-family:"Plus Jakarta Sans",sans-serif; font-size:.95rem;
  border-radius:14px; padding:14px 16px; margin-top:14px;
}
.gp-form .elementor-message-success{ background:#F4FCE0; color:#3F5A02; }
.gp-form .elementor-message-danger{ background:#FFF0F8; color:#B7115F; }
@media (max-width:767px){
  .gp-form .elementor-button[type="submit"]{ width:100%; justify-content:center; }
}

/* ================= INNER-PAGE HEADINGS ON DARK SURFACES ================= */
/* tune.css keys dark headings to the homepage ids; inner pages use tokens. */
[data-id*="zink"] .elementor-widget-heading .elementor-heading-title,
[data-id*="zgrd"] .elementor-widget-heading .elementor-heading-title{ color:#FFFFFF !important; }
[data-id*="zink"] .elementor-widget-text-editor,
[data-id*="zink"] .elementor-widget-text-editor p{ color:rgba(255,255,255,.72) !important; }
[data-id*="zgrd"] .elementor-widget-text-editor,
[data-id*="zgrd"] .elementor-widget-text-editor p{ color:rgba(255,255,255,.88) !important; }
[data-id*="zink"] .elementor-heading-title .gp-hl,
[data-id*="zgrd"] .elementor-heading-title .gp-hl{ color:#FA3A99 !important; }
[data-id*="zink"] .gp-card{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12); }
[data-id*="zink"] .gp-card .elementor-icon-box-title{ color:#FFFFFF !important; }
[data-id*="zink"] .gp-card .elementor-icon-box-description{ color:rgba(255,255,255,.72) !important; }
[data-id*="zink"] .gp-card:hover{ border-color:rgba(174,244,6,.4); box-shadow:none; }

/* ===================== DECORATIVE PLATE (completion) ==================== */
[data-id*="zmed"].gp-plate-l::before{ background:#F4FCE0; left:-6%; top:-5%; }
[data-id*="zmed"].gp-plate-p::before{ background:#FFF0F8; right:-6%; bottom:-5%; }

/* ---- Reduced motion: nothing animates ---------------------------------- */
@media (prefers-reduced-motion: reduce){
  .gp-reveal{ opacity:1 !important; transform:none !important; }
  .gp-float,.gp-morph img{ animation:none !important; }
}


/* ===== glanpaws-v2 ===== */
/* =========================================================================
   GLAN PAWS - v2 DESIGN LAYER
   Loaded last (brand -> layout -> pages -> tune -> polish -> v2).

   HOW TO TARGET THINGS IN THIS THEME
   ----------------------------------
   Elementor 4.2 renders CONTAINERS without their Advanced > CSS Classes -
   on page content AND inside theme templates (header/footer). So:

     containers -> .elementor-element-{id}      e.g. .elementor-element-gpftr02
     widgets    -> their CSS class works        e.g. .gp-footer__title
     raw markup -> its own classes work         e.g. .gp-flist, .gp-fcontact

   This is why the old footer headings were invisible: brand.css styled them
   as ".gp-footer h3", and .gp-footer never reaches the DOM.

   LEGACY RESET
   The rebuilt Services and Pets sections reuse element ids from the previous
   design (gpsvc01/11/13/21/23, gppets01/11/13/21/23). layout.css and tune.css
   still carry rules for those ids, so the LEGACY RESET block neutralises them.
   Do not remove it while those sheets are loaded.
   ========================================================================= */

:root{
  --gp-r-card: 30px;
  --gp-r-img: 22px;
}

/* ============================ SHARED PIECES ============================= */

.gp-pill{
  display:inline-flex; align-items:center; gap:.55em;
  padding:9px 20px 9px 16px; border-radius:999px;
  background:var(--gp-pinktint);
  color:var(--gp-pink-act);
  font-family:"Outfit",sans-serif;
  font-size:.8rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  line-height:1;
}
.gp-pill svg{ flex:none; }
.gp-bg-ink .gp-pill{ background:rgba(174,244,6,.14); color:var(--gp-lime); }
.gp-bg-pink .gp-pill{ background:#fff; box-shadow:var(--gp-shadow-sm); }

.gp-rule{
  display:flex; align-items:center; justify-content:center; gap:14px;
  color:var(--gp-pink); margin:6px auto 0;
}
.gp-rule i{ display:block; width:74px; height:2px; border-radius:2px; background:currentColor; opacity:.35; }


/* ======================= HEADER - FLOATING BAR ========================== */
/* mrpets-style floating bar: inset from the page edges, nav dead centre, and
   the logo as the loudest element. Brand colours are unchanged.

   Two gotchas this block handles:
   1. polish.css sets a near-black background on
      .elementor-element-gphdr01.elementor-sticky--effects with !important, so
      the transparent override must name that class too or it loses on
      specificity and the old full-bleed bar comes back.
   2. The template has sticky_effects_offset = 0, so --effects is on from the
      first paint. There is no "shrink on scroll" state to style - the logo
      keeps one size.

   The logo used to render 68x48 from a 320x320 square file, i.e. visibly
   squashed. Hence the explicit square sizing below.                       */

.elementor-element-gphdr01,
.elementor-element-gphdr01.elementor-sticky--effects{
  background-color:transparent !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  padding:18px 22px !important;
}
.elementor-element-gphdr02{ padding:0 !important; max-width:none !important; }
.elementor-element-gphdr02 > .e-con-inner{
  max-width:1320px;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:22px;
  background:var(--gp-ink);
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  padding:10px 12px 10px 20px !important;
  box-shadow:0 16px 44px rgba(11,11,15,.32);
}

.gp-logo{ line-height:0; }
.gp-logo img{
  width:78px !important;
  height:78px !important;
  object-fit:contain !important;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(255,255,255,.14), 0 8px 24px rgba(250,58,153,.32);
  transition:transform .35s var(--gp-ease);
}
.gp-logo:hover img{ transform:scale(1.04); }

/* Wide screens get three balanced columns so the nav is exactly centred and
   can never collide with the CTA group. Narrower desktops fall back to simple
   flex centring, which is safe at any width. */
@media (min-width:1300px){
  .gp-logo{ flex:1 1 0; }
  .gp-header__nav{ flex:0 0 auto; }
  .elementor-element-gphdr05{ flex:1 1 0; justify-content:flex-end !important; }
}
@media (min-width:1025px) and (max-width:1299px){
  .gp-logo{ flex:none; }
  .gp-header__nav{ flex:1 1 auto; }
  .gp-header__nav .elementor-nav-menu{ justify-content:center; }
  .elementor-element-gphdr05{ flex:none; }
}
@media (min-width:1025px){
  .gp-nav .elementor-item{ margin:0 14px; }
}

/* ============================ LEGACY RESET ============================== */

.elementor-element-gpsvc01,
.elementor-element-gppets01{
  display:flex !important;
  grid-template-columns:none !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center;
  gap:0 !important;
  width:100%;
  max-width:820px;
  margin-inline:auto;
}
.elementor-element-gpsvc01 > *,
.elementor-element-gppets01 > *{ width:100%; max-width:100%; }
.elementor-element-gpsvc01 .gp-lead,
.elementor-element-gppets01 .gp-lead{ margin-left:auto; margin-right:auto; max-width:62ch; }

.elementor-element-gpsvc11,
.elementor-element-gpsvc21,
.elementor-element-gppets11,
.elementor-element-gppets21{
  grid-template-columns:none !important;
  max-width:none !important;
  min-height:0 !important;
}

/* layout.css pads the old tile bodies; those ids are now image widgets */
.gp-svc6__img,
.gp-pets4__img{ padding:0 !important; }

.gp-svc6__img img,
.gp-pets4__img img,
.gp-svc6__img .elementor-image,
.gp-pets4__img .elementor-image,
.gp-svc6__img figure,
.gp-pets4__img figure{ height:auto !important; min-height:0 !important; max-width:none !important; }


/* ===================== TASK 7 - SIX SERVICE CARDS ======================= */

.elementor-element-gpsvc10{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:30px !important;
  margin-top:52px;
  align-items:stretch;
  max-width:none !important;
}

.elementor-element-gpsvc10 > .e-con{
  background:#fff !important;
  border:1px solid var(--gp-border) !important;
  border-radius:var(--gp-r-card) !important;
  padding:14px 14px 6px !important;
  height:100%;
  display:flex !important;
  flex-direction:column !important;
  overflow:hidden !important;
  transition:transform .4s var(--gp-ease), box-shadow .4s var(--gp-ease), border-color .4s var(--gp-ease);
}
.elementor-element-gpsvc10 > .e-con:hover{
  transform:translateY(-8px);
  box-shadow:var(--gp-shadow-lg);
  border-color:transparent !important;
}

.gp-svc6__img{ width:100%; margin:0 0 4px !important; }
.gp-svc6__img .elementor-widget-container,
.gp-svc6__img figure,
.gp-svc6__img .elementor-image{ margin:0; line-height:0; }
.gp-svc6__img img{
  width:100% !important; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--gp-r-img) !important;
  display:block;
  transition:transform .6s var(--gp-ease);
}
.elementor-element-gpsvc10 > .e-con:hover .gp-svc6__img img{ transform:scale(1.05); }

.elementor-element-gpsvc10 > .e-con > .e-con{
  padding:22px 16px 24px !important;
  flex:1 1 auto;
  display:flex !important;
  flex-direction:column !important;
  gap:10px;
  align-items:flex-start !important;
  background:none !important;
  border:0 !important;
  text-align:left;
}
.elementor-element-gpsvc10 h3,
.elementor-element-gpsvc10 .elementor-heading-title{
  font-size:1.32rem; line-height:1.28; margin:0;
}
.elementor-element-gpsvc10 p{ font-size:.98rem; line-height:1.65; margin:0; }
.elementor-element-gpsvc10 .elementor-widget-button{ margin-top:auto; padding-top:6px; }


/* ============ SERVICE + PET IMAGE CARDS ON THE INNER PAGES ============== */
/* These grids used icon glyphs and now use photographs.
     zg332  dog + cat service lists     (6 cards)
     zg422  rabbit + bird service lists (4 cards)
     zg442  About > Kinds of Pets We Groom (4 cards, each links onward)     */

.elementor-element-zg332,
.elementor-element-zg422,
.elementor-element-zg442{
  display:grid !important;
  gap:26px !important;
  align-items:stretch !important;
}
.elementor-element-zg332{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
.elementor-element-zg422,
.elementor-element-zg442{ grid-template-columns:repeat(4, minmax(0,1fr)) !important; }

.elementor-element-zg332 > .e-con,
.elementor-element-zg422 > .e-con,
.elementor-element-zg442 > .e-con{
  background:#fff !important;
  border:1px solid var(--gp-border) !important;
  border-radius:26px !important;
  padding:12px 12px 6px !important;
  display:flex !important;
  flex-direction:column !important;
  height:100%;
  overflow:hidden !important;
  text-align:left;
  transition:transform .38s var(--gp-ease), box-shadow .38s var(--gp-ease), border-color .38s var(--gp-ease);
}
.elementor-element-zg332 > .e-con:hover,
.elementor-element-zg422 > .e-con:hover,
.elementor-element-zg442 > .e-con:hover{
  transform:translateY(-7px);
  box-shadow:var(--gp-shadow-lg);
  border-color:transparent !important;
}

.gp-scard__img{ width:100%; margin:0 !important; padding:0 !important; }
.gp-scard__img .elementor-widget-container,
.gp-scard__img figure,
.gp-scard__img .elementor-image{ margin:0; line-height:0; }
.gp-scard__img img{
  width:100% !important;
  aspect-ratio:4/3;
  object-fit:cover;
  height:auto !important;
  max-width:none !important;
  border-radius:18px !important;
  display:block;
  transition:transform .6s var(--gp-ease);
}
.elementor-element-zg332 > .e-con:hover .gp-scard__img img,
.elementor-element-zg422 > .e-con:hover .gp-scard__img img,
.elementor-element-zg442 > .e-con:hover .gp-scard__img img{ transform:scale(1.05); }

.elementor-element-zg332 > .e-con > .elementor-widget-heading,
.elementor-element-zg422 > .e-con > .elementor-widget-heading,
.elementor-element-zg442 > .e-con > .elementor-widget-heading{ padding:18px 10px 0; }
.elementor-element-zg332 > .e-con > .elementor-widget-heading .elementor-heading-title,
.elementor-element-zg422 > .e-con > .elementor-widget-heading .elementor-heading-title,
.elementor-element-zg442 > .e-con > .elementor-widget-heading .elementor-heading-title{
  font-size:1.16rem; line-height:1.3; margin:0;
}
.elementor-element-zg332 > .e-con > .elementor-widget-text-editor,
.elementor-element-zg422 > .e-con > .elementor-widget-text-editor,
.elementor-element-zg442 > .e-con > .elementor-widget-text-editor{
  padding:8px 10px 18px; flex:1 1 auto;
}
.elementor-element-zg332 > .e-con > .elementor-widget-text-editor p,
.elementor-element-zg422 > .e-con > .elementor-widget-text-editor p,
.elementor-element-zg442 > .e-con > .elementor-widget-text-editor p{
  font-size:.95rem; line-height:1.62; margin:0; color:var(--gp-body);
}
.elementor-element-zg442 > .e-con > .elementor-widget-button{ padding:0 10px 16px; margin-top:auto; }


/* ================== TASK 8 - KINDS OF PETS WE GROOM ===================== */

.elementor-element-gppets10{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  gap:26px !important;
  margin-top:62px;
  align-items:stretch;
  max-width:none !important;
}

.elementor-element-gppets10 > .e-con{
  position:relative;
  background:linear-gradient(180deg,#fff 0%,#fffafd 100%) !important;
  border:1px solid rgba(250,58,153,.14) !important;
  border-radius:34px !important;
  padding:58px 22px 30px !important;
  margin-top:36px !important;
  height:auto;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:6px;
  text-align:center;
  overflow:visible !important;
  transition:transform .42s var(--gp-ease), box-shadow .42s var(--gp-ease);
}
.elementor-element-gppets10 > .e-con:hover{
  transform:translateY(-10px);
  box-shadow:0 26px 60px rgba(250,58,153,.18);
}

.gp-pets4__badge{
  position:absolute; top:-36px; left:50%; transform:translateX(-50%);
  z-index:3;
  width:72px; height:72px; border-radius:50%;
  display:grid; place-items:center;
  background:#fff;
  box-shadow:0 10px 26px rgba(18,18,26,.10);
  color:var(--gp-pink-act);
  transition:transform .42s var(--gp-ease), background-color .42s var(--gp-ease), color .42s var(--gp-ease);
}
.gp-pets4__badge svg{ width:38px; height:38px; }
.elementor-element-gppets10 > .e-con:hover .gp-pets4__badge{
  background:var(--gp-pink-act); color:#fff;
  transform:translateX(-50%) rotate(-6deg) scale(1.06);
}
.elementor-element-gppets10 .elementor-widget-html:first-child{
  position:static !important; width:0 !important; height:0 !important;
  margin:0 !important; padding:0 !important; overflow:visible !important;
}

.gp-pets4__img{
  position:relative;
  width:190px !important; max-width:80% !important;
  margin:4px auto 16px !important;
  height:auto !important;
  align-self:center;
}
.gp-pets4__img::after{
  content:""; position:absolute; inset:9px -11px -11px 9px;
  border:2px solid var(--gp-pink);
  border-radius:50% 50% 46% 46% / 58% 58% 42% 42%;
  opacity:.4; z-index:0; pointer-events:none;
}
.gp-pets4__img .elementor-widget-container,
.gp-pets4__img figure,
.gp-pets4__img .elementor-image{ margin:0; line-height:0; position:relative; z-index:1; }
.gp-pets4__img img{
  width:100% !important; aspect-ratio:1/1; object-fit:cover;
  border-radius:50% 50% 46% 46% / 58% 58% 42% 42% !important;
  display:block;
  transition:transform .6s var(--gp-ease);
}
.elementor-element-gppets10 > .e-con:hover .gp-pets4__img img{ transform:scale(1.05); }

.elementor-element-gppets10 h3,
.elementor-element-gppets10 .elementor-heading-title{ font-size:1.18rem; margin:0; }
.elementor-element-gppets10 p{ font-size:.95rem; line-height:1.62; margin:0; }
.elementor-element-gppets10 .elementor-widget-text-editor{ flex:1 1 auto; }
.elementor-element-gppets10 .elementor-widget-button{ margin-top:8px; }
.elementor-element-gppets10 .gp-btn-text .elementor-button{ font-size:.93rem; }


/* ===================== FAQ - "ASK GLAN PAWS" PANEL ====================== */
/* A designed brand section rather than a list of questions.

   LEFT   a dark ink panel: pill eyebrow, heading, lead, a photo that grows to
          absorb any height difference, three trust lines and the CTA. Because
          the photo is the flex-grow element, the panel is always exactly as
          tall as the accordion beside it - which is what killed the big empty
          gap the client reported.
   RIGHT  numbered accordion cards. The numerals come from a CSS counter, so no
          markup changes were needed inside Elementor's accordion widget.

   Ids are prefixed gpfq* and are unique per page. That matters: zcol52/zcol53/
   w165/w185/w195 are reused for unrelated sections on the other pet pages, so
   styling the old ids would have leaked across the site.                    */

[data-id^="gpfqrow"]{
  display:grid !important;
  grid-template-columns:0.86fr 1.14fr !important;
  gap:44px !important;
  align-items:stretch !important;
  max-width:none !important;
  padding:0 !important;
}

/* ------------------------------- left panel ---------------------------- */

[data-id^="gpfqvis"]{
  position:relative;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:0 !important;
  height:100%;
  padding:40px 36px 36px !important;
  border-radius:34px !important;
  background:var(--gp-ink) !important;
  overflow:hidden !important;
  isolation:isolate;
}
/* neon haze, the same trick the dark bands use elsewhere */
[data-id^="gpfqvis"]::before,
[data-id^="gpfqvis"]::after{
  content:""; position:absolute; z-index:-1; border-radius:50%;
  filter:blur(80px); pointer-events:none;
}
[data-id^="gpfqvis"]::before{
  width:340px; height:340px; top:-140px; right:-120px;
  background:radial-gradient(circle,rgba(250,58,153,.55),transparent 70%);
}
[data-id^="gpfqvis"]::after{
  width:300px; height:300px; bottom:-130px; left:-110px;
  background:radial-gradient(circle,rgba(174,244,6,.30),transparent 70%);
}

[data-id^="gpfqvis"] .gp-eyebrow{ color:var(--gp-lime); margin-bottom:.7rem; }
[data-id^="gpfqvis"] .gp-eyebrow::before{ background:var(--gp-lime); }
[data-id^="gpfqvis"] .gp-pill{ background:rgba(174,244,6,.14); color:var(--gp-lime); }

[data-id^="gpfqhed"] .elementor-heading-title{
  color:#fff !important;
  font-size:clamp(1.6rem,1.25rem + 1.2vw,2.25rem);
  line-height:1.14;
  margin:0 0 .5em;
}
[data-id^="gpfqled"]{ margin-bottom:22px; }
[data-id^="gpfqled"] p{
  color:rgba(255,255,255,.66) !important;
  font-size:1rem; line-height:1.7; margin:0; max-width:40ch;
}

/* the photo absorbs the slack so the panel never runs short */
.gp-fq__photo{
  width:100%;
  flex:1 1 auto;
  min-height:190px;
  margin:0 0 24px !important;
  padding:0 !important;
  display:flex;
}
.gp-fq__photo .elementor-widget-container,
.gp-fq__photo figure,
.gp-fq__photo .elementor-image{ margin:0; line-height:0; width:100%; display:flex; }
.gp-fq__photo img{
  width:100% !important;
  height:100% !important;
  min-height:190px;
  max-width:none !important;
  object-fit:cover;
  border-radius:26px !important;
  display:block;
}

/* trust lines */
.gp-fq__trust{ list-style:none; margin:0 0 24px; padding:0; }
.gp-fq__trust li{
  display:flex; align-items:flex-start; gap:11px;
  margin:0 0 11px;
  color:rgba(255,255,255,.78);
  font-size:.95rem; line-height:1.5;
}
.gp-fq__trust li:last-child{ margin-bottom:0; }
.gp-fq__trust svg{
  flex:none; width:19px; height:19px; margin-top:1px;
  color:var(--gp-lime);
}

[data-id^="gpfqbtn"]{ width:100%; margin-top:auto; }
[data-id^="gpfqbtn"] .elementor-button{ width:100%; justify-content:center; }

/* ------------------------------ the accordion -------------------------- */

[data-id^="gpfqcol"]{
  padding:0 !important;
  display:block !important;
}

.gp-fq__acc .elementor-accordion{ border:0; counter-reset:gpfq; }

.gp-fq__acc .elementor-accordion-item{
  counter-increment:gpfq;
  position:relative;
  background:#fff !important;
  border:1px solid var(--gp-border) !important;
  border-radius:22px !important;
  margin-bottom:14px;
  overflow:hidden;
  box-shadow:0 2px 10px rgba(18,18,26,.04);
  transition:box-shadow .34s var(--gp-ease), border-color .34s var(--gp-ease),
             background-color .34s var(--gp-ease);
}
.gp-fq__acc .elementor-accordion-item:last-child{ margin-bottom:0; }
.gp-fq__acc .elementor-accordion-item:hover{
  border-color:rgba(250,58,153,.4) !important;
  box-shadow:0 10px 26px rgba(250,58,153,.12);
}

/* question row */
.gp-fq__acc .elementor-tab-title{
  position:relative;
  display:flex; align-items:center; gap:16px;
  background:transparent;
  border:0 !important;
  border-radius:0;
  padding:22px 24px 22px 26px !important;
  margin:0;
  cursor:pointer;
  font-family:"Outfit",sans-serif;
  font-weight:700;
  font-size:clamp(1rem,.95rem + .28vw,1.1rem);
  line-height:1.42;
  color:var(--gp-heading);
  transition:color .3s var(--gp-ease);
}
/* accent rail that wipes in when the answer opens */
.gp-fq__acc .elementor-tab-title::before{
  content:""; position:absolute; left:0; top:10px; bottom:10px; width:4px;
  border-radius:0 4px 4px 0;
  background:linear-gradient(180deg,var(--gp-pink),var(--gp-lime));
  transform:scaleX(0); transform-origin:left;
  transition:transform .38s var(--gp-ease);
}
.gp-fq__acc .elementor-tab-title.elementor-active{ color:var(--gp-pink-act); }
.gp-fq__acc .elementor-tab-title.elementor-active::before{ transform:scaleX(1); }

/* the question text carries its own number badge */
.gp-fq__acc .elementor-accordion-title{
  flex:1 1 auto; order:1;
  display:flex; align-items:center; gap:15px;
}
.gp-fq__acc .elementor-accordion-title::before{
  content:counter(gpfq,decimal-leading-zero);
  flex:none;
  width:34px; height:34px; border-radius:12px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--gp-pinktint);
  color:var(--gp-pink-act);
  font-family:"Outfit",sans-serif;
  font-size:.8rem; font-weight:800; letter-spacing:.02em;
  transition:background-color .3s var(--gp-ease), color .3s var(--gp-ease),
             transform .35s var(--gp-ease);
}
.gp-fq__acc .elementor-tab-title:hover .elementor-accordion-title::before{
  transform:translateY(-2px);
}
.gp-fq__acc .elementor-tab-title.elementor-active .elementor-accordion-title::before{
  background:var(--gp-pink-act); color:#fff;
}

/* chevron chip */
.gp-fq__acc .elementor-accordion-icon{
  order:2; flex:none;
  width:32px; height:32px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--gp-soft);
  color:var(--gp-body);
  margin:0 !important;
  transition:background-color .3s var(--gp-ease), color .3s var(--gp-ease),
             transform .35s var(--gp-ease);
}
.gp-fq__acc .elementor-accordion-icon svg,
.gp-fq__acc .elementor-accordion-icon i{ width:12px; height:12px; font-size:12px; }
.gp-fq__acc .elementor-tab-title:hover .elementor-accordion-icon{
  background:var(--gp-pinktint); color:var(--gp-pink-act);
}
.gp-fq__acc .elementor-tab-title.elementor-active .elementor-accordion-icon{
  background:var(--gp-pink-act); color:#fff;
}

/* answer */
.gp-fq__acc .elementor-tab-content{
  border:0 !important;
  background:transparent !important;
  padding:0 26px 24px 75px !important;
  color:var(--gp-body);
  font-size:1rem; line-height:1.78;
}
.gp-fq__acc .elementor-tab-content p:last-child{ margin-bottom:0; }
.gp-fq__acc .elementor-tab-content::before{
  content:""; display:block;
  height:1px; margin:0 0 18px;
  background:linear-gradient(90deg,rgba(250,58,153,.28),transparent);
}

/* open card gets a warm tint so the eye lands on it */
.gp-fq__acc .elementor-accordion-item:has(.elementor-active){
  background:linear-gradient(180deg,#fff 0%,var(--gp-pinktint) 100%) !important;
  border-color:transparent !important;
  box-shadow:0 16px 40px rgba(250,58,153,.16);
}

@media (prefers-reduced-motion:reduce){
  .gp-fq__acc .elementor-tab-title::before{ transition:none; }
  .gp-fq__acc *{ transition-duration:.01ms !important; }
}

/* ------------------------------ responsive ----------------------------- */

@media (max-width:1024px){
  [data-id^="gpfqrow"]{ grid-template-columns:1fr !important; gap:30px !important; }
  [data-id^="gpfqvis"]{ padding:34px 28px 30px !important; border-radius:28px !important; }
  .gp-fq__photo{ min-height:0; flex:0 0 auto; }
  .gp-fq__photo img{ height:auto !important; aspect-ratio:16/9; min-height:0; }
  [data-id^="gpfqled"] p{ max-width:none; }
  [data-id^="gpfqbtn"]{ margin-top:0; }
}

@media (max-width:767px){
  [data-id^="gpfqvis"]{ padding:28px 20px 24px !important; border-radius:24px !important; }
  [data-id^="gpfqvis"]::before,
  [data-id^="gpfqvis"]::after{ filter:blur(60px); }
  .gp-fq__photo img{ aspect-ratio:4/3; border-radius:20px !important; }

  .gp-fq__acc .elementor-accordion-item{ border-radius:18px !important; margin-bottom:12px; }
  .gp-fq__acc .elementor-tab-title{
    padding:18px 16px 18px 20px !important;
    gap:12px;
    align-items:flex-start;
    font-size:1rem;
  }
  .gp-fq__acc .elementor-accordion-title{ gap:12px; align-items:flex-start; }
  .gp-fq__acc .elementor-accordion-title::before{ width:30px; height:30px; border-radius:10px; font-size:.75rem; }
  .gp-fq__acc .elementor-accordion-icon{ width:28px; height:28px; margin-top:1px !important; }
  .gp-fq__acc .elementor-tab-content{ padding:0 18px 20px 20px !important; font-size:.97rem; }
}


/* =================== TASK 10 - FOOTER (nin9tails-style) ================= */
/* Containers are addressed by id because their CSS classes never render.  */

.elementor-element-gpftr01{
  background-color:var(--gp-ink) !important;
  padding-bottom:0 !important;
}
/* the inherited paw watermark was far too loud on a black ground */
.elementor-element-gpftr01::before{
  background-size:104px 104px !important;
  opacity:.035 !important;
}

.elementor-element-gpftr02{
  display:grid !important;
  grid-template-columns:1.5fr 1fr 1.15fr 1.35fr !important;
  gap:44px !important;
  padding-bottom:54px !important;
  align-items:start !important;
  max-width:none !important;
}

/* --- headings: this is the fix for the invisible footer headings --- */
.gp-footer__title .elementor-heading-title{
  color:#fff !important;
  font-family:"Outfit",sans-serif;
  font-size:1.18rem !important;
  font-weight:800;
  letter-spacing:-.01em;
  margin:0 0 22px;
  position:relative;
  padding-bottom:12px;
  display:block;
}
.gp-footer__title .elementor-heading-title::after{
  content:""; position:absolute; left:0; bottom:0;
  width:46px; height:3px; border-radius:3px;
  background:var(--gp-pink);
}

/* --- brand column --- */
.gp-footer__logo{ text-align:left !important; }
.gp-footer__logo img{ width:96px !important; height:auto; display:block; }
.gp-footer__blurb,
.gp-footer__blurb p{
  color:rgba(255,255,255,.62) !important;
  font-size:.97rem; line-height:1.72;
}
.gp-footer__blurb p{ margin:20px 0 24px; max-width:38ch; }

/* --- link lists --- */
.gp-flist{ list-style:none; margin:0; padding:0; }
.gp-flist li{ margin:0 0 13px; line-height:1.5; }
.gp-flist a{
  display:inline-flex; align-items:center; gap:10px;
  color:rgba(255,255,255,.66) !important;
  text-decoration:none !important;
  font-size:.97rem;
  transition:color .26s var(--gp-ease), transform .26s var(--gp-ease);
}
.gp-flist a::before{
  content:""; flex:none;
  width:14px; height:14px;
  background-color:var(--gp-pink);
  transition:background-color .26s var(--gp-ease);
}
.gp-flist--chev a::before{
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.gp-flist--paw a::before{
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000'%3E%3Cellipse cx='7' cy='7' rx='2.1' ry='2.8' transform='rotate(-18 7 7)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.1' ry='2.8'/%3E%3Cellipse cx='17' cy='7' rx='2.1' ry='2.8' transform='rotate(18 17 7)'/%3E%3Cellipse cx='19.6' cy='12' rx='1.9' ry='2.6' transform='rotate(32 19.6 12)'/%3E%3Cpath d='M12 10.5c3 0 5.6 2.4 5.6 5.2 0 1.9-1.4 3.3-3.3 3.3-1.2 0-1.9-.7-2.8-.7s-1.6.7-2.8.7c-1.9 0-3.3-1.4-3.3-3.3 0-2.8 2.6-5.2 5.6-5.2Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000'%3E%3Cellipse cx='7' cy='7' rx='2.1' ry='2.8' transform='rotate(-18 7 7)'/%3E%3Cellipse cx='12' cy='5.2' rx='2.1' ry='2.8'/%3E%3Cellipse cx='17' cy='7' rx='2.1' ry='2.8' transform='rotate(18 17 7)'/%3E%3Cellipse cx='19.6' cy='12' rx='1.9' ry='2.6' transform='rotate(32 19.6 12)'/%3E%3Cpath d='M12 10.5c3 0 5.6 2.4 5.6 5.2 0 1.9-1.4 3.3-3.3 3.3-1.2 0-1.9-.7-2.8-.7s-1.6.7-2.8.7c-1.9 0-3.3-1.4-3.3-3.3 0-2.8 2.6-5.2 5.6-5.2Z'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
.gp-flist a:hover{ color:var(--gp-lime) !important; transform:translateX(4px); }
.gp-flist a:hover::before{ background-color:var(--gp-lime); }

/* --- contact column --- */
.gp-fcontact{ list-style:none; margin:0; padding:0; }
.gp-fcontact li{
  display:flex; align-items:flex-start; gap:13px;
  margin:0 0 15px;
  color:rgba(255,255,255,.66);
  font-size:.97rem; line-height:1.55;
}
.gp-fcontact svg{ flex:none; width:19px; height:19px; margin-top:2px; color:var(--gp-pink); }
.gp-fcontact a{
  color:rgba(255,255,255,.66) !important;
  text-decoration:none !important;
  transition:color .26s var(--gp-ease);
}
.gp-fcontact a:hover{ color:var(--gp-lime) !important; }
a.gp-footer__book{
  display:inline-block; margin-top:12px;
  font-size:.95rem; padding:14px 26px !important;
  color:#fff !important; text-decoration:none !important;
}

/* --- social row --- */
.elementor-element-gpftr06 .gp-social{ gap:12px; }
.elementor-element-gpftr06 .gp-social a{
  width:44px; height:44px;
  background:transparent;
  border:1.5px solid rgba(255,255,255,.22);
  color:#fff;
}
.elementor-element-gpftr06 .gp-social a:hover{
  background:var(--gp-pink-act);
  border-color:var(--gp-pink-act);
  color:#fff;
}

/* --- bottom bar --- */
.elementor-element-gpftr50{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  border-top:1px solid rgba(255,255,255,.10);
  padding:24px 0 26px !important;
  max-width:none !important;
}
.elementor-element-gpftr51 p{ margin:0; font-size:.9rem; color:rgba(255,255,255,.46); }


/* ========================= TASK 3 - SERVICES NAV ======================== */

.gp-nav .gp-nav-noclick > a{ cursor:default; }
.gp-nav .gp-nav-noclick > a:hover{ color:#fff !important; }
.elementor-nav-menu--dropdown .gp-nav-noclick > a{ cursor:pointer; }


/* =========================== BLOG (TASK 1) ============================== */

.gp-is-blog .site-main,
.gp-is-single .site-main{ max-width:none; padding:0; }

/* the Blogs page prints its own hero, so hide the theme page title */
.gp-is-blog .page-header,
.gp-is-blog .entry-header,
.gp-is-blog .entry-title{ display:none !important; }

.gp-blog{
  max-width:1240px;
  margin:0 auto;
  padding:82px 24px 96px;
}
.gp-blog__head{ text-align:center; max-width:760px; margin:0 auto 60px; }
.gp-blog__head .gp-eyebrow{ justify-content:center; }
.gp-blog__head h1{ margin-bottom:.35em; }
.gp-blog__head .gp-lead{ margin:0 auto; }

.gp-blog__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:32px;
}

.gp-post{
  position:relative;
  display:flex; flex-direction:column;
  background:#fff;
  border:1px solid var(--gp-border);
  border-radius:var(--gp-r-card);
  overflow:hidden;
  transition:transform .4s var(--gp-ease), box-shadow .4s var(--gp-ease), border-color .4s var(--gp-ease);
}
.gp-post:hover{ transform:translateY(-8px); box-shadow:var(--gp-shadow-lg); border-color:transparent; }

.gp-post__media{ position:relative; display:block; line-height:0; overflow:hidden; }
.gp-post__media img,
.gp-post__img{
  width:100%; aspect-ratio:16/10; object-fit:cover; display:block;
  transition:transform .65s var(--gp-ease);
}
.gp-post:hover .gp-post__media img{ transform:scale(1.06); }
.gp-post__tag{
  position:absolute; left:16px; bottom:16px;
  padding:7px 15px; border-radius:999px;
  background:rgba(11,11,15,.72);
  backdrop-filter:blur(6px);
  color:#fff;
  font-family:"Outfit",sans-serif;
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  line-height:1;
}

.gp-post__body{ padding:26px 26px 28px; display:flex; flex-direction:column; gap:12px; flex:1 1 auto; }
.gp-post__meta{
  display:flex; align-items:center; gap:11px;
  font-size:.83rem; color:var(--gp-muted); font-weight:500;
}
.gp-post__dot{ width:4px; height:4px; border-radius:50%; background:var(--gp-pink); flex:none; }
.gp-post__title{ font-size:1.26rem; line-height:1.3; margin:0; }
.gp-post__title a{ color:var(--gp-heading); text-decoration:none; transition:color .26s var(--gp-ease); }
.gp-post__title a::after{ content:""; position:absolute; inset:0; z-index:2; }
.gp-post:hover .gp-post__title a{ color:var(--gp-pink-act); }
.gp-post__excerpt{ font-size:.97rem; line-height:1.68; margin:0; flex:1 1 auto; }
.gp-post__more{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--gp-pink-act); font-weight:600; font-size:.95rem;
  margin-top:2px;
}
.gp-post__arrow{ transition:transform .32s var(--gp-ease); }
.gp-post:hover .gp-post__arrow{ transform:translateX(5px); }

.gp-blog__cta{
  margin-top:76px;
  text-align:center;
  background:var(--gp-ink);
  border-radius:var(--gp-r-xl);
  padding:64px 32px;
  position:relative; overflow:hidden;
}
.gp-blog__cta h2{ color:#fff; margin-bottom:.4em; }
.gp-blog__cta p{ color:rgba(255,255,255,.7); margin-bottom:1.8em; }
.gp-blog__empty{ text-align:center; color:var(--gp-muted); }


/* ---------------------------- single post ------------------------------ */

.gp-is-single .site-main > article,
.gp-is-single .entry-content{ max-width:none; }

.gp-is-single .entry-header,
.gp-is-single .page-header{
  max-width:860px; margin:0 auto; padding:72px 24px 0; text-align:center;
}
.gp-is-single .entry-title{ font-size:clamp(1.9rem,1.3rem + 2.6vw,3.1rem); }

.gp-single__hero{
  max-width:1000px; margin:34px auto 0; padding:0 24px;
  line-height:0;
}
.gp-single__hero img{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:var(--gp-r-xl);
  display:block;
}

.gp-single__meta{
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px;
  max-width:820px; margin:0 auto 8px; padding:30px 24px 0;
  font-size:.88rem; color:var(--gp-muted);
}
.gp-single__tag{
  padding:7px 15px; border-radius:999px;
  background:var(--gp-pinktint); color:var(--gp-pink-act);
  font-family:"Outfit",sans-serif;
  font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  line-height:1;
}

.gp-single__body{
  max-width:760px; margin:0 auto; padding:30px 24px 0;
  font-size:1.07rem; line-height:1.82;
}
.gp-single__body h2{
  font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem);
  margin:2em 0 .6em;
}
.gp-single__body p{ margin-bottom:1.35em; }
.gp-single__body strong{ color:var(--gp-heading); }
.gp-single__body a{ color:var(--gp-pink-act); }

.gp-single__cta{
  max-width:900px; margin:72px auto 0; padding:56px 32px;
  background:var(--gp-ink); border-radius:var(--gp-r-xl);
  text-align:center;
}
.gp-single__cta h2{ color:#fff; margin-bottom:.4em; }
.gp-single__cta p{ color:rgba(255,255,255,.7); margin-bottom:1.7em; max-width:52ch; margin-left:auto; margin-right:auto; }

.gp-related{ max-width:1240px; margin:0 auto; padding:88px 24px 96px; }
.gp-related__title{ text-align:center; margin-bottom:44px; }


/* ============================= RESPONSIVE =============================== */

@media (max-width:1200px){
  .elementor-element-gppets10{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:46px 26px !important; }
  .elementor-element-gpftr02{ grid-template-columns:1.4fr 1fr 1.2fr !important; gap:38px !important; }
  .elementor-element-gpftr40{ grid-column:1 / -1; }
  .elementor-element-gpftr40 .gp-fcontact{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 30px; }
}

@media (max-width:1024px){
  .elementor-element-gpsvc10{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:26px !important; margin-top:44px; }
  .gp-blog__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:26px; }

  .elementor-element-zg332,
  .elementor-element-zg422,
  .elementor-element-zg442{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; gap:22px !important; }

  /* header contracts on tablet */
  .elementor-element-gphdr01,
  .elementor-element-gphdr01.elementor-sticky--effects{ padding:12px 14px !important; }
  .elementor-element-gphdr02 > .e-con-inner{
    border-radius:40px;
    padding:9px 10px 9px 14px !important;
    gap:12px;
  }
  .gp-logo img{ width:64px !important; height:64px !important; }
}

@media (max-width:767px){
  .elementor-element-gpsvc10{ grid-template-columns:1fr !important; gap:22px !important; margin-top:36px; }
  .elementor-element-gppets10{ grid-template-columns:1fr !important; gap:54px 0 !important; margin-top:56px; }
  .elementor-element-gppets10 > .e-con{ padding:54px 22px 28px !important; }

  .elementor-element-zg332,
  .elementor-element-zg422,
  .elementor-element-zg442{ grid-template-columns:1fr !important; gap:20px !important; }

  .gp-logo img{ width:56px !important; height:56px !important; }

  .gp-blog{ padding:56px 18px 68px; }
  .gp-blog__grid{ grid-template-columns:1fr; gap:22px; }
  .gp-blog__head{ margin-bottom:40px; }
  .gp-blog__cta{ margin-top:52px; padding:46px 22px; border-radius:var(--gp-r-lg); }
  .gp-single__cta{ padding:44px 22px; border-radius:var(--gp-r-lg); margin-top:52px; }
  .gp-single__hero img{ border-radius:var(--gp-r-lg); aspect-ratio:4/3; }
  .gp-related{ padding:60px 18px 68px; }

  /* footer stacks and centres */
  .elementor-element-gpftr02{ grid-template-columns:1fr !important; gap:38px !important; padding-bottom:40px !important; text-align:center; }
  .elementor-element-gpftr03{ align-items:center !important; }
  .gp-footer__logo{ text-align:center !important; }
  .gp-footer__logo img{ margin:0 auto; }
  .gp-footer__blurb p{ margin-left:auto; margin-right:auto; }
  .elementor-element-gpftr06 .gp-social{ justify-content:center; }
  .gp-footer__title .elementor-heading-title::after{ left:50%; transform:translateX(-50%); }
  .gp-flist a{ justify-content:center; }
  .gp-flist a:hover{ transform:none; }
  .elementor-element-gpftr40 .gp-fcontact{ grid-template-columns:1fr; }
  .gp-fcontact li{ justify-content:center; }
  .elementor-element-gpftr50{ flex-direction:column !important; text-align:center; padding:22px 0 24px !important; }
}

@media (max-width:430px){
  .gp-pets4__img{ width:164px !important; }
  .gp-pets4__badge{ width:64px; height:64px; top:-32px; }
  .gp-pets4__badge svg{ width:34px; height:34px; }
  .gp-post__body{ padding:22px 20px 24px; }
}

/* gp-fq-iconfix: Elementor prints its own fill on the accordion glyph, so the
   open state was rendering pink-on-pink. Force it to follow the chip. */
.gp-fq__acc .elementor-accordion-icon svg{
  fill:currentColor !important;
  width:12px !important; height:12px !important;
}
.gp-fq__acc .elementor-accordion-icon i{ color:currentColor !important; }
.gp-fq__acc .elementor-tab-title .elementor-accordion-icon{ color:var(--gp-body) !important; }
.gp-fq__acc .elementor-tab-title:hover .elementor-accordion-icon{ color:var(--gp-pink-act) !important; }
.gp-fq__acc .elementor-tab-title.elementor-active .elementor-accordion-icon{ color:#fff !important; }

/* ======================= CUSTOMER REVIEWS (v2) ========================== */
/* Real testimonials replaced the placeholder cards. No star ratings are shown
   because the client supplied review text and names only - inventing a score
   would be asserting something we cannot support.                          */

.gp-quote--v2{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  margin:0;
  padding:40px 32px 30px !important;
  background:#fff;
  border:1px solid var(--gp-border);
  border-radius:var(--gp-r-lg);
  box-shadow:0 4px 18px rgba(18,18,26,.05);
  transition:transform .4s var(--gp-ease), box-shadow .4s var(--gp-ease),
             border-color .4s var(--gp-ease);
}
.gp-quote--v2:hover{
  transform:translateY(-8px);
  border-color:transparent;
  box-shadow:0 26px 56px rgba(250,58,153,.16);
}

/* the big quote glyph carries the visual weight instead of a star row */
.gp-quote--v2::before{
  content:"\201C";
  position:absolute; top:10px; right:26px;
  font-family:"Outfit",Georgia,serif;
  font-size:6.4rem; line-height:1;
  color:var(--gp-pink);
  opacity:.15;
  pointer-events:none;
}

.gp-quote--v2 .gp-quote__text{
  position:relative; z-index:1;
  flex:1 1 auto;
  margin:0 0 26px;
  padding:0;
  border:0;
  quotes:none;
  font-size:1.03rem;
  line-height:1.75;
  color:var(--gp-body);
  font-style:normal;
}

.gp-quote--v2 .gp-quote__who{
  display:flex; align-items:center; gap:14px;
  padding-top:22px;
  border-top:1px solid var(--gp-border);
}

/* initials avatar - the client had no customer photos */
.gp-quote--v2 .gp-quote__avatar{
  flex:none;
  width:50px; height:50px; border-radius:50%;
  display:grid; place-items:center;
  background:linear-gradient(135deg,var(--gp-pink-act) 0%,var(--gp-pink) 55%,var(--gp-lime-deep) 100%);
  color:#fff;
  font-family:"Outfit",sans-serif;
  font-size:1rem; font-weight:800; letter-spacing:.04em;
  box-shadow:0 6px 16px rgba(250,58,153,.30);
}

.gp-quote--v2 .gp-quote__id{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.gp-quote--v2 .gp-quote__name{
  font-family:"Outfit",sans-serif;
  font-weight:700; font-size:1rem; line-height:1.25;
  color:var(--gp-heading);
}
.gp-quote--v2 .gp-quote__meta{
  font-size:.87rem; line-height:1.3;
  color:var(--gp-muted);
}

.gp-quote__lead{
  text-align:center;
  color:var(--gp-body);
  font-size:1.02rem;
  margin:0;
}

@media (max-width:767px){
  .gp-quote--v2{ padding:32px 24px 26px !important; }
  .gp-quote--v2::before{ font-size:5rem; right:20px; }
  .gp-quote--v2 .gp-quote__text{ font-size:1rem; margin-bottom:22px; }
  .gp-quote--v2 .gp-quote__avatar{ width:46px; height:46px; font-size:.94rem; }
}

/* the theme italicises figcaption/blockquote; review names must stay upright */
.gp-quote--v2 .gp-quote__who,
.gp-quote--v2 .gp-quote__id,
.gp-quote--v2 .gp-quote__name,
.gp-quote--v2 .gp-quote__meta,
.gp-quote--v2 .gp-quote__avatar{ font-style:normal !important; }

/* ================= ARRIVING VAN STRIP (MOBILE ONLY) ==================== */
/* Sits directly under the header on phones. The markup is only printed for
   mobile user agents; this media query is the second guard, so a cached
   desktop response can never show it either.

   The van drives continuously: it enters from off the left edge, crosses the
   screen at a constant slow speed, leaves completely past the right edge and
   restarts. One composited transform, no layout, no repaint, and the strip
   reserves its height from the first frame so nothing shifts.               */

.gp-vanstrip{ display:none; }

@media (max-width:1024px){

  .gp-vanstrip{
    display:block;
    position:relative;
    height:106px;                /* reserved up front - no layout shift */
    overflow:hidden;
    background:linear-gradient(180deg,var(--gp-pinktint) 0%,#fff 100%);
    border-bottom:1px solid var(--gp-border);
    contain:paint;
  }

  .gp-vanstrip__label{
    position:absolute; left:0; right:0; top:11px;
    text-align:center;
    font-family:"Outfit",sans-serif;
    font-size:.64rem; font-weight:800;
    letter-spacing:.18em; text-transform:uppercase;
    color:var(--gp-pink-act);
    opacity:.5;
  }

  /* the road the van drives along */
  .gp-vanstrip__road{
    position:absolute; left:0; right:0; bottom:11px; height:2px;
    background:repeating-linear-gradient(90deg,
      rgba(18,18,26,.15) 0 18px, transparent 18px 34px);
  }

  .gp-vanstrip__van{
    position:absolute;
    bottom:7px;
    left:0;
    width:156px; height:auto;
    will-change:transform;
    /* linear, so the speed never changes anywhere in the crossing */
    animation:gpVanDrive 18s linear infinite;
  }

  /* Starts fully off-screen left (its own width plus a margin) and ends fully
     off-screen right (the whole viewport past the left edge), so there is no
     visible entry or exit pop and no pause between loops. */
  @keyframes gpVanDrive{
      0%{ transform:translate3d(-180px,0,0); }
    100%{ transform:translate3d(100vw,0,0); }
  }
}

@media (max-width:1024px) and (prefers-reduced-motion:reduce){
  .gp-vanstrip__van{
    animation:none;
    transform:translate3d(calc(50vw - 50%),0,0);
  }
}

@media (max-width:430px){
  .gp-vanstrip{ height:96px; }
  .gp-vanstrip__label{ top:10px; }
  .gp-vanstrip__van{ width:138px; bottom:6px; }

  @keyframes gpVanDrive{
      0%{ transform:translate3d(-160px,0,0); }
    100%{ transform:translate3d(100vw,0,0); }
  }
}


/* ====================== GROOMING PACKAGES ============================== */
/* [gp_packages] - a Basic / Full switch over one card grid.
   The switch is two hidden radio inputs plus sibling selectors: no
   JavaScript, so it works before any script runs and costs nothing to load.
   Both panels are in the DOM from the first paint, so switching cannot
   shift the page.                                                          */

.gp-pk{
  max-width:1240px;
  margin:0 auto;
  padding:var(--gp-sec-y) 24px;
}

.gp-pk__head{ text-align:center; max-width:760px; margin:0 auto 30px; }

.gp-pk__title{
  font-family:"Outfit",sans-serif;
  font-size:clamp(2rem,4vw,3rem);
  font-weight:800;
  line-height:1.1;
  letter-spacing:-.03em;
  color:var(--gp-heading);
  margin:18px 0 14px;
}

.gp-pk__intro{
  font-size:1.05rem;
  line-height:1.7;
  color:var(--gp-body);
  margin:0;
}

/* ---- the Basic / Full switch ------------------------------------------ */

/* Kept in the accessibility tree and keyboard reachable, just not painted. */
.gp-pk__radio{
  position:absolute;
  width:1px; height:1px;
  margin:0; padding:0; border:0;
  opacity:0;
  pointer-events:none;
}

.gp-pk__tabs{
  display:flex;
  gap:6px;
  width:max-content;
  max-width:100%;
  margin:0 auto 44px;
  padding:6px;
  background:var(--gp-white);
  border:1px solid var(--gp-border);
  border-radius:999px;
  box-shadow:var(--gp-shadow-sm);
}

.gp-pk__tab{
  display:block;
  padding:13px 26px;
  border-radius:999px;
  font-family:"Outfit",sans-serif;
  font-size:.95rem;
  font-weight:700;
  line-height:1.2;
  text-align:center;
  white-space:nowrap;
  color:var(--gp-heading);
  background:transparent;
  cursor:pointer;
  transition:background-color .3s var(--gp-ease), color .3s var(--gp-ease);
  -webkit-tap-highlight-color:transparent;
}

.gp-pk__tab--static{ cursor:default; }

.gp-pk__tab:hover{ background:var(--gp-pinktint); }

/* active states */
.gp-pk__radio--basic:checked ~ .gp-pk__tabs .gp-pk__tab:nth-of-type(1),
.gp-pk__radio--full:checked  ~ .gp-pk__tabs .gp-pk__tab:nth-of-type(2),
.gp-pk__tabs--single .gp-pk__tab--static{
  background:var(--gp-pink-act);
  color:var(--gp-white);
  box-shadow:var(--gp-glow-pink);
}

.gp-pk__tab:hover.gp-pk__tab--static{ background:var(--gp-pink-act); }

/* keyboard focus ring, since the real input is invisible */
.gp-pk__radio--basic:focus-visible ~ .gp-pk__tabs .gp-pk__tab:nth-of-type(1),
.gp-pk__radio--full:focus-visible  ~ .gp-pk__tabs .gp-pk__tab:nth-of-type(2){
  outline:3px solid var(--gp-lime-deep);
  outline-offset:3px;
}

/* ---- panels ------------------------------------------------------------ */
.gp-pk__panel{
  display:none;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:26px;
  align-items:stretch;
}

.gp-pk__radio--basic:checked ~ .gp-pk__panel--basic,
.gp-pk__radio--full:checked  ~ .gp-pk__panel--full,
.gp-pk__panel--only{ display:grid; }

/* a lone package should not stretch across the whole row */
.gp-pk__panel--only{ max-width:420px; margin:0 auto; grid-template-columns:1fr; }

/* ---- card -------------------------------------------------------------- */
.gp-pk__card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--gp-white);
  border:1px solid var(--gp-border);
  border-radius:var(--gp-r-lg);
  box-shadow:var(--gp-shadow-sm);
  transition:transform .4s var(--gp-ease), box-shadow .4s var(--gp-ease), border-color .4s var(--gp-ease);
}

@media (hover:hover) and (min-width:1025px){
  .gp-pk__card:hover{
    transform:translateY(-6px);
    border-color:rgba(250,58,153,.3);
    box-shadow:var(--gp-shadow-md);
  }
}

.gp-pk__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--gp-pinktint);
}

.gp-pk__img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .6s var(--gp-ease);
}

@media (hover:hover) and (min-width:1025px){
  .gp-pk__card:hover .gp-pk__img{ transform:scale(1.05); }
}

.gp-pk__badge{
  position:absolute;
  top:14px; left:14px;
  padding:7px 14px;
  border-radius:999px;
  font-family:"Outfit",sans-serif;
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gp-white);
  background:rgba(11,11,15,.66);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}

.gp-pk__body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  padding:24px 24px 26px;
}

.gp-pk__name{
  font-family:"Outfit",sans-serif;
  font-size:1.2rem;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.01em;
  color:var(--gp-heading);
  margin:0 0 5px;
}

.gp-pk__note{
  font-size:.85rem;
  line-height:1.5;
  color:var(--gp-muted);
  margin:0 0 18px;
}

.gp-pk__price{
  display:flex;
  align-items:baseline;
  gap:.3em;
  margin:0 0 18px;
  padding-bottom:18px;
  border-bottom:1px dashed var(--gp-border);
}

.gp-pk__cur{
  font-family:"Outfit",sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--gp-muted);
}

.gp-pk__amt{
  font-family:"Outfit",sans-serif;
  font-size:2.1rem;
  font-weight:800;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--gp-pink-act);
}

/* ---- checklist --------------------------------------------------------- */
.gp-pk__list{
  flex:1 1 auto;
  margin:0 0 22px;
  padding:0;
  list-style:none;
}

.gp-pk__list li{
  position:relative;
  margin:0 0 10px;
  padding-left:28px;
  font-size:.92rem;
  line-height:1.45;
  color:var(--gp-heading);
}

.gp-pk__list li:last-child{ margin-bottom:0; }

.gp-pk__list li::before{
  content:"\2713";
  position:absolute;
  left:0; top:2px;
  display:grid;
  place-items:center;
  width:18px; height:18px;
  border-radius:50%;
  background:var(--gp-lime);
  color:var(--gp-ink);
  font-size:11px;
  font-weight:900;
  line-height:1;
}

/* ---- CTA --------------------------------------------------------------- */
.gp-pk__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin-top:auto;
  padding:15px 20px;
  border-radius:999px;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-size:.95rem;
  font-weight:600;
  text-decoration:none !important;
  color:var(--gp-white) !important;
  background:var(--gp-heading);
  transition:background-color .3s var(--gp-ease), transform .3s var(--gp-ease);
}

.gp-pk__cta svg{ flex:0 0 auto; transition:transform .3s var(--gp-ease); }
.gp-pk__cta:hover{ background:var(--gp-pink-act); }
.gp-pk__cta:hover svg{ transform:translateX(3px); }

.gp-pk__note--tier{
  grid-column:1 / -1;
  margin:4px 0 0;
  text-align:center;
  font-size:.9rem;
  color:var(--gp-muted);
}

.gp-pk__foot{
  margin:44px auto 0;
  max-width:62ch;
  text-align:center;
  font-size:.97rem;
  line-height:1.65;
  color:var(--gp-body);
}
.gp-pk__foot a{ color:var(--gp-pink-act); font-weight:600; }

@media (max-width:1100px){
  .gp-pk__panel{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:767px){
  .gp-pk{ padding:var(--gp-sec-y) 18px; }
  .gp-pk__head{ margin-bottom:24px; }
  .gp-pk__tabs{
    width:100%;
    margin-bottom:32px;
  }
  .gp-pk__tab{
    flex:1 1 0;
    padding:13px 8px;
    font-size:.78rem;
    white-space:normal;
  }
  .gp-pk__panel{ grid-template-columns:1fr; gap:20px; }
  .gp-pk__card{ border-radius:var(--gp-r-md); }
  .gp-pk__foot{ margin-top:32px; }
}

@media (prefers-reduced-motion:reduce){
  .gp-pk__card,
  .gp-pk__img,
  .gp-pk__cta,
  .gp-pk__cta svg,
  .gp-pk__tab{ transition:none; }
  .gp-pk__card:hover{ transform:none; }
  .gp-pk__card:hover .gp-pk__img{ transform:none; }
}


/* ==== 2026-08-28 CLIENT FIXES ==================================
   1. mobile header: the burger sat 15px above the logo and phone icon
      because the nav widget is a column flex box whose collapsed dropdown
      still contributed gap + margin below the toggle. Remove that trailing
      space while the menu is closed and put it back while it is open, so
      the toggle centres with its siblings and the open menu is unchanged.
   2. a panel holding a single package card centres it, matching the
      rabbit and bird sections (.gp-pk__panel--only).
   ======================================================================== */
@media (max-width:1024px){
  .elementor-element-gphdr04{ gap:0; }
  .elementor-element-gphdr04 > .elementor-nav-menu--dropdown{ margin-top:0; }
  .elementor-element-gphdr04 .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown{ margin-top:10px; }
}

.gp-pk__panel--single{ max-width:420px; margin-inline:auto; grid-template-columns:1fr; }


/* ==================== OFFICIAL SOCIAL / EMAIL LOGOS ===================== */
/* The client's official full-colour marks, replacing the monochrome inline
   SVGs that used to sit in these three slots. Sizing only - the chips,
   rings, spacing, alignment and hover behaviour defined above are untouched.
   Each mark ships as one 64px square webp, displayed at its slot size, so a
   2x screen still gets a clean image and nothing is stretched or cropped. */

.gp-social__img{
  width:22px; height:22px;
  display:block;
  object-fit:contain;
}

.gp-fcontact__ic{
  flex:none;
  width:19px; height:19px;
  margin-top:2px;
  display:block;
  object-fit:contain;
}

.gp-contact-card__img{
  width:25px; height:25px;
  display:block;
  object-fit:contain;
}

/* ==================== FLOATING CONTACT BUTTONS (.gp-fab) ================= */
/* Fixed bottom-left stack, top to bottom: Instagram, Call, WhatsApp.
   Call is mobile-only. All three are plain links straight to their target.
   Note: .gp-float is already taken by the hero bobbing animation - this system
   is namespaced .gp-fab so the two can never collide. */

.gp-fab{
  position:fixed; left:22px; bottom:22px; z-index:9990;
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
}

.gp-fab__btn{
  display:grid; grid-template-areas:"i"; place-items:center;
  width:56px; height:56px; padding:0; border:0;
  border-radius:50%; cursor:pointer;
  color:#fff; text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  box-shadow:0 8px 24px rgba(11,11,15,.22), 0 2px 6px rgba(11,11,15,.14);
  transition:transform .3s var(--gp-ease), box-shadow .3s var(--gp-ease);
}
.gp-fab__btn:hover,
.gp-fab__btn:focus-visible{ transform:translateY(-3px); }
.gp-fab__btn:focus-visible{ outline:3px solid var(--gp-lime); outline-offset:3px; }
.gp-fab__btn:active{ transform:translateY(-1px) scale(.97); }

.gp-fab__ico{
  grid-area:i; width:27px; height:27px; display:block;
  transition:opacity .24s var(--gp-ease), transform .24s var(--gp-ease);
}

/* Brand fills. Each shadow is tinted to its own colour so the stack reads as
   three deliberate objects rather than three grey drop-shadows. */
.gp-fab__btn--wa{
  background:#25D366;
  box-shadow:0 8px 24px rgba(37,211,102,.40), 0 2px 6px rgba(11,11,15,.12);
}
.gp-fab__btn--wa:hover,
.gp-fab__btn--wa:focus-visible{ box-shadow:0 14px 32px rgba(37,211,102,.52), 0 2px 6px rgba(11,11,15,.12); }

.gp-fab__btn--ig{
  background:radial-gradient(circle at 28% 108%,
    #FDF497 0%, #FDF497 5%, #FD5949 45%, #D6249F 62%, #285AEB 92%);
  box-shadow:0 8px 24px rgba(214,36,159,.36), 0 2px 6px rgba(11,11,15,.12);
}
.gp-fab__btn--ig:hover,
.gp-fab__btn--ig:focus-visible{ box-shadow:0 14px 32px rgba(214,36,159,.48), 0 2px 6px rgba(11,11,15,.12); }

.gp-fab__btn--call{
  display:none;                      /* mobile only - switched on below */
  background:transparent;            /* the supplied logo is its own circle */
  box-shadow:0 8px 24px rgba(54,200,54,.38), 0 2px 6px rgba(11,11,15,.12);
}
.gp-fab__btn--call:hover,
.gp-fab__btn--call:focus-visible{ box-shadow:0 14px 32px rgba(54,200,54,.50), 0 2px 6px rgba(11,11,15,.12); }

/* Stand aside while the burger navigation owns the screen */
.gp-fab.is-away{
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s var(--gp-ease), visibility 0s linear .2s;
}

@media (max-width:767px){
  .gp-fab{ left:14px; bottom:14px; gap:12px; }
  .gp-fab__btn{ width:52px; height:52px; }
  .gp-fab__ico{ width:25px; height:25px; }
  .gp-fab__btn--call{
    display:grid;
    background:url("gp-call.webp") center/100% 100% no-repeat;
  }
}

@media (prefers-reduced-motion: reduce){
  .gp-fab__btn,
  .gp-fab__ico{ transition:none !important; }
  .gp-fab__btn:hover,
  .gp-fab__btn:focus-visible,
  .gp-fab__btn:active{ transform:none; }
}

@media print{ .gp-fab{ display:none; } }
