:root { --ph-app-blue:#155cc9; --ph-app-ink:#16324b; --ph-app-line:#e4ebf4; }
html { scroll-padding-top:90px; }
.ph-app-header { z-index:1030; box-shadow:0 2px 12px #18334b05; }
.ph-icon-button { width:44px; height:44px; padding:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--ph-app-line); border-radius:14px; background:#f8faff; color:var(--ph-app-ink); font-size:1.3rem; flex-shrink:0; }
.ph-mobile-only { display:none; }
.ph-bottom-nav { display:none; }
.ph-drawer { --bs-offcanvas-width:330px; max-width:88vw; border:0!important; border-radius:0 26px 26px 0; }
.ph-drawer .offcanvas-header { padding:24px 20px; border-bottom:1px solid var(--ph-app-line); }
.ph-drawer .offcanvas-body { padding:16px; }
.ph-drawer-brand { font-size:1.1rem; font-weight:800; color:var(--ph-app-blue); }
.ph-drawer-nav a { display:flex; align-items:center; gap:14px; color:var(--ph-app-ink); text-decoration:none; border-radius:14px; padding:12px; min-height:48px; font-weight:600; }
.ph-drawer-nav a:hover,.ph-drawer-nav a:focus-visible { background:#edf4ff; }
.ph-drawer-nav a i { width:24px; text-align:center; color:var(--ph-app-blue); font-size:1.2rem; }
.ph-drawer-nav a.ph-drawer-highlight { background:#edf4ff; color:var(--ph-app-blue); }
.ph-drawer-label { font-size:.68rem; letter-spacing:.12em; font-weight:800; color:#718298; text-transform:uppercase; margin:24px 12px 8px; }
.ph-drawer details { padding:6px 12px; }
.ph-drawer summary { padding:10px 0; font-weight:600; cursor:pointer; }
.ph-drawer details a { font-size:.88rem; font-weight:500; }
.ph-help-sheet { border-radius:26px 26px 0 0; height:auto!important; max-height:85dvh; }
.ph-help-sheet .offcanvas-body { padding-bottom:calc(24px + env(safe-area-inset-bottom)); }
.ph-contact-action { display:flex; align-items:center; gap:14px; border:1px solid var(--ph-app-line); padding:16px; border-radius:16px; text-decoration:none; color:var(--ph-app-ink); min-height:64px; background:white; }
.ph-contact-action i { display:grid; place-items:center; width:42px; height:42px; background:#edf4ff; border-radius:13px; color:var(--ph-app-blue); font-size:1.3rem; flex-shrink:0; }
.ph-contact-action .bi-whatsapp { background:#e7f7ed; color:#18794e; }
.ph-service-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.ph-service-heading h2 { margin:0; }
.ph-compare-link { font-size:.8rem; font-weight:650; text-decoration:none; background:#eaf1ff; border-radius:24px; padding:7px 12px; white-space:nowrap; }
.ph-service-icon { width:56px; height:56px; border-radius:18px; display:grid; place-items:center; font-size:1.65rem; color:#1675cb; background:#eaf5ff; margin-bottom:18px; }
.ph-service-diagnostic .ph-service-icon { color:#0e8a80; background:#e6f6f2; }
.ph-service-doctor .ph-service-icon { color:#7051c1; background:#f0ecfc; }
.ph-service-subtitle { display:none; }
.ph-booking-shortcut { background:linear-gradient(110deg,#eaf2ff,#f5f8ff); border:1px solid #dce7f7; border-radius:20px; padding:22px; display:flex; align-items:center; justify-content:space-between; gap:18px; margin:22px 0 30px; }
.ph-booking-shortcut-icon { width:48px; height:48px; border-radius:16px; background:white; color:var(--ph-app-blue); display:grid; place-items:center; font-size:1.4rem; flex-shrink:0; }
.ph-booking-shortcut h2 { font-size:1rem; font-weight:750; margin:0 0 3px; }
.ph-booking-shortcut p { font-size:.82rem; color:#586779; margin:0; }
.ph-step-number { width:36px; height:36px; border-radius:12px; display:grid; place-items:center; font-size:.8rem; font-weight:800; color:var(--ph-app-blue); background:#edf3ff; flex-shrink:0; }
.ph-step { display:flex; align-items:flex-start; gap:13px; }
.ph-steps-card { padding:26px; }
.ph-home-slider { overflow:hidden; border-radius:20px; }
.ph-home-slider img { aspect-ratio:3.2; object-fit:cover; }
.ph-home-help { margin-top:28px; padding:22px; border:1px solid var(--ph-app-line); border-radius:20px; background:white; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.ph-back-button { display:inline-flex; align-items:center; gap:10px; min-height:44px; max-width:100%; padding:10px 16px; border:1px solid #dce5f0; border-radius:14px; background:white; color:#244c79; font-size:.9rem; font-weight:650; text-decoration:none; box-shadow:0 2px 8px #18334b04; }
.ph-back-button i { flex-shrink:0; font-size:1.1rem; }
.ph-back-button:hover { color:#155cc9; background:#edf4ff; border-color:#bed0ee; }
.ph-service-button { display:flex; gap:12px; align-items:center; min-height:72px; padding:16px; border:1px solid #dce5f0; border-radius:18px; text-decoration:none; background:#f7faff; color:#244c79; font-size:.9rem; font-weight:650; height:100%; }
.ph-service-button>i:first-child { display:grid; place-items:center; width:40px; height:40px; border-radius:13px; background:#e7f0ff; color:#155cc9; font-size:1.3rem; flex-shrink:0; }
.ph-service-button:hover { background:#edf4ff; border-color:#bed0ee; }
.ph-booking-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ph-booking-guide>li { display:flex; gap:12px; align-items:flex-start; min-width:0; }
.ph-booking-guide h3 { font-size:.92rem; line-height:1.45; margin:2px 0 6px; }
.ph-booking-guide p { line-height:1.65; }
.ph-account-actions { display:flex; flex-wrap:wrap; gap:12px; }
.ph-test-option { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:16px; border:1px solid #e0e7f0; border-radius:16px; background:white; cursor:pointer; min-height:78px; }
.ph-test-option .form-check-input { margin:0; width:20px; height:20px; }
.ph-test-option strong { overflow-wrap:anywhere; }
.ph-test-option:has(input:checked) { border-color:#155cc9; background:#f0f6ff; box-shadow:inset 0 0 0 1px #155cc9; }
.ph-test-price { text-align:right; white-space:nowrap; font-weight:700; color:#183b65; }
.ph-test-price small { display:block; color:#66788e; font-size:.7rem; font-weight:400; }
#appointment-form [data-visit-date],#open-visit-calendar,#opd-calendar-submit { min-height:44px; border-radius:12px; font-weight:600; padding:9px 13px; }
@media (max-width:767.98px) {
    .ph-booking-guide { grid-template-columns:1fr; gap:22px; }
}
@media (max-width:1199.98px) {
    .ph-mobile-only { display:inline-flex; }
    .ph-app-header .container { gap:10px!important; }
    .ph-app-header .navbar-brand { font-size:1.05rem; margin:0 auto 0 0; padding:0; }
    .ph-app-header .navbar-brand img { max-width:175px!important; height:32px!important; }
    .ph-bottom-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; inset:auto 0 0; z-index:1035; background:#fff; border-top:1px solid #e3eaf3; box-shadow:0 -5px 24px #173b6010; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); }
    .ph-bottom-nav a,.ph-bottom-nav button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-height:52px; border:0; background:transparent; color:#586b82; font-size:.7rem; font-weight:650; text-decoration:none; padding:0; border-radius:12px; }
    .ph-bottom-nav i { display:grid; place-items:center; font-size:1.25rem; width:44px; height:29px; border-radius:11px; }
    .ph-bottom-nav .active { color:var(--ph-app-blue); }
    .ph-bottom-nav .active i { background:#eaf2ff; }
    body { padding-bottom:calc(73px + env(safe-area-inset-bottom)); }
    body.ph-keyboard-open .ph-bottom-nav { visibility:hidden; }
    .ph-site-footer { margin-bottom:0; }
    .ph-site-footer .ph-footer-credit { font-size:.64rem; }
}
@media (max-width:575.98px) {
    :root { --ph-bg:#f4f7fc; }
    .ph-app-header .container { padding-left:16px; padding-right:16px; padding-top:10px!important; padding-bottom:10px!important; }
    #main-content { padding:20px 16px 28px!important; }
    .ph-home-hero { padding:25px 23px!important; border-radius:24px; position:relative; overflow:hidden; margin-bottom:25px!important; }
    .ph-home-hero::after { content:''; position:absolute; width:190px; height:190px; border:28px solid #ffffff06; border-radius:50%; right:-80px; bottom:-100px; pointer-events:none; }
    .ph-home-hero h1 { font-size:1.95rem; letter-spacing:-.045em; line-height:1.16; margin-bottom:12px!important; position:relative; }
    .ph-home-hero .ph-pill { font-size:.65rem; padding:5px 9px; margin-bottom:14px!important; }
    .ph-home-hero p { font-size:.83rem!important; line-height:1.65; margin-bottom:18px!important; max-width:290px; }
    .ph-home-hero .btn { min-height:42px; padding:9px 15px; font-size:.82rem; font-weight:650; }
    .ph-service-heading { gap:8px; margin-bottom:14px; }
    .ph-service-heading h2,.ph-home-steps>h2 { font-size:1.18rem; letter-spacing:-.035em; font-weight:800; }
    .ph-compare-link { font-size:.65rem; padding:6px 9px; }
    .ph-service-intro { font-size:.78rem; margin-bottom:15px!important; }
    .ph-service-grid { --bs-gutter-x:10px; --bs-gutter-y:10px; }
    .ph-service-grid>div { width:33.333333%; }
    .ph-service-grid .service-link { padding:15px 7px 12px!important; border-radius:19px; text-align:center; align-items:center; box-shadow:0 4px 16px #153f6a04; }
    .ph-service-icon { width:48px; height:48px; border-radius:16px; margin-bottom:12px; font-size:1.5rem; }
    .ph-service-grid h3 { font-size:.77rem; font-weight:750; margin-bottom:3px; letter-spacing:-.025em; }
    .ph-service-description,.ph-service-action { display:none; }
    .ph-service-subtitle { display:block; font-size:.62rem; color:#6b7b90; margin-bottom:2px; }
    #services { margin-bottom:0!important; }
    .ph-booking-shortcut { padding:15px; gap:12px; margin:18px 0 25px; border-radius:18px; }
    .ph-booking-shortcut-icon { width:39px; height:43px; border-radius:13px; }
    .ph-booking-shortcut h2 { font-size:.84rem; }
    .ph-booking-shortcut p { font-size:.7rem; line-height:1.5; }
    .ph-booking-shortcut>a { min-height:40px; display:grid; place-items:center; font-size:.72rem; font-weight:700; background:white; border-radius:12px; padding:8px 12px; text-decoration:none; flex-shrink:0; }
    .ph-home-steps { margin-bottom:24px; }
    .ph-home-steps>h2 { margin-bottom:14px; }
    .ph-steps-card { padding:20px; border-radius:20px; }
    .ph-steps-card .row { --bs-gutter-y:20px; }
    .ph-step h3 { font-size:.83rem; margin:1px 0 4px; }
    .ph-step p { font-size:.73rem; line-height:1.65; }
    .ph-home-help { margin-top:22px; padding:18px; }
    .ph-home-help h2 { font-size:.95rem; }
    .ph-home-help p { font-size:.75rem; }
    .ph-site-footer { padding:22px 16px!important; background:transparent!important; }
    .ph-site-footer .container { padding:0; }
    .ph-site-footer .ph-footer-links { column-gap:16px!important; row-gap:9px!important; font-size:.65rem; }
    .ph-card.p-4,.card-body.p-4 { padding:20px!important; }
    .form-control,.form-select { font-size:16px; }
    .ph-home-hero .row { --bs-gutter-y:0; }
    .ph-back-button { font-size:.82rem; padding:9px 14px; }
    .ph-booking-guide h3 { font-size:.85rem; }
    .ph-booking-guide p { font-size:.76rem; }
    .ph-account-actions .btn { flex:1; }
    .ph-test-option { gap:10px; padding:14px 12px; font-size:.9rem; }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; }
    .offcanvas,.offcanvas-backdrop { transition:none!important; }
}
