/* Good Dog shared presentation system. Original brand, content and behavior retained.
   Evidence: Australian storefront review, 11 Nov 2026. Values are Good Dog tokens,
   not copied competitor CSS. This file is intentionally last in each document head. */
body.gd-system{--gd-rail:1280px;--gd-gutter:40px;--gd-gap:24px;--gd-section:40px;--gd-reading:70ch;--gd-radius:16px}
.gd-system :is(main,section,article,aside,figure,nav,header,footer,div){min-width:0}
/* One outer rail. Reading measures are deliberately narrower within it. */
.gd-system :is(.shop-nav,.gd-utility-nav,.landing-nav,.nav,.breed-header>nav,.ac-nav,.header,.browse,.feeding-guide,.breed-shell,.article-hero,.article-cover,.article-layout,.page,.landing-footer,.breed-footer,.shop-footer,.ac-footer),
.gd-system.desktop-refresh :is(.landing-hero,.shop-featured,.food-evidence,.unified-quiz,.unified-accessories,.unified-christmas,.unified-trust,.benefit-inner,.desktop-start,.quiz-intro),
.gd-system.desktop-refresh .conversion-step :is(.national-section,.booking-wash-gallery),
.gd-system :is(.regional-place,.regional-care,.regional-form-section,.landing-education,.landing-trust,.image-first-hero),
.gd-system>footer{box-sizing:border-box;width:100%;max-width:var(--gd-rail);margin-inline:auto;padding-inline:var(--gd-gutter)}
/* Utility-header wrappers are shells, never a second padded rail. */
.gd-system header.gd-utility-header{max-width:none;padding-inline:0}
.gd-system .gd-utility-nav{padding-block:18px}
.gd-system .shop-nav{padding-block:18px}
.gd-system .shop-category-nav{padding-inline:var(--gd-gutter)}
.gd-system .sister{padding-inline:max(var(--gd-gutter),calc((100% - 1200px)/2));gap:20px}
.gd-system>footer{gap:20px 28px;padding-block:32px;font-size:14px;line-height:1.5}
.gd-system footer :is(a,p){overflow-wrap:anywhere}
.gd-system footer :is(.brand,.breed-brand){overflow-wrap:normal}
.gd-system .footer-references{margin:0}
.gd-system :is(.mission-primary,.mission-secondary,.pill,.button,.breed-button){max-width:100%}
.gd-system :is(.mission-actions,.conversion-actions){gap:12px 20px}
/* Keep conversion copy and image order. Preserve all original home assets. */
.gd-system.desktop-refresh .landing-hero{gap:32px 48px;padding-block:36px 40px}
.gd-system .landing-hero h1,.gd-system.food .landing-hero h1{font-size:clamp(36px,4.4vw,58px);line-height:1.06}
.gd-system .landing-hero .lede{font-size:17px;line-height:1.6}
.gd-system :is(.mission-status,.landing-small,.landing-enquiry,.finder-status,.postcode-hint,.map-small,.map-caption){font-size:14px;line-height:1.55}
.gd-system .landing-benefits li{font-size:14px;line-height:1.5}
.gd-system.desktop-refresh :is(.conversion-accessories,.conversion-christmas,.unified-accessories,.unified-christmas){column-gap:40px}
.gd-system .benefit-grid{gap:var(--gd-gap)}
.gd-system .benefit-grid .benefit-card{border-radius:var(--gd-radius);padding:22px}
.gd-system .benefit-grid .benefit-card h3{font-size:24px;line-height:1.2;margin-bottom:12px}
.gd-system .benefit-grid .benefit-card p{font-size:16px;line-height:1.6}
.gd-system .sample-feedback-notice{font-size:14px;line-height:1.55}
.gd-system .sample-feedback-quote{font-size:14px;line-height:1.55}
/* Closed FAQ rows are content-driven, including mobile. No fixed empty row. */
.gd-system :is(.landing-faq,.section.faq){box-sizing:border-box;width:100%;max-width:var(--gd-rail);margin-inline:auto;padding:28px var(--gd-gutter);display:block}
.gd-system :is(.landing-faq,.section.faq)>div:first-child{margin-bottom:20px}
.gd-system :is(.landing-faq,.section.faq) h2{font-size:clamp(28px,3.2vw,38px);line-height:1.12;margin:8px 0 0}
.gd-system :is(.landing-faq,.section.faq) .faqs details{padding:0}
.gd-system :is(.landing-faq,.section.faq) .faqs summary{box-sizing:border-box;min-height:52px;padding:14px 40px 14px 0;font-size:17px;line-height:1.5}
.gd-system :is(.landing-faq,.section.faq) .faqs p{max-width:85ch;font-size:16px;line-height:1.6;margin:0 0 18px}
/* Local facts and map remain separate, consent-controlled components. */
.gd-system .national-section.geography{gap:32px;align-items:start}
.gd-system .national-map{min-height:0;border-radius:var(--gd-radius)}
.gd-system .national-map [data-map-placeholder]{padding:24px}
.gd-system .national-map iframe{height:320px}
.gd-system .independent-resources .resource-list{gap:var(--gd-gap);align-items:stretch}
.gd-system .independent-resources .resource-list>li{padding:22px;border-radius:var(--gd-radius)}
.gd-system .regional-place{gap:32px;align-items:start}
.gd-system .area-map{align-self:start}
/* Catalogue: get to selection sooner; one grid and image/action baseline. */
.gd-system main.browse{padding-block:32px 56px}
.gd-system .browse-hero{max-width:900px;padding:12px 0 18px}
.gd-system .browse h1{font-size:clamp(36px,4vw,48px);line-height:1.08;margin:12px 0 16px;letter-spacing:-.035em}
.gd-system .browse .intro{font-size:18px;line-height:1.6;max-width:70ch;margin:0}
.gd-system .range-status{max-width:none;padding:16px 20px;margin:12px 0 24px;border-radius:0 12px 12px 0;font-size:15px;line-height:1.6}
.gd-system .range-status p{max-width:90ch}
.gd-system .browse-tabs{margin:20px 0 24px;gap:10px}
.gd-system .browse-tabs a{min-height:46px;display:inline-flex;align-items:center;padding:10px 18px;font-size:15px;line-height:1.5}
.gd-system .browse-grid{gap:var(--gd-gap);align-items:stretch}
.gd-system .browse-card{border-radius:var(--gd-radius)}
.gd-system .browse-card-body{padding:20px;gap:0}
.gd-system .browse-card h3,.gd-system .browse-categories .browse-card h3{font-size:24px;line-height:1.2;margin:10px 0 12px}
.gd-system .browse-card p{font-size:16px;line-height:1.55}
.gd-system .range-tag{font-size:13px;line-height:1.5;letter-spacing:.04em}
.gd-system .browse-card .browse-link{min-height:44px;display:flex;align-items:center;padding-top:8px;font-size:15px;line-height:1.4}
.gd-system .browse-category-title{margin:36px 0 20px;font-size:34px;line-height:1.15}
.gd-system .browse-detail{gap:40px;align-items:start}
.gd-system .browse-detail h1{font-size:clamp(34px,4vw,48px)}
.gd-system .pack-gallery-views{gap:16px}
.gd-system .pack-gallery .pack-crop{border-radius:var(--gd-radius)}
.gd-system .pack-gallery figcaption{font-size:15px;line-height:1.5}
.gd-system .pack-gallery .pack-preview-note{font-size:14px;line-height:1.55}
.gd-pack-card-art{background:#f5e8da;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:12px}
.gd-pack-card-art>a{display:block;width:64%;aspect-ratio:3/4;overflow:hidden;flex:none}
.gd-system .browse-card .gd-pack-card-art img{display:block;width:100%;max-width:none;height:100%;aspect-ratio:auto;object-fit:contain}
.gd-system .browse-card .gd-pack-card-art>p{font-size:13px;line-height:1.4;margin:5px 0 0;color:#405047}
/* Source text stays intact. Reusable reading rhythm replaces oversized titles. */
.gd-system :is(.feeding-guide,.breed-shell,.article-hero,.page){padding-top:32px;padding-bottom:48px}
.gd-system :is(.guide-hero,.breed-hero,.article-hero,.page>.intro) h1{font-size:clamp(34px,4.1vw,52px);line-height:1.08;letter-spacing:-.035em;margin:12px 0 20px}
.gd-system :is(.guide-lede,.breed-lede,.standfirst,.article-intro){font-size:18px;line-height:1.6;max-width:var(--gd-reading)}
.gd-system :is(.guide-education,.article-meta,.guide-breadcrumb,.breed-breadcrumb,.breed-review,.guide-sources p,.guide-sources li,.guide-toc a,.guide-toc p,.breed-toc a,.contents a){font-size:14px;line-height:1.6}
.gd-system .guide-sections{grid-template-columns:minmax(0,1fr) 240px;gap:48px;margin-top:32px}
.gd-system .guide-article{max-width:var(--gd-reading)}
.gd-system :is(.guide-article,.article-body,.breed-layout article) :is(p,li,dd){font-size:16px;line-height:1.7}
.gd-system :is(.guide-article,.article-body,.breed-layout) h2{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin-bottom:18px}
.gd-system .guide-article .source-link{font-size:14px;line-height:1.5}
.gd-system :is(.article-body,.breed-layout article)>section{margin-bottom:40px}
.gd-system .article-layout{grid-template-columns:240px minmax(0,1fr);gap:48px}
.gd-system .article-body{max-width:var(--gd-reading)}
.gd-system .article-cover img{height:auto;aspect-ratio:2.6;object-fit:cover}
.gd-system .article-cover{margin-bottom:36px}
.gd-system .article-cover figcaption,.gd-system .adult-feeding-guide figcaption{font-size:14px;line-height:1.55}
.gd-system .adult-feeding-guide .adult-hero{gap:40px;align-items:start}
.gd-system .adult-feeding-guide .adult-hero img{aspect-ratio:1.1}
.gd-system .breed-layout{grid-template-columns:240px minmax(0,1fr);gap:48px}
/* Accessories and after-care use the same rail, without changing their baskets. */
.gd-system.gd-family-accessories main{max-width:var(--gd-rail)}
.gd-system.gd-family-accessories main>:is(.hero,.section,.categories,.questions,.breadcrumbs){padding-inline:var(--gd-gutter)}
.gd-system.gd-family-accessories main>.hero{padding-block:40px;gap:40px}
.gd-system.gd-family-accessories main>:is(.intro,.feature){margin-inline:var(--gd-gutter)}
.gd-system.gd-family-accessories h1{font-size:clamp(36px,4vw,52px);line-height:1.08}
.gd-system.gd-family-accessories :is(.card p,.badge,.status,.small){font-size:14px;line-height:1.55}
.gd-system.gd-family-accessories .questions{max-width:none;padding-bottom:40px}
.gd-system.gd-family-accessories .questions details{padding:0}
.gd-system.gd-family-accessories .questions summary{padding-block:14px;min-height:52px}
.gd-system :is(.ac-hero,.ac-section){max-width:var(--gd-rail);padding-inline:var(--gd-gutter);margin-inline:auto;box-sizing:border-box;width:100%}
.gd-system .ac-hero{padding-block:40px;gap:40px}
.gd-system .ac-hero h1{font-size:clamp(36px,4vw,52px);line-height:1.08}
.gd-system :is(.ac-grid,.gd-food-grid){gap:var(--gd-gap)}
.gd-system :is(.ac-card,.gd-food-card){border-radius:var(--gd-radius)}
/* Reference/legal pages remain reading-width documents aligned to the header. */
.gd-system .privacy-document{box-sizing:border-box;max-width:var(--gd-rail);padding:40px var(--gd-gutter);margin:auto}
.gd-system .privacy-document>*{max-width:80ch}
.gd-system .privacy-document h1{font-size:clamp(34px,4vw,48px);line-height:1.1}
.gd-system .privacy-document h2{font-size:28px;line-height:1.2}
.gd-system .privacy-document :is(p,li){font-size:16px;line-height:1.65}
.gd-system .gd-contact-page{box-sizing:border-box;max-width:var(--gd-rail);padding:40px var(--gd-gutter);margin:auto}
.gd-system .gd-contact-panel{max-width:760px;padding:24px;border-radius:var(--gd-radius)}
@media(max-width:1000px){
 .gd-system .benefit-section .benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gd-system :is(.guide-sections,.article-layout,.breed-layout){gap:32px;grid-template-columns:minmax(0,1fr) 220px}
 .gd-system :is(.article-layout,.breed-layout){grid-template-columns:200px minmax(0,1fr)}
}
@media(max-width:900px){body.gd-system{--gd-gutter:24px}.gd-system.desktop-refresh .landing-hero{gap:28px}.gd-system.desktop-refresh .quiz-intro{width:auto;margin-inline:var(--gd-gutter);padding:28px 24px}.gd-system .regional-place{gap:24px}}
@media(max-width:760px){
 body.gd-system{--gd-gutter:20px;--gd-gap:16px}
 .gd-system :is(.shop-nav,.gd-utility-nav){padding-block:14px}
 .gd-system.desktop-refresh .landing-hero{padding-block:28px 32px}
 .gd-system :is(.guide-sections,.article-layout,.breed-layout){display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
 .gd-system .guide-toc{order:-1}
 .gd-system .article-cover img{aspect-ratio:1.6}
 .gd-system .adult-feeding-guide .adult-hero{grid-template-columns:minmax(0,1fr);gap:24px}
 .gd-system .adult-feeding-guide .adult-hero img{aspect-ratio:1.5}
 .gd-system .browse-detail{grid-template-columns:minmax(0,1fr);gap:24px}
 .gd-system .browse-categories .browse-card h3{font-size:22px;overflow-wrap:anywhere}
 .gd-system .browse-categories .browse-card-body{padding:16px}
 .gd-system .browse-hero{padding-top:0}
 .gd-system main.browse{padding-top:24px}
 .gd-system .browse .intro{font-size:17px}
 .gd-system .range-status{font-size:14px;padding:16px}
 .gd-system .browse-category-title{font-size:30px}
 .gd-system .national-map iframe{height:280px}
 .gd-system :is(.landing-faq,.section.faq) .faqs summary{font-size:16px}
 .gd-system.gd-family-booking .intro{display:block}
 .gd-system.gd-family-booking .intro>p:last-child{max-width:60ch;margin-top:20px;font-size:16px}
 .gd-system.gd-family-accessories main>.hero{gap:28px;padding-block:28px}
 .gd-system .ac-hero{gap:24px;padding-block:28px}
}
@media(max-width:560px){
 .gd-system .benefit-section .benefit-grid{grid-template-columns:minmax(0,1fr)}
 .gd-system .benefit-grid .benefit-card h3{font-size:22px}
 .gd-system .browse-grid:not(.browse-categories){grid-template-columns:minmax(0,1fr)}
 .gd-system .browse-categories{gap:12px}
 .gd-system :is(.mission-primary,.mission-secondary){font-size:15px}
 .gd-system .sister{align-items:flex-start;flex-direction:column}
}
@media(max-width:360px){body.gd-system{--gd-gutter:16px}.gd-system .browse-categories .browse-card-body{padding:12px}.gd-system .browse-categories .browse-card h3{font-size:20px}.gd-system .browse-tabs a{padding-inline:14px}}
/* Contact: explicit image height attributes must not stretch a mobile banner. */
.gd-system .gd-contact-intro{gap:32px;margin-bottom:32px}
.gd-system .gd-contact-intro h1{font-size:clamp(36px,4vw,52px);line-height:1.08}
.gd-system .gd-contact-intro img{height:auto;aspect-ratio:4/3;max-height:360px}
.gd-system .gd-contact-card{padding:24px}
.gd-system .gd-contact-card p{font-size:16px;line-height:1.6}
.gd-system .gd-contact-card .gd-contact-status{font-size:14px;margin-bottom:20px}
.gd-system .gd-contact-links{gap:10px;margin:20px 0}
.gd-system .gd-contact-links a{padding:12px 16px;min-height:48px}
.gd-system .gd-site-help{margin-top:24px;padding-top:24px}
.gd-system .gd-site-help details{padding:0}
.gd-system .gd-site-help summary{padding-block:14px;min-height:52px}
@media(max-width:700px){.gd-system .gd-contact-intro{gap:24px}.gd-system .gd-contact-intro img{aspect-ratio:16/10;max-height:240px}.gd-system .gd-contact-page{padding-top:28px}.gd-system .gd-contact-card{padding:20px}}
.gd-system :is(.landing-faq,.section.faq) .faqs summary::before,.gd-system :is(.landing-faq,.section.faq) .faqs summary::after{top:50%;margin:0}
.gd-system :is(.landing-faq,.section.faq) .faqs summary::after{transform:translateY(-50%) rotate(90deg)}
/* Local-context blocks sit outside numbered conversion steps but share the rail. */
.gd-system.desktop-refresh .national-section{box-sizing:border-box;width:100%;max-width:var(--gd-rail);padding-inline:var(--gd-gutter);margin-inline:auto}
.gd-system .national-map+.map-localities{margin-top:24px}
