:root {
    color-scheme: light;
}

html.dark {
    color-scheme: dark;
    background: #030712;
}

body {
    margin: 0;
}

.openurl-site-container {
    width: 91.666667%;
    max-width: 1536px;
    margin-right: auto;
    margin-left: auto;
}

.custom-logo-link,
.custom-logo {
    display: block;
}

.custom-logo {
    width: auto;
    height: 2rem;
}

.openurl-nav-link {
    color: #475569;
    font-size: .875rem;
    font-weight: 600;
    transition: color .2s ease;
}

.openurl-nav-link:hover,
.openurl-mobile-link:hover {
    color: #0ea5e9;
}

.dark .openurl-nav-link {
    color: #cbd5e1;
}

.openurl-mobile-link {
    display: block;
    padding: .75rem 1rem;
    border-radius: .5rem;
    color: #475569;
    font-weight: 600;
}

.dark .openurl-mobile-link {
    color: #cbd5e1;
}

.openurl-count-blue { background: #eff6ff; color: #2563eb; }
.openurl-count-green { background: #f0fdf4; color: #16a34a; }

.dark .openurl-count-blue,
.dark .openurl-count-green {
    background: #1e293b;
    color: #7dd3fc;
}

.openurl-tag-blue { background: oklch(97% .014 254.604); color: oklch(54.6% .245 262.881); }
.openurl-tag-green { background: oklch(98.2% .018 155.826); color: oklch(62.7% .194 149.214); }
.openurl-tag-purple { background: oklch(97.7% .014 308.299); color: oklch(55.8% .288 302.321); }
.openurl-tag-red { background: oklch(97.1% .013 17.38); color: oklch(57.7% .245 27.325); }
.openurl-tag-yellow { background: oklch(98.7% .026 102.212); color: oklch(55.4% .135 66.442); }
.openurl-tag-indigo { background: oklch(96.2% .018 272.314); color: oklch(51.1% .262 276.966); }
.openurl-tag-pink { background: oklch(97.1% .014 343.198); color: oklch(59.2% .249 .584); }
.openurl-tag-teal { background: oklch(98.4% .014 180.72); color: oklch(60% .118 184.704); }

.openurl-tag-blue:hover { background: oklch(93.2% .032 255.585); }
.openurl-tag-green:hover { background: oklch(96.2% .044 156.743); }
.openurl-tag-purple:hover { background: oklch(94.6% .033 307.174); }
.openurl-tag-red:hover { background: oklch(93.6% .032 17.717); }
.openurl-tag-yellow:hover { background: oklch(97.3% .071 103.193); }
.openurl-tag-indigo:hover { background: oklch(93% .034 272.788); }
.openurl-tag-pink:hover { background: oklch(94.8% .028 342.258); }
.openurl-tag-teal:hover { background: oklch(95.3% .051 180.801); }

.dark .openurl-tag-blue { background: oklch(37.9% .146 265.522 / 20%); color: oklch(80.9% .105 251.813); }
.dark .openurl-tag-green { background: oklch(39.3% .095 152.535 / 20%); color: oklch(87.1% .15 154.449); }
.dark .openurl-tag-purple { background: oklch(38.1% .176 304.987 / 20%); color: oklch(82.7% .119 306.383); }
.dark .openurl-tag-red { background: oklch(39.6% .141 25.723 / 20%); color: oklch(80.8% .114 19.571); }
.dark .openurl-tag-yellow { background: oklch(42.1% .095 57.708 / 20%); color: oklch(90.5% .182 98.111); }
.dark .openurl-tag-indigo { background: oklch(35.9% .144 278.697 / 20%); color: oklch(78.5% .115 274.713); }
.dark .openurl-tag-pink { background: oklch(40.8% .153 2.432 / 20%); color: oklch(82.3% .12 346.018); }
.dark .openurl-tag-teal { background: oklch(38.6% .063 188.416 / 20%); color: oklch(85.5% .138 181.071); }

.dark .openurl-tag-blue:hover { background: oklch(37.9% .146 265.522 / 40%); }
.dark .openurl-tag-green:hover { background: oklch(39.3% .095 152.535 / 40%); }
.dark .openurl-tag-purple:hover { background: oklch(38.1% .176 304.987 / 40%); }
.dark .openurl-tag-red:hover { background: oklch(39.6% .141 25.723 / 40%); }
.dark .openurl-tag-yellow:hover { background: oklch(42.1% .095 57.708 / 40%); }
.dark .openurl-tag-indigo:hover { background: oklch(35.9% .144 278.697 / 40%); }
.dark .openurl-tag-pink:hover { background: oklch(40.8% .153 2.432 / 40%); }
.dark .openurl-tag-teal:hover { background: oklch(38.6% .063 188.416 / 40%); }

.article-body {
    color: #334155;
    font-size: 1.05rem;
    line-height: 2;
    overflow-wrap: anywhere;
}

.dark .article-body {
    color: #cbd5e1;
}

.article-body > * + * {
    margin-top: 1.4rem;
}

.article-body h2 {
    margin-top: 3rem;
    margin-bottom: 1.5rem;
    padding: .25rem 0 .25rem 1rem;
    border-left: 5px solid #2563eb;
    border-radius: 0 4px 4px 0;
    background: linear-gradient(to right, rgba(37, 99, 235, .07), transparent);
    color: #0f172a;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.4;
}

.article-body h3 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    padding-left: .75rem;
    border-left: 4px solid #94a3b8;
    color: #1e293b;
    font-size: 1.25rem;
    font-weight: 700;
}

.dark .article-body h2,
.dark .article-body h3 {
    color: #f8fafc;
}

.article-body a {
    color: #2563eb;
    font-weight: 500;
    text-decoration: none;
}

.article-body a:hover {
    text-decoration: underline;
}

.article-body ul,
.article-body ol {
    padding-left: 1.6rem;
}

.article-body ul {
    list-style: disc;
}

.article-body ol {
    list-style: decimal;
}

.article-body li + li {
    margin-top: .55rem;
}

.article-body img {
    max-width: 100%;
    height: auto;
    border-radius: .75rem;
}

.article-body figure {
    max-width: 100%;
    margin: 2rem 0;
}

.article-body pre {
    position: relative;
    overflow-x: auto;
    margin: 2rem 0;
    padding: 1.25rem;
    border-radius: .65rem;
    background: #23241f;
    color: #f8f8f2;
    font-size: .9rem;
    line-height: 1.75;
}

.article-body code {
    font-family: Consolas, Monaco, "Courier New", monospace;
}

.article-body :not(pre) > code {
    padding: .15rem .4rem;
    border-radius: .3rem;
    background: #f1f5f9;
    color: #be123c;
    font-size: .9em;
}

.dark .article-body :not(pre) > code {
    background: #1e293b;
    color: #fda4af;
}

.copy-btn {
    position: absolute;
    top: .5rem;
    right: .5rem;
    z-index: 2;
    padding: .25rem .6rem;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: .3rem;
    background: rgba(255, 255, 255, .16);
    color: white;
    cursor: pointer;
    font-size: .75rem;
}

.copy-btn:hover {
    background: rgba(255, 255, 255, .3);
}

.article-body figure.table,
.article-body .wp-block-table {
    width: 100%;
    overflow-x: auto;
}

.article-body table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #cbd5e1;
    font-size: .95rem;
}

.article-body th,
.article-body td {
    padding: .75rem 1rem;
    border: 1px solid #cbd5e1;
    text-align: left;
    vertical-align: top;
}

.article-body th {
    background: #f1f5f9;
    color: #334155;
    font-weight: 700;
}

.dark .article-body th {
    background: #1e293b;
    color: #e2e8f0;
}

.dark .article-body td,
.dark .article-body th,
.dark .article-body table {
    border-color: #475569;
}

.openurl-pagination ul,
.openurl-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.openurl-pagination a,
.openurl-pagination .current {
    display: inline-flex;
    min-width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    padding: 0 .75rem;
    border: 1px solid #e2e8f0;
    border-radius: .5rem;
    background: white;
    color: #475569;
    font-size: .875rem;
}

.openurl-pagination .current {
    border-color: #0ea5e9;
    background: #0ea5e9;
    color: white;
}

.dark .openurl-pagination a {
    border-color: #334155;
    background: #1e293b;
    color: #cbd5e1;
}

.openurl-contact-page {
    flex-grow: 1;
    width: calc(100% - 2rem);
    max-width: 80rem;
    margin: 0 auto;
    padding: 3rem 1rem;
}

.openurl-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 3rem;
}

.openurl-contact-copy {
    min-width: 0;
}

.openurl-contact-copy h1 {
    margin: 0;
    color: #0f172a;
    font-size: 2.25rem;
    font-weight: 900;
    line-height: 1.15;
}

.openurl-contact-copy > p {
    max-width: 34rem;
    margin: 1.5rem 0 0;
    color: #64748b;
    line-height: 2;
}

.openurl-contact-email {
    margin-top: 2rem;
}

.openurl-contact-email strong {
    display: block;
    color: #0f172a;
    font-size: .875rem;
    font-weight: 600;
}

.openurl-contact-email a {
    display: inline-block;
    margin-top: .5rem;
    color: #0ea5e9;
    text-decoration: none;
    transition: color .15s ease;
}

.openurl-contact-email a:hover {
    color: #0284c7;
}

.openurl-contact-card {
    min-width: 0;
    padding: 2rem;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: #f8fafc;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
}

.dark .openurl-contact-copy h1,
.dark .openurl-contact-email strong {
    color: #fff;
}

.dark .openurl-contact-copy > p {
    color: #94a3b8;
}

.dark .openurl-contact-card {
    border-color: #334155;
    background: #1e293b;
}

.openurl-contact-form .fluentform_wrapper_1 {
    margin: 0;
}

.openurl-contact-form .ff-el-group {
    margin-bottom: 1.25rem;
}

.openurl-contact-form .ff-t-container {
    gap: 1.25rem;
}

.openurl-contact-form .ff-el-input--label label {
    color: #334155;
    font-size: .875rem;
    font-weight: 500;
}

.openurl-contact-form .ff-el-form-control {
    width: 100%;
    min-height: 2.75rem;
    margin-top: .5rem;
    padding: 0 1rem;
    border: 1px solid #e2e8f0;
    border-radius: .5rem;
    background: #fff;
    color: #0f172a;
    box-shadow: none;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.openurl-contact-form textarea.ff-el-form-control {
    min-height: 7.5rem;
    padding: .875rem 1rem;
    resize: vertical;
}

.openurl-contact-form .ff-el-form-control:focus {
    border-color: #0ea5e9;
    box-shadow: 0 0 0 1px #0ea5e9;
}

.openurl-contact-form .ff-el-form-control::placeholder {
    color: #94a3b8;
}

.openurl-contact-form .ff_submit_btn_wrapper {
    margin-bottom: 0;
}

.openurl-contact-form .ff-btn-submit,
.openurl-contact-form .openurl-contact-submit {
    display: inline-flex;
    width: 100%;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    padding: .75rem 1.5rem;
    border: 0;
    border-radius: .5rem;
    background: #0ea5e9 !important;
    color: #fff !important;
    font-weight: 700;
    opacity: 1;
    transition: background-color .2s ease;
}

.openurl-contact-form .ff-btn-submit:hover,
.openurl-contact-form .openurl-contact-submit:hover {
    background: #0284c7 !important;
    opacity: 1;
}

.openurl-contact-form .ff-el-is-error .ff-el-form-control {
    border-color: #ef4444;
}

.openurl-contact-form .text-danger {
    color: #dc2626;
    font-size: .8125rem;
}

.openurl-contact-form .ff-message-success {
    margin: 0;
    padding: 1rem;
    border: 0;
    border-radius: .5rem;
    background: #ecfdf5;
    color: #047857;
    box-shadow: none;
}

.dark .openurl-contact-form .ff-el-input--label label {
    color: #e2e8f0;
}

.dark .openurl-contact-form .ff-el-form-control {
    border-color: #475569;
    background: #0f172a;
    color: #f8fafc;
}

.dark .openurl-contact-form .ff-el-form-control::placeholder {
    color: #64748b;
}

.dark .openurl-contact-form .ff-el-form-control:focus {
    border-color: #0ea5e9;
    background: #0f172a;
    color: #f8fafc;
    box-shadow: 0 0 0 1px #0ea5e9;
}

.dark .openurl-contact-form .ff-message-success {
    background: rgba(6, 78, 59, .45);
    color: #a7f3d0;
}

@media (min-width: 768px) {
    .openurl-contact-card {
        padding: 2.5rem;
    }
}

@media (min-width: 1024px) {
    .openurl-contact-page {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .openurl-contact-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 5rem;
    }
}

@media (max-width: 640px) {
    .article-body {
        font-size: 1rem;
        line-height: 1.85;
    }

    .article-body h2 {
        font-size: 1.35rem;
    }
}
