/* ─── Reset ───────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --yellow:    #FFD426;
      --yellow-dk: #E8B800;
      --orange:    #FF7A2F;
      --orange-dk: #E55A00;
      --sky:       #3BBFED;
      --sky-dk:    #1A9FCF;
      --green:     #4CC97A;
      --green-dk:  #2DA85A;
      --pink:      #FF6B9D;
      --purple:    #9B6BFF;
      --white:     #FFFFFF;
      --off-white: #FFFDF5;
      --text:      #1A1A2E;
      --text-mid:  #4A4A6A;
      --text-light:#8888A8;
      --radius:    20px;
      --radius-sm: 12px;
    }

    html { scroll-behavior: smooth; }

    body {
      font-family: 'Nunito', sans-serif;
      background: var(--off-white);
      color: var(--text);
      line-height: 1.6;
      overflow-x: hidden;
    }

    h1, h2, h3 { font-family: 'Fredoka One', cursive; font-weight: 400; line-height: 1.15; }
    a { text-decoration: none; color: inherit; }
    img { display: block; max-width: 100%; }

    /* ─── Floating dogs (background) ─────────────── */
    .dogs-layer {
      position: fixed;
      inset: 0;
      pointer-events: none;
      z-index: 0;
      overflow: hidden;
    }

    .dog {
      position: absolute;
      opacity: 0.08;
      font-size: 3rem;
      animation: floatDog linear infinite;
      user-select: none;
    }

    .dog:nth-child(1)  { font-size: 3.5rem; left:  4%; animation-duration: 18s; animation-delay: 0s;    top: 15%; }
    .dog:nth-child(2)  { font-size: 2.4rem; left: 89%; animation-duration: 22s; animation-delay: -4s;   top: 30%; }
    .dog:nth-child(3)  { font-size: 4rem;   left: 46%; animation-duration: 16s; animation-delay: -8s;   top: 62%; }
    .dog:nth-child(4)  { font-size: 2rem;   left: 21%; animation-duration: 25s; animation-delay: -2s;   top: 78%; }
    .dog:nth-child(5)  { font-size: 3rem;   left: 71%; animation-duration: 20s; animation-delay: -12s;  top: 6%;  }
    .dog:nth-child(6)  { font-size: 2.8rem; left: 56%; animation-duration: 14s; animation-delay: -6s;   top: 44%; }
    .dog:nth-child(7)  { font-size: 1.8rem; left: 36%; animation-duration: 28s; animation-delay: -9s;   top: 88%; }
    .dog:nth-child(8)  { font-size: 3.2rem; left: 81%; animation-duration: 19s; animation-delay: -14s;  top: 72%; }
    .dog:nth-child(9)  { font-size: 2.2rem; left: 13%; animation-duration: 23s; animation-delay: -3s;   top: 52%; }
    .dog:nth-child(10) { font-size: 3.8rem; left: 63%; animation-duration: 17s; animation-delay: -11s;  top: 22%; }

    @keyframes floatDog {
      0%   { transform: translateY(0px)  rotate(-8deg) scale(1); }
      25%  { transform: translateY(-30px) rotate(6deg) scale(1.06); }
      50%  { transform: translateY(-12px) rotate(-4deg) scale(0.97); }
      75%  { transform: translateY(-40px) rotate(9deg) scale(1.09); }
      100% { transform: translateY(0px)  rotate(-8deg) scale(1); }
    }

    /* ─── Nav ─────────────────────────────────────── */
    nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 200;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 10px 48px;
      background: rgba(255,255,255,0.94);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      border-bottom: 3px solid var(--yellow);
      box-shadow: 0 4px 20px rgba(0,0,0,0.07);
    }

    .nav-logo-img {
      height: 48px;
      width: auto;
      object-fit: contain;
    }

    .nav-links {
      display: flex;
      gap: 28px;
      list-style: none;
      align-items: center;
    }

    .nav-links a {
      color: var(--text-mid);
      font-size: 0.9rem;
      font-weight: 700;
      letter-spacing: 0.03em;
      transition: color 0.2s;
    }

    .nav-links a:hover { color: var(--orange); }

    .nav-cta {
      background: var(--yellow) !important;
      color: var(--text) !important;
      padding: 10px 24px;
      border-radius: 50px;
      font-weight: 800 !important;
      box-shadow: 0 3px 0 var(--yellow-dk);
      transition: transform 0.15s, box-shadow 0.15s !important;
    }

    .nav-cta:hover {
      transform: translateY(-2px) !important;
      box-shadow: 0 5px 0 var(--yellow-dk) !important;
    }

    /* ─── Hero ────────────────────────────────────── */
    .hero {
      min-height: 100vh;
      position: relative;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 120px 48px 80px;
    }

    /* Hero video background */
    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      z-index: 0;
    }

    /* Fallback if video hasn't loaded */
    .hero-bg {
      position: absolute;
      inset: 0;
      background-image: url('https://static.wixstatic.com/media/6bb5b8_dfadee951d784a1ea67f88690b6ef1b0~mv2.jpg/v1/fill/w_1600,h_1000,al_c,q_85,enc_avif,quality_auto/6bb5b8_dfadee951d784a1ea67f88690b6ef1b0~mv2.jpg');
      background-size: cover;
      background-position: center;
      z-index: 0;
    }

    /* Colorful gradient overlay */
    .hero-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        160deg,
        rgba(255,212,38,0.82) 0%,
        rgba(255,122,47,0.70) 35%,
        rgba(59,191,237,0.65) 70%,
        rgba(76,201,122,0.60) 100%
      );
      mix-blend-mode: multiply;
    }

    /* Second overlay for text readability */
    .hero-overlay2 {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        rgba(0,0,0,0.1) 0%,
        rgba(0,0,0,0.35) 60%,
        rgba(0,0,0,0.5) 100%
      );
    }

    /* Rising paw prints */
    .paw-float {
      position: absolute;
      opacity: 0;
      animation: pawRise linear infinite;
      pointer-events: none;
      font-size: 1.4rem;
      z-index: 2;
    }

    @keyframes pawRise {
      0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
      8%   { opacity: 0.3; }
      92%  { opacity: 0.15; }
      100% { transform: translateY(-110vh) rotate(360deg); opacity: 0; }
    }

    .hero-inner {
      position: relative;
      z-index: 3;
      max-width: 720px;
      text-align: center;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(255,255,255,0.22);
      backdrop-filter: blur(8px);
      border: 2px solid rgba(255,255,255,0.5);
      color: var(--white);
      font-size: 0.82rem;
      font-weight: 800;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 8px 20px;
      border-radius: 50px;
      margin-bottom: 24px;
    }

    .hero h1 {
      font-size: clamp(3rem, 7vw, 5.4rem);
      color: var(--white);
      text-shadow: 0 3px 20px rgba(0,0,0,0.3);
      margin-bottom: 10px;
    }

    .hero h1 .line2 {
      color: var(--yellow);
      display: block;
      -webkit-text-stroke: 1px rgba(255,200,0,0.5);
    }

    .hero-sub {
      font-size: clamp(1rem, 2vw, 1.18rem);
      color: rgba(255,255,255,0.92);
      max-width: 540px;
      margin: 18px auto 36px;
      font-weight: 600;
      line-height: 1.75;
      text-shadow: 0 1px 6px rgba(0,0,0,0.25);
    }

    .hero-actions {
      display: flex;
      gap: 16px;
      justify-content: center;
      flex-wrap: wrap;
      margin-bottom: 56px;
    }

    .btn-yellow {
      background: var(--yellow);
      color: var(--text);
      padding: 15px 34px;
      border-radius: 50px;
      font-family: 'Fredoka One', cursive;
      font-size: 1.1rem;
      box-shadow: 0 5px 0 var(--yellow-dk);
      transition: transform 0.15s, box-shadow 0.15s;
      display: inline-block;
    }
    .btn-yellow:hover { transform: translateY(-3px); box-shadow: 0 8px 0 var(--yellow-dk); }

    .btn-white-ghost {
      background: rgba(255,255,255,0.18);
      backdrop-filter: blur(6px);
      color: var(--white);
      border: 2px solid rgba(255,255,255,0.6);
      padding: 13px 34px;
      border-radius: 50px;
      font-family: 'Fredoka One', cursive;
      font-size: 1.1rem;
      transition: background 0.2s, transform 0.15s;
      display: inline-block;
    }
    .btn-white-ghost:hover { background: rgba(255,255,255,0.3); transform: translateY(-2px); }

    /* Stats bubbles */
    .stats-bubbles {
      display: flex;
      justify-content: center;
      gap: 16px;
      flex-wrap: wrap;
    }

    .stat-bubble {
      background: rgba(255,255,255,0.18);
      backdrop-filter: blur(10px);
      border: 2px solid rgba(255,255,255,0.35);
      border-radius: var(--radius);
      padding: 18px 24px;
      text-align: center;
      min-width: 120px;
    }

    .stat-number {
      font-family: 'Fredoka One', cursive;
      font-size: 1.9rem;
      color: var(--yellow);
      display: block;
      text-shadow: 0 2px 8px rgba(0,0,0,0.2);
    }

    .stat-label {
      font-size: 0.78rem;
      font-weight: 700;
      color: rgba(255,255,255,0.85);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin-top: 4px;
    }

    /* ─── Photo marquee strip ─────────────────────── */
    .marquee-section {
      background: var(--yellow);
      padding: 18px 0;
      overflow: hidden;
      position: relative;
      z-index: 1;
    }

    .marquee-track {
      display: flex;
      gap: 12px;
      animation: marqueeScroll 30s linear infinite;
      width: max-content;
    }

    .marquee-track:hover { animation-play-state: paused; }

    @keyframes marqueeScroll {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }

    .marquee-img {
      width: 220px;
      height: 160px;
      object-fit: cover;
      border-radius: var(--radius-sm);
      flex-shrink: 0;
      box-shadow: 0 4px 14px rgba(0,0,0,0.15);
      transition: transform 0.3s;
    }

    .marquee-img:hover { transform: scale(1.04); }

    /* ─── Wave divider ────────────────────────────── */
    .wave { width: 100%; overflow: hidden; line-height: 0; margin-bottom: -2px; }
    .wave svg { display: block; width: 100%; }

    /* ─── About ───────────────────────────────────── */
    .about-section {
      background: var(--yellow);
      padding: 80px 48px;
      position: relative;
      z-index: 1;
    }

    .about-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      align-items: center;
      gap: 64px;
    }

    .about-text { flex: 1; }

    .section-tag {
      display: inline-block;
      background: rgba(0,0,0,0.1);
      color: var(--text);
      font-size: 0.78rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      padding: 6px 16px;
      border-radius: 50px;
      margin-bottom: 14px;
    }

    .section-title {
      font-family: 'Fredoka One', cursive;
      font-size: clamp(2rem, 4vw, 2.8rem);
      color: var(--text);
      margin-bottom: 16px;
    }

    .about-text p {
      font-size: 1.04rem;
      color: rgba(26,26,46,0.78);
      line-height: 1.8;
      font-weight: 600;
      margin-bottom: 14px;
    }

    .about-photo-wrap {
      flex: 1;
      position: relative;
    }

    .about-photo-main {
      width: 100%;
      aspect-ratio: 4/3;
      object-fit: cover;
      border-radius: var(--radius);
      box-shadow: 0 12px 40px rgba(0,0,0,0.18);
    }

    .about-photo-float {
      position: absolute;
      width: 42%;
      aspect-ratio: 1;
      object-fit: cover;
      border-radius: var(--radius-sm);
      border: 4px solid var(--yellow);
      box-shadow: 0 8px 24px rgba(0,0,0,0.2);
      bottom: -24px;
      right: -24px;
    }

    .about-btn {
      background: var(--orange);
      color: var(--white);
      padding: 14px 30px;
      border-radius: 50px;
      font-family: 'Fredoka One', cursive;
      font-size: 1.05rem;
      box-shadow: 0 4px 0 var(--orange-dk);
      transition: transform 0.15s, box-shadow 0.15s;
      display: inline-block;
      margin-top: 26px;
    }
    .about-btn:hover { transform: translateY(-3px); box-shadow: 0 7px 0 var(--orange-dk); }

    /* ─── Services ────────────────────────────────── */
    .services-section {
      background: var(--off-white);
      padding: 100px 48px;
      position: relative;
      z-index: 1;
    }

    .services-header {
      text-align: center;
      margin-bottom: 52px;
    }

    .services-header .section-tag { background: var(--sky); color: var(--white); }
    .services-header p {
      font-size: 1.05rem;
      color: var(--text-mid);
      max-width: 480px;
      margin: 10px auto 0;
      font-weight: 600;
    }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 22px;
      max-width: 1100px;
      margin: 0 auto;
    }

    .service-card {
      background: var(--white);
      border-radius: var(--radius);
      overflow: hidden;
      border: 2px solid transparent;
      transition: transform 0.25s, box-shadow 0.25s;
      display: flex;
      flex-direction: column;
    }

    .service-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 48px rgba(0,0,0,0.12);
    }

    .service-photo {
      width: 100%;
      height: 200px;
      object-fit: cover;
      display: block;
    }

    .service-photo-placeholder {
      width: 100%;
      height: 200px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 3.5rem;
    }

    .service-card:nth-child(1) .service-photo-placeholder { background: rgba(255,212,38,0.15); }
    .service-card:nth-child(2) .service-photo-placeholder { background: rgba(255,122,47,0.12); }
    .service-card:nth-child(3) .service-photo-placeholder { background: rgba(255,107,157,0.12); }
    .service-card:nth-child(4) .service-photo-placeholder { background: rgba(59,191,237,0.12); }
    .service-card:nth-child(5) .service-photo-placeholder { background: rgba(155,107,255,0.12); }
    .service-card:nth-child(6) .service-photo-placeholder { background: rgba(76,201,122,0.12); }

    .service-card-color-bar {
      height: 5px;
    }

    .service-card:nth-child(1) .service-card-color-bar { background: var(--yellow); }
    .service-card:nth-child(2) .service-card-color-bar { background: var(--orange); }
    .service-card:nth-child(3) .service-card-color-bar { background: var(--pink); }
    .service-card:nth-child(4) .service-card-color-bar { background: var(--sky); }
    .service-card:nth-child(5) .service-card-color-bar { background: var(--purple); }
    .service-card:nth-child(6) .service-card-color-bar { background: var(--green); }

    .service-body {
      padding: 26px 24px 28px;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .service-body h3 {
      font-size: 1.25rem;
      color: var(--text);
      margin-bottom: 8px;
    }

    .service-body p {
      font-size: 0.9rem;
      color: var(--text-mid);
      line-height: 1.7;
      font-weight: 600;
      flex: 1;
    }

    .card-cta {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      margin-top: 16px;
      font-size: 0.875rem;
      font-weight: 800;
      transition: gap 0.2s;
    }

    .service-card:nth-child(1) .card-cta { color: var(--yellow-dk); }
    .service-card:nth-child(2) .card-cta { color: var(--orange); }
    .service-card:nth-child(3) .card-cta { color: var(--pink); }
    .service-card:nth-child(4) .card-cta { color: var(--sky-dk); }
    .service-card:nth-child(5) .card-cta { color: var(--purple); }
    .service-card:nth-child(6) .card-cta { color: var(--green-dk); }

    .service-card:hover .card-cta { gap: 10px; }

    /* ─── Gallery grid ────────────────────────────── */
    .gallery-section {
      background: var(--text);
      padding: 80px 48px;
      position: relative;
      z-index: 1;
    }

    .gallery-header {
      text-align: center;
      margin-bottom: 44px;
    }

    .gallery-header .section-tag { background: var(--yellow); color: var(--text); }
    .gallery-header .section-title { color: var(--white); }

    .photo-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      max-width: 1100px;
      margin: 0 auto;
    }

    .photo-grid-item {
      aspect-ratio: 1;
      overflow: hidden;
      border-radius: var(--radius-sm);
      position: relative;
    }

    .photo-grid-item:first-child {
      grid-column: span 2;
      grid-row: span 2;
    }

    .photo-grid-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s;
    }

    .photo-grid-item:hover img { transform: scale(1.08); }

    .photo-grid-item::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,0.3), transparent 50%);
      opacity: 0;
      transition: opacity 0.3s;
      z-index: 2;
    }

    .photo-grid-item:hover::after { opacity: 1; }

    /* ── Instagram UI overlay removal ──────────────── */
    /* Masks the mute icon (bottom-right) on photos taken from Instagram */
    .photo-grid-item.mask-br::before {
      content: '';
      position: absolute;
      bottom: 0; right: 0;
      width: 58px; height: 58px;
      background: radial-gradient(ellipse at 100% 100%, rgba(0,0,0,0.82) 28%, transparent 68%);
      z-index: 3;
      pointer-events: none;
    }
    /* Masks mute icon (bottom-right) AND profile circle (bottom-left) */
    .photo-grid-item.mask-both::before {
      content: '';
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse 66px 56px at 100% 100%, rgba(0,0,0,0.82) 28%, transparent 62%),
        radial-gradient(ellipse 66px 56px at 0%   100%, rgba(0,0,0,0.82) 28%, transparent 62%);
      z-index: 3;
      pointer-events: none;
    }


    /* Gallery photo centering fixes */
    .photo-grid-item.mask-both img {
      object-position: center bottom;  /* mural photo: cut sky, show dogs */
    }
    .photo-grid-item.mask-br img {
      object-position: center 60%;     /* arena photo: focus on dogs */
    }

    /* ─── How it works ────────────────────────────── */
    .how-section {
      background: linear-gradient(135deg, #3BBFED 0%, #9B6BFF 100%);
      padding: 100px 48px;
      text-align: center;
      position: relative;
      z-index: 1;
      overflow: hidden;
    }

    .how-section::before {
      content: '🐾🐾🐾🐾🐾🐾🐾🐾🐾🐾';
      position: absolute;
      font-size: 5rem;
      opacity: 0.05;
      top: -10px;
      left: 0;
      letter-spacing: 20px;
      white-space: nowrap;
      pointer-events: none;
    }

    .how-section .section-tag { background: rgba(255,255,255,0.2); color: var(--white); }
    .how-section .section-title { color: var(--white); margin-bottom: 8px; }
    .how-section > .subtitle {
      color: rgba(255,255,255,0.8);
      font-size: 1.05rem;
      font-weight: 600;
      max-width: 440px;
      margin: 0 auto 60px;
    }

    .steps {
      display: flex;
      justify-content: center;
      gap: 32px;
      max-width: 1000px;
      margin: 0 auto;
      flex-wrap: wrap;
      position: relative;
    }

    .steps::before {
      content: '';
      position: absolute;
      top: 34px;
      left: 12%;
      right: 12%;
      height: 2px;
      background: rgba(255,255,255,0.2);
      pointer-events: none;
    }

    .step {
      flex: 1;
      min-width: 180px;
      max-width: 210px;
      position: relative;
      z-index: 1;
    }

    .step-circle {
      width: 68px;
      height: 68px;
      background: var(--white);
      border-radius: 50%;
      margin: 0 auto 20px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Fredoka One', cursive;
      font-size: 1.8rem;
      color: var(--purple);
      box-shadow: 0 4px 0 rgba(0,0,0,0.12);
      transition: transform 0.2s;
    }

    .step:hover .step-circle { transform: translateY(-6px) scale(1.05); }

    .step h3 { color: var(--white); font-size: 1.1rem; margin-bottom: 10px; }
    .step p { font-size: 0.87rem; color: rgba(255,255,255,0.75); font-weight: 600; line-height: 1.6; }

    /* ─── Testimonials ────────────────────────────── */
    .testimonials-section {
      background: var(--green);
      padding: 100px 48px;
      position: relative;
      z-index: 1;
    }

    .testimonials-header {
      text-align: center;
      margin-bottom: 52px;
    }

    .testimonials-header .section-tag { background: rgba(0,0,0,0.12); }
    .testimonials-header .section-title { color: var(--white); }

    .reviews-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
      gap: 22px;
      max-width: 1100px;
      margin: 0 auto;
    }

    .review-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 34px 28px;
      box-shadow: 0 5px 0 rgba(0,0,0,0.1);
      transition: transform 0.2s;
    }

    .review-card:hover { transform: translateY(-5px); }

    .stars { font-size: 1.1rem; letter-spacing: 2px; margin-bottom: 14px; }

    .review-card blockquote {
      font-size: 0.94rem;
      color: var(--text-mid);
      font-weight: 600;
      line-height: 1.75;
      font-style: italic;
      margin-bottom: 22px;
    }

    .reviewer { display: flex; align-items: center; gap: 12px; }

    .reviewer-avatar {
      width: 46px; height: 46px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      flex-shrink: 0;
    }

    .reviewer-avatar.a { background: rgba(255,212,38,0.25); }
    .reviewer-avatar.b { background: rgba(255,122,47,0.18); }
    .reviewer-avatar.c { background: rgba(59,191,237,0.18); }

    .reviewer-name { font-weight: 800; font-size: 0.92rem; }
    .reviewer-detail { font-size: 0.8rem; color: var(--text-light); font-weight: 600; }

    /* ─── CTA ─────────────────────────────────────── */
    .cta-section {
      background: var(--orange);
      padding: 90px 48px;
      text-align: center;
      position: relative;
      overflow: hidden;
      z-index: 1;
    }

    .cta-section::before {
      content: '🦴 🐾 🦴 🐾 🦴 🐾 🦴';
      position: absolute;
      top: 18px; left: 50%;
      transform: translateX(-50%);
      font-size: 1.4rem;
      opacity: 0.18;
      white-space: nowrap;
      letter-spacing: 14px;
    }

    .cta-section h2 {
      font-size: clamp(2rem, 4vw, 3.2rem);
      color: var(--white);
      max-width: 620px;
      margin: 0 auto 16px;
    }

    .cta-section p {
      color: rgba(255,255,255,0.85);
      font-size: 1.08rem;
      font-weight: 600;
      max-width: 460px;
      margin: 0 auto 38px;
    }

    /* Seasonal notice — stands in for the booking button while
       bookings are closed. Sits on the orange CTA band. */
    .season-notice {
      background: rgba(255,255,255,0.16);
      border: 2px solid rgba(255,255,255,0.45);
      border-radius: 22px;
      padding: 30px 34px;
      max-width: 560px;
      margin: 0 auto;
    }

    .cta-section .season-notice p { margin: 0 auto; max-width: 100%; }

    .cta-section .season-notice .season-date {
      font-family: 'Fredoka One', cursive;
      font-size: clamp(1.15rem, 2.4vw, 1.5rem);
      font-weight: 400;
      line-height: 1.35;
      color: var(--white);
      margin-bottom: 12px;
    }

    .cta-section .season-notice .season-date strong {
      color: var(--yellow);
      font-weight: inherit;
      white-space: nowrap;
    }

    @media (max-width: 560px) {
      .season-notice { padding: 24px 20px; }
    }

    /* ─── Footer ──────────────────────────────────── */
    footer {
      background: var(--text);
      color: rgba(255,255,255,0.65);
      padding: 64px 48px 36px;
      position: relative;
      z-index: 1;
    }

    .footer-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 2fr 1fr 1fr 1fr;
      gap: 48px;
    }

    .footer-logo-img {
      height: 52px;
      width: auto;
      object-fit: contain;
      margin-bottom: 16px;
      filter: brightness(0) invert(1);
      opacity: 0.9;
    }

    .footer-brand p { font-size: 0.875rem; line-height: 1.75; max-width: 240px; font-weight: 600; }

    .footer-col h5 {
      font-family: 'Fredoka One', cursive;
      font-size: 1.05rem;
      color: var(--white);
      margin-bottom: 16px;
    }

    .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }

    .footer-col a {
      font-size: 0.875rem;
      color: rgba(255,255,255,0.55);
      font-weight: 600;
      transition: color 0.2s;
    }

    .footer-col a:hover { color: var(--yellow); }

    .social-links { display: flex; gap: 12px; margin-top: 20px; }

    .social-link {
      width: 38px; height: 38px;
      border-radius: 10px;
      background: rgba(255,255,255,0.1);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1rem;
      transition: background 0.2s, transform 0.15s;
    }

    .social-link:hover { background: var(--yellow); transform: translateY(-2px); }

    .footer-bottom {
      max-width: 1100px;
      margin: 36px auto 0;
      padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,0.1);
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.8rem;
      font-weight: 600;
      flex-wrap: wrap;
      gap: 10px;
    }

    /* ─── Responsive ──────────────────────────────── */
    @media (max-width: 960px) {
      nav { padding: 10px 24px; }
      .nav-links { display: none; }

      .about-inner { flex-direction: column; gap: 40px; }
      .about-photo-float { right: -10px; bottom: -10px; }

      .photo-grid { grid-template-columns: repeat(2, 1fr); }
      .photo-grid-item:first-child { grid-column: span 2; grid-row: span 1; }

      .steps { gap: 24px; }
      .steps::before { display: none; }

      .hero, .about-section, .services-section,
      .gallery-section, .how-section,
      .testimonials-section, .cta-section { padding: 72px 24px; }

      .footer-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
    }

    @media (max-width: 560px) {
      .hero { padding-top: 100px; }
      .hero h1 { font-size: 2.6rem; }
      .photo-grid { grid-template-columns: repeat(2, 1fr); }
      .photo-grid-item:first-child { grid-column: span 2; }
      .footer-inner { grid-template-columns: 1fr; }
      .dog { opacity: 0.06; }
    }

    /* ══════════════════════════════════════════════════
       SUB-PAGES  (about, services, gallery, contact)
       ══════════════════════════════════════════════════ */

    /* ─── Mobile menu ─────────────────────────────── */
    .nav-toggle {
      display: none;
      background: var(--yellow);
      border: none;
      border-radius: 12px;
      padding: 9px 11px;
      cursor: pointer;
      box-shadow: 0 3px 0 var(--yellow-dk);
    }
    .nav-toggle span {
      display: block;
      width: 22px; height: 3px;
      border-radius: 2px;
      background: var(--text);
      transition: transform .22s, opacity .22s;
    }
    .nav-toggle span + span { margin-top: 4px; }
    .nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    .nav-links a.is-current { color: var(--orange); }

    /* ─── Page hero ───────────────────────────────── */
    .page-hero {
      position: relative;
      min-height: 360px;
      display: flex;
      /* column, or the breadcrumb sits alongside the title instead of above it */
      flex-direction: column;
      justify-content: flex-end;
      padding: 120px 48px 44px;
      overflow: hidden;
      z-index: 1;
    }
    .page-hero-img {
      position: absolute; inset: 0;
      width: 100%; height: 100%;
      object-fit: cover;
      /* most of these are portrait phone shots — bias the crop towards the
         top third, where the dogs actually are */
      object-position: center 28%;
      z-index: 0;
    }
    .page-hero::after {
      content: '';
      position: absolute; inset: 0;
      background: linear-gradient(180deg, rgba(26,26,46,.55) 0%, rgba(26,26,46,.35) 40%, rgba(26,26,46,.88) 100%);
      z-index: 1;
    }
    .page-hero-inner { position: relative; z-index: 2; max-width: 1100px; margin: 0 auto; width: 100%; }
    .page-hero h1 {
      font-size: clamp(2.1rem, 5vw, 3.4rem);
      color: var(--white);
      margin-bottom: 10px;
    }
    .page-hero .page-sub {
      color: rgba(255,255,255,0.9);
      font-size: 1.06rem;
      font-weight: 600;
      max-width: 620px;
    }
    .page-hero .section-tag { background: var(--yellow); color: var(--text); }

    /* a hero with no photo — used where we have no suitable picture */
    .page-hero.no-photo { background: var(--purple); min-height: 300px; }
    .page-hero.no-photo::after { background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.42)); }

    .breadcrumb {
      position: relative; z-index: 2;
      /* width:100% — auto margins in a flex column cancel stretch, and without
         this the breadcrumb shrinks to its text and centres itself */
      width: 100%;
      max-width: 1100px; margin: 0 auto 14px;
      font-size: .85rem; font-weight: 700;
      color: rgba(255,255,255,.85);
    }
    .breadcrumb a:hover { color: var(--yellow); }

    /* ─── Page body ───────────────────────────────── */
    .page-section { padding: 72px 48px; position: relative; z-index: 1; }
    .page-section.pale  { background: var(--off-white); }
    .page-section.white { background: var(--white); }
    .page-section.sky   { background: var(--sky); }
    .page-section.yellow{ background: var(--yellow); }
    .page-section.dark  { background: var(--text); }

    .page-inner { max-width: 860px; margin: 0 auto; }
    .page-inner.wide { max-width: 1100px; }

    .prose p {
      font-size: 1.06rem;
      color: var(--text-mid);
      font-weight: 600;
      margin-bottom: 18px;
    }
    .prose h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 34px 0 14px; }
    .prose h2:first-child { margin-top: 0; }
    .page-section.sky .prose p,
    .page-section.sky .prose h2 { color: var(--white); }

    /* ─── Feature chips ───────────────────────────── */
    .chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 4px; }
    .chip {
      background: var(--white);
      border: 2px solid rgba(0,0,0,.08);
      border-radius: 50px;
      padding: 9px 18px;
      font-weight: 800;
      font-size: .92rem;
      color: var(--text);
    }

    /* ─── Price cards ─────────────────────────────── */
    .price-cards {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
      gap: 24px;
      margin-top: 8px;
    }
    .price-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 28px 26px;
      box-shadow: 0 6px 0 rgba(0,0,0,.07);
      display: flex;
      flex-direction: column;
      min-width: 0;
    }
    .price-card h3 { font-size: 1.22rem; margin-bottom: 6px; }
    .price-meta { font-size: .9rem; font-weight: 700; color: var(--text-light); margin-bottom: 16px; }
    .price-tag {
      font-family: 'Fredoka One', cursive;
      font-size: 2.3rem;
      color: var(--orange);
      line-height: 1;
      margin-bottom: 4px;
    }
    .price-unit { font-size: .9rem; font-weight: 700; color: var(--text-light); margin-bottom: 16px; }
    .price-card ul { list-style: none; margin-top: auto; }
    .price-card li {
      font-size: .95rem; font-weight: 600; color: var(--text-mid);
      padding-left: 24px; position: relative; margin-bottom: 8px;
    }
    .price-card li::before { content: '🐾'; position: absolute; left: 0; font-size: .85rem; }
    .price-card.featured { box-shadow: 0 6px 0 var(--yellow-dk); border: 3px solid var(--yellow); }

    /* ─── Tick list ───────────────────────────────── */
    .tick-list { list-style: none; }
    .tick-list li {
      font-size: 1.02rem; font-weight: 600; color: var(--text-mid);
      padding-left: 32px; position: relative; margin-bottom: 12px;
    }
    .tick-list li::before {
      content: '✓';
      position: absolute; left: 0; top: -1px;
      width: 21px; height: 21px; border-radius: 50%;
      background: var(--green); color: var(--white);
      font-size: .8rem; font-weight: 800;
      display: grid; place-items: center;
    }
    .page-section.sky .tick-list li { color: var(--white); }

    /* ─── Note box (house rules, small print) ─────── */
    .note-box {
      background: var(--white);
      border-left: 6px solid var(--sky);
      border-radius: var(--radius-sm);
      padding: 26px 28px;
      margin-top: 26px;
      box-shadow: 0 4px 0 rgba(0,0,0,.05);
    }
    .note-box h3 { font-size: 1.1rem; margin-bottom: 12px; }
    .note-box ul { list-style: none; }
    .note-box li {
      font-size: .95rem; font-weight: 600; color: var(--text-mid);
      padding-left: 20px; position: relative; margin-bottom: 9px;
    }
    .note-box li::before {
      content: ''; position: absolute; left: 0; top: 9px;
      width: 7px; height: 7px; border-radius: 50%; background: var(--sky);
    }
    .note-box.warn { border-left-color: var(--orange); }
    .note-box.warn li::before { background: var(--orange); }

    /* ─── Bottom CTA on sub-pages ─────────────────── */
    .page-cta { background: var(--orange); padding: 66px 48px; text-align: center; position: relative; z-index: 1; }
    .page-cta h2 { color: var(--white); font-size: clamp(1.6rem, 3.4vw, 2.4rem); margin-bottom: 12px; }
    .page-cta p { color: rgba(255,255,255,.88); font-weight: 700; max-width: 520px; margin: 0 auto 24px; }
    .page-cta .btn-white-ghost { border-color: rgba(255,255,255,.6); }

    /* ─── Contact ─────────────────────────────────── */
    .contact-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
      gap: 28px;
      align-items: start;
    }
    .contact-card {
      background: var(--white);
      border-radius: var(--radius);
      padding: 30px 28px;
      box-shadow: 0 6px 0 rgba(0,0,0,.07);
      min-width: 0;
    }
    .contact-card h3 { font-size: 1.15rem; margin-bottom: 14px; }
    .contact-card address { font-style: normal; font-weight: 600; color: var(--text-mid); line-height: 1.8; }
    .contact-card a { color: var(--orange); font-weight: 800; }
    .contact-card a:hover { text-decoration: underline; }
    .w3w { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-weight: 700; }

    .form-field { margin-bottom: 16px; min-width: 0; }
    .form-field label {
      display: block; font-weight: 800; font-size: .88rem;
      margin-bottom: 6px; color: var(--text);
    }
    .form-field input,
    .form-field select,
    .form-field textarea {
      width: 100%;
      font-family: inherit; font-size: 1rem; font-weight: 600;
      padding: 12px 14px;
      border: 2px solid rgba(0,0,0,.12);
      border-radius: var(--radius-sm);
      background: var(--off-white);
      color: var(--text);
    }
    .form-field textarea { min-height: 130px; resize: vertical; }
    .form-field input:focus,
    .form-field select:focus,
    .form-field textarea:focus { outline: none; border-color: var(--sky); }
    .form-row {
      display: grid;
      /* minmax(0,1fr) — a plain 1fr lets a wide <select> push out of the form */
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }
    .hp-field { position: absolute; left: -9999px; }

    @media (max-width: 960px) {
      .nav-toggle { display: block; }
      .nav-links {
        display: none;
        position: absolute;
        top: 100%; left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: rgba(255,255,255,0.98);
        box-shadow: 0 10px 24px rgba(0,0,0,.12);
        padding: 8px 0 14px;
      }
      .nav-links.open { display: flex; }
      .nav-links li { padding: 0 24px; }
      .nav-links a { display: block; padding: 13px 0; font-size: 1rem; }
      .nav-cta { text-align: center; margin-top: 8px; }

      .page-hero { padding: 104px 24px 34px; min-height: 290px; }
      .page-section, .page-cta { padding: 56px 24px; }
      .form-row { grid-template-columns: 1fr; }
    }
