.knee-symptom-page { --knee-green:#2e6a4e; --knee-green-dark:#174932; --knee-green-soft:#eef8f1; --knee-amber:#aa6a27; --knee-amber-soft:#fff4e6; --knee-blue:#3b677e; --knee-blue-soft:#edf6fa; --knee-plum:#77556f; --knee-plum-soft:#f8f0f6; }
.knee-hero { background:radial-gradient(circle at 85% 18%,rgba(222,173,96,.28),transparent 27%),radial-gradient(circle at 70% 84%,rgba(59,103,126,.14),transparent 35%),linear-gradient(135deg,#eef8f1 0%,#fff9ee 100%); }
.knee-title { display:flex; flex-wrap:wrap; align-items:center; gap:.4em; max-width:1120px; font-size:clamp(2rem,4.7vw,3.85rem); }
.knee-title span { display:inline-flex; align-items:center; }
.knee-title span:not(:last-child)::after { content:'→'; margin-left:.4em; color:var(--color-accent-dark); font-size:.54em; }
.quick-knee-nav { display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-8); }
.quick-knee-nav a { display:inline-flex; align-items:center; gap:var(--space-2); padding:.78rem 1rem; border:1px solid rgba(46,106,78,.22); border-radius:999px; background:rgba(255,255,255,.86); color:var(--knee-green-dark); font-size:var(--text-sm); font-weight:800; text-decoration:none; box-shadow:0 8px 22px rgba(23,73,50,.06); }
.quick-knee-nav a:hover,.quick-knee-nav a:focus-visible { border-color:var(--knee-green); background:#fff; }
.section-kicker { margin-bottom:var(--space-2); color:var(--color-accent-dark); font-size:var(--text-sm); font-weight:900; letter-spacing:.05em; }
.knee-location-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); margin-top:var(--space-8); padding:var(--space-6); border:1px solid var(--color-border); border-radius:28px; background:#fff; box-shadow:var(--shadow-sm); }
.knee-location { position:relative; display:flex; min-height:178px; flex-direction:column; justify-content:center; padding:var(--space-6); border-radius:22px; color:inherit; text-decoration:none; }
.front-location { background:var(--knee-amber-soft); } .outer-location { background:var(--knee-blue-soft); } .joint-location { background:var(--knee-plum-soft); }
.location-symbol { position:absolute; top:var(--space-4); right:var(--space-4); display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--knee-amber); color:#fff; font-size:var(--text-xs); font-weight:900; }
.outer-location .location-symbol { background:var(--knee-blue); } .joint-location .location-symbol { background:var(--knee-plum); font-size:1.15rem; }
.knee-location small { color:var(--color-text-muted); font-weight:800; }
.knee-location strong { margin-top:var(--space-2); padding-right:44px; color:var(--color-primary-dark); font-size:var(--text-lg); }
.knee-location em { margin-top:var(--space-3); color:var(--color-text-light); font-size:var(--text-sm); font-style:normal; }
.location-note { margin:var(--space-4) 0 0; color:var(--color-text-muted); font-size:var(--text-sm); text-align:center; }
.knee-route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); margin-top:var(--space-8); }
.knee-route-card { position:relative; display:flex; min-height:315px; flex-direction:column; padding:var(--space-8); overflow:hidden; border:1px solid #ead4b8; border-radius:28px; background:linear-gradient(155deg,#fff 0%,var(--knee-amber-soft) 100%); box-shadow:0 16px 42px rgba(47,70,84,.08); }
.knee-route-card.is-outer { border-color:#cfe0e8; background:linear-gradient(155deg,#fff 0%,var(--knee-blue-soft) 100%); }
.knee-route-card.is-twist { border-color:#dfcfdd; background:linear-gradient(155deg,#fff 0%,var(--knee-plum-soft) 100%); }
.route-number { position:absolute; top:var(--space-5); right:var(--space-6); color:rgba(23,73,50,.17); font-size:2.8rem; font-weight:900; line-height:1; }
.route-icon { display:grid; width:62px; height:58px; place-items:center; border-radius:18px; background:var(--knee-amber); color:#fff; font-size:var(--text-xs); font-weight:900; }
.is-outer .route-icon { background:var(--knee-blue); } .is-twist .route-icon { background:var(--knee-plum); font-size:1.5rem; }
.knee-route-card h3 { margin:var(--space-6) 0 var(--space-3); color:var(--color-primary-dark); font-size:clamp(1.3rem,2.2vw,1.65rem); }
.knee-route-card p { margin:0; color:var(--color-text-light); line-height:1.7; }
.knee-route-card>a { display:inline-flex; align-items:center; gap:var(--space-2); margin-top:auto; padding-top:var(--space-6); color:var(--knee-green-dark); font-weight:900; text-decoration:none; }
.knee-pattern-section,.knee-visit-section { background:#f5f8f5; }
.knee-pattern-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); }
.knee-pattern-card { padding:var(--space-8); border:1px solid var(--color-border); border-top:6px solid var(--knee-amber); border-radius:28px; background:#fff; box-shadow:var(--shadow-sm); }
.knee-pattern-card.outer-pattern { border-top-color:var(--knee-blue); } .knee-pattern-card.twist-pattern { border-top-color:var(--knee-plum); }
.pattern-heading { display:flex; align-items:flex-start; gap:var(--space-4); }
.pattern-heading>span { display:grid; width:48px; height:48px; flex:0 0 48px; place-items:center; border-radius:50%; background:var(--knee-amber); color:#fff; font-size:var(--text-sm); font-weight:900; }
.outer-pattern .pattern-heading>span { background:var(--knee-blue); } .twist-pattern .pattern-heading>span { background:var(--knee-plum); font-size:1.2rem; }
.pattern-heading small { color:var(--color-text-muted); font-size:var(--text-xs); font-weight:800; }
.pattern-heading h3 { margin:var(--space-1) 0 0; color:var(--color-primary-dark); font-size:var(--text-xl); }
.knee-pattern-card ul { display:grid; gap:var(--space-3); margin:var(--space-6) 0 0; padding:0; list-style:none; }
.knee-pattern-card li { padding-top:var(--space-3); border-top:1px solid var(--color-border); }
.knee-pattern-card li strong,.knee-pattern-card li span { display:block; }
.knee-pattern-card li strong { color:var(--color-text); font-size:var(--text-sm); }
.knee-pattern-card li span { margin-top:.2rem; color:var(--color-text-light); font-size:var(--text-sm); line-height:1.5; }
.knee-motion-strip { display:grid; grid-template-columns:1fr 34px 1fr 34px 1fr 34px 1fr; align-items:center; gap:var(--space-3); margin-top:var(--space-8); padding:var(--space-6); border-radius:24px; background:var(--color-primary-dark); color:#fff; }
.knee-motion-strip>div { text-align:center; }
.knee-motion-strip>div>span { display:grid; width:44px; height:44px; margin:0 auto var(--space-3); place-items:center; border-radius:14px; background:rgba(255,255,255,.12); font-size:1.35rem; }
.knee-motion-strip strong,.knee-motion-strip small { display:block; }
.knee-motion-strip small { margin-top:var(--space-1); color:rgba(255,255,255,.68); font-size:var(--text-xs); line-height:1.4; }
.knee-motion-strip>b { color:#d9b98f; font-size:1.35rem; text-align:center; }
.knee-question-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-4); margin-top:var(--space-8); }
.knee-question-grid details { border:1px solid var(--color-border); border-radius:18px; background:#fff; box-shadow:var(--shadow-sm); }
.knee-question-grid summary { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4); padding:var(--space-5); color:var(--color-primary-dark); font-weight:900; cursor:pointer; list-style:none; }
.knee-question-grid summary::-webkit-details-marker { display:none; }
.knee-question-grid summary span { color:var(--color-accent-dark); font-size:1.45rem; transition:transform var(--transition-fast); }
.knee-question-grid details[open] summary span { transform:rotate(45deg); }
.knee-question-grid details p { margin:0; padding:0 var(--space-5) var(--space-5); color:var(--color-text-light); line-height:1.7; }
.knee-visit-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:42px; margin-top:var(--space-8); }
.knee-visit-step { position:relative; min-height:175px; padding:var(--space-6); border:1px solid var(--color-border); border-radius:22px; background:#fff; text-align:center; }
.knee-visit-step:not(:last-child)::after { content:'→'; position:absolute; top:50%; right:-34px; color:var(--color-accent-dark); font-size:1.65rem; font-weight:900; transform:translateY(-50%); }
.knee-visit-step>span { display:grid; width:38px; height:38px; margin:0 auto var(--space-4); place-items:center; border-radius:50%; background:var(--color-primary-dark); color:#fff; font-weight:900; }
.knee-visit-step h3 { margin:0; color:var(--color-primary-dark); font-size:var(--text-lg); }
.knee-visit-step p { margin:var(--space-2) 0 0; color:var(--color-text-light); font-size:var(--text-sm); line-height:1.55; }
.knee-doctor-card { display:flex; align-items:center; gap:var(--space-5); max-width:860px; margin:var(--space-8) auto 0; padding:var(--space-6); border-radius:22px; background:var(--color-primary-dark); color:#fff; }
.knee-doctor-mark { display:grid; width:54px; height:54px; flex:0 0 54px; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; font-family:var(--font-display); font-size:1.35rem; font-weight:900; }
.knee-doctor-card strong { display:block; font-size:var(--text-lg); } .knee-doctor-card p { margin:var(--space-2) 0 0; color:rgba(255,255,255,.76); line-height:1.65; }
.knee-actions { justify-content:center; }
@media (max-width:960px) { .knee-location-map,.knee-route-grid,.knee-pattern-grid { grid-template-columns:1fr; } .knee-route-card { min-height:0; } .knee-route-card>a { margin-top:var(--space-6); } .knee-visit-flow { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:var(--space-5); } .knee-visit-step::after { display:none; } }
@media (max-width:720px) { .knee-title { display:grid; gap:.12em; } .knee-title span:not(:last-child)::after { content:''; margin:0; } .quick-knee-nav { display:grid; } .quick-knee-nav a { justify-content:space-between; } .knee-location-map { padding:var(--space-4); } .knee-motion-strip { grid-template-columns:1fr; } .knee-motion-strip>b { transform:rotate(90deg); } .knee-question-grid,.knee-visit-flow { grid-template-columns:1fr; } .knee-doctor-card { align-items:flex-start; } }
@media (prefers-reduced-motion:reduce) { .knee-question-grid summary span { transition:none; } }
