.page-castle-hill h1,.page-castle-hill h2,.page-castle-hill h3 { font-family:"Newsreader",Georgia,serif; font-weight:500; letter-spacing:-.025em; }
.page-castle-hill h1 { font-size:clamp(2.7rem,4.8vw,4.8rem); line-height:1.04; }
.page-castle-hill h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.13; }
.page-castle-hill h3 { font-size:1.55rem; line-height:1.22; }
.page-castle-hill main p { font-size:1rem; color:var(--ink-soft); line-height:1.75; }
.ch-label { margin:0 0 20px; font-size:.875rem !important; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--terracotta-dark) !important; }
.ch-hero { padding:64px 0; background:linear-gradient(120deg,#edf2ea,#dce8dd); }
.ch-hero-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); gap:clamp(40px,5vw,80px); align-items:center; }
.ch-hero h1 { margin-bottom:26px; max-width:680px; }
.ch-hero .ch-intro { font-size:1.17rem; line-height:1.6; }
.ch-clinic-card { padding:34px; background:var(--paper); border:1px solid #b8cbbd; border-radius:14px; box-shadow:0 16px 44px #163f3d0b; }
.ch-selected-hero .ch-hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,4vw,58px); }
.ch-clinic-photo { margin:0; overflow:hidden; border-radius:14px; box-shadow:0 18px 50px #163f3d16; background:var(--paper); }
.ch-clinic-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.ch-clinic-photo figcaption { padding:15px 20px; font-size:.875rem; color:var(--ink-soft); letter-spacing:.03em; }
.ch-visit-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:26px; padding:28px; border:1px solid var(--line); border-radius:14px; background:var(--mist); }
.ch-visit-grid h3,.ch-arrival-grid h3 { font-size:1.4rem; margin-bottom:14px; }
.ch-visit-grid article+article { border-left:1px solid #c5d2c7; padding-left:26px; }
.ch-visit-grid address { font-style:normal; color:var(--ink-soft); line-height:1.7; }
.ch-visit-grid p:last-child { margin-bottom:0; }
.ch-visit-address p { font-size:.9375rem !important; margin:12px 0; }
.ch-arrival-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin:32px 0; }
.ch-arrival-grid p { margin:0; }
.ch-route-map iframe { height:410px; }
.ch-route-map .ch-route-map-footer { display:flex; flex-wrap:wrap; gap:16px 36px; align-items:center; justify-content:space-between; }
.ch-route-map-footer strong { display:block; font-size:1rem; font-weight:600; margin-bottom:8px; }
.ch-route-map-footer address { margin:0; font-size:.9375rem; }
.ch-clinic-card h2 { font-size:2rem; margin-bottom:24px; }
.ch-clinic-card address,.ch-map-card address { font-style:normal; color:var(--ink-soft); font-size:1rem; line-height:1.7; }
.ch-phone { display:inline-block; font-size:1.2rem; font-weight:600; margin:18px 0; text-decoration:underline; text-underline-offset:5px; }
.ch-clinic-facts { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.ch-clinic-facts span { font-size:.875rem; border:1px solid var(--line); padding:4px 9px; border-radius:4px; }
.ch-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.ch-button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 18px; border:1px solid var(--ink); border-radius:7px; font-size:.9375rem; font-weight:600; line-height:1.5; text-align:center; transition:background .16s; }
.ch-button-primary { background:var(--ink); color:white; }
.ch-button-primary:hover { background:var(--ink-deep); }
.ch-button-secondary { background:transparent; color:var(--ink); }
.ch-button-secondary:hover { background:var(--paper); }
.ch-section { padding:64px 0; scroll-margin-top:100px; }
.ch-section-head { max-width:800px; margin-bottom:34px; }
.ch-section-head .ch-label { margin-bottom:14px; }
.ch-travel-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; }
.ch-travel-copy article+article { margin-top:28px; padding-top:25px; border-top:1px solid var(--line); }
.ch-travel-copy h3 { margin-bottom:12px; }
.ch-travel-copy p:last-child { margin-bottom:0; }
.ch-metro-route { display:flex; justify-content:space-between; gap:12px; padding:14px 0 0; }
.ch-metro-route span { position:relative; flex:1; padding-top:15px; font-size:.875rem; border-top:2px solid var(--sage-dark); }
.ch-metro-route span::before { content:""; position:absolute; width:9px; height:9px; top:-5px; left:0; background:var(--ink); border-radius:50%; }
.ch-map-card { border:1px solid var(--line); background:white; border-radius:14px; overflow:hidden; }
.ch-map-card iframe { display:block; width:100%; height:340px; border:0; background:var(--mist); }
.ch-map-card > div { padding:22px; }
.ch-map-card address { margin-bottom:14px; }
.ch-text-link { display:inline-block; font-size:.9375rem; font-weight:600; text-decoration:underline; text-underline-offset:5px; line-height:1.65; }
.ch-inline-link,.ch-question-list p a { text-decoration:underline; text-underline-offset:3px; }
.ch-support { background:var(--mist); }
.ch-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ch-service-card { display:flex; flex-direction:column; padding:28px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.ch-service-card h3 { margin-bottom:18px; }
.ch-service-card .ch-text-link { margin-top:auto; }
.ch-profile-grid { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:70px; align-items:center; }
.ch-profile-grid figure { max-width:350px; margin:0; }
.ch-profile-grid img { width:100%; height:350px; object-fit:cover; object-position:center 35%; border-radius:12px 12px 0 0; }
.ch-profile-grid figcaption { font-size:.875rem; padding:14px 16px; background:var(--ink); color:white; }
.ch-profile-grid h2,.ch-split h2 { margin-bottom:24px; }
.ch-bilingual { background:var(--ink); color:var(--paper); }
.ch-bilingual p { color:#e3ebe5 !important; }
.ch-bilingual .ch-label { color:var(--gold) !important; }
.ch-bilingual [lang] { font-family:"DM Sans","Microsoft YaHei",sans-serif; }
.ch-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:70px; align-items:start; }
.ch-areas { padding-top:0; }
.ch-areas .container { padding-top:36px; border-top:1px solid var(--line); }
.ch-areas h2 { max-width:800px; margin-bottom:24px; }
.ch-areas p:last-child { max-width:1000px; margin-bottom:0; }
.ch-faq { background:var(--mist); }
.ch-faq-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:65px; }
.ch-question-list details { border-bottom:1px solid #b9cbbd; }
.ch-question-list details:first-child { border-top:1px solid #b9cbbd; }
.ch-question-list summary { display:flex; align-items:center; gap:20px; justify-content:space-between; padding:23px 0; cursor:pointer; list-style:none; }
.ch-question-list summary::-webkit-details-marker { display:none; }
.ch-question-list summary h3 { font-family:"DM Sans",sans-serif; font-size:1.0625rem; font-weight:600; letter-spacing:0; line-height:1.5; }
.ch-question-list summary span { flex:none; font-size:1.5rem; transition:transform .16s; }
.ch-question-list details[open] summary span { transform:rotate(45deg); }
.ch-question-list details p { margin:0 0 24px; }
.ch-contents { display:none; }

@media(max-width:1040px) {
  .ch-hero-grid { gap:32px; }
  .ch-hero h1 { font-size:3.4rem; }
  .ch-service-card { padding:22px; }
}
@media(max-width:760px) {
  .ch-selected-hero .ch-hero-grid,.ch-visit-grid,.ch-arrival-grid,.ch-hero-grid,.ch-service-grid,.ch-profile-grid,.ch-split,.ch-faq-grid { grid-template-columns:1fr; gap:28px; }
  .ch-visit-grid article+article { padding:22px 0 0; border-left:0; border-top:1px solid #c5d2c7; }
  .ch-visit-grid { padding:24px; gap:22px; }
  .ch-arrival-grid { gap:24px; }
  .ch-hero { padding:36px 0; }
  .ch-hero h1 { font-size:clamp(2.5rem,8vw,3.4rem); }
  .ch-section { padding-block:42px; }
  .ch-profile-grid figure { width:100%; max-width:310px; }
  .ch-areas { padding-top:0; }
  .ch-route-map iframe { height:340px; }
}
@media(max-width:480px) {
  .ch-actions { flex-direction:column; }
  .ch-button { width:100%; }
  .ch-section-head { margin-bottom:24px; }
  .ch-section h2 { font-size:2rem; }
}
