.cpc-page {
    --cpc-blue: #264d7a;
    --cpc-deep-blue: #304271;
    --cpc-turquoise: #15a8ab;
    --cpc-gray: #6d6d6d;
    --cpc-pale: #f3f8fb;
    color: var(--cpc-gray);
    font-family: "Bai Jamjuree", sans-serif;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.45;
    overflow: clip;
}

.cpc-page *, .cpc-page *::before, .cpc-page *::after { box-sizing: border-box; }
.cpc-page h1, .cpc-page h2, .cpc-page h3, .cpc-page p, .cpc-page ul, .cpc-page ol { margin: 0; padding: 0; }
.cpc-page p { font-size: 15px; font-weight: 500; line-height: 1.45; }
.cpc-page h1, .cpc-page h2, .cpc-page h3 { font-weight: 700; line-height: 1.3; }
.cpc-page img { display: block; max-width: 100%; }
.cpc-page a { text-decoration: none; }
.cpc-word { display: inline-block; }
.cpc-container { width: min(calc(100% - 40px), 1200px); margin-inline: auto; }
.cpc-band { background: var(--cpc-pale); }
.cpc-page section { scroll-margin-top: 90px; }
.cpc-page h2 { color: var(--cpc-turquoise); font-size: clamp(27px, 3vw, 34px); }
.cpc-section-lead { max-width: 760px; margin: 16px auto 0 !important; text-align: center; text-wrap: pretty; }
.cpc-button { width: fit-content; min-height: 43px; padding: 10px 20px; border-radius: 10px; background: var(--cpc-turquoise); color: #fff !important; font-size: 17px; font-weight: 400; line-height: 1.3; text-align: center; transition: transform .2s ease, background-color .2s ease; }
.cpc-button:hover { background: #128e91; transform: scale(1.035); }
.cpc-button:focus-visible, .cpc-contact:focus-visible, .cpc-faq summary:focus-visible { outline: 3px solid var(--cpc-deep-blue); outline-offset: 3px; }

.cpc-hero { background: #f2f9fd; }
.cpc-hero-photo { display: block; width: 100%; height: 200px; overflow: hidden; }
.cpc-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 68% center; }
.cpc-hero-content { padding-block: 24px 32px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.cpc-hero-content > * { max-width: 100%; }
.cpc-hero h1 { color: var(--cpc-blue); font-size: 30px; }
.cpc-hero h2 { width: 100%; max-width: 650px; color: var(--cpc-turquoise); font-size: 22px; font-weight: 600; }
.cpc-hero p { color: var(--cpc-blue); }
.cpc-hero strong { font-weight: 700; }

.cpc-about { padding-block: 0 32px; }
.cpc-about-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 35px; background: #fff; box-shadow: 0 4px 10px -4px #0004; }
.cpc-about-photo { order: -1; width: 100%; height: 305px; object-fit: cover; object-position: center; }
.cpc-about-copy { display: grid; gap: 16px; padding: 28px 24px; }
.cpc-about h2 { font-size: 24px; }

.cpc-metrics { padding-block: 32px; text-align: center; }
.cpc-metric-grid { display: grid; gap: 16px; margin: 22px 0 20px; }
.cpc-metric { min-height: 132px; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 20px; border-radius: 26px; background: #fff; box-shadow: 0 3px 7px #0002; }
.cpc-metric strong { color: var(--cpc-blue); font-size: 32px; line-height: 1.1; }
.cpc-metric span { font-size: 20px; font-weight: 600; line-height: 1.3; }
.cpc-page .cpc-metric-note { max-width: 760px; margin: 12px auto 0 !important; font-size: 16px; font-style: italic; font-weight: 600; }

.cpc-cases { padding-block: 32px; }
.cpc-cases h2, .cpc-facilities h2, .cpc-team h2 { text-align: center; }
.cpc-cases h2 { color: var(--cpc-blue); }
.cpc-cases-grid { display: grid; gap: 0 20px; margin-top: 22px; }
.cpc-case { padding: 20px 0; border-bottom: 1px solid #e2e2e2; }
.cpc-case h3 { margin-bottom: 12px; color: var(--cpc-turquoise); font-size: 17px; }
.cpc-case-numbers { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.cpc-case-numbers p { display: grid; gap: 3px; }
.cpc-case-numbers strong { color: var(--cpc-blue); font-size: 21px; line-height: 1.1; }
.cpc-case-numbers span { font-size: 15px; line-height: 1.25; }

.cpc-facilities { padding-block: 32px; }
.cpc-facilities-grid { display: grid; gap: 16px; margin-top: 22px; }
.cpc-facility { min-width: 0; padding: 20px; border-radius: 11px; background: var(--cpc-pale); }
.cpc-facility h3 { margin-bottom: 8px; color: var(--cpc-blue); font-size: 18px; }

.cpc-team { padding-block: 32px; }
.cpc-team-list { display: grid; gap: 76px; padding-top: 80px; }
.cpc-team-card { position: relative; display: flex; flex-direction: column; min-width: 0; height: 440px; padding: 156px 20px 24px; border-radius: 35px; background: #fff; box-shadow: 0 4px 8px #0004; text-align: center; }
.cpc-team-card > img { position: absolute; top: 144px; left: 50%; width: 195px; height: auto; transform: translate(-50%, -100%); }
.cpc-team-card h3 { flex: none; margin-bottom: 8px; color: var(--cpc-gray); font-size: 18px; }
.cpc-page .cpc-team-role { margin-bottom: 10px !important; color: var(--cpc-deep-blue); font-size: 14px; font-weight: 700; line-height: 1.3; text-transform: uppercase; }
.cpc-team-scroll { display: grid; flex: 1; min-height: 0; align-content: start; gap: 10px; overflow-y: auto; padding-right: 8px; }
.cpc-team-scroll::-webkit-scrollbar { width: 3px; }
.cpc-team-pagination { display: none; }
.cpc-team-swiper.is-carousel { padding: 0 10px 12px; }
.cpc-team-swiper.is-carousel .cpc-team-list { display: flex; gap: 0; }
.cpc-team-swiper.is-carousel .cpc-team-card { flex: none; height: 440px; }
.cpc-team-swiper.is-carousel + .cpc-team-pagination { display: flex; justify-content: center; margin-top: 24px; }
.cpc-team-pagination .swiper-pagination-bullet { width: 9px; height: 9px; background: var(--cpc-turquoise); opacity: .4; }
.cpc-team-pagination .swiper-pagination-bullet-active { width: 27px; border-radius: 8px; opacity: 1; }

.cpc-areas { padding-block: 32px; }
.cpc-areas-grid { display: grid; gap: 20px; max-width: 963px; }
.cpc-organic-photo { width: 100%; max-width: 456px; height: auto; aspect-ratio: 456 / 445; justify-self: center; }
.cpc-areas-content { min-width: 0; }
.cpc-areas-content > p { margin-top: 12px; }
.cpc-areas-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px; margin-top: 18px !important; list-style: none; }
.cpc-areas-list li { display: flex; align-items: center; gap: 4px; font-size: 16.875px; }
.cpc-areas-list img { flex: none; width: 22px; height: 22px; object-fit: contain; }

.cpc-viability, .cpc-more { padding-block: 32px; text-align: center; }
.cpc-viability > p, .cpc-more > p { max-width: 760px; margin: 14px auto 0 !important; }
.cpc-viability > .cpc-button, .cpc-more > .cpc-button { margin-top: 20px; }
.cpc-viability-ready { margin-top: 16px !important; color: var(--cpc-turquoise); font-size: 20px !important; font-weight: 600 !important; }
.cpc-pill { width: fit-content; max-width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px; margin-inline: auto !important; padding: 10px 16px !important; border-radius: 18px; background: var(--cpc-deep-blue); color: #fff !important; font-size: 20px !important; text-align: left; }
.cpc-pill span { display: grid; place-items: center; flex: none; width: 27px; height: 27px; border: 2px solid var(--cpc-turquoise); border-radius: 50%; color: var(--cpc-turquoise); font-size: 24px; font-weight: 400; line-height: 1; }
.cpc-pill img { flex: none; width: 28px; height: 28px; object-fit: contain; }
.cpc-contact-grid { display: grid; gap: 16px; margin-top: 28px; text-align: left; }
.cpc-contact { min-width: 0; display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-radius: 18px; background: #fff; box-shadow: 0 3px 7px #0002; color: var(--cpc-gray); transition: transform .2s ease, box-shadow .2s ease; }
.cpc-contact:hover { color: var(--cpc-gray); transform: translateY(-3px); box-shadow: 0 5px 12px #0003; }
.cpc-contact img { flex: none; width: 30px; height: 30px; object-fit: contain; }
.cpc-contact span { display: grid; min-width: 0; gap: 2px; }
.cpc-contact strong { color: var(--cpc-turquoise); font-size: 16px; line-height: 1.3; }
.cpc-contact small { min-width: 0; font-size: 15px !important; line-height: 1.3; overflow-wrap: anywhere; }
.cpc-contact-section { padding-top: 30px; }
.cpc-contact-grid--appointment { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; margin-top: 0; }
.cpc-contact--appointment { width: 287px; min-height: 60px; padding: 8px 15px; border-radius: 19px; box-shadow: 0 3px 6px rgba(0, 0, 0, .16); }
.cpc-contact--appointment strong, .cpc-contact--appointment small { font-size: 17px !important; }

.cpc-patients { padding-block: 32px; }
.cpc-patients-grid { display: grid; gap: 20px; max-width: 997px; margin-inline: auto; }
.cpc-patients-grid > img { order: -1; }
.cpc-patients-copy h3 { margin-top: 18px; color: var(--cpc-blue); font-size: 24px; }
.cpc-patients-copy p { margin-top: 16px; }
.cpc-faq { display: grid; gap: 16px; max-width: 800px; margin: 32px auto 0; }
.cpc-faq-item { overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 3px 7px #0002; }
.cpc-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; color: var(--cpc-blue); font-size: 20px; font-weight: 700; line-height: 1.3; cursor: pointer; list-style: none; }
.cpc-faq-item summary::-webkit-details-marker { display: none; }
.cpc-faq-item summary::after, .cpc-faq-arrow { flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--cpc-turquoise) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 5 7 7-7 7' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px 14px no-repeat; }
.cpc-faq-item summary::after { content: ''; transition: transform .2s ease; }
.cpc-faq-item[open] summary::after { transform: rotate(90deg); }
.cpc-faq-answer { padding: 20px; border-top: 1px solid #ededed; }
.cpc-faq-answer > p + p { margin-top: 12px; }
.cpc-faq-answer ol { display: grid; gap: 16px; margin-top: 16px !important; list-style: none; counter-reset: cpc-step; }
.cpc-faq-answer li { counter-increment: cpc-step; }
.cpc-faq-answer li strong::before { content: counter(cpc-step) '. '; }
.cpc-faq-answer li p { margin-top: 3px; }
.cpc-faq-list, .cpc-faq-subitems { display: grid; gap: 16px; margin: 16px 0 0; }
.cpc-faq-list > div, .cpc-faq-subitem { display: grid; gap: 4px; }
.cpc-faq-list dt, .cpc-faq-subitem h3 { color: var(--cpc-blue); font-size: 16px; font-weight: 700; line-height: 1.3; }
.cpc-faq-list dd { margin: 0; font-size: 15px; font-weight: 500; line-height: 1.45; }
.cpc-faq-subitem p + p { margin-top: 8px; }
.cpc-faq-item--pending { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; color: var(--cpc-blue); font-size: 20px; font-weight: 700; line-height: 1.3; }
.cpc-more { padding-bottom: 50px; }

@media (min-width: 480px) {
    .cpc-container { width: min(calc(100% - 48px), 1200px); }
    .cpc-hero-photo { height: 240px; }
    .cpc-hero-content { padding-block: 28px 36px; }
    .cpc-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cpc-metric:last-child { grid-column: 1 / -1; }
}

@media (min-width: 576px) {
    .cpc-hero-photo { height: 290px; }
    .cpc-cases-grid, .cpc-facilities-grid, .cpc-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cpc-facility:last-child { grid-column: 1 / -1; }
    .cpc-contact:last-child { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
    .cpc-viability-ready { margin-top: 20px !important; }
    .cpc-contact-section { padding-top: 32px; }
    .cpc-contact-grid--appointment { flex-direction: column; gap: 12px; }
    .cpc-contact--appointment { width: 100%; min-height: 72px; padding: 14px 20px; }
    .cpc-contact--appointment strong, .cpc-contact--appointment small { font-size: 16px !important; }
}

@media (min-width: 576px) and (max-width: 991px) {
    .cpc-contact-grid--appointment { flex-direction: row; gap: 22px; }
    .cpc-contact--appointment { width: calc((100% - 22px) / 2); max-width: 287px; }
}

@media (min-width: 768px) {
    .cpc-container { width: min(calc(100% - 56px), 1200px); }
    .cpc-hero-photo { height: 330px; }
    .cpc-hero h1 { font-size: 36px; }
    .cpc-about { padding-block: 45px; }
    .cpc-about-card { display: grid; grid-template-columns: 1fr 1fr; }
    .cpc-about-photo { order: 0; height: 100%; min-height: 390px; }
    .cpc-about-copy { align-content: center; padding: 35px; }
    .cpc-metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cpc-metric:last-child { grid-column: auto; }
    .cpc-facilities-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .cpc-facility { grid-column: span 3; }
    .cpc-facility:last-child { grid-column: 1 / -1; }
    .cpc-areas-grid, .cpc-patients-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 32px; }
    .cpc-areas-grid > .cpc-organic-photo { justify-self: start; }
    .cpc-patients-grid > .cpc-organic-photo { justify-self: end; }
    .cpc-patients-grid > img { order: 0; }
    .cpc-contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cpc-contact:last-child { grid-column: auto; }
}

@media (min-width: 992px) {
    .cpc-hero { position: relative; min-height: 470px; display: flex; align-items: center; }
    .cpc-hero-photo { position: absolute; inset: 0; height: 100%; }
    .cpc-hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #f2f9fd 0%, #f2f9fdf2 30%, #f2f9fdc9 45%, #f2f9fd00 72%); }
    .cpc-hero-photo img { object-position: 58% center; }
    .cpc-hero-content { position: relative; z-index: 1; width: min(calc(100% - 56px), 1064px); margin-inline: auto; padding-block: 35px; max-width: 1064px; }
    .cpc-hero-content > * { max-width: 530px; }
    .cpc-hero h1 { font-size: 40px; }
    .cpc-page .cpc-hero p { font-size: 18px; }
    .cpc-about { max-width: 1000px; }
    .cpc-metrics { max-width: 1000px; padding-bottom: 45px; }
    .cpc-cases, .cpc-facilities, .cpc-team, .cpc-areas, .cpc-viability, .cpc-patients { padding-block: 45px; }
    .cpc-cases-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; }
    .cpc-facility { grid-column: span 2; }
    .cpc-facility:nth-child(n+4) { grid-column: span 3; }
    .cpc-team-card { padding-inline: 18px; }
    .cpc-contact-grid--appointment { width: 100%; }
    .cpc-contact--appointment { flex: 1 1 287px; width: calc((100% - 44px) / 3); max-width: none; }
    .cpc-areas-grid { grid-template-columns: minmax(0, 456fr) minmax(0, 475fr); gap: 32px; }
    .cpc-patients-grid { grid-template-columns: minmax(0, 511fr) minmax(0, 456fr); gap: 30px; }
    .cpc-patients-copy h2 { white-space: nowrap; font-size: 32px; }
    .cpc-faq { margin-top: 50px; }
}

@media (min-width: 1200px) {
    .cpc-areas-list { gap: 14px 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .cpc-page *, .cpc-page *::before, .cpc-page *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
