/*
Theme Name: FurryPaws Modern
Theme URI: https://furrypaws.au/
Author: FurryPaws
Description: Lightweight custom theme for FurryPaws Canberra.
Version: 1.0.0
Text Domain: furrypaws
*/

:root {
  --ink: #17342d;
  --muted: #5e716b;
  --forest: #1f5a49;
  --forest-dark: #153f34;
  --mint: #e5f1eb;
  --cream: #fffaf6;
  --paper: #ffffff;
  --peach: #ed8d83;
  --peach-soft: #fde9e5;
  --pink: #f5b6c4;
  --line: rgba(23, 52, 45, .12);
  --shadow: 0 24px 70px rgba(25, 65, 53, .12);
  --radius: 28px;
  --radius-sm: 18px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4 { margin: 0; line-height: 1.12; letter-spacing: -.035em; }
h1 { font-size: clamp(3rem, 5.4vw, 5.7rem); font-weight: 750; }
h2 { font-size: clamp(2.25rem, 4vw, 4rem); font-weight: 720; }
h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); }
p { margin: 0 0 1rem; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: clamp(72px, 10vw, 126px) 0; }
.section--white { background: var(--paper); }
.section--mint { background: var(--mint); }
.eyebrow {
  display: inline-flex; align-items: center; gap: 9px; margin-bottom: 20px;
  color: var(--forest); font-size: .79rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase;
}
.eyebrow::before { width: 28px; height: 2px; content: ""; background: var(--peach); }
.lede { max-width: 720px; margin-top: 20px; color: var(--muted); font-size: clamp(1.08rem, 2vw, 1.28rem); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 44px; }
.section-heading p { max-width: 520px; margin: 0; color: var(--muted); }

.site-header {
  position: sticky; z-index: 100; top: 0; border-bottom: 1px solid transparent;
  background: rgba(251, 248, 241, .92); backdrop-filter: blur(16px);
}
.site-header.is-scrolled { border-color: var(--line); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-size: 1.25rem; font-weight: 800; letter-spacing: -.035em; }
.brand img { width: 60px; height: 60px; object-fit: contain; }
.brand small { display: block; color: var(--muted); font-size: .66rem; font-weight: 650; letter-spacing: .02em; }
.nav-links { display: flex; align-items: center; gap: 30px; }
.nav-links > a { color: #38564e; font-size: .92rem; font-weight: 700; }
.nav-links > a:hover, .nav-links > a[aria-current="page"] { color: var(--peach); }
.nav-links > a.button, .nav-links > a.button:hover { color: var(--paper); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; border-radius: 50%; color: var(--paper); background: var(--forest); cursor: pointer; }

.button {
  display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px;
  padding: 0 24px; border: 1px solid var(--forest); border-radius: 999px; color: var(--paper);
  background: var(--forest); font-size: .91rem; font-weight: 800; transition: .2s ease;
}
.button:hover { background: var(--forest-dark); transform: translateY(-2px); }
.button--ghost { color: var(--forest); background: transparent; }
.button--ghost:hover { color: var(--paper); }
.button--peach { border-color: var(--peach); background: var(--peach); }

.hero { overflow: hidden; padding: clamp(26px, 4vw, 50px) 0 48px; }
.hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(34px, 4vw, 52px); }
.hero h1 em { color: var(--peach); font-style: normal; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 24px; color: var(--muted); font-size: .88rem; }
.hero-note strong { color: var(--ink); }
.hero-dot { width: 10px; height: 10px; border-radius: 50%; background: #58a67d; box-shadow: 0 0 0 6px rgba(88,166,125,.14); }
.hero-media { position: relative; }
.hero-photo { width: 100%; aspect-ratio: 16 / 10; border-radius: 110px 28px 110px 28px; object-fit: cover; object-position: 50% 55%; box-shadow: var(--shadow); }
.hero-card {
  position: absolute; right: -22px; bottom: 34px; width: 210px; padding: 20px; border-radius: var(--radius-sm);
  background: rgba(255,255,255,.94); box-shadow: 0 20px 50px rgba(23,52,45,.18); backdrop-filter: blur(10px);
}
.hero-card strong { display: block; color: var(--forest); font-size: 1.75rem; line-height: 1; }
.hero-card span { color: var(--muted); font-size: .78rem; font-weight: 700; }
.hero-heart { position: absolute; top: -15px; right: 18px; display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: white !important; background: var(--peach); animation: fp-float 3s ease-in-out infinite; }

.trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 14px 45px rgba(25,65,53,.07); }
.trust-item { padding: 28px; text-align: center; }
.trust-item + .trust-item { border-left: 1px solid var(--line); }
.trust-item strong { display: block; color: var(--forest); font-size: 1.7rem; line-height: 1.1; }
.trust-item span { color: var(--muted); font-size: .78rem; font-weight: 700; }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.card { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); transition: .25s ease; }
.card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.card-icon { display: grid; width: 56px; height: 56px; margin-bottom: 30px; place-items: center; border-radius: 18px; color: var(--forest); background: linear-gradient(145deg,var(--peach-soft),#fff); font-size: 1.45rem; transition: transform .3s ease; }
.card:hover .card-icon { transform: rotate(-7deg) scale(1.08); }
.card p { margin-top: 14px; color: var(--muted); font-size: .95rem; }
.card-link { display: inline-flex; margin-top: 18px; color: var(--forest); font-size: .86rem; font-weight: 800; }

.split { display: grid; grid-template-columns: 1.12fr .88fr; align-items: center; gap: clamp(42px, 6vw, 78px); }
.split-photo { width: 100%; max-height: 470px; aspect-ratio: 4 / 3; border-radius: 34px 90px 34px 90px; object-fit: cover; object-position: center; box-shadow: var(--shadow); }
.check-list { display: grid; gap: 14px; margin: 28px 0 34px; padding: 0; list-style: none; }
.check-list li { display: flex; gap: 13px; align-items: flex-start; }
.check-list li::before { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 50%; color: var(--paper); background: var(--forest); content: "✓"; font-size: .74rem; font-weight: 900; }

.page-hero { padding: clamp(65px, 9vw, 110px) 0 65px; text-align: center; }
.page-hero .lede { margin-inline: auto; }
.page-hero h1 { font-size: clamp(3rem, 6vw, 5.4rem); }
.anchor-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 30px; }
.anchor-nav a { padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); font-size: .83rem; font-weight: 750; }
.must-rules { max-width: 820px; margin: 30px auto 0; padding: 24px 30px 26px; border: 1px solid rgba(233,88,137,.42); border-radius: 22px; background: rgba(255,240,245,.72); box-shadow:0 10px 30px rgba(105,42,74,.035); }
.must-rules > strong { display: block; margin-bottom: 13px; color:#65324f; font-size:.94rem; font-weight:650; letter-spacing:.01em; text-align:center; }
.must-rules ul { display: grid; width:fit-content; max-width:100%; gap: 8px; margin: 0 auto; padding: 0; list-style:none; }
.must-rules li { position:relative; padding-left:22px; color:#5f4355; font-size:.94rem; font-weight:450; line-height:1.55; text-align:left; }
.must-rules li::before { position:absolute; left:3px; top:.72em; width:6px; height:6px; border-radius:50%; content:""; background:#ec7ca3; transform:translateY(-50%); }
.must-rules b { color:#5b2547; font-weight:750; }
.must-rules--compact { margin: 22px 0 26px; padding: 18px 20px; font-size: .9rem; }

.service-block { padding: 38px; border-radius: var(--radius); background: var(--paper); }
.service-block + .service-block { margin-top: 24px; }
.service-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.service-head p { max-width: 550px; margin: 8px 0 0; color: var(--muted); }
.availability { display: inline-flex; padding: 8px 13px; border-radius: 999px; color: var(--forest); background: var(--mint); font-size: .76rem; font-weight: 800; white-space: nowrap; }
.price-table { width: 100%; border-collapse: collapse; }
.price-table tr { border-top: 1px solid var(--line); }
.price-table td { padding: 18px 4px; vertical-align: top; }
.price-table td:first-child { padding-right: 25px; font-weight: 750; }
.price-table td:last-child { width: 150px; color: var(--forest); font-size: 1.12rem; font-weight: 850; text-align: right; white-space: nowrap; }
.price-table small { display: block; margin-top: 4px; color: var(--muted); font-weight: 500; }
.price-note { margin-top: 20px; padding: 18px 20px; border-left: 3px solid var(--peach); border-radius: 0 14px 14px 0; color: #65483e; background: var(--peach-soft); font-size: .9rem; }

.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; counter-reset: steps; }
.step { padding: 30px; border-radius: var(--radius); background: var(--paper); counter-increment: steps; }
.step::before { display: block; margin-bottom: 38px; color: var(--peach); content: "0" counter(steps); font-size: .8rem; font-weight: 900; letter-spacing: .1em; }
.step p { margin: 12px 0 0; color: var(--muted); }
details { border-top: 1px solid var(--line); }
details:last-child { border-bottom: 1px solid var(--line); }
summary { padding: 22px 0; cursor: pointer; font-weight: 800; list-style: none; }
details p { max-width: 850px; padding: 0 0 22px; color: var(--muted); }

.gallery-grid { columns: 4 250px; column-gap: 14px; }
.gallery-grid figure { overflow: hidden; break-inside: avoid; margin: 0 0 14px; border-radius: 20px; background: var(--mint); }
.gallery-grid img { width: 100%; height: auto; object-fit: contain; transition: transform .4s ease; }
.gallery-grid figure:hover img { transform: scale(1.03); }

@keyframes fp-float { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-6px) rotate(5deg); } }

.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 24px; }
.contact-panel { padding: clamp(28px, 5vw, 48px); border-radius: var(--radius); background: var(--paper); }
.contact-panel--dark { color: var(--paper); background: var(--forest); }
.contact-panel--dark p { color: rgba(255,255,255,.72); }
.contact-detail { padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.contact-detail span { display: block; color: rgba(255,255,255,.65); font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.contact-detail strong { display: block; margin-top: 5px; font-size: 1.35rem; }
.map-wrap { overflow: hidden; margin-top: 24px; border-radius: var(--radius); background: var(--mint); }
.map-wrap iframe { display: block; width: 100%; height: 430px; border: 0; }

.wpforms-container .wpforms-field { padding: 8px 0 !important; }
.wpforms-container input, .wpforms-container select, .wpforms-container textarea {
  width: 100% !important; max-width: none !important; min-height: 50px !important; padding: 12px 15px !important;
  border: 1px solid var(--line) !important; border-radius: 12px !important; background: #fcfbf7 !important;
}
.wpforms-container textarea { min-height: 120px !important; }
.wpforms-container button[type=submit] { min-height: 52px !important; padding: 0 24px !important; border: 0 !important; border-radius: 999px !important; color: white !important; background: var(--forest) !important; font-weight: 800 !important; }
.wpforms-container .fp-half { float: left !important; clear: none !important; width: calc(50% - 8px) !important; }
.wpforms-container #wpforms-10-field_12-container,
.wpforms-container #wpforms-10-field_1-container { margin-left: 16px !important; }
.wpforms-container #wpforms-10-field_9-container { clear: both !important; }

.cta { padding: clamp(48px, 7vw, 80px); border-radius: 40px; color: var(--paper); background: var(--forest); text-align: center; }
.cta p { max-width: 600px; margin: 20px auto 30px; color: rgba(255,255,255,.72); }
.section > .container.cta:not(.home-cta) { border:1px solid rgba(233,88,137,.14); color:var(--ink); background:linear-gradient(135deg,#fff4f7 0%,#ffe8f0 58%,#fff7f9 100%); box-shadow:0 18px 52px rgba(105,42,74,.08); }
.section > .container.cta:not(.home-cta) p { color:var(--muted); }
.site-footer { padding: 60px 0 30px; color: #d8e7e1; background: #102e27; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr .7fr; gap: 50px; }
.footer-brand { max-width: 420px; }
.footer-brand p { margin-top: 18px; color: #9fb8af; }
.footer-col strong { display: block; margin-bottom: 14px; color: white; }
.footer-col a { display: block; margin: 8px 0; color: #b8ccc5; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 50px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.1); color: #8da89f; font-size: .76rem; }

@media (max-width: 900px) {
  .hero-grid, .split, .contact-grid { grid-template-columns: 1fr; }
  .hero-copy { order: 1; }
  .hero-media { width: min(580px, 100%); margin-inline: auto; }
  .hero-photo { aspect-ratio: 5 / 4; border-radius: 100px 100px var(--radius) var(--radius); }
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
  .trust-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .cards, .steps { grid-template-columns: 1fr 1fr; }
  .gallery-grid { columns: 3 180px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  body { font-size: 16px; }
  .container { width: min(calc(100% - 28px), var(--max)); }
  .nav-wrap { min-height: 72px; }
  .brand img { width: 52px; height: 52px; }
  .brand small { display: none; }
  .menu-toggle { display: grid; place-items: center; }
  .nav-links { position: absolute; top: 72px; right: 14px; left: 14px; display: none; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); box-shadow: var(--shadow); }
  .nav-links.is-open { display: grid; }
  .nav-links .button { margin-top: 6px; }
  h1 { font-size: clamp(2.8rem, 14vw, 4.2rem); }
  .hero { padding-top: 45px; }
  .hero-grid { gap: 48px; }
  .hero-copy { order: 0; }
  .hero-media { order: 1; }
  .hero-card { right: 10px; bottom: -22px; }
  .trust-strip, .cards, .steps, .footer-grid { grid-template-columns: 1fr; }
  .trust-item + .trust-item { border-top: 1px solid var(--line); border-left: 0; }
  .section-heading, .service-head, .footer-bottom { align-items: flex-start; flex-direction: column; }
  .service-block { padding: 24px 18px; }
  .service-head { display: block; }
  .availability { margin-top: 14px; }
  .price-table td { display: block; width: 100% !important; padding: 12px 2px 4px; text-align: left !important; white-space: normal !important; }
  .price-table td:last-child { padding: 0 2px 14px; }
  .gallery-grid { columns: 2; column-gap: 8px; }
  .gallery-grid figure { margin-bottom: 8px; border-radius: 14px; }
  .contact-panel { padding: 25px 20px; }
  .wpforms-container .fp-half { float: none !important; width: 100% !important; }
  .wpforms-container #wpforms-10-field_12-container,
  .wpforms-container #wpforms-10-field_1-container { margin-left: 0 !important; }
  .map-wrap iframe { height: 330px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* 2026 pink studio redesign */
:root {
  --ink: #371630;
  --muted: #65566f;
  --forest: #d94778;
  --forest-dark: #b72f60;
  --mint: #fff1f5;
  --cream: #fff9fb;
  --paper: #ffffff;
  --peach: #eb5f8d;
  --peach-soft: #ffe7ef;
  --pink: #f7b6ca;
  --line: rgba(99, 39, 76, .12);
  --shadow: 0 24px 70px rgba(110, 42, 77, .12);
  --radius: 26px;
  --max: 1240px;
}
body { background: radial-gradient(circle at 8% 2%, #fff0f5 0, transparent 28%), var(--cream); }
html, body { overflow-x: hidden; }
h1, h2, h3 { font-family: "Trebuchet MS", "Arial Rounded MT Bold", "Avenir Next", sans-serif; color: var(--ink); }
.section { padding: clamp(62px, 8vw, 102px) 0; }
.eyebrow { margin-bottom: 14px; color: #a54167; }
.eyebrow::before { display: none; }
.eyebrow i { color: var(--peach); font-size: 1.25rem; font-style: normal; }
.site-header { background: rgba(255,250,252,.93); }
.nav-wrap { min-height: 84px; }
.brand { gap: 10px; color: var(--peach); font-family: "Trebuchet MS", sans-serif; font-size: 1.38rem; }
.brand img { width: 68px; height: 68px; object-fit: contain; }
.brand b { font-weight: 900; }
.brand small { color: #7b6471; font-family: "Segoe UI", sans-serif; font-size: .59rem; }
.nav-links > a { color: #473c65; }
.nav-links > a:hover, .nav-links > a[aria-current="page"] { color: var(--peach); }
.nav-links > a[aria-current="page"] { box-shadow: inset 0 -2px var(--peach); }
.button { min-height: 48px; border-color: var(--peach); background: linear-gradient(135deg,#f2789f,#e94d83); box-shadow: 0 10px 25px rgba(226,68,121,.18); }
.button:hover { background: linear-gradient(135deg,#e94d83,#cf386e); }
.button--ghost { color: var(--peach); background: white; }
.button--ghost:hover { color: white; }

.hero { padding: 18px 0 20px; }
.hero-grid { grid-template-columns: .9fr 1.25fr; gap: 8px; min-height: 500px; border-radius: 0 0 56px 56px; background: linear-gradient(115deg,#fff1f5 0 43%,#ffe8ef 43%); box-shadow: 0 20px 65px rgba(122,51,85,.08); }
.hero-copy { z-index: 2; padding: 45px 0 46px 54px; }
.hero h1 { font-size: clamp(2.75rem,4.6vw,4.85rem); line-height: 1.02; }
.hero h1 em { color: var(--peach); }
.hero .lede { max-width: 520px; font-size: 1.08rem; line-height: 1.5; }
.hero-actions { margin-top: 22px; }
.hero-note { margin-top: 18px; }
.hero-media { align-self: stretch; overflow: hidden; border-radius: 120px 0 56px 110px; }
.hero-photo { height: 100%; min-height: 500px; aspect-ratio: auto; border-radius: inherit; object-position: 50% 48%; box-shadow: none; }
.hero-media::after { position:absolute; inset:auto 0 0; height:28%; content:""; background:linear-gradient(transparent,rgba(49,19,38,.14)); pointer-events:none; }
.hero-card { z-index:2; right:24px; bottom:24px; width:190px; padding:17px; }
.hero-card strong { color:var(--ink); }
.hero-scribble { position:absolute; z-index:2; top:42px; right:22px; color:white; font-family:"Segoe Print","Comic Sans MS",cursive; font-size:1rem; line-height:1.25; text-align:center; transform:rotate(-5deg); text-shadow:0 2px 12px rgba(0,0,0,.35); }

.trust-strip { position:relative; z-index:3; grid-template-columns:repeat(4,1fr); width:calc(100% - 80px); margin:-2px auto 0; border:0; border-radius:25px; box-shadow:0 14px 42px rgba(89,35,65,.12); }
.trust-item { position:relative; display:grid; grid-template-columns:42px auto; grid-template-rows:auto auto; align-items:center; justify-content:center; padding:21px 16px; text-align:left; }
.trust-icon { grid-row:1 / 3; color:var(--peach)!important; font-size:1.8rem!important; }
.trust-item strong { color:var(--ink); font-size:1.24rem; }
.trust-item span:last-child { font-size:.72rem; }

.section-heading { display:block; margin-bottom:32px; text-align:center; }
.section-heading p { max-width:720px; margin:10px auto 0; }
.cards { gap:20px; }
.card { padding:32px 28px 28px; text-align:center; border:0; }
.card--daycare { background:linear-gradient(145deg,#ffe8ee,#fff7f8); }
.card--boarding { background:linear-gradient(145deg,#f3e8ff,#fff8ff); }
.card--grooming { background:linear-gradient(145deg,#fff0e7,#fff9f4); }
.card-icon { width:64px; height:64px; margin:0 auto 15px; background:transparent; }
.card-icon svg { width:54px; height:54px; fill:var(--peach); }
.card p { min-height:72px; margin:10px auto 0; }
.card-link { width:34px; height:34px; margin:12px auto 0; align-items:center; justify-content:center; border-radius:50%; color:white; background:var(--peach); font-size:1.1rem; }

.section--white { background:#fff; }
.split { grid-template-columns:1fr 1fr; gap:36px; }
.split-photo { max-height:430px; border-radius:34px; }
.check-list { grid-template-columns:1fr 1fr; gap:14px 24px; }
.check-list li::before { background:var(--peach); }
.home-cta-section { padding-bottom:0; overflow:hidden; }
.home-cta { position:relative; min-height:300px; display:flex; align-items:center; justify-content:flex-end; padding:55px 70px; background:linear-gradient(120deg,#ffe8f0,#fff4f7); color:var(--ink); text-align:center; }
.home-cta .cta-copy { width:67%; }
.home-cta p { color:var(--muted); }
.cta-dog { --dog-base-transform:translateX(0); position:absolute; left:2%; bottom:0; width:min(34%,340px); max-height:330px; object-fit:contain; object-position:bottom; transform:var(--dog-base-transform); transform-origin:50% 92%; filter:drop-shadow(0 16px 18px rgba(73,31,54,.15)); }
.home-cta:hover .cta-dog,.home-cta:focus-within .cta-dog,.cta-dog:hover { animation:fp-wiggle .62s ease-in-out; }
@keyframes fp-wiggle { 0%,100%{transform:var(--dog-base-transform) rotate(0)} 25%{transform:var(--dog-base-transform) rotate(-2.5deg)} 70%{transform:var(--dog-base-transform) rotate(2.5deg)} }

.page-hero { padding:58px 0 45px; background:linear-gradient(180deg,#fff1f5,transparent); }
.page-hero h1 { font-size:clamp(2.8rem,5vw,4.7rem); }
.section--mint { background:#fff5f8; }
.service-block,.step,.contact-panel { box-shadow:0 12px 38px rgba(105,42,74,.07); }
.availability { color:#a33160; background:#ffe4ed; }
.must-rules { border-color:#f3a3bd; background:#fff0f5; }
.contact-panel--dark { color:var(--ink); background:linear-gradient(155deg,#ffdce8,#fff0f4); }
.contact-panel--dark p,.contact-detail span { color:#765569; }
.contact-detail { border-color:rgba(100,41,73,.13); }
.map-wrap { background:#ffe9f0; }
.site-footer { color:#5d4051; background:#fff0f4; }
.footer-brand p,.footer-col a { color:#775d6c; }
.footer-col strong { color:var(--ink); }
.footer-bottom { border-color:rgba(100,41,73,.12); color:#8a6c7c; }

/* WPForms: keep native controls above neighbouring fields and prevent full-width radio overlays. */
.wpforms-container .wpforms-field { position:relative; z-index:1; }
.wpforms-container input[type="radio"],.wpforms-container input[type="checkbox"] { width:20px!important; min-height:20px!important; height:20px!important; padding:0!important; margin:0 8px 0 0!important; accent-color:var(--peach); }
.wpforms-container .wpforms-field-radio ul { display:flex!important; gap:12px; margin:0!important; padding:0!important; }
.wpforms-container .wpforms-field-radio li { display:flex!important; align-items:center; min-height:50px; margin:0!important; padding:0 18px!important; border:1px solid var(--line); border-radius:12px; background:#fffafb; cursor:pointer; }
.wpforms-container .wpforms-field-radio label { cursor:pointer; }
.wpforms-container input[type="number"] { position:relative; z-index:3; pointer-events:auto!important; }
.wpforms-container input,.wpforms-container select,.wpforms-container textarea { border-color:rgba(100,41,73,.18)!important; background:#fffafb!important; }
.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus { border-color:var(--peach)!important; box-shadow:0 0 0 3px rgba(235,95,141,.12)!important; outline:0!important; }
.wpforms-container button[type=submit] { background:linear-gradient(135deg,#f2789f,#e94d83)!important; }

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr; min-height:0; background:#fff0f4;}
  .hero-copy{padding:38px 32px 12px;}
  .hero-media{width:100%; border-radius:80px 80px 42px 42px;}
  .hero-photo{min-height:390px; height:390px;}
  .trust-strip{width:calc(100% - 30px); grid-template-columns:repeat(2,1fr);}
  .trust-item:nth-child(3){border-left:1px solid var(--line);}
  .trust-item:nth-child(n+3){border-top:1px solid var(--line);}
  .home-cta .cta-copy{width:70%; margin-left:auto;}
}
@media(max-width:680px){
  .nav-wrap{min-height:70px}.brand img{width:54px;height:54px}.brand{font-size:1.18rem}.nav-links{top:70px}
  .hero{padding-top:10px}.hero-grid{border-radius:0 0 32px 32px}.hero-copy{padding:28px 20px 6px}.hero h1{font-size:clamp(2.55rem,12vw,3.55rem)}
  .hero-media{border-radius:55px 55px 30px 30px}.hero-photo{height:320px;min-height:320px;object-position:52% 50%}.hero-scribble{display:none}.hero-card{right:12px;bottom:12px;width:168px}
  .trust-strip{grid-template-columns:1fr 1fr;width:calc(100% - 20px)}.trust-item{grid-template-columns:34px auto;padding:16px 9px}.trust-item:nth-child(3){border-left:0}.trust-item:nth-child(odd){border-left:0}.trust-item:nth-child(even){border-left:1px solid var(--line)}
  .cards{grid-template-columns:1fr}.card p{min-height:0}.split{grid-template-columns:1fr}.check-list{grid-template-columns:1fr}
  .home-cta{min-height:520px;display:block;padding:42px 22px 250px}.home-cta .cta-copy{width:100%;margin:0}.cta-dog{--dog-base-transform:translateX(-50%);left:50%;width:260px;max-height:260px}
  .wpforms-container .wpforms-field-radio ul{display:grid!important;grid-template-columns:1fr 1fr}.wpforms-container .wpforms-field-radio li{padding:0 12px!important}
}

/* Precision layout pass based on the supplied art direction */
.home .site-header { box-shadow: 0 1px 0 rgba(88,34,67,.06); }
.hero-grid { position:relative; display:block; height:520px; overflow:hidden; isolation:isolate; }
.hero-copy { position:relative; z-index:4; width:50%; height:100%; padding:43px 0 36px 54px; background:transparent; }
.hero-copy::after { display:none; }
.hero-media { position:absolute; z-index:1; inset:0 0 0 33%; width:67%; height:100%; border-radius:0; }
.hero-photo { width:100%; height:100%; min-height:0; border-radius:0; object-position:50% 52%; }
.hero-media::before { display:none; }
.hero-curve { position:absolute; z-index:3; inset:0; width:100%; height:100%; fill:#fff0f5; pointer-events:none; }
.hero-wave { position:absolute; z-index:3; right:0; bottom:-1px; width:100%; height:62px; fill:#ffe6ef; pointer-events:none; }
.hero-card { bottom:42px; width:220px; }
.hero-card > span:not(.hero-heart) { display:block; margin-top:7px; white-space:nowrap; font-size:.74rem; }
.hero-card .hero-heart { width:40px; height:40px; top:-18px; right:16px; font-size:1.15rem; line-height:1; }
.deco { position:absolute; z-index:5; pointer-events:none; object-fit:contain; }
.deco--hero-paw,.deco--services-left,.deco--services-right { pointer-events:auto; cursor:default; }
.deco--hero-paw { --paw-rotate:-11deg; left:12px; bottom:16px; width:72px; height:72px; padding:0; opacity:.48; transform:rotate(var(--paw-rotate)); transform-origin:center; }
.deco--hero-heart { top:20px; right:20px; width:34px; opacity:.8; transform:rotate(11deg); }
.trust-strip { margin-top:-30px; }
.trust-icon { align-self:center; justify-self:center; width:38px!important; height:38px!important; object-fit:contain; line-height:1; }
.trust-item > span.trust-icon { display:grid; place-items:center; padding:0 0 2px; font-size:1.8rem!important; line-height:1!important; }

.home .section:not(.section--white):not(.home-cta-section) .container { position:relative; }
.deco--services-left { --paw-rotate:-12deg; left:34px; top:28px; width:72px; height:72px; padding:0; opacity:.34; transform:rotate(var(--paw-rotate)); }
.deco--services-right { --paw-rotate:11deg; right:34px; top:34px; width:78px; height:78px; padding:0; opacity:.36; transform:rotate(var(--paw-rotate)); }
.hero-grid:hover .deco--hero-paw,
.home .section:not(.section--white):not(.home-cta-section):hover .deco--services-left,
.home .section:not(.section--white):not(.home-cta-section):hover .deco--services-right,
.deco--hero-paw:hover,.deco--services-left:hover,.deco--services-right:hover { animation:fp-paw-wave .72s ease-in-out; }
@keyframes fp-paw-wave { 0%,100%{transform:rotate(var(--paw-rotate)) scale(1)} 38%{transform:rotate(calc(var(--paw-rotate) + 13deg)) scale(1.12)} 70%{transform:rotate(calc(var(--paw-rotate) - 7deg)) scale(1.04)} }
.card { overflow:hidden; min-height:260px; }
.card::after { position:absolute; right:-26px; bottom:-35px; width:90px; height:90px; border-radius:50%; content:""; background:rgba(255,255,255,.4); }
.card { position:relative; }
.card-icon { width:78px; height:70px; }
.card-icon img { width:100%; height:100%; object-fit:contain; }

.section--white { position:relative; overflow:hidden; }
.split { position:relative; align-items:stretch; gap:26px; }
.split-media { position:relative; min-height:430px; overflow:hidden; border-radius:48px 110px 54px 110px; background:#ffe9f0; }
.split-photo { width:100%; height:100%; max-height:none; aspect-ratio:auto; border-radius:inherit; object-fit:cover; }
.photo-note { position:absolute; left:20px; bottom:22px; width:105px; height:105px; display:grid; place-items:center; border-radius:50%; color:#df477a; background:rgba(255,244,248,.92); font-family:"Segoe Print","Comic Sans MS",cursive; font-size:.88rem; line-height:1.15; text-align:center; transform:rotate(-8deg); }
.split > div:last-child { position:relative; align-self:center; padding:28px 46px 28px 22px; }
.deco--leaves { right:-45px; top:0; width:88px; opacity:.72; transform:rotate(8deg); }
.check-list li { font-size:.9rem; }

.home-cta-section { position:relative; padding-top:10px; }
.home-cta { min-height:380px; overflow:hidden; border-radius:0; background:linear-gradient(115deg,#ffe4ed,#fff2f6 60%,#ffd9e7); }
.home-cta::before { display:none; }
.home-cta::after { position:absolute; right:-100px; bottom:-120px; width:330px; height:330px; border-radius:50%; content:""; background:rgba(250,158,189,.22); }
.cta-top-curve { position:absolute; z-index:2; inset:0 0 auto; width:100%; height:100px; fill:#fff; pointer-events:none; }
.cta-dog { z-index:3; left:40px; bottom:0; width:350px; height:350px; max-height:none; object-fit:contain; object-position:center bottom; }
.home-cta .cta-copy { position:relative; z-index:4; width:67%; padding-left:50px; }
.deco--cta-heart { right:55px; bottom:30px; width:130px; opacity:.34; transform:rotate(10deg); }
.cta-note { position:absolute; z-index:5; color:#e95889; font-family:"Segoe Print","Comic Sans MS",cursive; font-size:.9rem; line-height:1.25; transform:rotate(-7deg); }
.cta-note--left { left:22px; bottom:58px; text-align:center; }
.cta-note--right { right:47px; bottom:63px; color:#7b315d; transform:rotate(-7deg); text-align:center; }

@media (max-width:900px){
  .hero-grid{height:auto;display:flex;flex-direction:column;}
  .hero-curve,.hero-wave{display:none}
  .hero-copy{width:100%;height:auto;padding:38px 32px 24px;background:#fff0f5;}
  .hero-copy::after{display:none}
  .hero-media{position:relative;inset:auto;width:100%;height:420px;border-radius:80px 80px 34px 34px}
  .hero-photo{height:100%}.hero-media::before{bottom:-85px}
  .deco--hero-paw{bottom:435px}.deco--hero-heart{top:auto;bottom:385px}
  .trust-strip{margin-top:-18px}
  .split-media{min-height:390px}
  .cta-dog{left:5px;width:320px;height:320px}.home-cta .cta-copy{width:72%;padding-left:70px}.deco--cta-heart{width:95px;right:20px}
}
@media (min-width:901px){
  .hero h1 { font-size:clamp(3rem,3.65vw,3.65rem); letter-spacing:-.045em; }
  .hero-copy { width:50%; }
  .hero-media { left:33%; width:67%; }
  .hero-note { margin-left:62px; }
}
@media (max-width:680px){
  .hero-copy{padding:30px 20px 22px}.hero h1{font-size:clamp(2.25rem,10.2vw,2.55rem);letter-spacing:-.055em}.hero-media{height:330px;border-radius:58px 58px 28px 28px}.hero-media::before{height:80px;bottom:-55px}.hero-card{bottom:18px}
  .deco--hero-paw{display:none}.deco--hero-heart{width:26px;bottom:298px;right:12px}.trust-strip{margin-top:-10px}
  .deco--services-left,.deco--services-right{top:-34px;width:40px;height:40px;opacity:.3}.deco--services-left{left:42px}.deco--services-right{right:42px}
  .split-media{min-height:280px;border-radius:32px 70px 32px 70px}.split > div:last-child{padding:16px 3px 20px}.deco--leaves{right:-5px;top:-18px;width:62px}.photo-note{width:80px;height:80px;font-size:.72rem}
  .home-cta{min-height:650px;padding:48px 20px 345px;border-radius:0}.home-cta .cta-copy{width:100%;padding:0}.cta-top-curve{height:54px}.cta-dog{--dog-base-transform:translateX(-50%);left:50%;bottom:0;width:330px;height:330px;max-height:none}.deco--cta-heart{right:-10px;bottom:35px;width:95px}.cta-note--left{left:12px;bottom:55px}.cta-note--right{right:8px;bottom:65px}
}

/* Compact, touch-safe mobile layout */
@media (max-width:680px){
  body{font-size:16px;line-height:1.6}
  .container{width:min(calc(100% - 28px),var(--max))}
  .section{padding:52px 0}
  .hero{padding-top:8px}
  .hero-copy{padding:26px 20px 20px}
  .hero .lede{font-size:1rem;line-height:1.55}
  .hero-actions{margin-top:18px;gap:9px}
  .hero-note{margin-top:16px;font-size:.8rem;line-height:1.45}
  .hero-media{height:300px;border-radius:44px 44px 26px 26px}
  .hero-photo{height:300px;min-height:300px;object-position:50% 56%}
  .hero-card{top:12px;right:auto;bottom:auto;left:12px;width:176px;padding:13px 14px;border-radius:18px}
  .hero-card strong{font-size:1.45rem}
  .hero-card > span:not(.hero-heart){margin-top:5px;font-size:.65rem}
  .hero-card .hero-heart{top:-10px;right:-10px;width:32px;height:32px;font-size:.9rem}
  .trust-strip{margin-top:-8px}
  .trust-item{grid-template-columns:30px auto;padding:13px 8px}
  .trust-icon{width:30px!important;height:30px!important}
  .trust-item > span.trust-icon{font-size:1.45rem!important}
  .trust-item strong{font-size:1rem}
  .trust-item span:last-child{font-size:.62rem;line-height:1.3}
  .section-heading{margin-bottom:24px}
  .section-heading h2{font-size:clamp(1.85rem,8.5vw,2.2rem);line-height:1.08}
  .section-heading p{font-size:.92rem;line-height:1.55}
  .cards{gap:12px}
  .card{min-height:0;padding:24px 20px 22px;border-radius:24px}
  .card-icon{width:62px;height:58px;margin-bottom:10px;transform:none!important}
  .card-icon img{transform:none!important}
  .card h3{font-size:1.4rem}
  .card p{min-height:0;margin-top:7px;font-size:.91rem;line-height:1.5}
  .card-link{margin-top:10px}
}

@media (any-hover:none){
  .card:hover{transform:none;box-shadow:none}
  .card:hover .card-icon{transform:none}
  .hero-grid:hover .deco--hero-paw,
  .home .section:not(.section--white):not(.home-cta-section):hover .deco--services-left,
  .home .section:not(.section--white):not(.home-cta-section):hover .deco--services-right{animation:none}
  .home-cta:hover .cta-dog,.home-cta:focus-within .cta-dog,.cta-dog:hover{animation:none}
}

/* Explicit mouse/pen animations. Keep these after the global reduced-motion
   reset so a hybrid touch laptop does not accidentally suppress them. */
@media (hover:hover), (any-hover:hover){
  .hero-grid:hover .deco--hero-paw,
  .home .section:not(.section--white):not(.home-cta-section):hover .deco--services-left,
  .home .section:not(.section--white):not(.home-cta-section):hover .deco--services-right,
  .deco--hero-paw:hover,.deco--services-left:hover,.deco--services-right:hover{
    animation:fp-paw-wave .72s ease-in-out !important;
  }
  .home-cta:hover .cta-dog,.home-cta:focus-within .cta-dog,.cta-dog:hover{
    animation:fp-wiggle .62s ease-in-out !important;
  }
}
