/* =========================================================
   Pace Clock — Premium access gate v1
   #pace_clock/pc-premium-gate
   ========================================================= */

html.pcAccessGateOpen,
html.pcAccessGateOpen body{
    overflow:hidden !important;
}

.pcAccessGate,
.pcAccessGate *{
    box-sizing:border-box;
    font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

.pcAccessGate[hidden]{
    display:none !important;
}

.pcAccessGate{
    position:fixed;
    inset:0;
    z-index:2147483000;
    display:grid;
    place-items:center;
    width:100%;
    height:100vh;
    height:100dvh;
    padding:
        max(16px, env(safe-area-inset-top))
        max(16px, env(safe-area-inset-right))
        max(16px, env(safe-area-inset-bottom))
        max(16px, env(safe-area-inset-left));
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    background:rgba(3,24,42,.72);
    -webkit-backdrop-filter:blur(7px);
    backdrop-filter:blur(7px);
}

.pcAccessGate__dialog{
    position:relative;
    width:min(520px, 100%);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    margin:auto;
    overflow-x:hidden;
    overflow-y:auto;
    color:#162033;
    background:#fff;
    border:1px solid rgba(7,137,223,.24);
    border-radius:22px;
    box-shadow:0 24px 70px rgba(0,22,42,.38);
}

.pcAccessGate__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 20px;
    border-bottom:1px solid #dbe7ef;
}

.pcAccessGate__brand{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
    color:#087fcf;
    font-size:13px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.pcAccessGate__lock{
    display:grid;
    flex:0 0 38px;
    width:38px;
    height:38px;
    place-items:center;
    color:#fff;
    background:linear-gradient(180deg,#20adf4,#0789df);
    border-radius:12px;
    box-shadow:0 8px 18px rgba(7,137,223,.24);
    font-size:18px;
}

.pcAccessGate__close{
    display:grid;
    flex:0 0 42px;
    width:42px;
    height:42px;
    padding:0;
    place-items:center;
    color:#536274;
    background:#f2f7fa;
    border:1px solid #d7e4ec;
    border-radius:12px;
    font:inherit;
    font-size:22px;
    line-height:1;
    cursor:pointer;
}

.pcAccessGate__close:hover{
    color:#16324a;
    background:#e8f3f9;
}

.pcAccessGate__body{
    padding:26px 24px 22px;
    text-align:center;
}

.pcAccessGate__eyebrow{
    margin:0 0 8px;
    color:#0789df;
    font-size:12px;
    font-weight:850;
    letter-spacing:.15em;
    text-transform:uppercase;
}

.pcAccessGate__title{
    margin:0;
    color:#13243a;
    font-size:clamp(25px,5vw,34px);
    font-weight:850;
    line-height:1.12;
}

.pcAccessGate__message{
    max-width:430px;
    margin:14px auto 0;
    color:#586779;
    font-size:16px;
    line-height:1.55;
}

.pcAccessGate__note{
    display:block;
    max-width:410px;
    margin:17px auto 0;
    padding:11px 13px;
    color:#0a669f;
    background:#eaf6ff;
    border:1px solid #c7e6f8;
    border-radius:12px;
    font-size:13px;
    font-weight:700;
    line-height:1.4;
}

.pcAccessGate__actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(120px,.52fr);
    gap:10px;
    padding:0 24px 24px;
}

.pcAccessGate__button{
    display:inline-flex;
    min-height:50px;
    align-items:center;
    justify-content:center;
    padding:12px 18px;
    border:1px solid transparent;
    border-radius:13px;
    font:inherit;
    font-size:15px;
    font-weight:850;
    line-height:1.2;
    text-align:center;
    text-decoration:none !important;
    cursor:pointer;
}

.pcAccessGate__button--primary{
    color:#fff !important;
    background:#0789df;
    border-color:#0789df;
    box-shadow:0 10px 22px rgba(7,137,223,.24);
}

.pcAccessGate__button--primary:hover{
    color:#fff !important;
    background:#056fba;
}

.pcAccessGate__button--secondary{
    color:#176d9f;
    background:#fff;
    border-color:#add4eb;
}

.pcAccessGate__button--secondary:hover{background:#edf8fe;}

.pcAccessGate__button:focus-visible,
.pcAccessGate__close:focus-visible{
    outline:3px solid rgba(7,137,223,.28);
    outline-offset:2px;
}

@media (max-width:520px){
    .pcAccessGate{
        place-items:end center;
        padding:
            max(10px, env(safe-area-inset-top))
            max(10px, env(safe-area-inset-right))
            max(10px, env(safe-area-inset-bottom))
            max(10px, env(safe-area-inset-left));
    }

    .pcAccessGate__dialog{
        max-height:calc(100dvh - 20px);
        border-radius:20px;
    }

    .pcAccessGate__header{
        padding:13px 14px;
    }

    .pcAccessGate__body{
        padding:20px 17px 18px;
    }

    .pcAccessGate__actions{
        grid-template-columns:1fr;
        padding:0 17px 17px;
    }

    .pcAccessGate__button--primary{order:1;}

    .pcAccessGate__button--secondary{order:2;}
}

@media (max-height:520px) and (orientation:landscape){
    .pcAccessGate{
        place-items:start center;
    }

    .pcAccessGate__header{
        padding:10px 14px;
    }

    .pcAccessGate__body{
        padding:14px 18px 12px;
    }

    .pcAccessGate__message{
        margin-top:8px;
        font-size:14px;
    }

    .pcAccessGate__note{
        margin-top:10px;
        padding:8px 10px;
    }

    .pcAccessGate__actions{
        padding:0 18px 14px;
    }
}

@media (prefers-reduced-motion:reduce){
    .pcAccessGate{
        -webkit-backdrop-filter:none;
        backdrop-filter:none;
    }
}
