/* AED Log Site plugin styles: the page base, and the markup the plugin's
   shortcodes print (menus, footer links, breadcrumbs, FAQ, tables, prose).
   Atomic elements are styled by the Elementor kit (global variables, the
   kit's default tag styles and global classes); this file never restyles
   them. Values are the joincpr.com tokens (build plan section 4.5): navy
   #023a51 = 900, green #2cbc63 = 500, Tailwind's slate neutrals. Elementor
   prints global classes under their labels, so `.copy`, `.prose` and
   `.site-footer` below are the same classes the kit defines. */

/* ---------- Font: Instrument Sans (OFL), self-hosted, weights 400–700 ---------- */
@font-face {
    font-family: 'Instrument Sans';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('fonts/instrument-sans-latin-wght-v5.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Base ---------- */
html {
    scroll-padding-top: 5.5rem;
    -webkit-text-size-adjust: 100%;
}

/* `html body` outranks the Hello theme reset, which loads after this file. */
html body {
    margin: 0;
    background: #fff;
    font-family: 'Instrument Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.75;
    color: #334155;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4 {
    text-wrap: balance;
}

p, li, dd {
    text-wrap: pretty;
}

:focus-visible {
    outline: 2px solid #1f9b50;
    outline-offset: 2px;
}

::selection {
    background: #b4eec9;
    color: #01263a;
}

a {
    color: #0a445e;
}

a:hover,
a:active {
    color: #01263a;
}

/* A link typed inside running text (an atomic paragraph, prose, an FAQ answer). */
.e-paragraph-base a:not([class]),
.prose a:not([class]),
.aedlog-blog p a:not([class]),
.aedlog-faq__a a {
    font-weight: 500;
    color: #0a445e;
    text-decoration: underline;
    text-decoration-color: rgb(44 188 99 / 0.7);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    transition: color 0.15s, text-decoration-color 0.15s;
}

.e-paragraph-base a:not([class]):hover,
.prose a:not([class]):hover,
.aedlog-blog p a:not([class]):hover,
.aedlog-faq__a a:hover {
    color: #01263a;
    text-decoration-color: #2cbc63;
}

/* ---------- Header (Theme Builder): sticky, 64px tall ---------- */
.elementor-location-header {
    position: sticky;
    top: var(--wp-admin--admin-bar--height, 0px);
    z-index: 40;
}

/* ---------- [aedlog_nav]: desktop menus, from 1120px ---------- */
.aedlog-nav {
    display: none;
    margin-left: 16px;
}

@media (min-width: 1120px) {
    .aedlog-nav {
        display: block;
    }
}

.aedlog-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.aedlog-nav__list {
    display: flex;
    align-items: center;
    gap: 2px;
}

.aedlog-nav .aedlog-nav__top,
.aedlog-nav .aedlog-nav__top:hover,
.aedlog-nav .aedlog-nav__top:focus {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0;
    border: 0;
    border-radius: 6px;
    padding: 8px 12px;
    background: transparent;
    font: 500 15px/24px 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
    color: #01263a;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s;
}

.aedlog-nav .aedlog-nav__top:hover,
.aedlog-nav .aedlog-nav__item.is-open > .aedlog-nav__top {
    background: #f1f5f9;
}

.aedlog-nav__chevron {
    width: 16px;
    height: 16px;
    color: #64748b;
    transition: transform 0.15s;
}

.aedlog-nav__item {
    position: relative;
}

.aedlog-nav__panel {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 50;
    padding-top: 8px;
}

.aedlog-nav__item.is-open > .aedlog-nav__panel {
    display: block;
}

@media (hover: hover) and (pointer: fine) {
    .aedlog-nav__item:hover > .aedlog-nav__panel {
        display: block;
    }

    .aedlog-nav__item:hover .aedlog-nav__chevron {
        transform: rotate(180deg);
    }
}

.aedlog-nav__item.is-open .aedlog-nav__chevron {
    transform: rotate(180deg);
}

.aedlog-nav__card {
    width: 320px;
    border-radius: 16px;
    background: #fff;
    padding: 8px;
    box-shadow: 0 0 0 1px rgb(15 23 42 / 0.1), 0 20px 25px -5px rgb(1 38 58 / 0.1), 0 8px 10px -6px rgb(1 38 58 / 0.1);
}

.aedlog-nav__card--wide {
    width: 832px;
}

.aedlog-nav__groups {
    display: grid;
    gap: 4px;
}

.aedlog-nav__groups--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.aedlog-nav__groups--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aedlog-nav__group {
    padding: 4px;
}

.aedlog-nav__group-label {
    margin: 0;
    padding: 8px 12px 4px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    color: #64748b;
}

.aedlog-nav__link {
    display: block;
    border-radius: 8px;
    padding: 8px 12px;
    text-decoration: none;
    transition: background-color 0.15s;
}

.aedlog-nav__link:hover {
    background: #f8fafc;
}

.aedlog-nav__link-label {
    display: block;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-nav__link-desc {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    line-height: 20px;
    color: #64748b;
}

.aedlog-nav__more {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    margin-top: 4px;
    border-radius: 12px;
    background: #f8fafc;
    padding: 12px 16px;
}

.aedlog-nav__more a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #023a51;
    text-decoration: none;
}

.aedlog-nav__more a:hover {
    color: #134d68;
}

.aedlog-nav__arrow {
    width: 16px;
    height: 16px;
    color: #1f9b50;
}

/* ---------- [aedlog_nav_mobile]: a native <details>, below 1120px ---------- */
.aedlog-mobile-menu {
    display: block;
}

@media (min-width: 1120px) {
    .aedlog-mobile-menu {
        display: none;
    }
}

.aedlog-mobile-menu > summary {
    list-style: none;
}

.aedlog-mobile-menu > summary::-webkit-details-marker {
    display: none;
}

.aedlog-mobile-menu__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0 -4px 0 4px;
    border-radius: 6px;
    color: #01263a;
    cursor: pointer;
}

.aedlog-mobile-menu__toggle:hover {
    background: #f1f5f9;
}

.aedlog-mobile-menu__toggle svg {
    width: 24px;
    height: 24px;
}

.aedlog-mobile-menu[open] .aedlog-mobile-menu__open,
.aedlog-mobile-menu:not([open]) .aedlog-mobile-menu__close {
    display: none;
}

.aedlog-mobile-menu__panel {
    position: fixed;
    top: calc(64px + var(--wp-admin--admin-bar--height, 0px));
    left: 0;
    right: 0;
    max-height: calc(100dvh - 64px - var(--wp-admin--admin-bar--height, 0px));
    overflow-y: auto;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.aedlog-mobile-menu__nav {
    max-width: 1280px;
    margin: 0 auto;
    padding: 16px;
}

@media (min-width: 640px) {
    .aedlog-mobile-menu__nav {
        padding: 16px 24px;
    }
}

.aedlog-mobile-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.aedlog-mobile-menu__section {
    padding: 12px 0;
    border-bottom: 1px solid #f1f5f9;
}

.aedlog-mobile-menu__label {
    margin: 0;
    padding: 0 8px 4px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    color: #64748b;
}

@media (min-width: 640px) {
    .aedlog-mobile-menu__links {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 16px;
    }
}

.aedlog-mobile-menu__links a,
.aedlog-mobile-menu__top {
    display: block;
    border-radius: 6px;
    padding: 8px;
    font-size: 15px;
    line-height: 24px;
    font-weight: 500;
    color: #01263a;
    text-decoration: none;
}

.aedlog-mobile-menu__top {
    font-size: 16px;
    font-weight: 600;
}

.aedlog-mobile-menu__links a:hover,
.aedlog-mobile-menu__top:hover {
    background: #f8fafc;
    color: #01263a;
}

.aedlog-mobile-menu__actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px 0 8px;
}

@media (min-width: 640px) {
    .aedlog-mobile-menu__actions {
        flex-direction: row;
        align-items: center;
    }
}

/* ---------- Footer (Theme Builder) and [aedlog_footer_links] ---------- */
.site-footer .e-paragraph-base a:not([class]) {
    font-weight: 500;
    color: #fff;
    text-decoration: none;
}

.site-footer .e-paragraph-base a:not([class]):hover {
    color: #80e0a5;
}

/* [aedlog_social] in an atomic paragraph with the `social-links` class (the
   link classes are stripped there, as with the breadcrumbs). On a light
   section the links look like any in-text link; in the footer they are light. */
.elementor .social-links a:not([class]) {
    font-weight: 500;
    color: #0a445e;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.elementor .social-links a:not([class]):hover {
    color: #01263a;
    text-decoration-color: #1f9b50;
}

.elementor .site-footer .social-links a:not([class]) {
    color: #cbd5e1;
    text-decoration-color: rgb(255 255 255 / 0.2);
}

.elementor .site-footer .social-links a:not([class]):hover {
    color: #fff;
    text-decoration-color: rgb(255 255 255 / 0.6);
}

.elementor .social-links span {
    display: none;
}

.aedlog-social__link,
.aedlog-social__link:hover {
    font-weight: 500;
    color: #cbd5e1;
    text-decoration: underline;
    text-decoration-color: rgb(255 255 255 / 0.2);
    text-underline-offset: 4px;
}

.aedlog-social__link:hover {
    color: #fff;
    text-decoration-color: rgb(255 255 255 / 0.6);
}

.aedlog-social__gap {
    display: inline-block;
    width: 20px;
}

.aedlog-footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 24px;
}

@media (min-width: 640px) {
    .aedlog-footer-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1025px) {
    .aedlog-footer-links {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.aedlog-footer-links__group + .aedlog-footer-links__group {
    margin-top: 40px;
}

.aedlog-footer-links__label {
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #fff;
}

.aedlog-footer-links ul {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.aedlog-footer-links li {
    font-size: 14px;
    line-height: 20px;
}

.aedlog-footer-links li + li {
    margin-top: 12px;
}

.aedlog-footer-links a {
    color: #cbd5e1;
    text-decoration: none;
    transition: color 0.15s;
}

.aedlog-footer-links a:hover {
    color: #fff;
}

/* ---------- [aedlog_breadcrumbs] ---------- */
/* Inside an atomic paragraph the shortcode's own classes are stripped (only
   bare a/span survive), so the Breadcrumbs component styles it through its
   paragraph's `crumbs` class: link, separator, link, …, current page. */
.elementor .crumbs > span {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
}

.elementor .crumbs a:not([class]) {
    font-weight: 400;
    color: #64748b;
    text-decoration: none;
    transition: color 0.15s;
}

.elementor .crumbs a:not([class]):hover {
    color: #023a51;
}

.elementor .crumbs > span > span {
    color: #cbd5e1;
}

.elementor .crumbs > span > span:last-child {
    font-weight: 500;
    color: #023a51;
}

/* The same trail anywhere else (a V3 Shortcode widget) keeps its classes. */
.aedlog-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    font-size: 14px;
    line-height: 20px;
}

.aedlog-crumbs__sep {
    color: #cbd5e1;
}

.aedlog-crumbs__link,
.aedlog-crumbs__link:visited {
    color: #64748b;
    text-decoration: none;
    transition: color 0.15s;
}

.aedlog-crumbs__link:hover {
    color: #023a51;
}

.aedlog-crumbs__current {
    font-weight: 500;
    color: #023a51;
}

/* ---------- [aedlog_faq] ---------- */
/* layout="open" (default): every answer shown, two columns on wide screens. */
.aedlog-faq--open {
    display: grid;
    gap: 40px 64px;
}

@media (min-width: 1025px) {
    .aedlog-faq--open {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.aedlog-faq--open .aedlog-faq__q {
    margin: 0;
    font-family: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
    font-size: 18px;
    line-height: 28px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-faq--open .aedlog-faq__a {
    margin: 8px 0 0;
    font-size: 16px;
    line-height: 28px;
    color: #475569;
}

/* layout="accordion": questions fold open. */
.aedlog-faq--accordion {
    border-top: 1px solid #e2e8f0;
}

.aedlog-faq--accordion .aedlog-faq__item {
    border-bottom: 1px solid #e2e8f0;
}

.aedlog-faq--accordion .aedlog-faq__q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 0;
    cursor: pointer;
    list-style: none;
}

.aedlog-faq--accordion .aedlog-faq__q::-webkit-details-marker {
    display: none;
}

.aedlog-faq--accordion .aedlog-faq__q::after {
    content: "";
    flex: none;
    width: 0.6rem;
    height: 0.6rem;
    border-right: 2px solid #0a445e;
    border-bottom: 2px solid #0a445e;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
}

.aedlog-faq--accordion .aedlog-faq__item[open] > .aedlog-faq__q::after {
    transform: rotate(-135deg);
}

.aedlog-faq--accordion .aedlog-faq__q h3 {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.5;
    font-weight: 600;
    color: #01263a;
}

.aedlog-faq--accordion .aedlog-faq__a {
    padding: 0 0 1.25rem;
    color: #475569;
    font-size: 1.0625rem;
    line-height: 1.7;
}

.aedlog-faq--accordion .aedlog-faq__a p {
    margin: 0;
}

.aedlog-faq__missing {
    padding: 0.5rem 0.75rem;
    background: #fef2f2;
    color: #991b1b;
}

/* ---------- Data tables ([aedlog_state_table], pricing, comparisons) ---------- */
.aedlog-table-wrap {
    overflow-x: auto;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 0 0 1px #e2e8f0;
    /* The caption is sized to this box (100cqi), not to the wider table. */
    container-type: inline-size;
}

.aedlog-table {
    width: 100%;
    min-width: 36rem;
    margin: 0;
    border-collapse: collapse;
    text-align: left;
    font-size: 15px;
    line-height: 24px;
    color: #334155;
}

/* On a phone a wide table scrolls sideways; the caption stays in view and
   wraps to the visible width instead of running off with the table. */
.aedlog-table caption {
    position: sticky;
    left: 0;
    box-sizing: border-box;
    max-width: 100cqi;
    padding: 16px 20px 4px;
    text-align: left;
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
}

/* Hello Elementor's reset.css gives every table cell a grey border on all
   four sides, stripes odd rows and shades rows on hover, with selectors as
   strong as `table tbody > tr:nth-child(odd) > td`. The wrap class makes
   these rules stronger, so cells get only the hairline between rows. */
.aedlog-table-wrap .aedlog-table th,
.aedlog-table-wrap .aedlog-table td {
    padding: 14px 20px;
    border: 0;
    border-bottom: 1px solid #e2e8f0;
    line-height: inherit;
    text-align: left;
    vertical-align: top;
}

.aedlog-table-wrap .aedlog-table tbody > tr > * {
    background-color: transparent;
}

.aedlog-table thead th {
    background: #f8fafc;
    font-size: 14px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-table tbody th {
    font-weight: 600;
    color: #01263a;
}

.aedlog-table-wrap .aedlog-table tbody tr:last-child > * {
    border-bottom: 0;
}

.aedlog-table__value {
    white-space: nowrap;
    font-weight: 600;
}

.aedlog-table__value--yes {
    color: #1a7a41;
}

.aedlog-table__value--encouraged {
    color: #134d68;
}

/* Price tables: right-aligned figures. Wide tables (equipment) wrap their text. */
.aedlog-table--prices {
    min-width: 0;
}

.aedlog-table-wrap .aedlog-table--prices td {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.aedlog-table-wrap .aedlog-table--prices thead th {
    white-space: nowrap;
}

.aedlog-table-wrap .aedlog-table--prices thead th:not(:first-child) {
    text-align: right;
}

/* Keep "101 – 150 AEDs" on one line in the tier table (add-on names still
   wrap); phones get tighter cells to fit. */
.aedlog-table--tiers tbody th {
    white-space: nowrap;
}

@media (max-width: 767px) {
    .aedlog-table-wrap .aedlog-table--prices th,
    .aedlog-table-wrap .aedlog-table--prices td {
        padding: 12px 14px;
    }
}

.aedlog-table--prices td a {
    color: #0a445e;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.aedlog-table th a,
.aedlog-table td a {
    color: #0a445e;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.aedlog-table th a:hover,
.aedlog-table td a:hover {
    color: #01263a;
    text-decoration-color: #1f9b50;
}

.aedlog-table--wide {
    min-width: 56rem;
    font-size: 14px;
    line-height: 22px;
}

/* Two shortcode widgets stacked in one slot (the tier selector above the price table). */
.elementor .e-con > .elementor-widget-shortcode + .elementor-widget-shortcode {
    margin-top: 24px;
}

/* ---------- Tier selector ([aedlog_tier_selector]) ---------- */
.aedlog-tier-selector {
    padding: 24px;
    border-radius: 16px;
    background: #f0f7fa;
    box-shadow: inset 0 0 0 1px #dcecf3;
}

.aedlog-tier-selector__label {
    display: block;
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    color: #01263a;
}

.aedlog-tier-selector__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 20px;
    margin-top: 10px;
}

html body .aedlog-tier-selector__input {
    width: 8rem;
    padding: 10px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-size: 18px;
    font-weight: 600;
    color: #01263a;
}

html body .aedlog-tier-selector__input:focus {
    outline: 2px solid #2cbc63;
    outline-offset: 2px;
}

.aedlog-tier-selector__output {
    font-size: 16px;
    line-height: 26px;
    color: #334155;
}

.aedlog-tier-selector__tier {
    font-weight: 600;
    color: #01263a;
}

.aedlog-tier-selector__price {
    font-size: 24px;
    font-weight: 700;
    color: #01263a;
}

.aedlog-tier-selector__monthly {
    color: #64748b;
}

/* ---------- State list ([aedlog_md_states]) ---------- */
.aedlog-state-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.aedlog-state-list li {
    padding: 12px 16px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 0 0 1px #e2e8f0;
    font-weight: 600;
    color: #01263a;
}

.aedlog-state-list a {
    color: #0a445e;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

/* ---------- .prose: long-form text (guides, posts, legal pages) ---------- */
.prose > :first-child {
    margin-top: 0;
}

/* The V3 Post Content widget in templates 149 and 150 carries Elementor's
   default kit font (Roboto) and text color (#7a7a7a); it takes the prose
   container's instead. */
.prose .elementor-widget-theme-post-content {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.prose h2 {
    margin: 48px 0 12px;
    scroll-margin-top: 96px;
    font-size: 24px;
    line-height: 32px;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: #01263a;
}

.prose h3 {
    margin: 32px 0 8px;
    scroll-margin-top: 96px;
    font-size: 20px;
    line-height: 28px;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: #01263a;
}

.prose h4 {
    margin: 24px 0 8px;
    font-size: 16px;
    font-weight: 600;
    color: #01263a;
}

.prose p,
.prose ul,
.prose ol {
    margin: 16px 0;
}

.prose ul,
.prose ol {
    padding-left: 20px;
}

.prose ul {
    list-style: disc;
}

.prose ol {
    list-style: decimal;
}

.prose li + li {
    margin-top: 8px;
}

.prose ul > li::marker {
    color: #1f9b50;
}

.prose ol > li::marker {
    font-weight: 600;
    color: #023a51;
}

.prose strong {
    font-weight: 600;
    color: #01263a;
}

.prose blockquote {
    margin: 20px 0;
    border-left: 4px solid #cbd5e1;
    padding-left: 16px;
    color: #475569;
}

.prose hr {
    margin: 40px 0;
    border: 0;
    border-top: 1px solid #e2e8f0;
}

.prose img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.prose code {
    border-radius: 4px;
    background: #f1f5f9;
    padding: 2px 6px;
    font-size: 0.85em;
    color: #01263a;
}

/* ---------- V3 Shortcode widgets inside atomic containers ---------- */
/* The header menus, footer links and FAQ sit in V3 Shortcode widgets placed
   inside atomic rows; drop Elementor's default widget spacing there. */
.elementor .e-con > .elementor-widget-shortcode {
    margin-block-end: 0;
}

.elementor .e-con > .elementor-widget-shortcode > .elementor-widget-container,
.elementor .e-con > .elementor-widget-shortcode .elementor-shortcode {
    height: 100%;
}

/* ---------- [aedlog_search_form] (joincpr.com's field style) ---------- */
.aedlog-search {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    max-width: 480px;
}

.aedlog-search__input {
    flex: 1 1 220px;
    min-width: 0;
    border: 0;
    border-radius: 8px;
    background: #fff;
    padding: 10px 14px;
    font: 400 15px/24px 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
    color: #01263a;
    box-shadow: inset 0 0 0 1px #cbd5e1, 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

.aedlog-search__input::placeholder {
    color: #94a3b8;
}

.aedlog-search__input:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px #1f9b50;
}

/* The main landmark (includes/landmarks.php) takes focus from the skip link. */
#content:focus {
    outline: none;
}

/* ---------- Long-form pages: [aedlog_article] (includes/articles.php) ----------
   Guides and comparisons, joincpr.com's guide layout: the short answer, key
   takeaways, an "On this page" box, H2 sections that open with the direct
   answer, the FAQ and the sources. They sit in an atomic column with the
   `prose` class, so headings, lists and links take the prose styles. */
.aedlog-article > :first-child {
    margin-top: 0;
}

.prose .aedlog-article__section {
    margin-top: 56px;
}

.prose .aedlog-article--sections > .aedlog-article__section:first-child,
.prose .aedlog-article--body > .aedlog-article__section:first-child {
    margin-top: 0;
}

.prose .aedlog-article__section > h2 {
    margin-top: 0;
    font-size: 30px;
    line-height: 36px;
}

@media (max-width: 767px) {
    .prose .aedlog-article__section > h2 {
        font-size: 24px;
        line-height: 32px;
    }
}

.prose .aedlog-article__lead {
    margin: 16px 0 0;
    font-size: 18px;
    line-height: 32px;
    color: #334155;
}

.prose .aedlog-article__lead + * {
    margin-top: 20px;
}

/* A dated note above the answer (comparisons: the disclosure). */
.prose .aedlog-article__note {
    margin: 0 0 24px;
    border-radius: 12px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
    padding: 14px 18px;
    font-size: 15px;
    line-height: 24px;
    color: #475569;
}

/* The short answer: a green-tinted box (joincpr's answer box). */
.aedlog-answer {
    border-radius: 16px;
    background: rgb(239 252 244 / 0.7);
    box-shadow: 0 0 0 1px #d8f7e3;
    padding: 24px 28px;
}

@media (max-width: 767px) {
    .aedlog-answer {
        padding: 20px;
    }
}

.prose .aedlog-answer__label,
.prose .aedlog-takeaways__label,
.aedlog-toc__label,
.aedlog-sources__label {
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    color: #64748b;
}

.prose .aedlog-answer__label {
    color: #186137;
}

.prose .aedlog-answer__text {
    margin: 8px 0 0;
    font-size: 18px;
    line-height: 32px;
    color: #01263a;
}

.prose .aedlog-takeaways {
    margin-top: 32px;
}

/* Check-mark list (key takeaways, checklists in text). */
.prose ul.aedlog-checks {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.prose ul.aedlog-checks > li {
    position: relative;
    padding-left: 32px;
}

.prose ul.aedlog-checks > li + li {
    margin-top: 12px;
}

.prose ul.aedlog-checks > li::before {
    content: '';
    position: absolute;
    top: 2px;
    left: 0;
    width: 24px;
    height: 24px;
    background: url('icons/check-circle.svg') center / 24px 24px no-repeat;
}

/* "On this page": sticky beside the text on wide screens. */
.aedlog-toc {
    border-radius: 16px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
    padding: 20px;
}

@media (min-width: 1025px) {
    .aedlog-toc {
        position: sticky;
        top: 96px;
    }
}

.aedlog-toc ol {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    font-size: 15px;
    line-height: 24px;
}

.aedlog-toc li + li {
    margin-top: 8px;
}

.aedlog-toc a {
    color: #0a445e;
    text-decoration: none;
}

.aedlog-toc a:hover {
    color: #01263a;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-underline-offset: 3px;
}

/* The FAQ inside the text column: one column, like the rest of the article. */
.aedlog-faq--open.aedlog-faq--single {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
    margin-top: 24px;
}

/* Sources: a numbered list in a grey box, with the date they were checked. */
.aedlog-sources {
    margin-top: 64px;
    border-radius: 16px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
    padding: 24px 28px;
    scroll-margin-top: 96px;
}

@media (max-width: 767px) {
    .aedlog-sources {
        padding: 20px;
    }
}

.prose .aedlog-sources__note {
    margin: 8px 0 0;
    font-size: 15px;
    line-height: 24px;
    color: #475569;
}

.prose .aedlog-sources ol {
    margin: 16px 0 0;
    padding-left: 20px;
    font-size: 15px;
    line-height: 24px;
    overflow-wrap: anywhere;
}

.prose .aedlog-sources ol > li::marker {
    font-weight: 400;
    color: #94a3b8;
}

.aedlog-sources__publisher {
    color: #475569;
}

/* Tables inside the text: spaced like a paragraph. "fit" tables (two or
   three short columns) shrink to a phone instead of scrolling. */
.prose .aedlog-table-wrap {
    margin: 24px 0;
}

.aedlog-table--fit {
    min-width: 0;
}

/* In an article column (about 770px on desktop) a wide table fits by wrapping
   its cells; below the article grid's breakpoint it scrolls in its wrapper. */
@media (min-width: 1025px) {
    .prose .aedlog-table--wide {
        min-width: 0;
    }
}

/* [aedlog_download]: a template's PDF button, joincpr's primary button. */
.aedlog-download {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin: 24px 0;
}

.elementor .aedlog-download a.aedlog-button,
.prose .aedlog-download a.aedlog-button {
    display: inline-block;
    border-radius: 8px;
    padding: 12px 22px;
    font-size: 16px;
    line-height: 24px;
    font-weight: 600;
    text-decoration: none;
    color: #01263a;
    background: #2cbc63;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

.elementor .aedlog-download a.aedlog-button:hover,
.prose .aedlog-download a.aedlog-button:hover {
    background: #4ccd81;
    color: #01263a;
}

.aedlog-download__note {
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
}

/* Template pages: the download card at the top of the article (text and
   button first, the PDF's first-page preview beside it; stacked on phones,
   text before the image). */
.prose .aedlog-template {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 240px;
    gap: 32px;
    align-items: start;
    border-radius: 16px;
    background: rgb(239 252 244 / 0.7);
    box-shadow: 0 0 0 1px #d8f7e3;
    padding: 28px;
}

.prose .aedlog-template__label {
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    color: #186137;
}

.prose .aedlog-template__intro {
    margin: 8px 0 0;
    font-size: 18px;
    line-height: 30px;
    color: #01263a;
}

.prose .aedlog-template .aedlog-download {
    margin-bottom: 0;
}

.prose a.aedlog-template__preview {
    display: block;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 1px 2px rgb(1 38 58 / 0.08), 0 12px 32px -12px rgb(1 38 58 / 0.25);
    overflow: hidden;
}

.prose .aedlog-template__image {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

@media (max-width: 767px) {
    .prose .aedlog-template {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
        padding: 20px;
    }

    .prose a.aedlog-template__preview {
        max-width: 260px;
    }
}

/* Template previews inside the article body (tags, second pages). */
.prose figure.aedlog-figure {
    margin: 24px 0;
}

.prose figure.aedlog-figure img {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgb(1 38 58 / 0.08), 0 12px 32px -12px rgb(1 38 58 / 0.25);
}

.prose figure.aedlog-figure figcaption {
    margin-top: 10px;
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
}

/* Blog home sections ([aedlog_blog], includes/blog.php) around the archive
   template's loop. The cards reuse the global card classes. */
.aedlog-blog h2 {
    margin: 0;
    font-size: 30px;
    line-height: 36px;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: #01263a;
}

.aedlog-blog__h2 {
    margin-bottom: 24px !important;
}

.aedlog-blog__section {
    margin-top: 80px;
}

.aedlog-blog__lead,
.aedlog-blog__empty {
    margin: 12px 0 0;
    font-size: 17px;
    line-height: 28px;
    color: #475569;
}

.aedlog-post-cards {
    margin-top: 32px;
}

.aedlog-post-card {
    display: flex !important;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
}

.aedlog-post-card__date {
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
}

.aedlog-post-card__title,
.aedlog-post-card__text {
    display: block;
    margin-top: 8px;
}

.aedlog-post-card__text {
    flex: 1 1 auto;
}

.aedlog-post-card__more {
    margin-top: 16px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #023a51;
}

@media (max-width: 767px) {
    .aedlog-blog h2 {
        font-size: 24px;
        line-height: 32px;
    }

    .aedlog-blog__section {
        margin-top: 56px;
    }
}

/* ---------- The AED law library (includes/aed-laws.php) ----------
   Value labels, the hub's 51-row table and its filters, the state pages'
   "at a glance" table, the Good Samaritan and schools tables. */
.aedlog-law-value {
    display: inline-block;
    padding: 1px 9px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    line-height: 20px;
    white-space: nowrap;
    color: #475569;
    background: #f1f5f9;
}

.aedlog-law-value--yes,
.aedlog-law-value--broad {
    color: #186137;
    background: #e3f8eb;
}

.aedlog-law-value--limited,
.aedlog-law-value--conditional {
    color: #7a4100;
    background: #fdf1dc;
}

.aedlog-law-value--encouraged {
    color: #134d68;
    background: #e4f1f7;
}

.aedlog-law-value--no {
    color: #64748b;
    background: transparent;
    box-shadow: inset 0 0 0 1px #e2e8f0;
}

/* Filters above the hub table (shown by the script). */
.aedlog-law-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px 20px;
    margin: 0 0 20px;
    padding: 20px 24px;
    border-radius: 16px;
    background: #f0f7fa;
    box-shadow: inset 0 0 0 1px #dcecf3;
}

.aedlog-law-filters[hidden] {
    display: none;
}

.aedlog-law-filters__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 12rem;
    min-width: 0;
}

.aedlog-law-filters__field label {
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: #01263a;
}

html body .aedlog-law-filters input,
html body .aedlog-law-filters select {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background-color: #fff;
    font: inherit;
    font-size: 16px;
    line-height: 24px;
    color: #01263a;
}

html body .aedlog-law-filters select:disabled {
    color: #94a3b8;
    background-color: #f8fafc;
}

html body .aedlog-law-filters input:focus,
html body .aedlog-law-filters select:focus {
    outline: 2px solid #2cbc63;
    outline-offset: 2px;
}

.aedlog-law-filters__count {
    flex: 0 0 auto;
    margin: 0;
    padding-bottom: 10px;
    font-size: 14px;
    line-height: 20px;
    color: #475569;
}

/* The hub table: compact cells, the state column pinned while it scrolls. */
.aedlog-table--law-hub {
    min-width: 0;
    font-size: 14px;
    line-height: 20px;
}

.aedlog-table-wrap .aedlog-table--law-hub th,
.aedlog-table-wrap .aedlog-table--law-hub td {
    padding: 10px 7px;
    vertical-align: middle;
}

/* Smaller labels in the 14-column hub table, so it fits a desktop container. */
.aedlog-table--law-hub .aedlog-law-value {
    padding: 1px 6px;
    font-size: 12px;
    line-height: 18px;
}

.aedlog-table-wrap .aedlog-table--law-hub thead th {
    vertical-align: bottom;
    font-size: 12.5px;
    line-height: 17px;
    min-width: 4.25rem;
}

.aedlog-table-wrap .aedlog-table--law-hub .aedlog-law-table__state {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 8rem;
    padding-left: 16px;
    background-color: #fff;
    box-shadow: inset -1px 0 0 #e2e8f0;
}

.aedlog-table-wrap .aedlog-table--law-hub thead .aedlog-law-table__state {
    background-color: #f8fafc;
}

/* The picked requirement column is tinted on wide screens. */
.aedlog-table-wrap .aedlog-table--law-hub tbody td.is-shown {
    background-color: #f5fbf7;
}

.aedlog-table-wrap .aedlog-table--law-hub thead th.is-shown {
    background-color: #e3f8eb;
}

/* Phones: with the script, one requirement column at a time ("All
   requirements" brings back the scrolling table). */
@media (max-width: 767px) {
    .is-enhanced:not([data-show="all"]) .aedlog-table--law-hub [data-col]:not(.is-shown) {
        display: none;
    }

    .is-enhanced:not([data-show="all"]) .aedlog-table--law-hub th.is-shown,
    .is-enhanced:not([data-show="all"]) .aedlog-table--law-hub td.is-shown {
        width: 50%;
        background-color: transparent;
    }

    .aedlog-law-filters {
        padding: 16px;
    }

    .aedlog-law-filters__count {
        padding-bottom: 0;
    }
}

/* The state page's 12-row table: the value column stays narrow. */
.aedlog-table--law-state {
    min-width: 0;
}

.aedlog-table-wrap .aedlog-table--law-state tbody th {
    width: 32%;
}

.aedlog-table-wrap .aedlog-table--law-state td:nth-child(2) {
    width: 1%;
    white-space: nowrap;
}

@media (max-width: 767px) {
    .aedlog-table-wrap .aedlog-table--law-state th,
    .aedlog-table-wrap .aedlog-table--law-state td {
        padding: 12px 14px;
    }
}

.aedlog-law-condition,
.aedlog-law-cite {
    color: #64748b;
}

.aedlog-law-cite {
    font-size: 14px;
}

.prose .aedlog-law-rating {
    padding: 14px 18px;
    border-radius: 12px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.prose .aedlog-law-note {
    font-size: 15px;
    line-height: 24px;
    color: #475569;
}

.prose ol.aedlog-law-statutes {
    overflow-wrap: anywhere;
}

/* The hub's statute list, folded. */
.aedlog-law-sources {
    margin-top: 24px;
    border-radius: 16px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
    padding: 16px 20px;
}

.aedlog-law-sources > summary {
    cursor: pointer;
    font-weight: 600;
    color: #01263a;
}

.aedlog-law-sources ul {
    margin: 12px 0 0;
    padding-left: 20px;
    font-size: 15px;
    line-height: 24px;
    overflow-wrap: anywhere;
}

.aedlog-law-sources li + li {
    margin-top: 6px;
}

/* Value and rating legends in the law pages' text. */
.prose ul.aedlog-law-legend {
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.prose ul.aedlog-law-legend > li + li {
    margin-top: 10px;
}

.prose ul.aedlog-law-legend .aedlog-law-value {
    margin-right: 6px;
}

/* Sources as their own H2 section (Desha's Law). */
.prose .aedlog-sources--section > h2 {
    margin-top: 0;
}

/* "stack" tables on phones (aedlog_table modifier): each row becomes a card,
   the row's name and a value label on one line, the other cells below it with
   their column names. Used by the state "at a glance", Good Samaritan and
   schools tables. */
@media (max-width: 767px) {
    .aedlog-table-wrap .aedlog-table--stack {
        display: block;
        min-width: 0;
    }

    .aedlog-table-wrap .aedlog-table--stack caption {
        display: block;
    }

    .aedlog-table-wrap .aedlog-table--stack thead {
        display: none;
    }

    .aedlog-table-wrap .aedlog-table--stack tbody {
        display: block;
    }

    .aedlog-table-wrap .aedlog-table--stack tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px 12px;
        align-items: start;
        padding: 14px 16px;
        border-bottom: 1px solid #e2e8f0;
    }

    .aedlog-table-wrap .aedlog-table--stack tbody tr:last-child {
        border-bottom: 0;
    }

    .aedlog-table-wrap .aedlog-table--stack tbody tr > * {
        display: block;
        width: auto;
        padding: 0;
        border: 0;
        white-space: normal;
    }

    /* The value label sits beside the row's name; any other cell spans the card. */
    .aedlog-table-wrap .aedlog-table--stack tbody td:not(:nth-child(2)),
    .aedlog-table-wrap .aedlog-table--stack tbody td:nth-child(2):not(:has(> .aedlog-law-value:only-child)) {
        grid-column: 1 / -1;
    }

    .aedlog-table-wrap .aedlog-table--stack tbody td:not(:nth-child(2))::before,
    .aedlog-table-wrap .aedlog-table--stack tbody td:nth-child(2):not(:has(> .aedlog-law-value:only-child))::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.025em;
        text-transform: uppercase;
        color: #64748b;
    }
}

/* The media kit (/media-kit/, [aedlog_media_kit]): logo previews, color
   swatches, founder cards and the screenshot grid. Two columns from 640px,
   one below. */
.prose .aedlog-kit-quote {
    margin: 24px 0;
    padding: 20px 24px;
    border-left: 4px solid #2cbc63;
    border-radius: 0 12px 12px 0;
    background: #f8fafc;
    color: #01263a;
    font-style: normal;
}

.prose .aedlog-kit-quote p {
    margin: 0;
}

.prose .aedlog-kit-facts th {
    width: 32%;
    white-space: normal;
}

.aedlog-kit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin: 24px 0;
}

.prose .aedlog-kit-card {
    margin: 0;
    padding: 16px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
}

.prose .aedlog-kit-card figcaption {
    margin-top: 12px;
    font-style: normal;
    font-size: 15px;
    line-height: 22px;
    color: #334155;
}

.prose .aedlog-kit-card figcaption strong {
    display: block;
    color: #01263a;
}

.aedlog-kit-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 7;
    padding: 24px;
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 0 0 0 1px #e2e8f0;
}

.aedlog-kit-logo--dark {
    background: #023a51;
    box-shadow: none;
}

.prose .aedlog-kit-logo img {
    width: 100%;
    max-width: 260px;
    height: auto;
    margin: 0;
}

.prose .aedlog-kit-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
}

/* Every preview gets the same 16:10 frame, so a phone screenshot sits
   centered instead of stretching its row. */
.prose .aedlog-kit-shot img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    background: #f8fafc;
    margin: 0;
    border-radius: 6px;
    box-shadow: 0 0 0 1px rgb(15 23 42 / 0.1);
}

.prose .aedlog-kit-swatches {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
}

.prose .aedlog-kit-swatch {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 0;
    font-size: 15px;
    line-height: 22px;
}

.aedlog-kit-swatch__chip {
    flex: none;
    width: 56px;
    height: 56px;
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px rgb(15 23 42 / 0.1);
}

.prose .aedlog-kit-swatch code {
    font-size: 13px;
    color: #475569;
}

.aedlog-kit-people {
    display: grid;
    gap: 20px;
    margin: 24px 0;
}

.prose .aedlog-kit-person {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
}

.prose .aedlog-kit-person__photo {
    width: 120px;
    height: 120px;
    margin: 0;
    border-radius: 9999px;
    object-fit: cover;
}

.prose .aedlog-kit-person h3 {
    margin: 0;
}

.prose .aedlog-kit-person p {
    margin: 8px 0 0;
}

.prose .aedlog-kit-person .aedlog-kit-person__role {
    margin-top: 2px;
    font-size: 14px;
    font-weight: 600;
    color: #1a7a41;
}

.prose .aedlog-kit-contact {
    padding-left: 0;
    list-style: none;
}

@media (max-width: 639px) {
    .aedlog-kit-grid,
    .prose .aedlog-kit-swatches {
        grid-template-columns: minmax(0, 1fr);
    }

    .prose .aedlog-kit-person {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Content batch (decision 62): AED model pages, the /aed-models/ hub and the
   new guides (includes/aed-models.php, content/guides/*). */
.prose .aedlog-muted {
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
}

/* App screenshots inside a model page are wider than template previews. */
.prose figure.aedlog-figure--wide img {
    max-width: 720px;
}

/* The hub's model list under each brand H3. */
.prose ul.aedlog-model-list > li + li {
    margin-top: 8px;
}

/* "Need replacements?" under a model's parts table. */
.prose .aedlog-model__shop {
    padding: 16px 20px;
    border-radius: 8px;
    background: #f0f7fa;
    border-left: 3px solid #2e7899;
}

/* Numbered steps in the how-to guide: a little more air between steps. */
.prose ol.aedlog-steps > li + li {
    margin-top: 10px;
}

/* The at-a-glance table's label column. */
.aedlog-table-wrap .aedlog-table--glance tbody th {
    width: 38%;
    font-weight: 600;
}

/* The demo calendar ([aedlog_calendly]) in the /demo/ hero: a white card the
   size of Calendly's scheduler, so nothing shifts when it loads. Before it
   loads (or without JavaScript) the card shows a link to the same calendar. */
.aedlog-calendly {
    position: relative;
    isolation: isolate;
    height: 700px;
    min-width: 320px;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 0 0 1px rgb(15 23 42 / 0.1), 0 20px 25px -5px rgb(1 38 58 / 0.1), 0 8px 10px -6px rgb(1 38 58 / 0.1);
}

.aedlog-calendly .calendly-inline-widget,
.aedlog-calendly iframe {
    width: 100%;
    height: 100%;
}

.aedlog-calendly__link {
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 24px;
    font-weight: 600;
    color: #1f9b50;
    text-align: center;
}

/* Calendly's loading dots (its widget.css, which we don't load, styles them):
   they sit behind the iframe, so they show until the scheduler paints. */
.aedlog-calendly .calendly-spinner {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    z-index: -1;
    transform: translateY(-50%);
    text-align: center;
}

.aedlog-calendly .calendly-spinner > div {
    display: inline-block;
    width: 14px;
    height: 14px;
    margin: 0 3px;
    border-radius: 50%;
    background: #2cbc63;
    animation: aedlog-calendly-dots 1.4s infinite ease-in-out both;
}

.aedlog-calendly .calendly-spinner .calendly-bounce1 {
    animation-delay: -0.32s;
}

.aedlog-calendly .calendly-spinner .calendly-bounce2 {
    animation-delay: -0.16s;
}

@keyframes aedlog-calendly-dots {
    0%, 80%, 100% { transform: scale(0.3); opacity: 0.4; }
    40% { transform: scale(1); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .aedlog-calendly .calendly-spinner > div {
        animation: none;
    }
}

/* ---------- The docs (/docs/, includes/docs.php, decision 74) ----------
   Laravel's docs layout in the site's brand: the sections down a sticky
   sidebar, the article, "On this page" on the widest screens. Phones and
   tablets fold the sections into one "Docs menu" above the article. */
.aedlog-docs {
    max-width: 1280px;
    margin: 0 auto;
    padding: 24px 16px 64px;
}

@media (min-width: 640px) {
    .aedlog-docs {
        padding: 32px 24px 80px;
    }
}

@media (min-width: 1025px) {
    .aedlog-docs {
        padding: 40px 32px 96px;
    }

    .aedlog-docs__layout {
        display: grid;
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 56px;
        align-items: start;
    }
}

@media (min-width: 1280px) {
    .aedlog-docs__layout {
        grid-template-columns: 240px minmax(0, 1fr) 200px;
        gap: 48px;
    }
}

/* Sidebar + "On this page": sticky under the 64px header. */
.aedlog-docs__sidebar,
.aedlog-docs__toc {
    display: none;
}

@media (min-width: 1025px) {
    /* The sidebar doesn't scroll as a whole: the search stays put (and its
       results panel can open over the article), the section list scrolls. */
    .aedlog-docs__sidebar {
        display: flex;
        flex-direction: column;
        position: sticky;
        top: calc(88px + var(--wp-admin--admin-bar--height, 0px));
        z-index: 20;
        max-height: calc(100dvh - 112px - var(--wp-admin--admin-bar--height, 0px));
    }

    .aedlog-docs__sidebar > .aedlog-docs-search {
        flex: none;
        margin-right: 8px;
    }

    .aedlog-docs__sidebar-nav {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 0 8px 24px 0;
        scrollbar-width: thin;
    }

    .aedlog-docs__menu {
        display: none;
    }
}

@media (min-width: 1280px) {
    .aedlog-docs__toc {
        display: block;
        position: sticky;
        top: calc(88px + var(--wp-admin--admin-bar--height, 0px));
    }

    .aedlog-docs__toc-inline {
        display: none;
    }
}

/* The article column. */
.aedlog-docs__article {
    max-width: 768px;
    min-width: 0;
}

.aedlog-docs__crumbs {
    margin-bottom: 12px;
}

.aedlog-docs .aedlog-docs__title {
    margin: 0;
    font-size: 30px;
    line-height: 36px;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: #01263a;
}

@media (min-width: 640px) {
    .aedlog-docs .aedlog-docs__title {
        font-size: 36px;
        line-height: 40px;
    }
}

.aedlog-docs__lead {
    margin: 12px 0 0;
    font-size: 18px;
    line-height: 28px;
    color: #475569;
}

.aedlog-docs__body {
    margin-top: 32px;
}

.aedlog-docs__body.prose h2:first-child {
    margin-top: 0;
}

.aedlog-docs__body.prose h2 {
    margin-top: 40px;
}

/* A heading's "#" link, shown on hover or focus. */
.aedlog-docs__anchor {
    margin-left: 8px;
    font-weight: 500;
    color: #94a3b8;
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.15s, color 0.15s;
}

.aedlog-docs__body h2:hover .aedlog-docs__anchor,
.aedlog-docs__anchor:focus-visible {
    opacity: 1;
}

.aedlog-docs__anchor:hover {
    color: #1f9b50;
}

/* "Tip:" and "Note:" callouts. */
.prose blockquote.aedlog-docs__callout {
    margin: 24px 0;
    border: 0;
    border-left: 4px solid #2cbc63;
    border-radius: 8px;
    background: #f0fdf4;
    padding: 14px 18px;
    color: #334155;
}

.prose blockquote.aedlog-docs__callout--Note {
    border-left-color: #0a445e;
    background: #f1f5f9;
}

.prose blockquote.aedlog-docs__callout p {
    margin: 0;
}

/* The phone/tablet menu and the inline "On this page". */
.aedlog-docs__menu,
.aedlog-docs__toc-inline {
    margin-bottom: 24px;
    border-radius: 12px;
    background: #f8fafc;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.aedlog-docs__toc-inline {
    margin: 24px 0 0;
}

.aedlog-docs__menu > summary,
.aedlog-docs__toc-inline > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-docs__menu > summary::-webkit-details-marker,
.aedlog-docs__toc-inline > summary::-webkit-details-marker {
    display: none;
}

.aedlog-docs__menu > summary::after,
.aedlog-docs__toc-inline > summary::after {
    content: '';
    width: 16px;
    height: 16px;
    margin-left: auto;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E") center / 16px no-repeat;
    transition: transform 0.15s;
}

.aedlog-docs__menu[open] > summary::after,
.aedlog-docs__toc-inline[open] > summary::after {
    transform: rotate(180deg);
}

.aedlog-docs__menu > summary span {
    font-weight: 400;
    color: #64748b;
}

.aedlog-docs__menu-body {
    padding: 4px 16px 16px;
}

.aedlog-docs__toc-inline ol {
    margin: 0;
    padding: 0 16px 14px;
    list-style: none;
    font-size: 15px;
    line-height: 24px;
}

.aedlog-docs__toc-inline li + li {
    margin-top: 6px;
}

.aedlog-docs__toc-inline a {
    color: #0a445e;
    text-decoration: none;
}

/* Section list. */
.aedlog-docs-nav__group + .aedlog-docs-nav__group {
    margin-top: 24px;
}

.aedlog-docs .aedlog-docs-nav__heading {
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-docs-nav ul {
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
    border-left: 1px solid #e2e8f0;
}

.aedlog-docs-nav__link,
.aedlog-docs-nav__link:visited {
    display: block;
    margin-left: -1px;
    border-left: 2px solid transparent;
    padding: 4px 0 4px 14px;
    font-size: 14px;
    line-height: 22px;
    color: #475569;
    text-decoration: none;
    transition: color 0.15s, border-color 0.15s;
}

.aedlog-docs-nav__link:hover {
    border-left-color: #94a3b8;
    color: #01263a;
}

.aedlog-docs-nav__link.is-current {
    border-left-color: #2cbc63;
    font-weight: 600;
    color: #01263a;
}

/* "On this page" (wide screens). */
.aedlog-docs .aedlog-docs__toc-heading {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 20px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #01263a;
}

.aedlog-docs__toc ol {
    margin: 0;
    padding: 0;
    list-style: none;
    border-left: 1px solid #e2e8f0;
}

.aedlog-docs__toc a {
    display: block;
    margin-left: -1px;
    border-left: 2px solid transparent;
    padding: 4px 0 4px 12px;
    font-size: 14px;
    line-height: 20px;
    color: #64748b;
    text-decoration: none;
    transition: color 0.15s, border-color 0.15s;
}

.aedlog-docs__toc a:hover {
    color: #01263a;
}

.aedlog-docs__toc a.is-active {
    border-left-color: #2cbc63;
    color: #01263a;
}

/* Search. */
.aedlog-docs-search {
    position: relative;
    margin-bottom: 24px;
}

.aedlog-docs-search .aedlog-docs-search__input {
    width: 100%;
    box-sizing: border-box;
    border: 0;
    border-radius: 8px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'/%3E%3C/svg%3E") 12px center / 16px no-repeat;
    padding: 8px 36px 8px 36px;
    font: 400 15px/24px 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
    color: #01263a;
    box-shadow: inset 0 0 0 1px #cbd5e1, 0 1px 2px 0 rgb(0 0 0 / 0.05);
    -webkit-appearance: none;
    appearance: none;
}

.aedlog-docs-search .aedlog-docs-search__input::placeholder {
    color: #94a3b8;
}

.aedlog-docs-search .aedlog-docs-search__input:focus {
    outline: none;
    box-shadow: inset 0 0 0 2px #1f9b50;
}

.aedlog-docs-search__key {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    border: 1px solid #e2e8f0;
    border-radius: 4px;
    padding: 0 6px;
    font: 500 12px/18px ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #64748b;
    pointer-events: none;
}

.aedlog-docs-search__input:focus ~ .aedlog-docs-search__key,
.aedlog-docs-search__input:not(:placeholder-shown) ~ .aedlog-docs-search__key {
    display: none;
}

@media (hover: none) {
    .aedlog-docs-search__key {
        display: none;
    }
}

.aedlog-docs-search__results {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
    width: max(100%, 340px);
    max-height: min(60vh, 480px);
    overflow-y: auto;
    box-sizing: border-box;
    border-radius: 12px;
    background: #fff;
    padding: 6px;
    box-shadow: 0 0 0 1px rgb(15 23 42 / 0.08), 0 10px 15px -3px rgb(1 38 58 / 0.12), 0 4px 6px -4px rgb(1 38 58 / 0.1);
}

.aedlog-docs-search__item,
.aedlog-docs-search__item:visited {
    display: block;
    border-radius: 8px;
    padding: 8px 12px;
    text-decoration: none;
}

.aedlog-docs-search__item.is-active,
.aedlog-docs-search__item:hover {
    background: #f1f5f9;
}

.aedlog-docs-search__title {
    display: block;
    font-size: 15px;
    line-height: 22px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-docs-search__section {
    display: block;
    font-size: 12px;
    line-height: 18px;
    font-weight: 600;
    color: #1f9b50;
}

.aedlog-docs-search__snippet {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    line-height: 20px;
    color: #64748b;
}

.aedlog-docs .aedlog-docs-search__empty {
    margin: 0;
    padding: 10px 12px;
    font-size: 14px;
    color: #64748b;
}

.aedlog-docs-search--large {
    max-width: 560px;
    margin: 28px 0 0;
}

.aedlog-docs-search.aedlog-docs-search--large .aedlog-docs-search__input {
    background-position: 16px center;
    background-size: 20px;
    padding: 12px 44px 12px 46px;
    font-size: 17px;
    line-height: 26px;
}

/* Previous / next. */
.aedlog-docs__pager {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 56px;
}

.aedlog-docs__pager-link,
.aedlog-docs__pager-link:visited {
    display: block;
    border-radius: 12px;
    padding: 14px 18px;
    font-size: 15px;
    line-height: 22px;
    font-weight: 600;
    color: #01263a;
    text-decoration: none;
    box-shadow: 0 0 0 1px #e2e8f0;
    transition: box-shadow 0.15s;
}

.aedlog-docs__pager-link:hover {
    box-shadow: 0 0 0 1px #2cbc63;
}

.aedlog-docs__pager-link span {
    display: block;
    font-size: 13px;
    font-weight: 400;
    color: #64748b;
}

.aedlog-docs__pager-link--next {
    text-align: right;
}

/* "Can't find what you need?" */
.aedlog-docs__help {
    margin-top: 40px;
    border-radius: 16px;
    background: #f8fafc;
    padding: 18px 22px;
    font-size: 15px;
    line-height: 24px;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.aedlog-docs__help p {
    margin: 0;
}

.aedlog-docs__help a {
    font-weight: 500;
    color: #0a445e;
}

/* The docs home. */
.aedlog-docs__hero {
    max-width: 720px;
}

.aedlog-docs .aedlog-docs__eyebrow {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #1f9b50;
}

@media (min-width: 640px) {
    .aedlog-docs__home .aedlog-docs__title {
        font-size: 48px;
        line-height: 52px;
    }
}

.aedlog-docs__cards {
    display: grid;
    gap: 20px;
    margin-top: 48px;
}

@media (min-width: 640px) {
    .aedlog-docs__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1025px) {
    .aedlog-docs__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
    }
}

.aedlog-docs__card {
    border-radius: 16px;
    background: #fff;
    padding: 24px;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.aedlog-docs__card-head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.aedlog-docs__icon {
    box-sizing: content-box;
    width: 20px;
    height: 20px;
    border-radius: 10px;
    background: #ecfdf3;
    padding: 10px;
}

.aedlog-docs .aedlog-docs__card h2 {
    margin: 0;
    font-size: 18px;
    line-height: 26px;
    font-weight: 600;
    color: #01263a;
}

.aedlog-docs .aedlog-docs__card p {
    margin: 12px 0 0;
    font-size: 15px;
    line-height: 24px;
    color: #475569;
}

.aedlog-docs__card ul {
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
    font-size: 15px;
    line-height: 22px;
}

.aedlog-docs__card li + li {
    margin-top: 8px;
}

.aedlog-docs__card a {
    font-weight: 500;
    color: #0a445e;
    text-decoration: none;
}

.aedlog-docs__card a:hover {
    color: #01263a;
    text-decoration: underline;
    text-decoration-color: #2cbc63;
    text-underline-offset: 3px;
}

.aedlog-docs__home .aedlog-docs__help {
    max-width: 720px;
    margin-top: 48px;
}

/* ------------------------------------------------------------------ /login/
   Choose V1 or V2 (includes/login-choice.php, decision 77). Drawn outside
   Elementor, so it carries its own button styles (the site's .btn classes
   only apply inside .elementor). */
.aedlog-login {
    background: radial-gradient(60rem 28rem at 85% -10%, rgba(44, 188, 99, 0.12), transparent 70%), #fff;
    padding: 40px 16px 72px;
}

@media (min-width: 640px) {
    .aedlog-login {
        padding: 64px 24px 96px;
    }
}

.aedlog-login__inner {
    max-width: 880px;
    margin: 0 auto;
}

.aedlog-login .aedlog-login__eyebrow {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    color: #1f9b50;
}

.aedlog-login .aedlog-login__title {
    margin: 0;
    font-size: 36px;
    line-height: 40px;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: #01263a;
}

@media (min-width: 640px) {
    .aedlog-login .aedlog-login__title {
        font-size: 48px;
        line-height: 52px;
    }
}

.aedlog-login .aedlog-login__lead {
    max-width: 640px;
    margin: 20px 0 0;
    font-size: 18px;
    line-height: 30px;
    color: #475569;
}

.aedlog-login__cards {
    display: grid;
    gap: 20px;
    margin-top: 40px;
}

@media (min-width: 640px) {
    .aedlog-login__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }
}

.aedlog-login__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border-radius: 16px;
    background: #fff;
    padding: 28px;
    box-shadow: 0 0 0 1px #e2e8f0, 0 1px 2px rgba(0, 0, 0, 0.04);
}

.aedlog-login__card--v2 {
    box-shadow: 0 0 0 2px #2cbc63, 0 8px 24px rgba(21, 79, 47, 0.08);
}

.aedlog-login .aedlog-login__badge {
    margin: 0;
    border-radius: 999px;
    background: #ecfdf3;
    padding: 2px 10px;
    font-size: 12px;
    line-height: 20px;
    font-weight: 600;
    color: #186137;
}

.aedlog-login .aedlog-login__card--v1 .aedlog-login__badge {
    background: #f1f5f9;
    color: #334155;
}

.aedlog-login .aedlog-login__card h2 {
    margin: 16px 0 0;
    font-size: 24px;
    line-height: 32px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: #01263a;
}

.aedlog-login .aedlog-login__host {
    margin: 4px 0 0;
    font-size: 15px;
    line-height: 22px;
    font-weight: 500;
    color: #0a445e;
}

.aedlog-login .aedlog-login__text {
    flex: 1;
    margin: 12px 0 24px;
    font-size: 16px;
    line-height: 26px;
    color: #475569;
}

.aedlog-login .aedlog-login__btn {
    display: inline-block;
    border-radius: 8px;
    padding: 14px 24px;
    font-size: 16px;
    line-height: 20px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

@media (max-width: 639px) {
    .aedlog-login .aedlog-login__btn {
        width: 100%;
    }
}

.aedlog-login .aedlog-login__btn--primary {
    background: #2cbc63;
    color: #01263a;
    box-shadow: 0 1px 2px rgba(21, 79, 47, 0.1);
}

.aedlog-login .aedlog-login__btn--primary:hover {
    background: #4ccf7e;
    color: #01263a;
}

.aedlog-login .aedlog-login__btn--secondary {
    background: #fff;
    color: #023a51;
    box-shadow: inset 0 0 0 1px #cbd5e1, 0 1px 2px rgba(0, 0, 0, 0.05);
}

.aedlog-login .aedlog-login__btn--secondary:hover {
    background: #f8fafc;
    color: #01263a;
}

.aedlog-login .aedlog-login__btn:focus-visible {
    outline: 2px solid #01263a;
    outline-offset: 2px;
}

.aedlog-login__help {
    margin-top: 32px;
    border-radius: 16px;
    background: #f8fafc;
    padding: 18px 22px;
    font-size: 15px;
    line-height: 24px;
    color: #334155;
    box-shadow: 0 0 0 1px #e2e8f0;
}

.aedlog-login__help p {
    margin: 0;
}

.aedlog-login__help a,
.aedlog-login .aedlog-login__new a {
    font-weight: 500;
    color: #0a445e;
}

.aedlog-login .aedlog-login__new {
    margin: 20px 0 0;
    font-size: 15px;
    line-height: 24px;
    color: #475569;
}

.aedlog-login__help a[href^="tel:"] {
    white-space: nowrap;
}
