.v23-page {
  --v23-accent: #426455;
  --v23-accent-dark: #223e33;
  --v23-soft: #edf3ed;
  --v23-warm: #f7eee2;
  --v23-line: rgba(34, 62, 51, .16);
  --v23-radius: 28px;
  color: #26332d;
  background: #fffdf9;
}
.v23-page .ac-header { background: rgba(255,253,249,.94); }
.v23-page .ac-shell { width: min(calc(100% - 32px), 1160px); }
.v23-nav-cta { padding: 9px 15px; color: #fff!important; background: var(--v23-accent); border-radius: 999px; }
.v23-breadcrumb { display:flex; gap:8px; align-items:center; padding-top:18px; color:#68746e; font-size:.82rem; }
.v23-breadcrumb a { text-decoration:none; }
.v23-date { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px; color:#6c756f; font-size:.76rem; }
.v23-kicker { margin:0 0 12px; color:var(--v23-accent); font-size:.74rem; font-weight:850; letter-spacing:.12em; }
.v23-lead { margin-bottom:24px; color:#45524c; font-size:1rem; line-height:1.8; }
.v23-actions { display:flex; flex-wrap:wrap; gap:10px; }
.v23-btn { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:11px 17px; font-size:.91rem; font-weight:780; text-decoration:none; border:1px solid var(--v23-accent); border-radius:13px; }
.v23-btn--primary { color:#fff; background:var(--v23-accent); }
.v23-btn--light { color:var(--v23-accent-dark); background:#fff; }
.v23-media { margin:0; overflow:hidden; background:#ece7df; border-radius:var(--v23-radius); }
.v23-media img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; background:#ece7df; }
.v23-section { padding:68px 0; }
.v23-section h2 { margin-bottom:16px; font-size:clamp(1.65rem,6.4vw,2.55rem); }
.v23-section-head { max-width:760px; margin-bottom:28px; }
.v23-section-head>p:last-child { color:#58645e; }
.v23-label { margin-bottom:9px; color:var(--v23-accent); font-size:.74rem; font-weight:850; letter-spacing:.1em; }
.v23-info-grid { display:grid; gap:12px; }
.v23-info { padding:20px; background:#fff; border:1px solid var(--v23-line); border-radius:19px; }
.v23-info strong { display:block; margin-bottom:7px; color:var(--v23-accent-dark); font-size:1.02rem; }
.v23-info p { margin:0; color:#59645f; font-size:.93rem; }
.v23-species-grid { display:grid; gap:26px; align-items:center; }
.v23-copy p { color:#505d57; }
.v23-checks { display:grid; gap:9px; margin:22px 0 0; padding:0; list-style:none; }
.v23-checks li { position:relative; padding:10px 12px 10px 37px; color:#3d4943; background:var(--v23-soft); border-radius:12px; }
.v23-checks li::before { position:absolute; left:13px; content:'✓'; color:var(--v23-accent); font-weight:900; }
.v23-trust { background:var(--v23-accent-dark); color:#f8fbf8; }
.v23-trust h2,.v23-trust h3 { color:#fff; }
.v23-trust-grid { display:grid; gap:25px; align-items:center; }
.v23-trust .v23-label { color:#d8c39d; }
.v23-trust p { color:#dce5df; }
.v23-trust-note { padding:18px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); border-radius:18px; }
.v23-trust-note strong { display:block; margin-bottom:4px; color:#fff; }
.v23-process { background:var(--v23-warm); }
.v23-steps { display:grid; gap:12px; counter-reset:step; }
.v23-step { position:relative; padding:20px 20px 20px 60px; background:#fff; border-radius:18px; counter-increment:step; }
.v23-step::before { position:absolute; top:20px; left:18px; display:grid; width:30px; height:30px; place-items:center; content:counter(step,decimal-leading-zero); color:#fff; background:var(--v23-accent); border-radius:50%; font-size:.72rem; font-weight:850; }
.v23-step h3 { margin-bottom:5px; }
.v23-step p { margin:0; color:#5d6862; font-size:.92rem; }
.v23-meeting-grid { display:grid; gap:26px; align-items:center; }
.v23-highlight { padding:22px; background:var(--v23-soft); border-left:4px solid var(--v23-accent); border-radius:0 18px 18px 0; }
.v23-highlight strong { display:block; margin-bottom:6px; color:var(--v23-accent-dark); }
.v23-faq { background:#f5f4ef; }
.v23-faq-list { display:grid; gap:10px; max-width:900px; }
.v23-faq details { background:#fff; border:1px solid var(--v23-line); border-radius:15px; }
.v23-faq summary { position:relative; padding:17px 48px 17px 18px; cursor:pointer; color:var(--v23-accent-dark); font-weight:760; list-style:none; }
.v23-faq summary::-webkit-details-marker { display:none; }
.v23-faq summary::after { position:absolute; top:16px; right:18px; content:'＋'; color:var(--v23-accent); }
.v23-faq details[open] summary::after { content:'−'; }
.v23-faq details p { margin:0; padding:0 18px 18px; color:#56615c; font-size:.94rem; }
.v23-contact { padding:68px 0 110px; background:var(--v23-soft); }
.v23-contact-grid { display:grid; gap:24px; align-items:center; }
.v23-contact-actions { display:grid; gap:10px; }
.v23-contact-actions a { display:grid; padding:17px 19px; color:#fff; background:var(--v23-accent); border-radius:17px; text-decoration:none; }
.v23-contact-actions a:last-child { color:var(--v23-accent-dark); background:#fff; border:1px solid var(--v23-line); }
.v23-contact-actions span { font-size:.75rem; opacity:.8; }
.v23-contact-actions strong { font-size:1.02rem; }
.v23-footer { background:#182820; }

/* 안산: 비대칭 편집형 */
.v23--ansan { --v23-accent:#3c6b70; --v23-accent-dark:#173f44; --v23-soft:#e9f3f2; --v23-warm:#f6ecdf; }
.v23--ansan .v23-hero { padding:30px 0 70px; background:linear-gradient(110deg,#f7eee3 0 58%,#e6f1ef 58%); }
.v23--ansan .v23-hero-grid { display:grid; gap:26px; }
.v23--ansan .v23-media--hero { border-radius:80px 20px 80px 20px; box-shadow:0 24px 60px rgba(23,63,68,.16); }
.v23--ansan .v23-snapshot .v23-info:nth-child(2) { transform:translateY(10px); }

/* 군포: 갤러리형 */
.v23--gunpo { --v23-accent:#775f40; --v23-accent-dark:#43311f; --v23-soft:#f2eee5; --v23-warm:#e9efea; }
.v23--gunpo .v23-hero { padding:24px 0 62px; background:#f5f1e9; }
.v23--gunpo .v23-hero-grid { display:grid; gap:0; }
.v23--gunpo .v23-media--hero { border-radius:30px 30px 8px 8px; }
.v23--gunpo .v23-hero-copy { position:relative; z-index:2; margin:-28px 14px 0; padding:23px; background:rgba(255,255,255,.96); border:1px solid rgba(119,95,64,.18); border-radius:22px; box-shadow:0 18px 45px rgba(67,49,31,.11); }
.v23--gunpo .v23-species-grid { border-top:1px solid var(--v23-line); padding-top:28px; }

/* 오산: 밝은 코트야드형 */
.v23--osan { --v23-accent:#a05b43; --v23-accent-dark:#633322; --v23-soft:#f9ebe5; --v23-warm:#eef1e7; }
.v23--osan .v23-hero { padding:34px 0 70px; background:#fff8f1; }
.v23--osan .v23-hero-grid { display:grid; gap:22px; }
.v23--osan .v23-media--hero { border-radius:18px 70px 18px 18px; }
.v23--osan .v23-info { border:0; box-shadow:0 12px 30px rgba(99,51,34,.08); }
.v23--osan .v23-trust { background:#663929; }

/* 평택: 중앙 에디토리얼형 */
.v23--pyeongtaek { --v23-accent:#556448; --v23-accent-dark:#303b28; --v23-soft:#edf0e8; --v23-warm:#f2e9dc; }
.v23--pyeongtaek .v23-hero { padding:42px 0 0; text-align:center; background:#f6f2e9; }
.v23--pyeongtaek .v23-hero-copy { max-width:880px; margin:0 auto 30px; }
.v23--pyeongtaek .v23-actions { justify-content:center; }
.v23--pyeongtaek .v23-media--hero { border-radius:32px 32px 0 0; }
.v23--pyeongtaek .v23-info-grid { border-block:1px solid var(--v23-line); padding-block:16px; }
.v23--pyeongtaek .v23-info { border:0; background:transparent; }

/* 용인: 한옥 모티프 프레임형 */
.v23--yongin { --v23-accent:#59684e; --v23-accent-dark:#293326; --v23-soft:#edf0e8; --v23-warm:#eee2d3; }
.v23--yongin .v23-hero { padding:32px 0 72px; background:linear-gradient(#f8f3e9,#fffdf9); }
.v23--yongin .v23-hero-grid { display:grid; gap:22px; }
.v23--yongin .v23-hero-copy { padding:24px; border:1px solid var(--v23-line); border-radius:4px 32px 4px 32px; }
.v23--yongin .v23-media--hero { border:10px solid #fff; border-radius:4px 42px 4px 42px; box-shadow:0 22px 50px rgba(41,51,38,.14); }
.v23--yongin .v23-trust { background:#313b2d; }

@media (min-width:700px) {
  .v23-page .ac-shell { width:min(calc(100% - 64px),1160px); }
  .v23-info-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .v23-species-grid,.v23-trust-grid,.v23-meeting-grid,.v23-contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .v23-species-grid--reverse .v23-copy { order:-1; }
  .v23-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v23--ansan .v23-hero-grid,.v23--osan .v23-hero-grid,.v23--yongin .v23-hero-grid { grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); align-items:center; }
  .v23--gunpo .v23-hero-copy { width:min(760px,calc(100% - 80px)); margin:-64px auto 0; padding:34px; }
  .v23--pyeongtaek .v23-info-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (min-width:960px) {
  .v23-page .ac-nav--desktop { display:flex; align-items:center; gap:21px; }
  .v23-page .ac-nav--desktop a { font-size:.88rem; font-weight:700; text-decoration:none; }
  .v23-page .ac-mobile-nav { display:none; }
  .v23-section { padding:88px 0; }
  .v23-page h1 { font-size:clamp(2.65rem,4.5vw,4.25rem); }
  .v23-steps { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .v23--ansan .v23-hero-copy { padding-right:24px; }
  .v23--osan .v23-hero-grid { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
  .v23--yongin .v23-hero-grid { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
}
@media (max-width:699px) {
  .v23-page h1 { font-size:clamp(1.88rem,9vw,2.45rem); }
  .v23-section { padding:58px 0; }
  .v23-btn { flex:1 1 100%; }
  .v23--ansan .v23-snapshot .v23-info:nth-child(2) { transform:none; }
  .v23-media { border-radius:20px; }
  .v23-media img { aspect-ratio:3/2; }
  .v23-contact { padding-bottom:132px; }
}
