/* New lower-page layouts. Loaded only for completed renewal pages. */
.kv-subpage {
    --kv-subpage-accent: #41b2b9;
    --kv-subpage-heading: #4b9499;
    --kv-section-gap: 128px; /* design median (sections vary 86-250px) */
    --kv-signs-gap: 143px; /* intro to symptom badge = 110px as in the design */
    font-size: 16px;
    line-height: 2;
    letter-spacing: .05em;
}
.kv-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.kv-subpage-hero {
    min-height: 250px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 35px 24px;
    color: #fff;
    text-align: center;
    background: linear-gradient(#29313280, #29313280), url('../images/mv/new_06.jpg') center 23.6% / cover no-repeat; /* same photo and crop as the design */
}
.kv-subpage-hero p {
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .3em;
    color: #d1f3f6;
}
.kv-subpage-hero h1 {
    font-size: 30px;
    letter-spacing: .18em;
    line-height: 1.5;
}
.kv-subpage-hero-sub {
    display: block;
    margin-top: 6px;
    font-size: 22px;
    letter-spacing: .2em;
}
.kv-subpage-content {
    padding-top: 100px;
    padding-bottom: 165px;
}
.kv-subpage-introduction {
    display: grid;
    grid-template-columns: 600fr 550fr;
    gap: 50px;
    align-items: start;
}
.kv-subpage-introduction h2 {
    color: var(--kv-subpage-accent);
    font-size: 25px;
    line-height: 1.6;
    letter-spacing: .12em;
    margin-bottom: 50px !important;
}
/* Large teal lead heading inside a section (design: 25px bold, no marker or rule). */
.kv-subpage .kv-subpage-lead-heading {
    color: var(--kv-subpage-accent);
    font-size: 25px;
    line-height: 1.6;
    letter-spacing: .2em;
    margin-bottom: 30px !important;
}
@media (max-width: 600px) { .kv-subpage .kv-subpage-lead-heading { font-size: 20px; letter-spacing: .1em; } }
.kv-subpage-introduction > img {
    width: 100%;
    border-radius: 12px;
}
.kv-symptom-check {
    margin-top: var(--kv-signs-gap);
}
.kv-symptom-check-box {
    position: relative;
    border: 2px solid #6cc9cf;
    padding: 75px 100px 60px;
}
.kv-symptom-check-box h2 {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: max-content;
    max-width: calc(100% - 40px);
    background: var(--kv-subpage-accent);
    color: white;
    padding: 20px 75px !important;
    text-align: center;
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: .05em;
}
.kv-symptom-check-box ul {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px 35px;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.8;
}
.kv-symptom-check-box li {
    position: relative;
    padding-left: 30px;
}
.kv-symptom-check-box li::before {
    content: '';
    position: absolute;
    left: 5px;
    top: .3em;
    width: 7px;
    height: 13px;
    color: #6cc9cf;
    border: solid currentColor;
    border-width: 0 3.5px 3.5px 0;
    transform: rotate(45deg);
}
.kv-symptom-check > p {
    text-align: center;
    color: var(--kv-subpage-heading);
    margin-top: 30px !important;
    font-weight: 700;
}
.kv-subpage-section {
    margin-top: var(--kv-section-gap);
}
.kv-subpage .kv-subpage-heading {
    background: #f6f6f6;
    border-bottom: 3px solid var(--kv-subpage-heading);
    color: var(--kv-subpage-heading);
    padding: 10px 25px !important;
    border-radius: 5px 5px 0 0;
    font-size: 22px;
    line-height: 1.6;
    letter-spacing: .08em;
}
.kv-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 60px;
    margin-top: 80px;
}
.kv-subpage-feature-number {
    display: flex;
    align-items: center;
    margin-bottom: 50px;
    color: var(--kv-subpage-heading);
}
.kv-subpage-feature-number::before,
.kv-subpage-feature-number::after {
    content: '';
    flex: 1;
    border-top: 1px solid var(--kv-subpage-heading);
}
.kv-subpage-feature-number > span {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
    border: 1px solid #50a7ba;
    border-radius: 50%;
    font: 14px/1.5 Jost, sans-serif;
}
.kv-subpage-feature-number strong {
    font-size: 36px;
    line-height: 1.2;
    font-weight: 400;
}
.kv-subpage-feature h3 {
    color: var(--kv-subpage-heading);
    font-size: 20px;
    line-height: 1.8;
    text-align: center;
    margin-bottom: 40px !important;
    letter-spacing: .05em;
}
.kv-subpage-feature > img {
    width: 100%;
    border-radius: 12px;
}
.kv-subpage-feature > p {
    margin-top: 24px !important;
}
.kv-subpage-section-lead {
    margin-top: 45px !important;
}
.kv-examination {
    margin-top: 50px;
    display: grid;
    grid-template-columns: 580fr 550fr;
    gap: 70px;
    align-items: start;
}
.kv-examination dl,
.kv-examination dd {
    margin: 0;
}
.kv-examination dl > div + div {
    margin-top: 40px;
}
.kv-subpage .kv-subpage-subheading {
    color: var(--kv-subpage-heading);
    font-weight: 700;
    font-size: 16px;
    line-height: 24px;
    border-bottom: 1px solid var(--kv-subpage-heading);
    padding: 0 0 6px 24px !important;
    position: relative;
}
.kv-subpage .kv-subpage-subheading::before {
    content: '';
    width: 15px;
    height: 15px;
    background: #6cc9cf;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 4.5px;
}
.kv-subpage .kv-subpage-text {
    margin-top: 8px;
    line-height: 1.75;
}
.kv-examination > img {
    width: 100%;
    border-radius: 12px;
}
.kv-disease-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 45px 40px;
    margin-top: 55px;
}
.kv-disease-card {
    display: grid;
    grid-template-columns: 250fr 330fr;
    background: #f0f9fa;
    position: relative;
    align-items: start;
}
.kv-disease-card-media {
    position: relative;
    width: 100%;
    min-width: 0;
    aspect-ratio: 375 / 495;
    align-self: stretch;
    background: #6cc9cf;
}
.kv-front .kv-disease-card-media > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}
.kv-disease-card > p {
    padding: 36px 32px !important;
    font-size: 16px;
    line-height: 2;
    letter-spacing: .05em;
}
/* Additive components: existing ear-page selectors and dimensions stay intact. */
.kv-subpage-media {
    display: grid;
    grid-template-columns: 580fr 550fr;
    gap: 70px;
    align-items: start;
    margin-top: 50px;
}
.kv-subpage-media--image-left { grid-template-columns: 550fr 580fr; }
.kv-subpage-media > img { width: 100%; border-radius: 12px; }
.kv-subpage-detail-list > div + div { margin-top: 39px; }
.kv-site .kv-subpage :not(.kv-about-distance) > .kv-subpage-detail-list .kv-subpage-subheading + :is(p, ul, div), .kv-site .kv-subpage .kv-subpage-profile .kv-subpage-subheading + p { margin-top: 0; }
/* Design sizes: the doctor profile names are 18px, the しつけ相談 panel title 18px. */
.kv-subpage .kv-subpage-profile .kv-subpage-subheading { font-size: 18px; }
.kv-general-medicine .kv-subpage-panel > h2 { font-size: 18px; }
.kv-site .kv-subpage .kv-subpage-list { list-style: none; padding-left: 0; }
.kv-subpage .kv-subpage-list:not(.kv-subpage-list--check) > li { position: relative; padding-left: 1.25em; }
.kv-subpage .kv-subpage-list:not(.kv-subpage-list--check) > li::before { content: '\30FB'; position: absolute; left: 0; top: 0; font-weight: 400; }
.kv-sterilization .kv-subpage-card .kv-subpage-list > li::before, .kv-cardiology .kv-subpage-list--bold > li::before, .kv-dog-checkup .kv-treatment-flow .kv-subpage-list > li::before, .kv-general-medicine :not(.kv-treatment-flow-body) > .kv-subpage-list > li::before, .kv-vaccination .kv-subpage-list > li::before, .kv-preventive-medicine .kv-subpage-list > li::before { color: #41b2b9; }
.kv-subpage.kv-about .kv-subpage-list.kv-subpage-list--spaced > li { padding-left: 14px; }
@media (min-width: 901px) { .kv-subpage.kv-about .kv-subpage-list.kv-subpage-list--spaced { margin-left: 28px; line-height: 32px; } }
.kv-subpage.kv-about .kv-subpage-list.kv-subpage-list--spaced > li::before { content: ''; top: calc(1em - 2.5px); width: 5px; height: 5px; border-radius: 50%; background: #6cc9cf; }
/* Design list rhythm: 28px lines, no extra gap between items (the dog-checkup flow keeps 32px lines). */
.kv-subpage .kv-subpage-list:not(.kv-subpage-list--check, .kv-subpage-list--spaced, .kv-subpage-feature-list) { line-height: 28px; }
.kv-subpage .kv-subpage-list:not(.kv-subpage-list--check, .kv-subpage-list--spaced) > li + li { margin-top: 0; }
.kv-subpage.kv-dog-checkup .kv-treatment-flow .kv-subpage-list { line-height: 32px; }
.kv-site .kv-subpage .kv-subpage-feature-list { list-style: none; }
.kv-subpage .kv-subpage-feature-list > li { padding-left: 0 !important; }
.kv-subpage .kv-subpage-feature-list > li::before { content: none !important; }
/* Lists whose items are bold in the design. */
.kv-subpage .kv-subpage-list--bold,
.kv-sterilization .kv-subpage-card .kv-subpage-list,
.kv-general-medicine .kv-treatment-flow .kv-subpage-list { font-weight: 700; }
.kv-subpage-list li + li { margin-top: 5px; }
.kv-subpage .kv-subpage-introduction .kv-subpage-list { margin: 16px 0; font-weight: 700; }
.kv-subpage .kv-subpage-text .kv-subpage-list { margin-top: 12px; }
.kv-subpage-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 45px 40px;
    margin-top: 55px;
}
.kv-subpage-card { background: #f0f9fa; min-width: 0; }
/* Same-row cards share header and body heights (header height follows the longest title in the row). */
.kv-subpage-card-grid > .kv-subpage-card:has(> :nth-child(2):last-child) { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
.kv-subpage-card > h3 {
    background: var(--kv-subpage-heading);
    color: #fff;
    padding: 20px 30px !important;
    font-size: 18px;
    line-height: 1.7;
}
.kv-subpage-card > p { padding: 25px 30px !important; }
/* Text cards: every card in a section matches the tallest one. Bodies share one 1fr size; js/renewal.js gives all titles the tallest title height. One column (600px and below) keeps natural heights. */
@media (min-width: 601px) { .kv-subpage-card-grid--even { grid-auto-rows: auto 1fr; } }
.kv-subpage-card-grid--even > .kv-subpage-card > h3 { box-sizing: border-box; }
.kv-symptom-check-box--three-rows ul { grid-template-rows: repeat(3, auto); }
/* Pages with an item too long for equal columns: size columns to the text so it stays on one line. */
@media (min-width: 1201px) { .kv-symptom-check-box--fit ul { grid-template-columns: repeat(3, minmax(0, max-content)); justify-content: space-between; } }
@media (max-width: 1200px) and (min-width: 901px) {
    .kv-subpage-media { gap: 35px; }
    .kv-subpage-card-grid { gap: 25px; }
}
@media (max-width: 900px) {
    .kv-subpage-media { margin-top: 30px; gap: 30px; }
    .kv-subpage-card-grid { margin-top: 35px; gap: 25px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kv-subpage-card > h3 { padding: 16px 20px !important; font-size: 17px; }
    .kv-subpage-card > p { padding: 20px !important; }
    .kv-symptom-check-box--three-rows ul { grid-template-rows: auto; }
}
@media (max-width: 600px) {
    .kv-subpage-media { grid-template-columns: 1fr; }
    .kv-subpage-media > img { max-width: 420px; margin: auto; }
    .kv-subpage-detail-list > div + div { margin-top: 28px; }
    .kv-subpage-card-grid { grid-template-columns: 1fr; margin-top: 30px; gap: 24px; }
}
/* Group 2 additions: only new component bodies and explicit variants. */
.kv-subpage-card-body { padding: 25px 30px; }
.kv-subpage .kv-subpage-card-body > p + p,
.kv-subpage .kv-subpage-card-body > p + ul { margin-top: 18px; }
.kv-subpage-section-body { margin-top: 45px; }
.kv-site .kv-subpage .kv-subpage-point-list {
    list-style: none;
    padding: 0 0 0 50px; /* design: dot at 50px, text at 73px */
    margin-bottom: 30px;
    font-weight: 700;
}
.kv-subpage-point-list li { position: relative; padding-left: 23px; }
.kv-subpage-point-list li + li { margin-top: 12px; }
.kv-subpage-point-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .7em;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #70c4c8;
}
.kv-symptom-check--gold { --kv-panel-color: #b08e61; margin-top: var(--kv-section-gap); }
.kv-symptom-check--gold .kv-symptom-check-box { border-color: var(--kv-panel-color); }
.kv-symptom-check--gold .kv-symptom-check-box h2 { background: var(--kv-panel-color); }
.kv-symptom-check--gold .kv-symptom-check-box li::before,
.kv-symptom-check--gold > p { color: var(--kv-panel-color); }
@media (min-width: 901px) {
    .kv-symptom-check-box--seven li:nth-child(6) { grid-column: 3; grid-row: 1; }
    .kv-symptom-check-box--seven li:nth-child(7) { grid-column: 3; grid-row: 2; }
}
@media (max-width: 900px) {
    .kv-subpage-card-body { padding: 20px; }
    .kv-subpage-section-body { margin-top: 30px; }
    .kv-site .kv-subpage .kv-subpage-point-list { padding-left: 0; }
}
/* Group 3: framed content, numbered explanations, profiles and visible FAQ. */
.kv-subpage-panel {
    position: relative;
    border: 1px solid #70c4c8;
    padding: 75px 60px 55px;
    margin-top: var(--kv-section-gap);
}
.kv-subpage-panel > h2 {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    width: max-content;
    max-width: calc(100% - 40px);
    background: var(--kv-subpage-accent);
    color: #fff;
    padding: 20px 50px !important;
    font-size: 20px;
    text-align: center;
    line-height: 1.6;
}
.kv-subpage-numbered-list { list-style: none; counter-reset: kv-explanation; margin: 0; padding: 0; }
.kv-subpage-numbered-list > li { counter-increment: kv-explanation; }
.kv-subpage-numbered-list > li + li { margin-top: 36px; }
/* Design: items on a fixed 143px rhythm, first item 91px below the panel top. */
@media (min-width: 901px) {
    .kv-subpage-panel:has(> .kv-subpage-numbered-list) { padding-top: 90px; padding-bottom: 47px; }
    .kv-subpage-numbered-list > li { min-height: 120px; }
    .kv-subpage-numbered-list > li + li { margin-top: 23px; }
}
.kv-subpage-numbered-list h3 {
    position: relative;
    padding: 0 0 10px 42px !important;
    border-bottom: 1px solid #70c4c8;
    color: var(--kv-subpage-heading);
    font-size: 16px;
    line-height: 1.7;
    margin-bottom: 14px !important;
}
.kv-subpage-numbered-list h3::before {
    content: counter(kv-explanation);
    position: absolute;
    left: 0;
    top: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--kv-subpage-accent);
    color: white;
    font: 18px/30px Jost, sans-serif;
    text-align: center;
}
.kv-subpage-profile {
    border: 1px solid #70c4c8;
    padding: 18px;
    margin-top: 50px;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 45px;
    align-items: center;
}
.kv-subpage-profile > img { width: 100%; }
/* Design: 300px square photo, 19px from the frame, text 50px to its right. */
@media (min-width: 1201px) {
    .kv-subpage-profile { padding: 17px 19px; gap: 50px; align-items: start; }
    .kv-subpage-profile > img { aspect-ratio: 1; height: auto; object-fit: cover; object-position: center 25%; }
    .kv-subpage-profile > div { padding-top: 20px; }
    .kv-subpage-panel:has(> .kv-subpage-profile--plain) { padding: 66px 40px 42px 19px; }
    .kv-subpage-profile--plain > div { padding-top: 0; }
}
.kv-symptom-check--gold .kv-symptom-check-box { padding-top: 90px; padding-bottom: 75px; }
.kv-subpage-profile h3 { font-size: 18px; }
.kv-site .kv-subpage .kv-subpage-profile ul { margin: 18px 0; }
.kv-subpage-profile > div > p { font-size: 15px; }
.kv-faq { max-width: 1060px; margin: 55px auto 0; }
.kv-faq-item { border: 1px solid #70c4c8; }
.kv-faq-item + .kv-faq-item { margin-top: 40px; }
.kv-faq-item > h3,
.kv-faq-answer { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 20px; padding: 20px 30px !important; }
.kv-faq-item > h3 { background: var(--kv-subpage-accent); color: white; font-size: 18px; align-items: center; }
.kv-faq-item > h3 > span,
.kv-faq-answer > span { font: 30px/1.3 Jost, sans-serif; }
.kv-faq-answer > span { color: var(--kv-subpage-accent); }
/* FAQ sizes from the design (shared by all pages): 1050px wide, 80px question bar, 40px Q/A letters, 136px answer area. */
@media (min-width: 901px) {
    .kv-faq { max-width: 1050px; }
    .kv-faq-item + .kv-faq-item { margin-top: 50px; }
    .kv-faq-item > h3 { min-height: 80px; grid-template-columns: 38px minmax(0, 1fr); gap: 19px; padding: 10px 30px 10px 29px !important; }
    .kv-faq-answer { min-height: 136px; grid-template-columns: 33px minmax(0, 1fr); gap: 19px; align-items: start; padding: 22px 48px 30px !important; }
    .kv-faq-item > h3 > span, .kv-faq-answer > span { font-size: 40px; line-height: 1.2; }
    .kv-faq-answer > span { color: #6cc9cf; }
    .kv-faq-answer > p { padding-top: 6px; }
}
.kv-site .kv-subpage .kv-subpage-list--check { list-style: none; padding-left: 0; }
.kv-subpage-list--check li { position: relative; padding-left: 28px; }
.kv-subpage-list--check { font-weight: 700; }
.kv-subpage-list--check li::before { content: ''; position: absolute; left: 5px; top: .3em; width: 7px; height: 13px; border: solid #6cc9cf; border-width: 0 3.5px 3.5px 0; transform: rotate(45deg); }
.kv-subpage .kv-subpage-list--check + p { margin-top: 25px; }
@media (max-width: 900px) {
    .kv-subpage-panel { padding: 65px 30px 35px; }
    .kv-subpage-panel > h2 { font-size: 18px; padding: 16px 25px !important; }
    .kv-subpage-profile { grid-template-columns: 210px minmax(0, 1fr); gap: 25px; margin-top: 30px; }
    .kv-faq { margin-top: 35px; }
}
@media (max-width: 600px) {
    .kv-subpage-panel { padding: 70px 20px 30px; }
    .kv-subpage-panel > h2 { width: calc(100% - 28px); max-width: none; padding: 14px 18px !important; font-size: 16px; }
    .kv-subpage-numbered-list h3 { font-size: 16px; padding-left: 36px !important; }
    .kv-subpage-numbered-list h3::before { width: 26px; height: 26px; line-height: 26px; font-size: 16px; }
    .kv-subpage-profile { grid-template-columns: 1fr; padding: 20px; gap: 25px; }
    .kv-subpage-profile > img { max-width: 230px; margin: auto; }
    .kv-faq-item > h3, .kv-faq-answer { padding: 18px 16px !important; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; }
    .kv-faq-item > h3 { font-size: 16px; }
    .kv-faq-item > h3 > span, .kv-faq-answer > span { font-size: 25px; }
    .kv-faq-item + .kv-faq-item { margin-top: 25px; }
}
/* Group 4: ordered flows, menu labels and medical-category cards. */
.kv-site .kv-subpage .kv-treatment-flow {
    list-style: none;
    counter-reset: treatment-step;
    max-width: 1000px;
    margin: 60px auto 0;
    padding: 0 0 0 30px;
}
.kv-treatment-flow-step {
    position: relative;
    counter-increment: treatment-step;
    background: radial-gradient(circle, #41b2b9 1.5px, transparent 1.8px) 0 0 / 3px 6px repeat-y;
    padding: 0 0 56px 70px;
}
.kv-treatment-flow-step:last-child { padding-bottom: 12px; }
.kv-treatment-flow-step::before {
    content: counter(treatment-step);
    position: absolute;
    top: 0;
    left: -30px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--kv-subpage-accent);
    color: white;
    text-align: center;
    font: 28px/60px Jost, sans-serif;
}
.kv-treatment-flow-body > h3 {
    color: var(--kv-subpage-heading);
    font-size: 18px;
    line-height: 26px;
    border-bottom: 1px solid #70c4c8;
    padding: 0 0 8px !important;
    margin-bottom: 7px !important;
}
.kv-site .kv-subpage .kv-treatment-flow-body > p + p,
.kv-site .kv-subpage .kv-treatment-flow-body > p + ul { margin-top: 14px; }
.kv-treatment-flow-step--image { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 45px; align-items: start; }
.kv-treatment-flow-step > img { width: 160px; height: 160px; border-radius: 50%; object-fit: cover; }
.kv-site .kv-subpage .kv-subpage-media--flow .kv-treatment-flow { margin-top: 0; }
.kv-subpage-media--flow { align-items: start; }
@media (min-width: 1201px) { .kv-subpage-media--flow { grid-template-columns: 690fr 450fr; gap: 60px; } }
.kv-subpage-menu-label {
    position: relative;
    width: 80%;
    margin: 0 auto 35px;
    padding: 6px 12px;
    border: 1px solid #70c4c8;
    border-radius: 50px;
    color: var(--kv-subpage-heading);
    text-align: center;
    line-height: 1.5;
}
.kv-subpage-menu-label::before,
.kv-subpage-menu-label::after { content: ''; position: absolute; top: 50%; width: 13%; border-top: 1px solid #70c4c8; }
.kv-subpage-menu-label::before { right: 100%; }
.kv-subpage-menu-label::after { left: 100%; }
.kv-subpage-menu-label > span { display: block; font: 14px/1.4 Jost, sans-serif; }
.kv-subpage-menu-label > strong { font-size: 17px; }
.kv-feature-grid--menu .kv-subpage-feature h3 { min-height: 3.6em; text-wrap: balance; }
/* Surgery: first-row titles reserve two lines so the photos line up (design). */
@media (min-width: 901px) { .kv-surgery .kv-feature-grid > .kv-subpage-feature:nth-child(-n+3) h3 { min-height: 64px; line-height: 1.6; margin-bottom: 15px !important; } } /* design: photo 79px below the title top */
.kv-site .kv-subpage .kv-subpage-feature-list { margin-top: 8px; font-size: 15px; }
.kv-site .kv-preventive-dentistry .kv-subpage-feature-list { font-size: 18px; }
.kv-subpage-cards-four .kv-subpage-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 25px; }
.kv-subpage-cards-four .kv-subpage-card > h3 { padding: 20px !important; }
.kv-subpage-cards-four .kv-subpage-card-body { padding: 20px; }
.kv-subpage-card--medical { display: flex; flex-direction: column; }
.kv-subpage-card-header { background: var(--kv-subpage-accent); color: white; padding: 24px; }
.kv-subpage-card-header h3 { display: flex; align-items: center; gap: 16px; font-size: 18px; line-height: 1.6; }
.kv-subpage .kv-subpage-card-header img { width: 45px; height: 48px; object-fit: contain; filter: brightness(0) invert(1); }
.kv-subpage .kv-subpage-card-header > p { font-size: 16px; font-weight: 700; margin-top: 16px; padding-top: 14px; border-top: 2px dotted #fff; }
.kv-site .kv-subpage .kv-button--filled { background: var(--kv-subpage-accent); border-color: var(--kv-subpage-accent); color: #fff; font-weight: 700; }
.kv-site .kv-subpage .kv-button--filled:hover { opacity: .85; }
/* General medicine: flow spans the full content width with larger photos (design). */
.kv-site .kv-general-medicine .kv-treatment-flow { max-width: none; }
@media (min-width: 901px) { .kv-general-medicine .kv-treatment-flow-step--image { grid-template-columns: minmax(0, 1fr) 180px; } .kv-general-medicine .kv-treatment-flow-step > img { width: 180px; height: 180px; } }
.kv-subpage-card--medical .kv-subpage-card-body { display: flex; flex-direction: column; flex: 1; }
.kv-subpage-card-links { margin-top: auto; padding-top: 24px; display: grid; gap: 12px; }
.kv-subpage-card-links .kv-button { width: 100%; min-width: 0; padding: 10px 24px; font-size: 14px; }
.kv-subpage-panel--compact { margin-top: 30px; padding: 55px 25px 25px; }
.kv-subpage-panel--compact > h3 { position: absolute; top: 0; transform: translateY(-50%); background: var(--kv-subpage-accent); color: white; padding: 14px 64px !important; font-size: 18px; }
/* General medicine counselling box (design): frame 28px lower, badge 32px from the left, items every 44px. */
@media (min-width: 1201px) {
    .kv-subpage-panel--compact { margin-top: 83px; padding: 66px 25px 30px 31px; }
    .kv-subpage-panel--compact > h3 { left: 32px; padding: 13px 62px !important; }
    .kv-subpage-panel--compact .kv-subpage-list--check li + li { margin-top: 12px; }
}
.kv-subpage-notes { font-size: 16px; font-weight: 700; color: var(--kv-subpage-heading); margin-top: 25px; }
.kv-site .kv-subpage .kv-subpage-note { margin-top: 30px; font-size: 16px; }
.kv-subpage-media--top { align-items: start; }
.kv-site .kv-subpage .kv-subpage-media--top { margin-top: 45px; }
.kv-site .kv-subpage .kv-subpage-media--top .kv-subpage-section-lead { margin: 0 0 55px !important; text-align: left; }
.kv-subpage-counseling-lists { margin-top: 45px; }
.kv-subpage-profile--plain { margin-top: 0; border: 0; padding: 0; grid-template-columns: 300px minmax(0, 1fr); }
.kv-subpage #counseling { scroll-margin-top: calc(var(--kv-header-height) + 25px); }
.kv-subpage .kv-subpage-check-caption { color: var(--kv-ink); font-weight: 700; font-size: 20px; }
@media (max-width: 900px) {
    .kv-site .kv-subpage .kv-treatment-flow { margin-top: 40px; padding-left: 19px; }
    .kv-treatment-flow-step { padding-left: 32px; padding-bottom: 35px; }
    .kv-treatment-flow-step::before { width: 38px; height: 38px; left: -19px; font-size: 22px; line-height: 38px; }
    .kv-treatment-flow-body > h3 { font-size: 17px; padding-top: 4px !important; }
    .kv-treatment-flow-step--image { grid-template-columns: minmax(0, 1fr) 110px; gap: 24px; }
    .kv-treatment-flow-step > img { width: 110px; height: 110px; }
    .kv-subpage-cards-four .kv-subpage-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kv-subpage-menu-label { margin-bottom: 25px; }
    .kv-subpage-menu-label > strong { font-size: 14px; }
    .kv-subpage-profile--plain { grid-template-columns: 180px minmax(0, 1fr); }
}
@media (max-width: 600px) {
    .kv-treatment-flow-step--image { grid-template-columns: 1fr; gap: 20px; }
    .kv-treatment-flow-step > img { width: 120px; height: 120px; justify-self: end; }
    .kv-subpage-cards-four .kv-subpage-card-grid { grid-template-columns: 1fr; }
    .kv-subpage-card-header { padding: 20px; }
    .kv-subpage-card-header h3 { font-size: 17px; }
    .kv-subpage-menu-label > strong { font-size: 17px; }
    .kv-feature-grid--menu .kv-subpage-feature h3 { min-height: 0; }
    .kv-subpage-profile--plain { grid-template-columns: 1fr; }
    .kv-subpage-panel--compact { padding: 50px 20px 25px; }
}
/* Group 5: illustrated prevention and age-care sections. Explicit variants only. */
.kv-subpage-heading-center { display: flex; align-items: center; gap: 0; color: white; font-size: 20px; text-align: center; }
.kv-subpage-heading-center::before, .kv-subpage-heading-center::after { content: ''; flex: 1; border-top: 1px solid #70c4c8; }
.kv-subpage-heading-center > span { background: var(--kv-subpage-accent); padding: 18px 55px; max-width: 90%; }
.kv-subpage-intro-check { border: 1px solid #70c4c8; padding: 25px 30px; margin: 30px 0; }
.kv-subpage-introduction > div > p + p { margin-top: 22px !important; }
.kv-subpage-promos { display: grid; gap: 40px; margin-top: 55px; }
.kv-subpage-promo { display: grid; grid-template-columns: 41% minmax(0, 1fr); background: #f0f9fa; border-radius: 10px; overflow: hidden; }
.kv-subpage-promo > a { display: flex; flex-direction: column; background: #65c5cb; color: white; text-decoration: none; }
.kv-subpage-promo > a > img { width: 100%; }
.kv-subpage-promo h3 { display: flex; align-items: center; gap: 12px; padding: 18px 20px !important; font-size: 17px; color: #fff; background: var(--kv-subpage-accent); margin-top: auto; }
.kv-subpage .kv-subpage-promo h3 img { width: 32px; height: 36px; object-fit: contain; filter: brightness(0) invert(1); }
.kv-subpage-promo h3 > span { display: flex; align-items: center; justify-content: center; flex: 0 0 22px; width: 22px; height: 22px; margin-left: auto; border-radius: 50%; background: #fff; color: var(--kv-subpage-accent); font-size: 17px; font-weight: 700; line-height: 1; }
/* Yellow under-marker (design: 6px #fff345 bar under the words). */
.kv-subpage mark.kv-marker { background: linear-gradient(transparent calc(100% - 6px), #fff345 0); color: inherit; }
@media (min-width: 901px) { .kv-subpage-section-body--inset { padding: 0 100px; } }
.kv-subpage-promo > div { padding: 35px 40px; }
.kv-subpage-paired-sections { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 55px; }
.kv-subpage-card--illustrated > img { width: 100%; }
.kv-subpage-card--illustrated > h3 { background: var(--kv-subpage-accent); font-size: 17px; }
/* Illustrated cards: every card in the section matches the tallest one (design); one column keeps natural heights. */
@media (min-width: 601px) { .kv-subpage-card-grid--illustrated { grid-auto-rows: 1fr; } .kv-subpage-card--illustrated { display: flex; flex-direction: column; } .kv-subpage-card--illustrated > .kv-subpage-card-body { flex: 1; } }
.kv-subpage-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid #b3d1d4; font-size: 13px; }
.kv-subpage-badge { display: inline-block; padding: 3px 12px; border-radius: 25px; background: var(--kv-subpage-accent); color: white; font-size: 14px; font-weight: 700; line-height: 1.6; }
.kv-subpage-badge--blue { background: #438bbf; }
.kv-subpage-badge--teal { background: #42b7a8; }
.kv-subpage-badge--green { background: #a2bc57; }
.kv-subpage-badge--gold { background: #cda25c; }
/* Vaccine type labels (design): 32px tall, 16px text, design colours. */
.kv-subpage-vaccine-types .kv-subpage-badge { padding: 0 17px; font-size: 16px; font-weight: 500; line-height: 32px; border-radius: 16px; }
.kv-subpage-vaccine-types .kv-subpage-badge--blue { background: #4080b9; }
.kv-subpage-vaccine-types .kv-subpage-badge--teal { background: #42b8a1; }
.kv-subpage-vaccine-types .kv-subpage-badge--green { background: #a6c05c; }
.kv-subpage-vaccine-types .kv-subpage-badge--gold { background: #cda064; }
/* Preventive medicine: 97px label band under the photo, intro check items every 44px. */
@media (min-width: 901px) { .kv-subpage-promo h3 { min-height: 97px; } }
.kv-subpage-intro-check .kv-subpage-list--check li + li { margin-top: 12px; }
.kv-subpage-vaccine-types { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 25px; }
.kv-site .kv-subpage .kv-subpage-vaccine-types + p { margin-top: 30px; }
.kv-subpage-animal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 41px; }
.kv-subpage-animal-card { display: grid; grid-template-columns: 250px minmax(0,1fr); background: #f1fafb; }
.kv-subpage .kv-subpage-animal-card > img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; background: #6cc9cf; }
.kv-subpage-animal-card > div { padding: 30px; }
.kv-subpage-animal-card h3 { display: block; max-width: 270px; font-size: 16px; line-height: 40px; border-radius: 20px; background: #41b2b9; color: white; padding: 0 16px !important; margin-bottom: 10px !important; }
.kv-subpage-animal-card h3 ~ h3 { background: #6cc9cf; }
.kv-subpage-animal-card :is(p, ul) + h3 { margin-top: 22px !important; }
.kv-subpage-animal-card > div > p { padding-left: 16px; }
.kv-site .kv-subpage .kv-subpage-anchor-list { list-style: none; padding-left: 16px; display: grid; gap: 4px; }
/* Bold term with indented description, teal dot (design). */
.kv-site .kv-subpage .kv-subpage-term-list { list-style: none; padding-left: 0; margin: 14px 0; display: grid; gap: 10px; }
.kv-subpage-term-list > li { position: relative; padding-left: 20px; }
.kv-subpage-term-list > li::before { content: ''; position: absolute; left: 4px; top: .75em; width: 7px; height: 7px; border-radius: 50%; background: #41b2b9; }
.kv-subpage-term-list > li > p { font-weight: 400; margin-top: 2px !important; }
.kv-site .kv-subpage p + .kv-subpage-term-list, .kv-site .kv-subpage .kv-subpage-term-list + p { margin-top: 28px; }
.kv-site .kv-subpage p + .kv-subpage-term-list { margin-bottom: 28px; }
.kv-site .kv-subpage .kv-subpage-anchor-list a { color: #256c71; text-decoration: underline; text-underline-offset: 3px; }
.kv-site .kv-subpage .kv-subpage-anchor-list a:hover { color: var(--kv-subpage-accent); }
.kv-subpage-treatment-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px 45px; margin-top: 40px; }
.kv-subpage-treatment-grid h3 { font-size: 18px; }
.kv-symptom-check-box--six-rows ul { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(6,auto); }
.kv-subpage-age-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin-top: 60px; }
.kv-subpage-age-card { --kv-age-bg: #f1fafb; background: linear-gradient(white 54px, var(--kv-age-bg) 54px); padding: 0 22px 43px; }
.kv-subpage-age-card:nth-child(even) { --kv-age-bg: #eaf6f9; }
/* Design (アンチエイジング外来.svg, 300px cards): illustrations at their design size overlap the top of the coloured card (which starts 54px down), label 210x32 centred 184px down, 17px to the title, title 2 lines x 32px. */
.kv-subpage .kv-subpage-age-card > img { display: block; width: auto; max-width: 100%; object-fit: contain; margin: 1px auto 33px; position: relative; }
.kv-subpage .kv-subpage-age-card:nth-child(1) > img { height: 150px; }
.kv-subpage .kv-subpage-age-card:nth-child(2) > img { height: 115px; margin-top: 36px; left: 8px; }
.kv-subpage .kv-subpage-age-card:nth-child(3) > img { height: 164px; margin-top: -6px; margin-bottom: 26px; left: 6px; }
.kv-subpage .kv-subpage-age-card:nth-child(4) > img { height: 151px; margin-top: 7px; margin-bottom: 26px; }
.kv-site .kv-subpage .kv-subpage-age-label { display: flex; align-items: center; justify-content: center; width: 210px; max-width: 100%; min-height: 32px; border-radius: 16px; background: var(--kv-subpage-accent); color: white; text-align: center; padding: 2px 8px; margin: 0 auto 17px; font-size: 15px; line-height: 1.4; letter-spacing: .05em; font-weight: 700; }
.kv-subpage-age-card > h3 { font-size: 18px; line-height: 32px; letter-spacing: .05em; min-height: 64px; text-align: center; margin-bottom: 17px !important; }
.kv-subpage-age-card > p:last-child { font-size: 15px; }
.kv-feature-grid--two { grid-template-columns: repeat(2,minmax(0,1fr)); }
/* Badge widths from the design: section panels 586px, centred headings about 400px. */
@media (min-width: 901px) { .kv-subpage-panel > h2 { min-width: 586px; } .kv-subpage-heading-center > span { min-width: 400px; } }
/* Two-column features (anti-aging, design): 574px columns, 53px gap, 37px inner padding, number 37px above the title, title 23px above the text. */
@media (min-width: 1201px) {
    .kv-feature-grid--two { column-gap: 53px; row-gap: 60px; }
    .kv-feature-grid--two > .kv-subpage-feature { padding: 0 37px; }
    .kv-feature-grid--two .kv-subpage-feature-number { margin-bottom: 37px; }
    .kv-feature-grid--two .kv-subpage-feature h3 { margin-bottom: 23px !important; }
}
.kv-subpage-care-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; margin-top: 55px; }
.kv-subpage-care-card { --care-color: #4080b9; background: #f1fafb; }
.kv-subpage-care-card--teal { --care-color: #42b8a1; }
.kv-subpage-care-card--gold { --care-color: #cda064; }
.kv-subpage-care-card--green { --care-color: #a6c05c; }
.kv-subpage-care-card > h3 { background: var(--care-color); color: white; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-height: 80px; padding: 15px 22px !important; font-size: 18px; line-height: 1.5; }
.kv-subpage .kv-subpage-care-icon { width: 40px; height: 40px; object-fit: contain; }
.kv-subpage-care-card > h3 > span { padding: 0 14px; border-radius: 15px; background: #fff; color: var(--care-color); font-size: 16px; line-height: 30px; }
.kv-site .kv-subpage .kv-subpage-care-lead { font-weight: 700; margin-bottom: 18px !important; }
.kv-site .kv-subpage .kv-subpage-check-list { list-style: none; padding-left: 0; }
.kv-subpage-check-list > li { position: relative; padding-left: 26px; }
.kv-subpage-check-list > li::before { content: ''; position: absolute; left: 4px; top: .35em; width: 6px; height: 11px; border: solid #6cc9cf; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.kv-subpage :is(.kv-subpage-check-list, .kv-subpage-approach) strong { color: #4b9499; }
/* Items after the first have top padding (divider); keep icons on the text line. */
.kv-subpage-care-card .kv-subpage-check-list > li + li::before { top: calc(16px + .35em); }
.kv-subpage-approach-item + li::before { top: 17px; }
.kv-subpage-approach-item + li::after { top: calc(18px + .55em); }
.kv-subpage-care-card > div { padding: 28px; }
.kv-subpage .kv-subpage-care-card li { margin-bottom: 16px; }
.kv-subpage .kv-subpage-care-card li:last-child { margin-bottom: 0; }
.kv-subpage-care-card li + li { border-top: 1px solid #d4e7e9; padding-top: 16px; }
.kv-subpage-care-card li::marker { color: var(--care-color); }
.kv-subpage-approaches { display: grid; gap: 30px; margin-top: 55px; }
.kv-subpage-approach { display: grid; grid-template-columns: 300px minmax(0,1fr); background: #f0f9fa; }
.kv-subpage-approach > div { display: flex; flex-direction: column; background: #6cc9ce; } /* same colour as the illustration background */
.kv-subpage-approach img { width: 100%; }
.kv-subpage-approach h3 { color: white; background: var(--kv-subpage-accent); font-size: 17px; padding: 18px !important; text-align: center; margin-top: auto; }
/* Illustration sits on the bottom edge of its area, so the light circle always touches the box edge when the area is taller than the image. */
.kv-subpage-approach > div > img { margin-top: auto; object-position: center bottom; }
.kv-subpage-approach > div > img + h3 { margin-top: 0; }
.kv-site .kv-subpage .kv-subpage-approach > ul { padding: 25px 30px; list-style: none; }
.kv-subpage-approach-item { --icon: url('../img/anti-aging/care-drip.svg'); --icon-bg: #4080b9; position: relative; padding-left: 62px; }
.kv-subpage-approach-item::before { content: ''; position: absolute; left: 0; top: -1px; width: 30px; height: 30px; border-radius: 50%; background: var(--icon-bg) var(--icon) center / 18px auto no-repeat; }
.kv-subpage-approach-item::after { content: ''; position: absolute; left: 41px; top: .55em; width: 6px; height: 11px; border: solid #6cc9cf; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.kv-subpage-approach-item--teal { --icon: url('../img/anti-aging/care-injection.svg'); --icon-bg: #42b8a1; }
.kv-subpage-approach-item--gold { --icon: url('../img/anti-aging/care-treatment.svg'); --icon-bg: #cda064; }
.kv-subpage-approach-item--green { --icon: url('../img/anti-aging/care-supplement.svg'); --icon-bg: #a6c05c; }
.kv-subpage-approach-item + li { border-top: 1px solid #d4e7e9; margin-top: 18px; padding-top: 18px; }
.kv-subpage-approach-item + li::before { top: 21px; }
@media(max-width:900px) {
    .kv-subpage-promo { grid-template-columns: 34% minmax(0,1fr); }
    .kv-subpage-promo > div { padding: 25px; }
    .kv-subpage-paired-sections, .kv-subpage-animal-grid { gap: 25px; }
    .kv-subpage-animal-card { grid-template-columns: 1fr; }
    .kv-subpage .kv-subpage-animal-card > img { min-height: 0; height: 220px; object-fit: contain; }
    .kv-subpage-age-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 0; }
    .kv-subpage-approach { grid-template-columns: 220px minmax(0,1fr); }
    .kv-subpage-care-grid { gap: 25px; }
    .kv-subpage-care-card > div { padding: 22px; }
}
@media(max-width:600px) {
    .kv-subpage-heading-center { font-size: 18px; }
    .kv-subpage-heading-center > span { padding: 14px 20px; }
    .kv-subpage-promo, .kv-subpage-paired-sections, .kv-subpage-animal-grid, .kv-subpage-treatment-grid, .kv-subpage-care-grid, .kv-feature-grid--two { grid-template-columns: 1fr; }
    .kv-subpage-paired-sections { gap: 0; }
    .kv-subpage-promos { margin-top: 30px; }
    .kv-subpage-promo > div { padding: 24px; }
    .kv-subpage-age-grid { grid-template-columns: 1fr; margin-top: 35px; gap: 30px; }
    .kv-subpage-age-card { padding: 0 24px 30px; }
    .kv-subpage-age-card > h3 { min-height: 0; }
    .kv-subpage-approach { grid-template-columns: 1fr; }
    .kv-subpage-approach > div { display: grid; grid-template-columns: 38% minmax(0,1fr); align-items: stretch; }
    .kv-subpage-approach h3 { margin-top: 0; display: flex; align-items: center; justify-content: center; font-size: 16px; }
    .kv-subpage .kv-subpage-approach img { height: 100%; object-fit: contain; object-position: center bottom; }
    .kv-site .kv-subpage .kv-subpage-approach > ul { padding: 24px 20px; }
    .kv-symptom-check-box--six-rows ul { grid-template-columns: 1fr; grid-template-rows: auto; grid-auto-flow: row; }
    .kv-subpage-intro-check { padding: 22px; }
}
/* Shared consultation panel: content is supplied by each page template. */
.kv-conversion {
    background: #293132 url('../img/common/conversion-bg.webp') center / cover no-repeat;
    color: white;
}
.kv-conversion-inner {
    display: grid;
    grid-template-columns: 550fr 600fr;
    gap: 50px;
    align-items: stretch;
}
.kv-front .kv-conversion-staff {
    width: 100%;
    height: 100%;
    min-height: 500px;
    object-fit: cover;
    object-position: center;
}
.kv-conversion-content {
    display: flex;
    flex-direction: column;
    padding: 41px 0 47px;
    align-self: stretch;
}
.kv-conversion-content h2 {
    font-size: 22px;
    line-height: 1.6;
    letter-spacing: .12em;
    margin-bottom: 32px !important;
}
.kv-conversion-text {
    font-size: 15px;
    line-height: 1.87;
    letter-spacing: .1em;
    font-weight: 500;
}
.kv-conversion-phone {
    display: block;
    max-width: 422px;
    margin-top: auto;
    padding-top: 24px;
}
.kv-conversion-buttons {
    display: flex;
    gap: 16px;
    margin-top: 20px;
    max-width: 476px;
}
.kv-conversion-buttons a {
    flex: 1;
    min-width: 0;
}
.kv-conversion a img { transition: opacity .3s ease; }
.kv-conversion a:hover img {
    opacity: .85;
}
/* Phone number: plain image on PC, tap-to-call only on smartphones (fixed bottom bar width). */
.kv-conversion-phone--sp { display: none; }
.kv-site .kv-conversion .kv-conversion-phone--pc { margin-top: auto; }
@media (max-width: 900px) { .kv-conversion-phone--pc { display: none; } .kv-conversion-phone--sp { display: block; } }
@media (prefers-reduced-motion: reduce) { .kv-conversion a img { transition: none; } }
.kv-subpage .kv-questionnaire .kv-en-title {
    margin-bottom: 20px !important;
}
@media (max-width: 1200px) and (min-width: 901px) {
    .kv-subpage-introduction,
    .kv-examination,
    .kv-conversion-inner { gap: 35px; }
    .kv-subpage-introduction h2 { font-size: 22px; }
    .kv-symptom-check-box { padding-right: 35px; padding-left: 35px; }
    .kv-symptom-check-box ul { gap: 16px 22px; font-size: 14px; }
    .kv-feature-grid { gap: 35px; }
    .kv-subpage-feature h3 { font-size: 17px; }
    .kv-disease-card > p { padding: 25px !important; font-size: 14px; }
    .kv-conversion-content h2 { font-size: 21px; }
}
@media (max-width: 900px) {
    .kv-subpage { font-size: 15px; --kv-section-gap: 83px; --kv-signs-gap: 88px; }
    .kv-subpage-hero { min-height: 200px; }
    .kv-subpage-hero p { font-size: 15px; }
    .kv-subpage-hero h1 { font-size: 28px; }
    .kv-subpage-content { padding-top: 65px; padding-bottom: 80px; }
    .kv-subpage-introduction { gap: 30px; grid-template-columns: 1.1fr 1fr; }
    .kv-subpage-introduction h2 { font-size: 20px; letter-spacing: .05em; margin-bottom: 25px !important; }
    .kv-symptom-check-box { padding: 55px 30px 35px; }
    .kv-symptom-check-box h2 { font-size: 17px; padding: 16px 25px !important; }
    .kv-symptom-check-box ul { grid-auto-flow: row; grid-template-rows: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; font-size: 14px; }
    .kv-symptom-check > p { font-size: 14px; }
    .kv-subpage .kv-subpage-heading { font-size: 21px; padding: 10px 18px !important; }
    .kv-feature-grid { margin-top: 50px; gap: 25px; }
    .kv-subpage-feature-number { margin-bottom: 25px; }
    .kv-subpage-feature-number > span { width: 72px; height: 72px; font-size: 12px; }
    .kv-subpage-feature-number strong { font-size: 28px; }
    .kv-subpage-feature h3 { font-size: 17px; margin-bottom: 25px !important; min-height: 3.6em; text-wrap: balance; }
    .kv-subpage-feature > p { margin-top: 18px !important; font-size: 14px; }
    .kv-subpage-section-lead { margin-top: 30px !important; }
    .kv-examination { margin-top: 30px; gap: 30px; }
    .kv-examination dl > div + div { margin-top: 25px; }
    .kv-disease-grid { margin-top: 35px; gap: 25px; }
    .kv-disease-card { grid-template-columns: 40% 60%; }
    .kv-disease-card > p { padding: 20px 15px !important; font-size: 13px; letter-spacing: .02em; line-height: 1.9; }
    .kv-conversion-inner { gap: 30px; }
    .kv-front .kv-conversion-staff { min-height: 0; }
    .kv-conversion-content { padding: 35px 0; }
    .kv-conversion-content h2 { font-size: 20px; letter-spacing: .05em; margin-bottom: 22px !important; }
    .kv-conversion-text { font-size: 13px; letter-spacing: .04em; }
    .kv-conversion-phone { margin-top: 22px; }
    .kv-conversion-buttons { gap: 10px; margin-top: 16px; }
}
@media (max-width: 600px) {
    .kv-subpage { --kv-section-gap: 64px; --kv-signs-gap: 77px; }
    .kv-subpage-hero { min-height: 160px; background-position: center, 40% 23.6%; }
    .kv-subpage-hero p { font-size: 13px; }
    .kv-subpage-hero h1 { font-size: 26px; }
    .kv-subpage-hero-sub { font-size: 17px; letter-spacing: .1em; }
    .kv-subpage-content { padding-top: 45px; padding-bottom: 65px; }
    .kv-subpage-introduction { grid-template-columns: 1fr; gap: 28px; }
    .kv-subpage-introduction h2 { font-size: 20px; line-height: 1.8; letter-spacing: .03em; }
    .kv-subpage-introduction > img { max-width: 420px; margin: auto; }
    .kv-symptom-check-box { padding: 60px 20px 28px; }
    .kv-symptom-check-box h2 { width: calc(100% - 28px); max-width: none; font-size: 16px; padding: 14px 18px !important; text-wrap: balance; }
    .kv-symptom-check-box ul { grid-template-columns: 1fr; gap: 14px; font-size: 14px; }
    .kv-symptom-check > p { text-align: left; margin-top: 24px !important; }
    .kv-symptom-check > p br { display: none; }
    .kv-subpage .kv-subpage-heading { font-size: 20px; padding: 12px 15px !important; }
    .kv-feature-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 35px; }
    .kv-subpage-feature-number { margin-bottom: 20px; }
    .kv-subpage-feature-number > span { width: 80px; height: 80px; }
    .kv-subpage-feature h3 { min-height: 0; font-size: 19px; margin-bottom: 20px !important; }
    .kv-subpage-feature > p { font-size: 15px; }
    .kv-examination { grid-template-columns: 1fr; gap: 30px; }
    .kv-examination > img { max-width: 420px; margin: auto; }
    .kv-disease-grid { grid-template-columns: 1fr; gap: 24px; margin-top: 30px; }
    .kv-disease-card { grid-template-columns: 38% 62%; }
    .kv-disease-card > p { padding: 20px 16px !important; font-size: 14px; line-height: 1.9; }
    .kv-conversion-inner { grid-template-columns: 1fr; gap: 0; }
    .kv-front .kv-conversion-staff { height: auto; max-width: 420px; margin: auto; }
    .kv-conversion-content { padding: 32px 0 40px; }
    .kv-conversion-content h2 { font-size: 21px; }
    .kv-conversion-text { font-size: 14px; line-height: 2; }
    .kv-conversion-phone { margin-top: 25px; }
    .kv-conversion-buttons { margin-top: 20px; }
}
@media (max-width: 360px) {
    .kv-subpage-introduction h2 { font-size: 18px; }
    .kv-disease-card > p { font-size: 13px; padding: 16px 12px !important; }
    .kv-conversion-buttons { flex-direction: column; align-items: center; gap: 12px; }
    .kv-conversion-buttons a { max-width: 230px; width: 100%; }
}
/* Anti-aging (design values) */
@media (min-width: 901px) {
    /* Approach items: 46px category circle, check at 61px, text at 83px. */
    .kv-subpage-approach-item { padding-left: 83px; min-height: 46px; }
    .kv-subpage-approach-item::before { top: -8px; width: 46px; height: 46px; background-size: 27px auto; }
    .kv-subpage-approach-item::after { left: 61px; top: .55em; }
    .kv-subpage-approach-item + li::before { top: 10px; }
    .kv-subpage-approach-item + li::after { top: calc(18px + .55em); }
}
.kv-anti-aging .kv-subpage-detail-list.kv-subpage-section-body .kv-subpage-subheading { font-size: 20px; }
.kv-subpage-promo h3 > span { position: relative; font-size: 0 !important; }
.kv-subpage-promo h3 > span::before { content: ''; position: absolute; top: 50%; left: 50%; width: 6px; height: 6px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: translate(-65%, -50%) rotate(45deg); }
@media (min-width: 901px) and (max-width: 1200px) { .kv-site .kv-subpage .kv-subpage-age-label { font-size: 13px; letter-spacing: 0; } } /* 4 narrow cards: keep the age label on one line */
