/*
Theme Name: JarrahVet for Astra
Description: A considered, accessible presentation for JarrahVet's veterinary consultation and surgical-care pages.
Author: JarrahVet
Template: astra
Version: 0.1.1
Text Domain: jarrahvet
License: GPL-2.0-or-later
*/

/* Components are scoped to the JarrahVet template; ordinary Astra pages retain their own layout. */
.jrv-site {
  --jrv-paper: #f8f5ee;
  --jrv-white: #fffdfa;
  --jrv-forest: #203d34;
  --jrv-forest-deep: #162e27;
  --jrv-ink: #263b33;
  --jrv-muted: #56655d;
  --jrv-clay: #8d4e38;
  --jrv-line: #d8ded3;
  --jrv-sage: #e9eee4;
  --jrv-radius: 6px;
  background: var(--jrv-paper);
  color: var(--jrv-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.75;
  margin: 0;
  -webkit-font-smoothing: antialiased;
}

.jrv-site *, .jrv-site *::before, .jrv-site *::after { box-sizing: border-box; }
.jrv-site a { color: var(--jrv-forest); text-underline-offset: .22em; text-decoration-thickness: 1px; }
.jrv-site a:hover { text-decoration-thickness: 2px; }
.jrv-site :focus-visible { outline: 3px solid var(--jrv-clay); outline-offset: 5px; }
.jrv-site img, .jrv-site svg { max-width: 100%; }
.jrv-site img { height: auto; }
.jrv-site p { margin: 0 0 1.2em; }
.jrv-site p:last-child { margin-bottom: 0; }
.jrv-site h1, .jrv-site h2, .jrv-site h3, .jrv-site h4 {
  color: var(--jrv-forest);
  font-weight: 500;
  text-wrap: balance;
  margin: 0 0 .65em;
  line-height: 1.18;
}
.jrv-site h1, .jrv-site h2, .jrv-site h3 { font-family: Georgia, "Times New Roman", serif; }
.jrv-site h1 { font-size: clamp(2.5rem, 5.3vw, 4.75rem); letter-spacing: -.045em; }
.jrv-site h2 { font-size: clamp(1.9rem, 3.2vw, 3rem); letter-spacing: -.025em; }
.jrv-site h3 { font-size: clamp(1.35rem, 2.1vw, 1.7rem); letter-spacing: -.015em; }
.jrv-site h4 { font-size: 1.12rem; font-weight: 650; }
.jrv-site ul, .jrv-site ol { padding-left: 1.35em; margin: 0 0 1.35em; }
.jrv-site li { padding-left: .2em; margin-bottom: .55em; }
.jrv-site li::marker { color: var(--jrv-clay); }
.jrv-site button, .jrv-site input, .jrv-site select, .jrv-site textarea { font: inherit; }
.jrv-site [hidden] { display: none !important; }
.jrv-container { width: min(1180px, calc(100% - 80px)); margin-inline: auto; }
.jrv-copy { max-width: 760px; }
.jrv-copy > * + h2, .jrv-copy > * + h3 { margin-top: 1.7em; }
.jrv-muted { color: var(--jrv-muted); }
.jrv-small { font-size: .875rem; }
.jrv-preview-banner {
  padding: 12px 24px; border-bottom: 1px solid #c2a976;
  background: #f4e6c7; color: #563d18; font-size: .82rem;
  font-weight: 600; line-height: 1.6; text-align: center;
}
.jrv-placeholder {
  display: inline; padding: .1em .3em; border: 1px dashed #a97923;
  border-radius: 3px; background: #f8e8bc; color: #593d0c;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .85em; font-weight: 500; line-height: 1.8;
  overflow-wrap: anywhere; box-decoration-break: clone; -webkit-box-decoration-break: clone;
}

.jrv-skip-link {
  position: absolute; z-index: 99999; left: 16px; top: 12px; padding: 12px 20px;
  color: var(--jrv-white) !important; background: var(--jrv-forest); transform: translateY(-180%);
}
.jrv-skip-link:focus { transform: translateY(0); }
.jrv-header { position: relative; background: var(--jrv-paper); border-bottom: 1px solid var(--jrv-line); z-index: 20; }
.jrv-header__inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 106px; }
.jrv-brand { display: inline-flex; gap: 12px; align-items: center; color: var(--jrv-forest); text-decoration: none !important; flex-shrink: 0; }
.jrv-brand__mark { display: block; width: 34px; height: 45px; flex: 0 0 auto; }
.jrv-brand__name { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 2rem; font-weight: 500; line-height: 1.1; letter-spacing: -.045em; }
.jrv-brand__location { display: block; font-size: .59rem; font-weight: 650; letter-spacing: .17em; line-height: 1.7; margin-top: 6px; text-transform: uppercase; }
.jrv-nav ul { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px 25px; list-style: none; margin: 0; padding: 0; }
.jrv-nav li { margin: 0; padding: 0; }
.jrv-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: .88rem; font-weight: 550; text-decoration: none; }
.jrv-nav a:hover, .jrv-nav .current-menu-item > a, .jrv-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 1px; }
.jrv-nav .jrv-nav__cta a { border: 1px solid var(--jrv-forest); padding: 8px 17px; border-radius: 3px; }
.jrv-nav .jrv-nav__cta a:hover { background: var(--jrv-forest); color: var(--jrv-white); text-decoration: none; }
.jrv-mobile-menu { display: none; }

.jrv-hero { position: relative; padding: clamp(60px, 8vw, 110px) 0 clamp(62px, 7vw, 94px); overflow: hidden; }
.jrv-hero > .jrv-container { position: relative; z-index: 1; }
.jrv-hero .jrv-display { max-width: 960px; margin-bottom: .43em; }
.jrv-eyebrow { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--jrv-clay); margin-bottom: 22px !important; }
.jrv-intro { max-width: 750px; font-size: clamp(1.08rem, 1.55vw, 1.26rem); line-height: 1.75; color: var(--jrv-muted); }
.jrv-hero__actions, .jrv-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px 24px; margin-top: 30px; }
.jrv-hero__note { font-size: .83rem; color: var(--jrv-muted); margin-top: 20px !important; max-width: 620px; }
.jrv-hero__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(230px, .7fr); align-items: center; gap: 64px; }
.jrv-hero--home .jrv-display { font-size: clamp(2.5rem, 4.8vw, 4.3rem); }
.jrv-hero__aside { padding: 35px; border: 1px solid var(--jrv-line); background: var(--jrv-sage); border-radius: var(--jrv-radius); }
.jrv-hero__aside h2 { font-size: 1.6rem; }
.jrv-hero__aside p, .jrv-hero__aside li { font-size: .96rem; }
.jrv-button, .jrv-site a.jrv-button, .jrv-site button.jrv-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px;
  padding: 13px 23px; border: 1px solid var(--jrv-forest); border-radius: 3px;
  background: var(--jrv-forest); color: var(--jrv-white); font-family: inherit; font-size: .91rem;
  font-weight: 600; text-decoration: none; line-height: 1.4; text-align: center; cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.jrv-site .jrv-button:hover { background: var(--jrv-forest-deep); color: var(--jrv-white); text-decoration: none; }
.jrv-site .jrv-button--secondary { background: transparent; color: var(--jrv-forest); }
.jrv-site .jrv-button--secondary:hover { background: var(--jrv-sage); color: var(--jrv-forest); }
.jrv-text-link { font-size: .94rem; font-weight: 600; }

.jrv-section { padding: clamp(48px, 6vw, 76px) 0; border-top: 1px solid var(--jrv-line); scroll-margin-top: 24px; }
.jrv-section--tint { background: var(--jrv-sage); }
.jrv-section--white { background: var(--jrv-white); }
.jrv-section__heading { max-width: 810px; margin-bottom: 32px; }
.jrv-section__heading p { color: var(--jrv-muted); max-width: 700px; }
.jrv-section__grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: clamp(32px, 6vw, 92px); }
.jrv-section__grid > :first-child h2 { max-width: 390px; }
.jrv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 30px; }
.jrv-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jrv-card { background: var(--jrv-white); border: 1px solid var(--jrv-line); border-radius: var(--jrv-radius); padding: clamp(24px, 3vw, 36px); }
.jrv-card p, .jrv-card li { font-size: .98rem; }
.jrv-card__number { display: block; color: var(--jrv-clay); font-size: .75rem; font-weight: 700; letter-spacing: .12em; margin-bottom: 26px; }
.jrv-card h3 { margin-bottom: .7em; }
.jrv-card .jrv-text-link { display: inline-block; margin-top: 10px; }
.jrv-site ol.jrv-steps { list-style: none; padding: 0; margin-bottom: 0; }
.jrv-site .jrv-steps > li { padding: clamp(24px, 3vw, 36px); margin: 0; }
.jrv-steps .jrv-card__number { font-size: 1.3rem; font-weight: 400; font-family: Georgia, "Times New Roman", serif; margin-bottom: 20px; }
.jrv-notice { border-left: 3px solid var(--jrv-clay); background: #f1e8dd; padding: 22px 26px; margin: 30px 0; font-size: .98rem; }
.jrv-notice h2, .jrv-notice h3 { font-size: 1.3rem; }
.jrv-notice p { margin-bottom: .8em; }
.jrv-notice p:last-child { margin-bottom: 0; }
.jrv-toc { padding: 23px 27px; margin: 30px 0; border: 1px solid var(--jrv-line); border-radius: var(--jrv-radius); }
.jrv-toc h2, .jrv-toc h3 { font-family: inherit; font-size: .93rem; font-weight: 650; margin-bottom: 15px; }
.jrv-toc .jrv-toc__title { font-family: inherit; font-size: .83rem; font-weight: 650; margin-bottom: 13px; }
.jrv-toc ul { display: flex; flex-wrap: wrap; gap: 8px 26px; list-style: none; margin: 0; padding: 0; }
.jrv-toc li { padding: 0; margin: 0; font-size: .9rem; }
.jrv-faq-list { max-width: 850px; }
.jrv-faq-list details { padding: 0; border-bottom: 1px solid var(--jrv-line); }
.jrv-faq-list details:first-child { border-top: 1px solid var(--jrv-line); }
.jrv-faq-list summary { cursor: pointer; font-size: 1.08rem; font-weight: 600; line-height: 1.5; padding: 23px 10px 23px 0; color: var(--jrv-forest); }
.jrv-faq-list summary::marker { color: var(--jrv-clay); }
.jrv-faq-list details > :not(summary) { margin: 0 0 24px; max-width: 760px; color: var(--jrv-muted); }
.jrv-cta-panel { background: var(--jrv-forest); color: var(--jrv-white); border-radius: var(--jrv-radius); padding: clamp(30px, 5vw, 60px); }
.jrv-cta-panel h2, .jrv-cta-panel h3, .jrv-cta-panel .jrv-eyebrow { color: var(--jrv-white); }
.jrv-cta-panel p { max-width: 720px; color: #e1e9df; }
.jrv-site .jrv-cta-panel a { color: var(--jrv-white); }
.jrv-site .jrv-cta-panel .jrv-button { background: var(--jrv-white); color: var(--jrv-forest); border-color: var(--jrv-white); }
.jrv-site .jrv-cta-panel .jrv-button:hover { background: var(--jrv-sage); }
.jrv-site .jrv-cta-panel :focus-visible, .jrv-site .jrv-footer :focus-visible { outline-color: #f0cc99; }
.jrv-reference-list { font-size: .88rem; line-height: 1.65; overflow-wrap: anywhere; }
.jrv-reference-list li { margin-bottom: 14px; }

.jrv-form { max-width: 780px; }
.jrv-form label, .jrv-form legend { display: block; font-size: .94rem; font-weight: 600; margin-bottom: 7px; }
.jrv-form fieldset { padding: 0; border: 0; margin: 0 0 24px; }
.jrv-form .jrv-field { margin-bottom: 24px; }
.jrv-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), .jrv-form select, .jrv-form textarea {
  width: 100%; max-width: 100%; min-height: 48px; border: 1px solid #7c897e; border-radius: 3px;
  color: var(--jrv-ink); background: var(--jrv-white); padding: 10px 13px; box-shadow: none;
}
.jrv-form textarea { min-height: 150px; resize: vertical; }
.jrv-form input[type="checkbox"], .jrv-form input[type="radio"] { accent-color: var(--jrv-forest); width: 19px; height: 19px; margin-right: 8px; }
.jrv-form .jrv-field-hint { font-size: .83rem; color: var(--jrv-muted); margin-top: 6px; }
.jrv-form .jrv-field-error { font-size: .88rem; color: #9c2d20; margin-top: 6px; }

.jrv-footer { background: var(--jrv-forest-deep); color: #e0e7de; padding: 54px 0 25px; }
.jrv-footer a, .jrv-footer .jrv-brand, .jrv-footer h2, .jrv-footer h3 { color: var(--jrv-white); }
.jrv-footer__top { display: flex; gap: 35px; justify-content: space-between; align-items: flex-start; padding-bottom: 35px; }
.jrv-footer__description { max-width: 370px; margin-top: 17px !important; font-size: .9rem; line-height: 1.7; }
.jrv-footer__nav ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 25px; list-style: none; padding: 0; margin: 0; max-width: 440px; }
.jrv-footer__nav li { padding: 0; margin: 0; }
.jrv-footer__nav a { display: inline-block; min-height: 44px; padding-block: 9px; font-size: .84rem; }
.jrv-footer__bottom { display: flex; justify-content: space-between; gap: 15px; flex-wrap: wrap; padding-top: 21px; border-top: 1px solid #42594d; font-size: .75rem; color: #c5d1c3; }
.jrv-footer__bottom p { margin: 0; }

@media (max-width: 1080px) {
  .jrv-container { width: min(1180px, calc(100% - 48px)); }
  .jrv-header__inner { min-height: 90px; gap: 20px; }
  .jrv-nav ul { gap: 6px 16px; }
  .jrv-nav a { font-size: .81rem; }
  .jrv-brand__name { font-size: 1.8rem; }
  .jrv-hero__grid { gap: 36px; }
}
@media (max-width: 880px) {
  .jrv-desktop-nav { display: none; }
  .jrv-mobile-menu { display: block; }
  .jrv-mobile-menu > summary { cursor: pointer; min-height: 44px; padding: 10px 12px; border: 1px solid var(--jrv-line); border-radius: 3px; font-size: .87rem; }
  .jrv-mobile-menu > summary::marker { color: var(--jrv-clay); }
  .jrv-mobile-menu[open] > summary { background: var(--jrv-sage); }
  .jrv-mobile-menu .jrv-nav { position: absolute; top: 100%; left: 0; right: 0; padding: 18px 24px 25px; background: var(--jrv-paper); border-bottom: 1px solid var(--jrv-line); box-shadow: 0 15px 20px #203d3412; }
  .jrv-mobile-menu .jrv-nav ul { display: grid; gap: 3px; justify-content: stretch; }
  .jrv-mobile-menu .jrv-nav a { display: flex; width: 100%; font-size: .98rem; padding: 10px 12px; }
  .jrv-mobile-menu .jrv-nav__cta { margin-top: 10px; }
  .jrv-hero__grid, .jrv-section__grid { grid-template-columns: 1fr; }
  .jrv-hero__aside { max-width: 600px; }
  .jrv-section__grid { gap: 18px; }
  .jrv-section__grid > :first-child h2 { max-width: 720px; }
  .jrv-grid { grid-template-columns: 1fr; }
  .jrv-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .jrv-site { font-size: 16px; }
  .jrv-container { width: calc(100% - 36px); }
  .jrv-header__inner { min-height: 82px; }
  .jrv-brand__mark { width: 27px; height: 37px; }
  .jrv-brand__name { font-size: 1.75rem; }
  .jrv-brand__location { font-size: .54rem; letter-spacing: .14em; }
  .jrv-hero { padding-block: 52px; }
  .jrv-hero .jrv-display { font-size: clamp(2.3rem, 10vw, 3.25rem); }
  .jrv-eyebrow { font-size: .65rem; letter-spacing: .13em; margin-bottom: 18px !important; }
  .jrv-intro { font-size: 1.05rem; }
  .jrv-section { padding-block: 45px; }
  .jrv-grid--two { grid-template-columns: 1fr; }
  .jrv-hero__actions, .jrv-actions { align-items: stretch; flex-direction: column; gap: 17px; }
  .jrv-hero__actions .jrv-button, .jrv-actions .jrv-button { width: 100%; }
  .jrv-hero__actions .jrv-text-link, .jrv-actions .jrv-text-link { align-self: center; }
  .jrv-notice { padding: 20px; }
  .jrv-footer__top { flex-direction: column; gap: 25px; }
  .jrv-footer__nav ul { justify-content: flex-start; gap: 5px 23px; }
  .jrv-footer__bottom { flex-direction: column; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .jrv-site *, .jrv-site *::before, .jrv-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .jrv-site { background: white; color: black; font-size: 11pt; }
  .jrv-header, .jrv-footer, .jrv-hero__actions, .jrv-actions, .jrv-skip-link { display: none; }
  .jrv-container { width: 100%; }
  .jrv-hero, .jrv-section { padding: 20px 0; }
  .jrv-site .jrv-cta-panel, .jrv-site .jrv-cta-panel * { background: white; color: black; }
  .jrv-card, .jrv-notice, .jrv-faq-list details { break-inside: avoid; }
}
