/* Reset (replaces Tailwind preflight from the original build) */
*, ::before, ::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }

:root {
  --cream: #f7f1e8;
  --paper: #fffaf3;
  --cocoa: #3f2922;
  --plum: #573454;
  --blush: #dca79b;
  --peach: #efc9ad;
  --sage: #87937a;
  --line: #d8c7b8;
  --font-display: "Fraunces", "Iowan Old Style", serif;
  --font-body: "Manrope", "Avenir Next", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html, body { overflow-x: clip; }
body { margin: 0; background: var(--cream); color: var(--cocoa); font-family: var(--font-body); font-size: 16px; line-height: 1.55; font-weight: 450; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.announcement { background: var(--plum); color: #fff8ed; text-align: center; text-transform: uppercase; font-size: 11px; letter-spacing: .23em; padding: 9px 16px; }

.nav { height: 96px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; font-family: var(--font-display); font-size: 30px; font-weight: 580; letter-spacing: -.045em; line-height: .9; }
.brand small { display: block; font-family: var(--font-body); font-size: 8px; font-weight: 700; font-style: normal; text-transform: uppercase; letter-spacing: .22em; margin: 7px 0 0 2px; }
.brand-mark { width: 44px; height: 44px; border: 1px solid var(--blush); border-radius: 50% 50% 48% 52%; display: grid; place-items: center; font-size: 23px; background: var(--paper); }
.nav-links { display: flex; gap: 34px; font-size: 13px; }
.nav-links a { position: relative; }
.nav-links a::after { content: ""; position: absolute; height: 1px; left: 0; right: 100%; bottom: -5px; background: var(--cocoa); transition: right .2s ease; }
.nav-links a:hover::after { right: 0; }
.nav > .button { justify-self: end; }

.button { border: 1px solid var(--plum); background: var(--plum); color: #fff; display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 52px; padding: 0 24px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; transition: transform .2s ease, background .2s ease; cursor: pointer; }
.button:hover { transform: translateY(-2px); background: #6a4168; }
.button-small { min-height: 43px; padding-inline: 20px; font-size: 10px; }
.text-link { display: inline-flex; align-items: center; gap: 11px; border-bottom: 1px solid currentColor; padding-bottom: 4px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }

.hero { min-height: 650px; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 72px; padding-top: 32px; padding-bottom: 82px; }
.eyebrow { margin: 0 0 20px; color: var(--plum); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .24em; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--font-display); font-weight: 590; line-height: .94; letter-spacing: -.055em; }
h1 em, h2 em { font-variation-settings: "SOFT" 100, "WONK" 1; }
h1 { font-size: clamp(64px, 7.5vw, 105px); margin-bottom: 30px; }
h1 em, h2 em { color: var(--plum); font-weight: 400; }
.hero-intro { max-width: 490px; font-family: var(--font-body); font-size: 17px; font-weight: 470; line-height: 1.7; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin: 36px 0 42px; }
.hero-note { display: flex; gap: 14px; align-items: center; font-size: 12px; color: #735e56; }
.hero-note p { margin: 0; }.hero-note strong { color: var(--cocoa); }
.paw-dot { width: 47px; height: 47px; display: grid; place-items: center; background: var(--peach); border-radius: 50%; font-size: 18px; }
.hero-visual { position: relative; min-height: 550px; }
.hero-photo-wrap { width: 82%; height: 550px; margin-left: auto; border-radius: 48% 48% 8px 8px; overflow: hidden; transform: rotate(1.6deg); box-shadow: 0 24px 60px rgba(71, 45, 35, .16); }
.hero-photo-wrap img { height: 100%; object-fit: cover; object-position: 52% center; }
.hero-visual::before { content: ""; position: absolute; width: 70%; height: 88%; right: -24px; top: 40px; border: 1px solid var(--blush); border-radius: 50% 50% 10px 10px; transform: rotate(7deg); }
.scribble { position: absolute; left: 0; top: 82px; background: var(--peach); color: var(--plum); font-family: var(--font-display); font-style: italic; font-weight: 520; font-size: 22px; line-height: 1; width: 106px; height: 106px; border-radius: 47% 53% 51% 49%; display: grid; place-items: center; text-align: center; transform: rotate(-9deg); }
.quality-badge { position: absolute; right: -8px; bottom: -18px; width: 132px; height: 132px; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; align-content: center; text-align: center; text-transform: uppercase; letter-spacing: .1em; font-size: 10px; line-height: 1.6; border: 8px solid var(--cream); }
.quality-badge span { color: var(--peach); font-size: 22px; }

.trust-strip { background: var(--cocoa); color: #fff8ef; padding: 18px 0; overflow: hidden; }
.trust-row { display: flex; align-items: center; text-transform: uppercase; letter-spacing: .18em; font-size: 10px; white-space: nowrap; }.trust-row i { color: var(--blush); }
.trust-seq { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 24px; }
.loop-copy { display: none; }.loop-sep { display: none; }
.section { padding-top: 120px; padding-bottom: 120px; }
.section-heading h2 { font-size: clamp(48px, 6vw, 76px); margin-bottom: 0; }
.split-heading { display: grid; grid-template-columns: 1.4fr .6fr; gap: 80px; align-items: end; margin-bottom: 64px; }
.split-heading > p { max-width: 400px; color: #75645d; line-height: 1.75; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-card { position: relative; min-height: 360px; padding: 46px 42px; border-right: 1px solid var(--line); }
.service-card:last-child { border-right: 0; }.service-number { position: absolute; top: 24px; right: 25px; font-size: 10px; letter-spacing: .16em; color: #9b8980; }
.service-icon { font-family: var(--font-display); font-size: 56px; color: var(--blush); height: 82px; }
.service-card h3, .price-card h3, .process-grid h3 { font-family: var(--font-display); font-size: 27px; line-height: 1.1; letter-spacing: -.035em; margin: 0 0 16px; font-weight: 590; }
.service-card p { color: #75645d; min-height: 80px; }.service-card > strong { font-family: var(--font-display); font-weight: 620; font-size: 20px; color: var(--plum); }
.addons { margin-top: 26px; padding: 22px 28px; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.addons p { margin: 0; font-size: 12px; }.addons span { color: var(--blush); font-size: 18px; margin-right: 4px; }.addons strong { display: block; margin: 5px 0 0 20px; font-family: var(--font-display); font-weight: 620; font-size: 18px; }

.gallery-section { background: var(--plum); color: #fffaf2; padding: 104px 0; overflow: hidden; }
.gallery-grid { display: grid; grid-template-columns: .78fr 1fr .62fr; gap: 34px; align-items: center; }
.gallery-copy { padding-right: 24px; }.gallery-copy .eyebrow { color: var(--peach); }.gallery-copy h2 { font-size: clamp(50px, 5.5vw, 76px); }.gallery-copy h2 em { color: var(--peach); }.gallery-copy > p:not(.eyebrow) { color: #e6d9df; line-height: 1.8; }.light-link { margin-top: 15px; }
.gallery-main, .gallery-small { margin: 0; position: relative; }.gallery-main { transform: rotate(-1.5deg); }.gallery-small { transform: rotate(2.5deg); align-self: end; }
.gallery-main img { height: 540px; object-fit: cover; }.gallery-small img { height: 390px; object-fit: cover; }
figcaption { font-family: var(--font-display); font-size: 13px; font-style: italic; font-weight: 500; text-align: center; padding-top: 13px; color: #eadde3; }

.pricing-section { background: #fbf7f0; padding: 112px 0 118px; }
.pricing-header { display: grid; grid-template-columns: 1.15fr .85fr; gap: 100px; align-items: end; padding-bottom: 54px; border-bottom: 1px solid var(--line); margin-bottom: 30px; }
.pricing-header h2 { font-size: clamp(52px, 5.7vw, 78px); margin: 0; }
.pricing-intro { max-width: 460px; padding-bottom: 7px; }
.pricing-intro > span { display: inline-block; color: var(--plum); background: #eee2e7; border-radius: 999px; padding: 7px 12px; margin-bottom: 15px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .15em; }
.pricing-intro p { color: #6f5d56; line-height: 1.75; margin-bottom: 20px; }
.pricing-intro .text-link { color: var(--plum); }
.pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.price-card { --card-accent: var(--plum); position: relative; overflow: hidden; border: 1px solid #d9c9ba; border-radius: 18px; padding: 27px 28px 24px; background: #fffdf9; box-shadow: 0 1px 0 rgba(63,41,34,.03); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.price-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--card-accent); }
.price-accent-1 { --card-accent: #d19a36; }.price-accent-2 { --card-accent: var(--plum); }.price-accent-3 { --card-accent: var(--sage); }
.price-card:hover { transform: translateY(-3px); border-color: #c7ae9a; box-shadow: 0 16px 34px rgba(63,41,34,.08); }
.price-card-head { display: grid; grid-template-columns: 38px 1fr auto; gap: 15px; align-items: start; padding-bottom: 19px; }
.breed-number { width: 38px; height: 38px; border: 1px solid var(--card-accent); color: var(--card-accent); border-radius: 50%; display: grid; place-items: center; font: 750 10px var(--font-body); letter-spacing: .08em; }
.price-card h3 { min-height: 0; font-size: 25px; line-height: 1.08; margin: 1px 0 7px; }
.service-label { display: inline-block; color: #725065; background: #f3eaf0; border-radius: 999px; padding: 5px 10px; margin: 0; font-family: var(--font-body); font-size: 9px; font-weight: 750; font-style: normal; text-transform: uppercase; letter-spacing: .08em; }
.anchor-price { min-width: 95px; text-align: right; padding-left: 10px; }
.anchor-price small { display: block; color: #8b7a72; font-size: 8px; text-transform: uppercase; letter-spacing: .17em; margin: 2px 0 2px; }
.anchor-price strong { color: var(--plum); font-family: var(--font-display); font-weight: 650; font-size: 20px; white-space: nowrap; }
.price-lines { border-top: 1px solid #e1d5ca; padding: 10px 0 0 53px; }
.price-lines p { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin: 8px 0 0; font-size: 12px; color: #66554e; }
.price-lines i { height: 1px; border-top: 1px dotted #c7b6aa; transform: translateY(2px); }
.price-lines b { color: var(--cocoa); font-family: var(--font-display); font-weight: 650; font-size: 14px; white-space: nowrap; }
.pricing-footnote { display: grid; grid-template-columns: auto 1.1fr .9fr; gap: 22px; align-items: center; margin-top: 22px; padding: 25px 28px; border-radius: 18px; color: #f9efe7; background: var(--cocoa); }
.pricing-note-icon { width: 42px; height: 42px; border-radius: 50%; background: var(--blush); color: var(--cocoa); display: grid; place-items: center; font-size: 20px; }
.pricing-footnote strong { font-family: var(--font-display); font-size: 19px; font-weight: 580; letter-spacing: -.02em; }
.pricing-footnote p { margin: 3px 0 0; color: #d9c9c0; font-size: 11px; line-height: 1.55; }
.mini-addons { display: grid; grid-template-columns: 1fr; gap: 5px; padding-left: 25px; border-left: 1px solid #755e55; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.mini-addons span { display: flex; justify-content: space-between; gap: 15px; }.mini-addons b { color: var(--peach); }

.process-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px; }.process-grid article { padding: 36px 36px 18px; border-left: 1px solid var(--line); }.process-grid article > span { display: grid; place-items: center; width: 38px; height: 38px; background: var(--peach); border-radius: 50%; font-family: var(--font-display); font-weight: 650; margin-bottom: 26px; }.process-grid p { color: #75645d; }

.booking-section { padding: 115px 0; background: #e7b3a7; position: relative; overflow: hidden; }.booking-section::before { content: ""; position: absolute; width: 460px; height: 460px; border: 1px solid rgba(87,52,84,.25); border-radius: 50%; left: -220px; bottom: -260px; }
.booking-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 80px; align-items: start; }.booking-copy { position: sticky; top: 40px; }.booking-copy h2 { font-size: clamp(52px, 5.8vw, 78px); }.booking-copy > p:not(.eyebrow) { max-width: 420px; color: #68483f; }.booking-points { margin-top: 34px; }.booking-points p { font-size: 13px; margin: 10px 0; }.booking-points span { display: inline-grid; place-items: center; width: 22px; height: 22px; background: var(--plum); color: white; border-radius: 50%; margin-right: 9px; }
.booking-form { background: var(--paper); border-radius: 28px; padding: 42px; box-shadow: 0 25px 70px rgba(78, 44, 46, .12); }.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }.booking-form label { display: block; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 18px; }.booking-form input, .booking-form select, .booking-form textarea { width: 100%; margin-top: 8px; border: 1px solid #d9c8ba; border-radius: 9px; padding: 13px 14px; background: #fffdf9; color: var(--cocoa); font-family: var(--font-body); font-size: 14px; font-weight: 450; outline: none; }.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { border-color: var(--plum); box-shadow: 0 0 0 3px rgba(87,52,84,.09); }.booking-form textarea { resize: vertical; }.consent { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 12px !important; }.consent input { width: 16px; margin: 2px 0 0; }.submit-button { width: 100%; }.submit-button:disabled { opacity: .7; cursor: wait; }.form-fineprint { text-align: center; margin: 12px 0 0; color: #8c7b72; font-size: 10px; }.honeypot { position: absolute; left: -10000px; }.form-error { color: #942e38; background: #fcebed; border-radius: 8px; padding: 10px 12px; font-size: 12px; }.success-card { min-height: 500px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }.success-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: var(--plum); color: white; font-size: 28px; margin-bottom: 28px; }.success-card h3 { font-family: var(--font-display); font-size: 38px; font-weight: 590; letter-spacing: -.035em; }.success-card > p:not(.eyebrow) { max-width: 470px; color: #75645d; }.form-reset { border-left: 0; border-right: 0; border-top: 0; background: none; color: var(--plum); margin-top: 22px; cursor: pointer; }

footer { padding: 70px 0 24px; background: var(--cocoa); color: #fff8ef; }.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 80px; padding-bottom: 55px; }.footer-brand .brand-mark { color: var(--cocoa); }.footer-grid > div > p { max-width: 300px; color: #cdbfb9; font-size: 12px; margin-top: 22px; }.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; font-size: 12px; }.footer-grid > div:not(:first-child) strong { color: var(--peach); text-transform: uppercase; font-size: 10px; letter-spacing: .16em; margin-bottom: 8px; }.footer-grid > div:not(:first-child) p { margin: 0; }.footer-bottom { padding-top: 22px; border-top: 1px solid #654c43; display: flex; justify-content: space-between; color: #bbaaa3; font-size: 9px; text-transform: uppercase; letter-spacing: .14em; }

@media (max-width: 900px) {
  .nav { grid-template-columns: 1fr auto; }.nav-links { display: none; }
  .hero { grid-template-columns: 1fr; gap: 40px; padding-top: 55px; }.hero-copy { max-width: 680px; }.hero-visual { max-width: 650px; margin-inline: auto; width: 100%; }
  .split-heading { grid-template-columns: 1fr; gap: 25px; }.service-grid { grid-template-columns: 1fr 1fr; }.service-card:nth-child(2) { border-right: 0; }.service-card:last-child { grid-column: 1 / -1; border-top: 1px solid var(--line); }.addons { grid-template-columns: 1fr 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; }.gallery-copy { grid-column: 1 / -1; }.booking-grid { grid-template-columns: 1fr; }.booking-copy { position: static; }.footer-grid { gap: 40px; }
  .pricing-header { grid-template-columns: 1fr; gap: 28px; }.pricing-intro { max-width: 650px; }.pricing-grid { grid-template-columns: 1fr; }.pricing-footnote { grid-template-columns: auto 1fr; }.mini-addons { grid-column: 2; }
}

@media (max-width: 620px) {
  .shell { width: min(100% - 28px, 1180px); }.announcement { font-size: 8px; }.nav { height: 78px; gap: 14px; }.nav > .button { min-height: 38px; padding-inline: 14px; font-size: 9px; letter-spacing: .05em; }.brand { font-size: 25px; }.brand-mark { width: 38px; height: 38px; }
  .hero { min-height: 0; padding-bottom: 65px; }.hero-actions { align-items: flex-start; flex-direction: column; }.hero-photo-wrap { width: 90%; height: 450px; }.hero-visual { min-height: 470px; }.scribble { top: 50px; width: 84px; height: 84px; font-size: 18px; }.quality-badge { width: 105px; height: 105px; right: -4px; }
  .trust-row { width: max-content; animation: marquee 16s linear infinite; }.trust-seq { flex: none; justify-content: flex-start; padding-right: 24px; }.loop-copy { display: flex; }.loop-sep { display: inline; }
  .booking-form input, .booking-form select, .booking-form textarea { font-size: 16px; }
  .section { padding-top: 82px; padding-bottom: 82px; }.section-heading h2 { font-size: 48px; }.service-grid, .process-grid { grid-template-columns: 1fr; }.service-card, .service-card:nth-child(2), .service-card:last-child { grid-column: auto; border-right: 0; border-top: 1px solid var(--line); }.service-card:first-child { border-top: 0; }.addons { grid-template-columns: 1fr; }
  .gallery-section { padding: 80px 0; }.gallery-grid { grid-template-columns: 1fr; }.gallery-copy { grid-column: auto; }.gallery-main img { height: 430px; }.gallery-small { width: 72%; margin-left: auto; }.gallery-small img { height: 320px; }.pricing-section { padding: 82px 0; }.pricing-header { padding-bottom: 35px; margin-bottom: 18px; }.price-card { padding: 22px 20px 20px; }.price-card-head { grid-template-columns: 34px 1fr; }.breed-number { width: 34px; height: 34px; }.anchor-price { grid-column: 2; text-align: left; padding: 0; display: flex; gap: 7px; align-items: baseline; }.anchor-price small { display: inline; }.price-lines { padding-left: 49px; }.pricing-footnote { grid-template-columns: 1fr; }.pricing-note-icon { width: 38px; height: 38px; }.mini-addons { grid-column: auto; padding: 15px 0 0; border-left: 0; border-top: 1px solid #755e55; }.form-row { grid-template-columns: 1fr; gap: 0; }.booking-form { padding: 28px 20px; }.booking-section { padding: 80px 0; }.footer-grid { grid-template-columns: 1fr; gap: 38px; }.footer-bottom { gap: 20px; flex-direction: column; }
}

@keyframes marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .trust-row { animation: none; } * { transition: none !important; } }
@media (max-width: 620px) and (prefers-reduced-motion: reduce) {
  .trust-row { width: auto; white-space: normal; }.trust-seq { flex-wrap: wrap; justify-content: center; row-gap: 6px; padding-right: 0; }.loop-copy, .loop-sep { display: none; }
}
