/* DentaVista — dc-promise widget styles */
.dv-pacc { background: var(--dv-mint); }
                .dv-pacc__blob--a { width: 420px; height: 420px; top: -150px; left: -120px; background: rgba(91, 182, 223,.16); }
                .dv-pacc__blob--b { width: 360px; height: 360px; bottom: -150px; right: -110px; background: rgba(31, 42, 51,.06); }
                .dv-pacc__inner { position: relative; z-index: 1; }
                .dv-pacc__head { max-width: 680px; margin: 0 auto clamp(34px, 5vw, 56px); }

                /* ---- Accordion ---- */
                .dv-pacc__acc {
                    display: flex; gap: 16px;
                    height: clamp(380px, 48vw, 520px);
                }
                .dv-pacc__panel {
                    position: relative; flex: 1 1 0%; min-width: 0;
                    border-radius: 24px; overflow: hidden; cursor: pointer; outline: none;
                    box-shadow: var(--dv-shadow);
                    transition: flex-grow .6s var(--dv-spring), box-shadow .4s var(--dv-ease);
                    background: var(--dv-navy);
                }
                .dv-pacc__panel.is-open { flex-grow: 4.6; box-shadow: var(--dv-shadow-lg); }
                .dv-pacc__panel:focus-visible { box-shadow: 0 0 0 3px rgba(91, 182, 223,.6), var(--dv-shadow); }

                .dv-pacc__img {
                    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
                    transition: transform .8s var(--dv-ease); transform: scale(1.05);
                }
                .dv-pacc__panel.is-open .dv-pacc__img { transform: scale(1); }
                .dv-pacc__overlay { position: absolute; inset: 0; background: rgba(31, 42, 51,.62); transition: background .4s ease; }
                .dv-pacc__panel.is-open .dv-pacc__overlay { background: rgba(31, 42, 51,.7); }

                .dv-pacc__top {
                    position: absolute; top: 0; left: 0; right: 0; z-index: 2;
                    display: flex; align-items: center; justify-content: space-between;
                    padding: 20px;
                }
                .dv-pacc__num { font-family: var(--dv-font-head); font-weight: 800; font-size: 16px; color: rgba(255,255,255,.65); }
                .dv-pacc__icon {
                    width: 46px; height: 46px; border-radius: 13px; flex: none; color: #fff;
                    display: flex; align-items: center; justify-content: center;
                    background: var(--dv-teal-600);
                    transition: transform .5s var(--dv-spring);
                }
                .dv-pacc__panel.is-open .dv-pacc__icon { transform: scale(1.06) rotate(-4deg); }
                .dv-pacc__icon svg { width: 24px; height: 24px; }

                /* Collapsed vertical label (desktop) */
                .dv-pacc__label {
                    position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%) rotate(180deg); z-index: 2;
                    writing-mode: vertical-rl; white-space: nowrap;
                    font-family: var(--dv-font-head); font-weight: 700; font-size: 18px; letter-spacing: .01em;
                    color: #fff; opacity: .92; transition: opacity .3s ease;
                }
                .dv-pacc__panel.is-open .dv-pacc__label { opacity: 0; }

                /* Open body */
                .dv-pacc__body {
                    position: absolute; bottom: 0; left: 0; right: 0; z-index: 3;
                    padding: 30px clamp(22px, 3vw, 38px); width: max(360px, 100%);
                    opacity: 0; transform: translateY(14px); transition: opacity .45s ease .1s, transform .45s var(--dv-ease) .1s;
                    pointer-events: none;
                }
                .dv-pacc__panel.is-open .dv-pacc__body { opacity: 1; transform: none; pointer-events: auto; }
                .dv-pacc__title {
                    font-family: var(--dv-font-head); font-weight: 800; letter-spacing: -.01em;
                    color: #fff; margin: 0 0 10px; font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.1;
                }
                .dv-pacc__text { color: rgba(255,255,255,.86); font-size: 15px; line-height: 1.6; margin: 0 0 18px; max-width: 46ch; }
                .dv-pacc__link {
                    display: inline-flex; align-items: center; gap: 9px;
                    font-size: 14px; font-weight: 700; color: #fff; text-decoration: none;
                    background: var(--dv-teal-600); padding: 11px 20px; border-radius: 999px;
                    transition: background .25s, transform .3s var(--dv-spring);
                }
                .dv-pacc__link svg { width: 16px; height: 16px; transition: transform .3s ease; }
                .dv-pacc__link:hover { background: var(--dv-teal); transform: translateY(-2px); }
                .dv-pacc__link:hover svg { transform: translateX(4px); }

                /* ---- Mobile: vertical accordion ---- */
                @media (max-width: 760px) {
                    .dv-pacc__acc { flex-direction: column; height: auto; gap: 12px; }
                    .dv-pacc__panel { flex: none; height: 84px; transition: height .5s var(--dv-ease); }
                    .dv-pacc__panel.is-open { height: 300px; }
                    .dv-pacc__label { display: none; }
                    .dv-pacc__top { padding: 16px 18px; }
                    /* Title acts as the always-visible header on mobile */
                    .dv-pacc__body {
                        position: absolute; top: 60px; bottom: auto; opacity: 1; transform: none; pointer-events: auto;
                        padding: 0 20px 20px; width: 100%;
                    }
                    .dv-pacc__title { font-size: 1.15rem; margin-bottom: 8px; }
                    .dv-pacc__link { opacity: 0; transition: opacity .3s ease; }
                    .dv-pacc__panel.is-open .dv-pacc__link { opacity: 1; }
                    .dv-pacc__text { display: none; }
                    .dv-pacc__panel.is-open .dv-pacc__text { display: block; }
                }
