/* Dependency-free site styles. System fonts only; no remote font resources. */
:root { color-scheme: light; --paper:#faf8f2; --tint:#f0eee5; --ink:#243c32; --muted:#526158; --line:#c9cfc2; --accent:#914b32; --cream:#fffdf7; --warm:#ece1cb; }
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.65; }
a { color:inherit; text-underline-offset:.25em; }
a:hover { text-decoration-thickness:2px; }
a, button, input, select, textarea { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
:target { scroll-margin-top:1.5rem; }
h1,h2,h3,p { margin:0; }
h1,h2,.card-heading { font-family:Georgia,"Times New Roman",serif; font-weight:400; line-height:1.1; text-wrap:balance; }
h1 { font-size:clamp(2.65rem,6.5vw,5.5rem); letter-spacing:-.045em; max-width:12ch; }
h2 { font-size:clamp(2rem,4vw,3.25rem); letter-spacing:-.035em; }
h3 { font-size:1.16rem; line-height:1.4; font-weight:650; }
p + p { margin-top:1rem; }
p { overflow-wrap:anywhere; }
.container { width:min(100% - 2.5rem,1160px); margin-inline:auto; }
.skip-link { position:absolute; left:1rem; top:-8rem; z-index:10; padding:1rem; background:var(--ink); color:white; }
.skip-link:focus { top:1rem; }
.site-header { padding-block:1.5rem; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.25rem; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-direction:column; justify-content:center; min-height:44px; font-family:Georgia,"Times New Roman",serif; font-size:1.75rem; line-height:1.2; letter-spacing:-.055em; text-decoration:none; }
.brand .brand-tagline { display:block; margin-top:.45rem; font-family:system-ui,sans-serif; font-size:.61rem; letter-spacing:.19em; font-weight:600; }
.brand-with-logo { flex-direction:row; align-items:center; gap:.8rem; font-size:clamp(1.25rem,4vw,1.75rem); }
.brand-logo { display:block; width:5rem; height:auto; flex-shrink:0; }
nav { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem 1.2rem; }
nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.88rem; font-weight:550; text-decoration:none; }
nav a:hover { text-decoration:underline; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:1.2rem; min-height:52px; padding:.85rem 1.35rem; background:var(--ink); color:var(--cream); border:1px solid var(--ink); border-radius:6px; font:600 .95rem/1.4 system-ui,sans-serif; text-decoration:none; text-align:center; }
.button:hover { background:#355442; text-decoration:none; }
.button-small { min-height:44px; padding:.65rem 1rem; font-size:.85rem; }
.hero { display:grid; gap:2.5rem; padding-block:3rem; }
.eyebrow { font-size:.72rem; font-weight:650; letter-spacing:.16em; text-transform:uppercase; margin-bottom:1rem; color:var(--accent); }
.hero .lead { font-size:1.15rem; max-width:42ch; margin-top:1.5rem; }
.location { font-size:.94rem; color:var(--muted); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1.5rem; margin-top:1.75rem; }
.text-link { display:inline-flex; align-items:center; gap:.75rem; min-height:48px; font-size:.95rem; font-weight:600; }
.quiet { font-size:.92rem; color:var(--muted); }
.hero .quiet { max-width:47ch; margin-top:1.2rem; }
.hero-card { position:relative; padding:2rem; background:var(--warm); border-radius:9rem 9rem .6rem .6rem; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-card .card-heading { font-size:clamp(1.8rem,3vw,2.6rem); margin-bottom:1rem; }
.hero-card>p:not(.eyebrow):not(.card-heading) { max-width:27ch; font-size:.95rem; }
.arch { width:72px; height:88px; margin:.75rem 0 1.6rem; border:1px solid #a99c82; border-radius:40px 40px 0 0; padding:10px; }
.arch span { display:block; height:100%; border:1px solid #a99c82; border-radius:30px 30px 0 0; }
.asset-note { margin-top:2rem; font-size:.69rem; color:#5c503d; border-top:1px solid #b8ad96; padding-top:.8rem; }
.intro { padding-block:1.5rem 3.5rem; max-width:800px; }
.intro>p:not(.eyebrow) { margin-top:1.25rem; max-width:65ch; color:var(--muted); }
.trust-strip { padding:0; margin:1.6rem 0 0; list-style:none; display:flex; flex-wrap:wrap; gap:.5rem 1.7rem; font-size:.88rem; font-weight:600; }
.trust-strip li::before { content:""; display:inline-block; width:6px; height:6px; background:var(--accent); border-radius:50%; margin-right:.6rem; vertical-align:middle; }
.section { padding-block:3.5rem; }
.section-tinted { background:var(--tint); }
.section-heading { max-width:650px; margin-bottom:2rem; }
.section-heading>p:not(.eyebrow) { margin-top:1.2rem; color:var(--muted); }
.services-grid,.pricing-grid { display:grid; gap:1rem; }
.service-card { background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:1.6rem; }
.number { display:block; font-size:.76rem; letter-spacing:.1em; color:var(--accent); margin-bottom:1.2rem; }
.service-card p { color:var(--muted); margin-top:.65rem; }
.steps { list-style:none; padding:0; margin:0; counter-reset:steps; }
.steps li { position:relative; padding:0 0 1.7rem 3.4rem; margin-bottom:1.6rem; border-bottom:1px solid var(--line); counter-increment:steps; }
.steps li:last-child { padding-bottom:0; margin-bottom:0; border:0; }
.steps li::before { content:counter(steps,decimal-leading-zero); position:absolute; left:0; top:0; font:1.35rem Georgia,serif; color:var(--accent); }
.steps p { margin-top:.5rem; color:var(--muted); }
.development-note { border-left:3px solid var(--accent); background:#f7e9dc; color:#653a28; padding:1rem 1.15rem; font-size:.85rem; margin-bottom:1.5rem; }
.development-note strong { display:block; margin-bottom:.25rem; }
.price-card { padding:1.6rem; border:1px solid var(--line); border-radius:8px; background:var(--cream); }
.price-card h3 { font:2rem Georgia,serif; }
dl { margin:1.5rem 0 0; }
dl div { border-top:1px solid var(--line); padding-block:.9rem; }
dt { font-size:.85rem; font-weight:600; }
dd { margin:.2rem 0 0; font-size:.8rem; color:var(--muted); }
.faq-list article { border-top:1px solid var(--line); padding-block:1.5rem; }
.faq-list p { margin-top:.65rem; color:var(--muted); }
.request-card { background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:1.25rem; min-width:0; }
fieldset { border:0; padding:0; margin:0; min-width:0; }
legend { font-size:1.05rem; font-weight:650; padding:0; margin-bottom:.5rem; }
.field { margin-top:1.25rem; min-width:0; }
.field[hidden] { display:none; }
.dog-age-label { margin-top:.75rem; }
label { display:block; font-size:.92rem; font-weight:600; margin-bottom:.4rem; }
label span { font-weight:400; color:var(--muted); font-size:.83rem; }
input,select,textarea { display:block; width:100%; min-width:0; max-width:100%; min-height:48px; border:1px solid #7c8b7f; border-radius:4px; background:var(--paper); color:var(--ink); padding:.7rem; font:inherit; line-height:1.4; }
textarea { resize:vertical; }
.field-help { color:var(--muted); font-size:.8rem; line-height:1.55; margin-top:.5rem; }
.date-grid { display:grid; gap:0 1rem; }
.booking-note { border-top:1px solid var(--line); padding-top:1.25rem; margin-top:1.5rem; font-size:.88rem; }
.site-footer { background:var(--ink); color:var(--cream); padding-block:2.5rem 1rem; }
.footer-layout { display:grid; gap:2rem; }
.site-footer p { font-size:.85rem; margin-top:.65rem; }
.site-footer nav { align-content:start; }
.footer-note { border-top:1px solid #63766a; padding-top:1rem; font-size:.72rem !important; margin-top:2rem !important; }
.site-footer :focus-visible { outline-color:#f3c48f; }
.error-main { min-height:65vh; padding-block:5rem; max-width:700px; }
.error-main h1 { font-size:clamp(2.5rem,6vw,4.5rem); max-width:15ch; }
.error-main p { margin-top:1.5rem; }
.error-main .button { margin-top:2rem; }
@media (min-width:600px) { .services-grid,.pricing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .date-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .request-card { padding:2rem; } }
@media (min-width:900px) { .hero { grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:4rem; padding-block:4.5rem; align-items:center; } .hero-card { min-height:465px; } .intro { margin-left:max(1.25rem,calc((100% - 1160px)/2)); padding-bottom:4.5rem; } .section { padding-block:5rem; } .process-layout,.faq-layout,.request-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:4rem; } .footer-layout { grid-template-columns:1fr 1fr; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .development-note { display:block; } .section { padding-block:1.5rem; } .button { border:1px solid; } }

/* Approved daily rates. */
.size-definition { color:var(--muted); margin-top:.7rem; }
.daily-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:.6rem; margin-top:1.3rem; }
.daily-price strong { font:400 3rem/1.1 Georgia,"Times New Roman",serif; }
.daily-price span { font-size:.95rem; color:var(--muted); }
@media (min-width:600px) { .pricing-grid { grid-template-columns:1fr; } }
@media (min-width:900px) { .pricing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Validation feedback. */
.field-error { color:#8a2e22; font-size:.85rem; margin-top:.4rem; }
.field-error:empty { display:none; }
[aria-invalid="true"] { border:2px solid #8a2e22; }
.check-button { margin-top:1.25rem; width:100%; }
.check-button:disabled { opacity:.65; }
.validation-summary { margin-top:1rem; padding:1rem; border:2px solid var(--accent); border-radius:4px; overflow-wrap:anywhere; }
.validation-summary[hidden] { display:none; }
.validation-summary ul { padding-left:1.2rem; margin-block:.5rem 0; }
.validation-summary a { display:inline-block; padding-block:.6rem; }

/* Privacy and About pages use the site's existing typography and colors. */
.privacy-main { max-width:800px; padding-block:3rem 4rem; }
.privacy-main h1 { max-width:none; font-size:clamp(2.5rem,6vw,4rem); margin-bottom:1.5rem; }
.privacy-main section { margin-top:2rem; }
.privacy-main h2 { font-size:clamp(1.5rem,3vw,2rem); margin-bottom:.8rem; }
