/* Page-scoped editorial layout; article copy is rendered from Grav Markdown. */
.castration-article { --ca-green: #326c21; --ca-ink: #17382f; --ca-line: #d9e3d8; color: #43534c; font-size: 16px; line-height: 1.75; }
.castration-article * { min-width: 0; }
.castration-article p { margin: 0 0 18px; }
.castration-article p:last-child { margin-bottom: 0; }
.castration-article h2 { max-width: 980px; margin: 0; color: var(--ca-ink); font-size: 34px; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; text-wrap: balance; }
.castration-article h3 { margin: 0 0 18px; color: var(--ca-ink); font-size: 21px; line-height: 1.4; letter-spacing: 0; }
.castration-article strong { color: var(--ca-ink); font-weight: 750; }
.ca-section { padding-block: 56px; border-bottom: 1px solid var(--ca-line); scroll-margin-top: 26px; }
.ca-section:last-child { padding-bottom: 0; border-bottom: 0; }
.ca-section-heading { margin-bottom: 24px; }
.castration-article .ca-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: var(--ca-green); font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.ca-eyebrow::before { width: 24px; height: 3px; background: currentColor; content: ''; }
.ca-intro { max-width: 1030px; margin-bottom: 28px; }
.ca-contents { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 18px 20px; background: #edf3e7; border: 1px solid #dbe7d3; border-radius: 8px; }
.ca-contents-label { margin-right: 10px; color: var(--ca-ink); font-size: 13px; font-weight: 800; }
.ca-contents a { padding: 9px 12px; color: #38602e; background: #fff; border: 1px solid #d9e5d1; border-radius: 4px; font-size: 12px; font-weight: 700; line-height: 1.6; text-decoration: none; transition: background .15s, color .15s; }
.ca-contents a:hover { color: #fff; background: var(--ca-green); border-color: var(--ca-green); }
.ca-overview .ca-intro { max-width: none; margin: 0; padding: 28px 32px; background: #fff; border: 1px solid var(--ca-line); border-left: 4px solid var(--ca-green); border-radius: 0 8px 8px 0; }
.ca-overview .ca-intro p:first-child { color: var(--ca-ink); font-size: 18px; }
.ca-groups { display: grid; gap: 30px; }
.ca-group { padding: 28px 30px; background: #fff; border: 1px solid var(--ca-line); border-radius: 8px; }
.castration-article ul, .castration-article ol { margin: 20px 0; padding: 0; list-style: none; }
.castration-article ul:last-child, .castration-article ol:last-child { margin-bottom: 0; }
.castration-article li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--ca-line); }
.castration-article li:last-child { border-bottom: 0; }
.castration-article ul > li::before { position: absolute; left: 0; top: 13px; color: var(--ca-green); font-size: 16px; font-weight: 800; content: '✓'; }
.ca-benefits .ca-group-1 { padding: 0; background: transparent; border: 0; }
.ca-benefits .ca-group-1 ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.ca-benefits .ca-group-1 li { padding: 26px 26px 26px 60px; background: #fff; border: 1px solid #d6e3ce; border-radius: 8px; }
.ca-benefits .ca-group-1 li::before { top: 27px; left: 24px; width: 24px; height: 24px; display: grid; place-items: center; color: #367811; background: #edf5e6; border-radius: 50%; font-size: 13px; }
.ca-benefits .ca-group-1 li strong { display: block; margin-bottom: 9px; font-size: 17px; line-height: 1.5; }
.ca-benefits .ca-group-2 { background: #fff6e8; border-color: #e9d3a8; border-left: 4px solid #bf7c22; }
.ca-benefits .ca-group-2 h3 { color: #704719; }
.ca-benefits .ca-group-2 li { border-color: #e8d9bb; }
.ca-benefits .ca-group-2 li::before { content: '!'; color: #a76316; }
.ca-procedure .ca-group-1 { border-top: 4px solid #327459; }
.ca-procedure .ca-group-1 ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 32px; }
.ca-procedure .ca-group-2 { background: #eaf3f6; border-color: #c8dfe5; }
.ca-procedure .ca-group-2 > p:last-child { margin-top: 24px; padding: 16px 20px; color: #205163; background: #fff; border-left: 3px solid #3c879c; font-weight: 650; }
.castration-article ol { counter-reset: ca-step; }
.castration-article ol > li { counter-increment: ca-step; padding-left: 54px; }
.castration-article ol > li::before { position: absolute; top: 13px; left: 0; width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: var(--ca-green); border-radius: 50%; font-size: 13px; font-weight: 800; content: counter(ca-step, decimal-leading-zero); }
.ca-procedure .ca-group-2 ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.ca-procedure .ca-group-2 li { padding: 56px 0 0; border: 0; font-size: 15px; }
.ca-procedure .ca-group-2 li::before { top: 0; background: #377c91; }
.ca-procedure .ca-group-3 { padding: 0; background: transparent; border: 0; }
.ca-procedure .ca-group-3 ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border: 1px solid var(--ca-line); border-radius: 8px; overflow: hidden; background: #fff; }
.ca-procedure .ca-group-3 li { min-height: 200px; padding: 78px 26px 26px; border: 0; border-bottom: 1px solid var(--ca-line); border-right: 1px solid var(--ca-line); font-size: 15px; }
.ca-procedure .ca-group-3 li:nth-child(3n) { border-right: 0; }
.ca-procedure .ca-group-3 li:nth-last-child(-n+3) { border-bottom: 0; }
.ca-procedure .ca-group-3 li::before { top: 26px; left: 26px; width: 36px; height: 36px; }
.ca-procedure .ca-group-3 > p:last-child { margin-top: 22px; padding: 24px 28px; color: #f6fff9; background: #173f34; border-left: 4px solid #a5cc63; border-radius: 0 8px 8px 0; font-size: 18px; font-weight: 600; }
.ca-preparation .ca-groups, .ca-recovery .ca-groups, .ca-visit .ca-groups { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
.ca-preparation .ca-group-1 { background: #eef4e6; border-color: #cdddbc; }
.ca-preparation li strong { display: block; margin-bottom: 4px; }
.ca-recovery .ca-group-1 { background: #fff9ed; border-color: #eadfbe; }
.ca-recovery .ca-group-2 > ul > li:last-child { margin: 18px -12px -10px; padding: 18px 18px 18px 44px; color: #6c302b; background: #fff0ee; border: 1px solid #efc4be; border-left: 3px solid #bc4b3e; border-radius: 4px; }
.ca-recovery .ca-group-2 > ul > li:last-child::before { top: 18px; left: 18px; content: '!'; color: #b33e32; }
.ca-recovery .ca-group-2 > ul > li:last-child strong { display: block; margin-bottom: 5px; color: #a33329; }
.ca-services .ca-intro { max-width: none; margin: 0; }
.ca-services ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.ca-services li { padding: 24px 24px 24px 50px; background: #fff; border: 1px solid var(--ca-line); border-radius: 8px; }
.ca-services li:last-child { grid-column: 1 / -1; border-bottom: 1px solid var(--ca-line); }
.ca-services li::before { top: 25px; left: 21px; }
.ca-services li strong { display: block; margin-bottom: 5px; }
.ca-visit .ca-group-2 { background: #edf4f7; border-color: #c9dde5; }
.ca-visit .ca-group-2 ol > li::before { background: #377c91; }
.ca-visit .ca-group > p:last-child { margin-top: 22px; padding-top: 18px; border-top: 2px solid #c1d2c5; color: var(--ca-ink); font-weight: 650; }
.ca-questions .ca-groups { gap: 12px; }
.ca-faq { padding: 0 26px; background: #fff; border: 1px solid var(--ca-line); border-radius: 8px; }
.ca-faq[open] { border-left: 3px solid var(--ca-green); }
.ca-faq summary { display: flex; gap: 22px; align-items: center; justify-content: space-between; padding: 22px 0; list-style: none; cursor: pointer; }
.ca-faq summary::-webkit-details-marker { display: none; }
.ca-faq summary:hover h3 { color: var(--ca-green); }
.ca-faq summary h3 { margin: 0; font-size: 18px; }
.ca-faq-sign { flex: 0 0 24px; width: 24px; height: 24px; display: grid; place-items: center; color: var(--ca-green); background: #edf3e7; border-radius: 50%; font-weight: 700; line-height: 1; }
.ca-faq-sign::before { content: '+'; }
.ca-faq[open] .ca-faq-sign::before { content: '−'; }
.ca-answer { padding: 0 48px 24px 0; }
.castration-article .ca-booking { margin-top: 56px; padding: 36px 40px; color: #e0ede5; background: #163e33; border: 1px solid #204a3e; border-radius: 8px; }
.ca-booking h2 { color: #fff; }
.castration-article .ca-booking .ca-eyebrow { color: #bfdc90; }
.ca-booking .ca-intro { max-width: 980px; margin-bottom: 28px; }
.ca-booking-actions { display: flex; flex-wrap: wrap; gap: 20px 28px; align-items: center; }
.ca-booking .button { display: inline-flex; align-items: center; gap: 18px; min-height: 54px; padding: 14px 20px; color: #17382f; background: #d8eba3; border-color: #d8eba3; line-height: 1.5; }
.ca-booking .button:hover { background: #e9f3cc; border-color: #e9f3cc; }
.ca-booking .ca-phone { color: #fff; font-size: 20px; font-weight: 750; text-underline-offset: 6px; }
@media (max-width: 980px) {
  .ca-procedure .ca-group-3 ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ca-procedure .ca-group-3 li:nth-child(n) { min-height: 0; border-right: 1px solid var(--ca-line); border-bottom: 1px solid var(--ca-line); }
  .ca-procedure .ca-group-3 li:nth-child(2n) { border-right: 0; }
  .ca-procedure .ca-group-3 li:nth-last-child(-n+2) { border-bottom: 0; }
  .ca-preparation .ca-groups, .ca-recovery .ca-groups, .ca-visit .ca-groups { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .castration-article { font-size: 15px; line-height: 1.75; }
  .castration-article h2 { font-size: 26px; line-height: 1.25; }
  .castration-article h3 { font-size: 19px; }
  .ca-section { padding-block: 38px; }
  .ca-section-heading { margin-bottom: 20px; }
  .ca-contents { padding: 14px; gap: 6px; }
  .ca-contents-label { flex-basis: 100%; margin-bottom: 6px; }
  .ca-contents a { min-height: 44px; padding: 11px 9px; font-size: 11px; }
  .ca-overview .ca-intro { padding: 22px 20px; }
  .ca-overview .ca-intro p:first-child { font-size: 16px; }
  .ca-group { padding: 24px 20px; }
  .ca-benefits .ca-group-1 ul, .ca-services ul, .ca-procedure .ca-group-1 ul, .ca-procedure .ca-group-2 ol, .ca-procedure .ca-group-3 ol { grid-template-columns: 1fr; }
  .ca-benefits .ca-group-1 li { padding: 22px 20px 22px 54px; }
  .ca-benefits .ca-group-1 li::before { top: 23px; left: 18px; }
  .ca-procedure .ca-group-2 ol { gap: 20px; }
  .ca-procedure .ca-group-2 li { padding: 0 0 0 48px; }
  .ca-procedure .ca-group-3 li:nth-child(n) { padding: 24px 20px 24px 70px; border-right: 0; border-bottom: 1px solid var(--ca-line); }
  .ca-procedure .ca-group-3 li:last-child { border-bottom: 0; }
  .ca-procedure .ca-group-3 li::before { top: 24px; left: 20px; }
  .ca-procedure .ca-group-3 > p:last-child { padding: 22px; font-size: 16px; }
  .ca-faq { padding: 0 20px; }
  .ca-faq summary { gap: 12px; }
  .ca-faq summary h3 { font-size: 17px; }
  .ca-answer { padding-right: 0; }
  .castration-article .ca-booking { margin-top: 38px; padding: 28px 22px; }
  .ca-booking .button { width: 100%; font-size: 13px; text-align: center; }
  .ca-booking .ca-phone { font-size: 18px; }
}
