/* Shared reading, navigation and interaction layer for the public website. */
body[data-page] { font-size:1.125rem; }
body[data-page] main { overflow-wrap:break-word; }
body[data-page] main img { max-width:100%; }
body[data-page] header { padding-block:1rem; gap:1.25rem; }
body[data-page] header nav { gap:1.5rem; }
body[data-page] header nav a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; letter-spacing:.5px; text-transform:none; }
body[data-page] header nav a[aria-current="page"]:not(.nav-cta) { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:7px; color:var(--link); }
body[data-page] .menu-toggle { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
body[data-page] :focus-visible { outline:3px solid var(--link); outline-offset:4px; }
body[data-page] main :is(h2,h3) { scroll-margin-top:7rem; }
body[data-page] :is(.section-title,.content-section h2,.team-section h2,.moments-head h2) { font-family:var(--font-serif); text-transform:none; letter-spacing:0; font-size:clamp(2rem,3.3vw,3rem); line-height:1.2; }
body[data-page] :is(.content-section,.blog-content,.founder-text) :is(p,li) { font-size:1.125rem; line-height:1.75; }
body[data-page] :is(.content-section,.blog-content) p { max-width:70ch; }
body[data-page] :is(.service-card,.team-card,.blog-card) { min-width:0; }
body[data-page] :is(.service-card,.team-card,.blog-card) p { font-size:1.0625rem; }
body[data-page] :is(.card-btn,.cta-button,.hero-cta,.btn-next,.btn-back,.submit-btn,.leave-btn) { min-height:48px; font-size:.875rem; letter-spacing:.6px; }
body[data-page] :is(.eyebrow,.pill-badge,.card-label,.role-tag,.step-name,.section-eyebrow,.group-label) { font-size:.875rem; letter-spacing:1px; }
body[data-page] :is(.blog-meta,.card-link-hint,.team-location,.rating-badge .label) { font-size:.8125rem; letter-spacing:.5px; }
body[data-page] :is(.form-group label,.form-group legend) { font-size:.9375rem; line-height:1.5; }
body[data-page] input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),body[data-page] select,body[data-page] textarea { font-size:1rem; min-height:48px; max-width:100%; }
body[data-page] input[type="checkbox"],body[data-page] input[type="radio"] { accent-color:var(--link); }
body[data-page] [aria-invalid="true"] { outline:2px solid #a23126; outline-offset:2px; }
body[data-page] details { border-bottom:1px solid var(--border); }
body[data-page] summary { cursor:pointer; min-height:48px; padding-block:.8rem; font-size:1.125rem; line-height:1.5; }
body[data-page] details[open] summary { color:var(--link); }
body[data-page] .suburb-links a { min-height:44px; font-size:.875rem; display:inline-flex; align-items:center; }
body[data-page] .ah-footer { background:var(--cream); }
body[data-page] .ah-footer-col a,body[data-page] .ah-footer-social a { font-size:.875rem; min-height:40px; line-height:1.5; padding-block:.5rem; }
body[data-page] .ah-footer-col a:hover,body[data-page] .ah-footer-legal a:hover { color:var(--link); text-decoration:underline; text-underline-offset:4px; }
body[data-page] .ah-footer-tagline { font-size:1.125rem; }
body[data-page] .ah-dock a { font-size:.8125rem; letter-spacing:.5px; }
/* Homepage: make the service the headline and show the next choice sooner. */
body[data-page="index"] .hero { height:auto; min-height:620px; min-height:min(760px,85svh); max-height:none; padding-top:4rem; }
body[data-page="index"] .hero-content { opacity:1; animation:none; padding-bottom:4rem; }
body[data-page="index"] .hero-brand { font-size:1rem; letter-spacing:4px; margin-bottom:1.5rem; }
body[data-page="index"] .home-headline { font:500 clamp(3rem,6vw,5.5rem)/1.06 var(--font-serif); letter-spacing:-.5px; text-transform:none; color:white; margin-bottom:1.5rem; }
body[data-page="index"] .hero-lead { font-size:1.3rem; font-style:normal; max-width:38rem; }
.hero-secondary { display:inline-flex; align-items:center; min-height:48px; margin-left:1.5rem; color:white; font:500 .875rem/1.5 var(--font-sans); text-underline-offset:5px; }
body[data-page="index"] .services-grid { gap:1.5rem; }
body[data-page="index"] .service-card img { height:220px; }
body[data-page="index"] .service-card h3 { font:500 1.7rem/1.2 var(--font-serif); text-transform:none; letter-spacing:0; }
body[data-page="index"] main > section:last-child { padding:3rem 5%; background:var(--cream); border-top:1px solid var(--border); }
body[data-page="index"] main > section:last-child h2 { font:500 2rem/1.2 var(--font-serif); text-transform:none; letter-spacing:0; margin-bottom:1rem; }
/* Enquiry: put the form close to the page introduction. */
body[data-page="enquiry"] .hero-immersive { height:auto; min-height:240px; padding:3rem 5%; }
body[data-page="enquiry"] .hero-content { position:relative; padding:1rem 0; }
body[data-page="enquiry"] .hero-title { font-size:clamp(2.4rem,5vw,3.8rem); }
body[data-page="enquiry"] .editorial-section { padding:1.4rem 5%; }
body[data-page="enquiry"] .editorial-section .pill-badge { display:none; }
body[data-page="enquiry"] .editorial-quote { font-size:1.4rem; margin:0; }
body[data-page="enquiry"] .enquiry-section { padding-top:1.5rem; scroll-margin-top:6rem; }
body[data-page="enquiry"] .form-card { padding:clamp(1.25rem,4vw,3rem); }
body[data-page="enquiry"] .wizard-progress { margin-bottom:2rem; }
body[data-page="enquiry"] .pill-option { min-height:48px; font-size:1rem; line-height:1.5; padding:.8rem 1.1rem; }
body[data-page="enquiry"] .section-heading { font-style:normal; }
body[data-page="enquiry"] .optional-label { font-size:.875rem; font-weight:400; color:var(--secondary); }
body[data-page="enquiry"] .wizard-nav { gap:1rem; }
body[data-page="enquiry"] :is(#coverage-help,.form-group > p) { font-size:1rem; line-height:1.6; }
/* Profiles retain full biographies but use the width of a desktop screen. */
body[data-page="about"] .team-grid { max-width:1160px; gap:2rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
body[data-page="about"] .team-card { padding:2rem; text-align:left; }
body[data-page="about"] .team-card h3 { font:500 2rem/1.2 var(--font-serif); letter-spacing:0; text-transform:none; }
body[data-page="about"] .team-photo { object-fit:contain; object-position:center; border-radius:4px; background:var(--cream); }
body[data-page="about"] .carousel-btn { width:44px; height:44px; }
body[data-page="about"] .carousel-dot { width:24px; height:24px; border:8px solid transparent; background-clip:padding-box; }
/* Reviews and guides: readable headlines and paragraphs rather than long capitals. */
body[data-page="reviews"] .hero h1 { font:500 clamp(2.8rem,5vw,4.2rem)/1.1 var(--font-serif); text-transform:none; letter-spacing:0; }
.reviews-intro { font-size:1.2rem; line-height:1.6; color:var(--secondary); margin-top:1.4rem; max-width:38rem; }
body[data-page="blog"] :is(.blog-card h2,.post-card h2) { font:500 1.7rem/1.25 var(--font-serif); letter-spacing:0; text-transform:none; }
body[data-page] .blog-content { max-width:820px; }
body[data-page].region-page :is(h1,h2) { font-family:var(--font-serif); text-transform:none; letter-spacing:0; }
body[data-page].region-page h1 { font-size:clamp(2.6rem,5vw,4rem); }
body[data-page].region-page p,body[data-page].region-page li { font-size:1.125rem; }
body[data-page].region-page .region-hero { padding-top:4rem; }
body[data-page^="pet-sitting-"] .hero h1 { font:500 clamp(2.6rem,5vw,4rem)/1.1 var(--font-serif); letter-spacing:0; text-transform:none; }
body[data-page^="pet-sitting-"] .hero { min-height:340px; padding-block:4rem; }
/* Keep the refreshed services page's controls as readable as the rest of the site. */
body[data-page="services"] #main :is(.card-label,.pill-badge,.service-nav a,.services-eyebrow,.services-location) { font-size:.8125rem; letter-spacing:.5px; }
body[data-page="services"] #main :is(.card-btn,.services-primary) { font-size:.875rem; }
@media (max-width:1000px) {
 body[data-page] header { gap:.75rem; }
 body[data-page] header nav { gap:1rem; }
 body[data-page] header .logo { font-size:1.15rem; letter-spacing:3px; }
}
@media (max-width:768px) {
 body[data-page] header { padding-block:.75rem; }
 body[data-page] header nav[data-drawer] { top:70px; max-height:calc(100dvh - 70px); overflow-y:auto; overscroll-behavior:contain; align-items:stretch; gap:.25rem; padding:1.25rem 1.5rem; }
 body[data-page] header nav[data-drawer] a { font-size:1rem; padding:.8rem .5rem; }
 body[data-page] header nav[data-drawer] .nav-cta { justify-content:center; margin-top:.5rem; }
 body[data-page].nav-open .ah-dock { visibility:hidden; pointer-events:none; }
 body[data-page] header nav:not([data-drawer]) { flex-wrap:wrap; gap:.25rem .8rem; }
 body[data-page] header:has(nav:not([data-drawer])) { flex-wrap:wrap; }
 body[data-page="about"] .team-grid { grid-template-columns:1fr; }
 body[data-page="about"] .team-card { padding:1.5rem; }
 body[data-page="index"] .hero { min-height:580px; }
 body[data-page="index"] .hero-content { padding-bottom:3rem; }
 body[data-page="index"] .home-headline { font-size:clamp(2.7rem,8vw,4rem); }
 body[data-page="index"] .hero-lead { font-size:1.2rem; }
 .hero-secondary { margin:1rem 0 0; display:flex; width:fit-content; }
 body[data-page="enquiry"] .hero-immersive { min-height:190px; padding-block:1.5rem; }
 body[data-page="enquiry"] .step-name { font-size:.8125rem; letter-spacing:0; }
 body[data-page] .ah-footer { padding-block:3rem 1.5rem; }
 body[data-page] .ah-footer-grid { gap:1.5rem; }
 body[data-page] .ah-footer-social { justify-content:flex-start; }
 body[data-page="reviews"] .hero-inner { gap:2rem; }
}
@media (prefers-reduced-motion:reduce) {
 body[data-page] *,body[data-page] *::before,body[data-page] *::after { scroll-behavior:auto !important; }
}
/* Small circular portraits with concise, adjacent bios at every viewport. */
body[data-page="about"] .team-grid { gap:1rem; }
body[data-page="about"] .team-card.featured { display:grid; grid-template-columns:96px minmax(0,1fr); gap:1.25rem; align-items:center; padding:1.5rem; }
body[data-page="about"] .team-card.featured picture { display:block; }
body[data-page="about"] .team-card.featured .team-photo { display:block; width:96px; height:96px; max-width:100%; margin:0; border-radius:50%; object-fit:cover; object-position:center 25%; }
body[data-page="about"] .team-card.featured h3 { font-size:1.4rem; margin:0 0 .4rem; }
body[data-page="about"] .team-card.featured .team-content p { font-size:.95rem; line-height:1.5; text-align:left; margin:0; }
body[data-page="about"] .team-card.featured .team-content .team-location { font-size:.75rem; margin-top:.5rem; letter-spacing:0; }
@media (max-width:600px) {
 body[data-page="about"] .team-card.featured { grid-template-columns:72px minmax(0,1fr); gap:1rem; padding:1rem; }
 body[data-page="about"] .team-card.featured .team-photo { width:72px; height:72px; }
}
body[data-page="index"] .service-card img { max-width:none; }
body[data-page="services"] #main .card-btn:hover { transform:none; }
body[data-page="services"] #main .care-comparison-note { font-size:1.125rem; }
body[data-page="services"] #main .services-location { line-height:1.7; }
body[data-page="join"] .form-hint { font-size:1rem; }
body[data-page="join"] .submit-btn { min-width:180px; }
body[data-page="partners"] main h1,body[data-page="pay"] main h1,body[data-page="about"] main h1,body[data-page="blog"] main h1 { font-family:var(--font-serif); font-size:clamp(2.5rem,5vw,4rem); line-height:1.15; text-transform:none; letter-spacing:0; }
