/*
Theme Name: The Pet Gadget
Theme URI: https://thepetgadget.com
Description: Astra child theme — warm, accessible PetTech editorial identity.
Author: The Pet Gadget
Template: astra
Version: 2.5.15
Text Domain: petgadget
*/

:root {
  --pet-bg: #faf7f2;
  --pet-surface: #ffffff;
  --pet-sage: #e4efe6;
  --pet-ink: #1f2933;
  --pet-muted: #4d5b64;
  --pet-forest: #2c6e49;
  --pet-forest-dark: #245c3d;
  --pet-clay: #c45c26;
  --pet-focus: #184d8b;
  --pet-warning: #8a3b22;
  --pet-content: 44rem;
  --pet-wide: 72rem;
}

html { scroll-behavior: smooth; }
body,
.ast-separate-container,
.ast-separate-container .ast-article-post,
.ast-separate-container .ast-article-single {
  background: var(--pet-bg);
  color: var(--pet-ink);
  font-family: ui-rounded, "Avenir Next", Avenir, "Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.7;
}

body { overflow-wrap: break-word; }
.site-content { min-height: 50vh; }
.ast-container { max-width: var(--pet-wide); padding-inline: 1.25rem; }
.entry-content,
.entry-header,
.ast-single-post .entry-content { max-width: var(--pet-content); margin-inline: auto; }
.ast-page-builder-template .entry-content { max-width: var(--pet-wide); }

h1, h2, h3, h4, h5, h6,
.entry-title, .entry-title a { color: var(--pet-ink); font-weight: 700; letter-spacing: -0.018em; }
h1, .entry-title { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; }
h2 { font-size: clamp(1.5rem, 3vw, 2.125rem); line-height: 1.2; margin-top: 3rem; }
h3 { font-size: clamp(1.25rem, 2vw, 1.375rem); line-height: 1.3; }
p, ul, ol { margin-bottom: 1.25rem; }
.entry-meta, .entry-meta *, .ast-blog-meta-container, figcaption { color: var(--pet-muted); }

/* Keep archive cards readable without shrinking the homepage hero. */
.home .ast-article-post .entry-title,
.home .ast-article-post .entry-title a {
  font-size: clamp(1.15rem, 1.5vw, 1.5rem);
  line-height: 1.3;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}

.entry-content a:not(.wp-element-button),
.site-footer a,
.petgadget-footer a {
  color: var(--pet-forest-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.entry-content a:not(.wp-element-button):visited { color: #5d2f78; }
a:hover { text-decoration-thickness: 2px; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--pet-focus) !important;
  outline-offset: 3px;
}

.site-header,
.ast-primary-header-bar,
.ast-mobile-header-wrap .ast-primary-header-bar { background: var(--pet-bg); border-bottom: 1px solid #d9e7dc; }
.ast-primary-header-bar { min-height: 4.5rem; }
.site-title a, .site-branding a, .ast-site-title-wrap .site-title a { color: var(--pet-forest-dark); font-weight: 800; }
.main-header-menu { display: flex; flex-wrap: nowrap; }
.main-header-menu > .menu-item { flex: 0 0 auto; }
.main-header-menu > .menu-item > .menu-link,
.ast-header-break-point .main-header-menu .menu-link { color: var(--pet-ink); min-height: 44px; white-space: nowrap; }
.main-header-menu > .menu-item > .menu-link:hover { color: var(--pet-clay); }
.main-header-menu > .current-menu-item > .menu-link,
.main-header-menu > .current_page_item > .menu-link,
.main-header-menu > .menu-item > .menu-link[aria-current="page"] { color: var(--pet-forest-dark); box-shadow: inset 0 -3px var(--pet-clay); font-weight: 700; }
.ast-mobile-popup-drawer .ast-mobile-popup-inner { background: var(--pet-bg); }
.ast-button-wrap .menu-toggle.main-header-menu-toggle { color: var(--pet-forest-dark); min-width: 44px; min-height: 44px; }
.site-header .ast-builder-layout-element:has(> .brand-tagline) { flex-wrap: wrap; align-content: center; }
.site-header .brand-tagline { flex: 0 0 100%; }
.custom-logo { width: auto; max-height: 3.75rem; }
@media (max-width: 57.5rem) {
  .site-header .custom-logo-link img.custom-logo { width: 12rem !important; max-width: 54vw; height: auto; max-height: none; }
  .site-header .brand-tagline { font-size: 0.72rem; margin-top: 0.2rem; }
}

.brand-tagline { color: var(--pet-muted); font-size: clamp(0.72rem, 1.1vw, 0.9rem); line-height: 1.3; margin: 0.2rem 0 0; max-width: 32rem; }
.brand-hero { background: linear-gradient(135deg, var(--pet-bg) 0%, var(--pet-sage) 70%, #d9e8db 100%); border-bottom: 1px solid #c8d5cb; padding-block: clamp(2.75rem, 5vw, 4.75rem); }
.brand-hero .ast-container { display: block; }
.brand-hero__eyebrow { color: var(--pet-clay); font-size: 0.85rem; font-weight: 800; letter-spacing: 0.1em; margin-bottom: 0.75rem; text-transform: uppercase; }
.brand-hero h1 { color: var(--pet-forest-dark); font-size: clamp(2.25rem, 5.5vw, 4.25rem); margin: 0 0 1rem; max-width: 18ch; }
.brand-hero > .ast-container > p:last-of-type { color: var(--pet-ink); font-size: clamp(1.05rem, 2vw, 1.3rem); max-width: 42rem; margin: 0; }
.brand-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.brand-hero__button { background: var(--pet-forest-dark); border: 1px solid var(--pet-forest-dark); border-radius: 999px; color: #fffaf4 !important; font-weight: 750; min-height: 44px; padding: 0.75rem 1.2rem; text-decoration: none !important; }
.brand-hero__button:hover, .brand-hero__button:focus-visible { background: #194a31; border-color: #194a31; }
.brand-hero__text-link { color: var(--pet-forest-dark); font-weight: 700; text-underline-offset: 0.2em; }
#ast-desktop-header .ast-builder-grid-row { grid-template-columns: max-content minmax(0, 1fr); }
#ast-desktop-header .site-header-primary-section-right { justify-content: flex-end; min-width: 0; }
.brand-search { position: relative; align-items: center; }
.brand-search summary { align-items:center; cursor:pointer; display:flex; justify-content:center; list-style:none; min-height:44px; min-width:44px; }
.brand-search summary::-webkit-details-marker { display:none; }
.brand-search form { align-items:stretch; background:#fff; border:1px solid #c8d5cb; border-radius:10px; box-shadow:0 12px 30px rgba(31,41,51,.16); box-sizing:border-box; display:flex; flex-wrap:nowrap; gap:.5rem; padding:.75rem; position:absolute; right:0; top:calc(100% + .25rem); width:min(22rem,85vw); z-index:20; }
.brand-search input { border:1px solid #c8d5cb; box-sizing:border-box; flex:1 1 auto; min-height:44px; min-width:0; padding:.55rem .7rem; }
.brand-search button { background:var(--pet-forest-dark); border:0; border-radius:999px; box-sizing:border-box; color:#fff; flex:0 0 auto; line-height:1; min-height:44px; min-width:fit-content; padding:.55rem .9rem; white-space:nowrap; }
.ast-header-break-point #ast-hf-mobile-menu .brand-search { display:block; padding:0 20px .75rem; }
.ast-header-break-point #ast-hf-mobile-menu .brand-search summary { justify-content:flex-start; }
.ast-header-break-point #ast-hf-mobile-menu .brand-search form { box-shadow:none; margin-top:.25rem; position:static; width:100%; }
.section-page .entry-header { background:linear-gradient(135deg,var(--pet-bg),var(--pet-sage)); border:1px solid #c8d5cb; border-radius:16px; max-width:var(--pet-wide); padding:clamp(1.5rem,4vw,3rem); }
.section-page .section-hero-copy { border-left:4px solid var(--pet-clay); margin:1.25rem 0 2rem; padding-left:1rem; }
.section-eyebrow { color:var(--pet-clay); font-size:.8rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.listing-disclosure { background:var(--pet-sage); border-radius:10px; color:var(--pet-muted); font-size:.9rem; padding:.8rem 1rem; }
.section-page .wp-block-post-template { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.section-page .wp-block-post { background:#fff; border:1px solid #c8d5cb; border-radius:14px; padding:1.25rem; }
.section-page .wp-block-post-title a { color:var(--pet-forest-dark); text-decoration:none; }
.section-page .wp-block-post-title a:hover { color:var(--pet-clay); text-decoration:underline; }
.section-card__terms,.section-card__date { color:var(--pet-muted); font-size:.82rem; }
.search-no-results .site-main,.error404 .site-main { background:#fff; border:1px solid #c8d5cb; border-radius:14px; padding:clamp(1.5rem,4vw,3rem); }

/* About page values use self-contained inline SVGs, never icon fonts. */
.page-id-37 .about-components { display:grid; gap:1.5rem; }
.page-id-37 .about-component { align-items:start; display:grid; gap:1rem; grid-template-columns:44px minmax(0,1fr); }
.page-id-37 .component-icons { display:flex; flex-direction:column; gap:.5rem; }
.page-id-37 .component-icon {
  align-items:center;
  background:#eef4f7;
  border:1px solid #d8e3e9;
  border-radius:10px;
  color:#49657b;
  display:inline-flex;
  flex:0 0 44px;
  height:44px;
  justify-content:center;
  width:44px;
}
.page-id-37 .component-icon svg { display:block; flex:none; height:28px; stroke-width:1.8; width:28px; }
.page-id-37 .component-copy { min-width:0; }
.page-id-37 .component-copy h2 { margin-block:0 .5rem; }
.page-id-37 .component-copy > :last-child { margin-bottom:0; }

.wp-block-button__link,
a.wp-element-button,
.petgadget-cta {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.75rem 1.25rem;
  background: var(--pet-forest);
  color: #fffaf4 !important;
  border: 1px solid var(--pet-forest);
  border-radius: 999px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
}
.wp-block-button__link:hover,
a.wp-element-button:hover,
.petgadget-cta:hover { background: var(--pet-forest-dark); border-color: var(--pet-forest-dark); color: #fffaf4 !important; }

.wp-block-group.petgadget-offer-card,
.petgadget-note,
.wp-block-query .wp-block-post,
.ast-article-post {
  background: var(--pet-surface);
  border: 1px solid #d4dfd7;
  border-radius: 16px;
  padding: 1.25rem;
}
.affiliate-disclosure { color: var(--pet-muted); font-size: 0.875rem; }
.petgadget-note--takeaways { background: var(--pet-sage); border-left: 4px solid var(--pet-forest); }
.petgadget-note--safety { background: #fff5ef; border-left: 4px solid var(--pet-warning); }
.petgadget-note--safety h3 { color: var(--pet-warning); }

.entry-content { min-width: 0; }
.entry-content :where(img, svg, video, canvas, iframe) { height: auto; max-width: 100%; }
.entry-content figure { max-width: 100%; }
.entry-content pre { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content :where(.wp-block-buttons, .brand-hero__actions) { max-width: 100%; flex-wrap: wrap; }
.wp-block-table { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.wp-block-table table { width: 100%; min-width: 40rem; max-width: none; border-collapse: collapse; color: var(--pet-ink); }
.entry-content > table { display: block; width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-collapse: collapse; color: var(--pet-ink); }
.wp-block-table th, .wp-block-table td, .entry-content > table th, .entry-content > table td { border: 1px solid #c8d5cb; padding: 0.75rem; vertical-align: top; }
.wp-block-table thead th, .entry-content > table thead th { background: var(--pet-forest-dark); color: #fffaf4; font-weight: 700; padding: 0.75rem; text-align: left; vertical-align: middle; }
.wp-block-table tbody th, .entry-content > table tbody th { font-weight: 700; text-align: left; }
.wp-block-table tbody td.is-numeric, .entry-content > table tbody td.is-numeric { text-align: right; font-variant-numeric: tabular-nums; }
.wp-block-table tbody tr:nth-child(even), .entry-content > table tbody tr:nth-child(even) { background: var(--pet-sage); }
.wp-block-table tbody tr:nth-child(odd), .entry-content > table tbody tr:nth-child(odd) { background: var(--pet-surface); }

.entry-content details { margin-block: 1rem; background: var(--pet-surface); border: 1px solid #d4dfd7; border-radius: 12px; padding: 0.9rem 1rem; }
.entry-content summary { min-height: 44px; cursor: pointer; color: var(--pet-ink); font-weight: 700; }
.entry-content details > :last-child { margin-bottom: 0; }

.petgadget-footer { background:var(--pet-sage); border-top:1px solid #c8d5cb; color:var(--pet-muted); padding:24px 20px; }
.petgadget-footer__inner { display:grid; grid-template-columns:minmax(14rem,2fr) repeat(3,minmax(9rem,1fr)); gap:1.25rem; max-width:var(--pet-wide); margin:0 auto; }
.petgadget-footer__brand > a { color: var(--pet-forest-dark); font-size: 1.2rem; font-weight: 800; text-decoration: none; }
.petgadget-footer__brand p { margin:.4rem 0 0; max-width:28rem; }
.petgadget-footer h2 { color:var(--pet-ink); font-size:1rem; margin:0 0 .25rem; }
.petgadget-footer ul { list-style: none; margin: 0; padding: 0; }
.petgadget-footer li { margin:0; }
.petgadget-footer li a { align-items:center; display:inline-flex; min-height:44px; }
.petgadget-footer__inner > nav:first-of-type ul { column-gap:.75rem; display:grid; grid-template-columns:repeat(2,max-content); }
.site-footer .site-below-footer-wrap { background:#d9e8db !important; border-top:1px solid #c8d5cb; color:var(--pet-muted); min-height:0; padding-block:8px !important; }
.site-footer .site-below-footer-wrap .ast-builder-footer-grid-columns { min-height:44px !important; }

@media (min-width: 64rem) {
  body { font-size: 1.0625rem; }
  .ast-container { padding-inline: 2rem; }
  .entry-content h2 { margin-top: 4.5rem; }
}

@media (max-width: 63.99rem) {
  .ast-primary-header-bar { min-height: 4rem; }
  .section-page .wp-block-post-template { grid-template-columns: 1fr; }
  .petgadget-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 37.5rem) {
  .home .ast-article-post .entry-title,
  .home .ast-article-post .entry-title a { font-size:clamp(1.1rem, 5vw, 1.25rem); }
  .page-id-37 .about-component { grid-template-columns:40px minmax(0,1fr); }
  .page-id-37 .component-icon { flex-basis:40px; height:40px; width:40px; }
  .page-id-37 .component-icon svg { height:24px; width:24px; }
  .petgadget-footer__inner { grid-template-columns: 1fr; }
  .wp-block-button, .wp-block-button__link { width: 100%; justify-content: center; }
}

@media (max-width: 25rem) {
  .brand-search form { flex-direction:column; }
  .brand-search button { width:100%; }
}

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