.aj-block {
    box-sizing: border-box;
}

.aj-container {
    width: min(100%, 1100px);
    margin-inline: auto;
    padding: 1.5rem;
}

.aj-container--flex {
    display: flex;
}

.aj-container--grid {
    display: grid;
}

.aj-container--children-equal > * {
    flex: 1 1 0;
}

.aj-container--children-auto > * {
    flex: 0 1 auto;
}

.aj-container--width-full {
    width: 100%;
    max-width: none !important;
}

.aj-container--type-section {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.aj-container--type-tile {
    padding: 1.25rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.aj-container--type-header,
.aj-container--type-footer {
    text-align: center;
}

.aj-container-layout-chooser {
    display: grid;
    gap: 1.5rem;
    width: 100%;
    min-height: 260px;
    padding: 2rem;
    border: 1px dashed var(--gray-500, #6b7280);
    text-align: center;
}

.aj-container-layout-chooser__intro {
    display: grid;
    gap: 0.35rem;
    place-items: center;
}

.aj-container-layout-chooser__intro .dashicons {
    color: var(--primary, #2563eb);
    font-size: 2rem;
    width: 2rem;
    height: 2rem;
}

.aj-container-layout-chooser__intro strong {
    color: var(--gray-900, #111827);
    font-size: 1.75rem;
    line-height: 1.15;
}

.aj-container-layout-chooser__intro p {
    margin: 0;
    color: var(--gray-600, #4b5563);
}

.aj-container-layout-chooser__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 1rem;
    max-width: 760px;
    margin-inline: auto;
}

.aj-container-layout-choice {
    display: grid !important;
    gap: 0.5rem;
    height: auto !important;
    padding: 0.75rem !important;
    color: var(--gray-700, #374151) !important;
}

.aj-container-layout-preview {
    display: grid;
    gap: 0.25rem;
    width: 100%;
    min-height: 48px;
}

.aj-container-layout-preview i {
    display: block;
    min-height: 28px;
    border-radius: 3px;
    background: var(--gray-300, #d1d5db);
}

.aj-container-layout-preview--one {
    grid-template-columns: 1fr;
}

.aj-container-layout-preview--two,
.aj-container-layout-preview--left-wide,
.aj-container-layout-preview--right-wide {
    grid-template-columns: 1fr 1fr;
}

.aj-container-layout-preview--left-wide {
    grid-template-columns: 1.6fr 0.8fr;
}

.aj-container-layout-preview--right-wide {
    grid-template-columns: 0.8fr 1.6fr;
}

.aj-container-layout-preview--three {
    grid-template-columns: repeat(3, 1fr);
}

.aj-container-layout-preview--four {
    grid-template-columns: repeat(4, 1fr);
}

.aj-container-layout-preview--grid-2x2 {
    grid-template-columns: repeat(2, 1fr);
}

.aj-container-layout-preview--section-two,
.aj-container-layout-preview--section-three {
    grid-template-columns: repeat(3, 1fr);
}

.aj-container-layout-preview--section-two i:first-child,
.aj-container-layout-preview--section-three i:first-child {
    grid-column: 1 / -1;
    min-height: 18px;
}

.aj-container-layout-preview--section-two i:nth-child(4),
.aj-container-layout-preview--section-three i:nth-child(4) {
    grid-column: 1 / -1;
    min-height: 18px;
}

.aj-container-layout-preview--one i:nth-child(n+2),
.aj-container-layout-preview--two i:nth-child(n+3),
.aj-container-layout-preview--three i:nth-child(n+4),
.aj-container-layout-preview--left-wide i:nth-child(n+3),
.aj-container-layout-preview--right-wide i:nth-child(n+3),
.aj-container-layout-preview--section-two i:nth-child(4) {
    display: none;
}

.aj-div {
    padding: 1rem;
}

.aj-flexbox {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.aj-flexbox--column {
    flex-direction: column;
}

.aj-flexbox--row-reverse {
    flex-direction: row-reverse;
}

.aj-flexbox--column-reverse {
    flex-direction: column-reverse;
}

.aj-flexbox--nowrap {
    flex-wrap: nowrap;
}

.aj-grid,
.aj-posts,
.aj-gallery {
    display: grid;
    grid-template-columns: repeat(var(--aj-columns, auto-fit), minmax(220px, 1fr));
    gap: 1.25rem;
}

.aj-card,
.aj-image-box,
.aj-icon-box,
.aj-post-card,
.aj-login-placeholder,
.aj-info-box,
.aj-call-to-action,
.aj-modal-placeholder,
.aj-slider-placeholder,
.aj-lottie-placeholder,
.aj-team,
.aj-testimonials,
.aj-review,
.aj-price-list,
.aj-inline-notice {
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.aj-card,
.aj-image-box,
.aj-icon-box,
.aj-post-card__body,
.aj-login-placeholder,
.aj-info-box,
.aj-call-to-action,
.aj-modal-placeholder,
.aj-slider-placeholder,
.aj-lottie-placeholder,
.aj-team,
.aj-testimonials,
.aj-review,
.aj-price-list,
.aj-inline-notice {
    padding: 1.25rem;
}

.aj-heading {
    color: var(--gray-900, #111827);
    line-height: 1.12;
}

.aj-text {
    color: var(--gray-700, #374151);
}

.aj-image img,
.aj-post-card__image img,
.aj-image-box img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
}

.aj-button,
.aj-search button,
.aj-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.75rem 1.15rem;
    border: 0;
    border-radius: 8px;
    background: var(--primary, #2563eb);
    color: #fff;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.aj-button:hover,
.aj-search button:hover,
.aj-submit:hover {
    background: var(--secondary, #7c3aed);
    color: #fff;
}

.aj-divider {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 1.5rem 0;
    color: var(--gray-500, #6b7280);
    font-weight: 700;
}

.aj-separator-block {
    height: 1px;
    min-height: 1px;
    background: var(--gray-200, #e5e7eb);
}

.aj-divider::before,
.aj-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--gray-200, #e5e7eb);
}

.aj-spacer {
    min-height: 8px;
}

.aj-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--primary, #2563eb) 12%, white);
    color: var(--primary, #2563eb);
    font-size: 1.6rem;
    font-weight: 900;
}

.aj-svg svg {
    display: block;
    width: 5rem;
    max-width: 100%;
    height: auto;
    fill: var(--primary, #2563eb);
}

.aj-embed {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    background: var(--gray-100, #f3f4f6);
}

.aj-embed iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.aj-form {
    display: grid;
    gap: 0.85rem;
    max-width: 720px;
}

.aj-label {
    display: block;
    color: var(--gray-800, #1f2937);
    font-weight: 800;
}

.aj-field,
.aj-search input {
    width: 100%;
    min-height: 44px;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--gray-300, #d1d5db);
    border-radius: 8px;
    background: #fff;
    color: var(--gray-900, #111827);
}

textarea.aj-field {
    min-height: 140px;
}

input[type="checkbox"].aj-field {
    width: auto;
    min-height: 0;
}

.aj-search {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.aj-search--stacked {
    align-items: stretch;
    flex-direction: column;
}

.aj-search--button-left button {
    order: -1;
}

.aj-tabs,
.aj-accordion,
.aj-toc {
    padding: 1.25rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: var(--gray-50, #f9fafb);
}

.aj-toc ol {
    margin: 0.75rem 0 0;
    padding-left: 1.25rem;
}

.aj-icon-list {
    display: grid;
    gap: var(--aj-list-item-gap, 10px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.aj-icon-list--inline {
    display: flex;
    flex-wrap: wrap;
}

.aj-icon-list--grid {
    grid-template-columns: repeat(var(--aj-list-columns, 2), minmax(0, 1fr));
}

.aj-icon-list-item {
    display: flex;
    align-items: center;
    gap: var(--aj-list-icon-gap, 12px);
}

.aj-icon-list-item__marker {
    display: inline-flex;
    flex: 0 0 var(--aj-list-icon-size, 24px);
    align-items: center;
    justify-content: center;
    width: var(--aj-list-icon-size, 24px);
    height: var(--aj-list-icon-size, 24px);
    border-radius: 999px;
    background: var(--aj-list-icon-background, transparent);
    color: var(--aj-list-icon-color, currentColor);
    font-weight: 800;
    line-height: 1;
}

.aj-icon-list-item__marker::before {
    content: attr(data-icon);
}

.aj-icon-list[data-icon-type="icon"] .aj-icon-list-item__marker[data-icon-type="inherit"]::before {
    content: attr(data-parent-icon);
}

.aj-icon-list[data-icon-type="none"] .aj-icon-list-item__marker[data-icon-type="inherit"],
.aj-icon-list-item__marker[data-icon-type="none"] {
    display: none;
}

.aj-icon-list[data-icon-type="image"] .aj-icon-list-item__marker[data-icon-type="inherit"],
.aj-icon-list-item__marker[data-icon-type="image"] {
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.aj-icon-list[data-icon-type="image"] .aj-icon-list-item__marker[data-icon-type="inherit"]::before,
.aj-icon-list-item__marker[data-icon-type="image"]::before {
    content: "";
}

.aj-icon-list-item__content {
    color: inherit;
    text-decoration: none;
}

.aj-counter {
    display: grid;
    gap: 0.35rem;
    text-align: center;
}

.aj-counter strong,
.aj-countdown strong {
    color: var(--primary, #2563eb);
    font-size: clamp(2.25rem, 6vw, 4rem);
    line-height: 1;
}

.aj-counter span,
.aj-countdown span {
    color: var(--gray-600, #4b5563);
    font-weight: 800;
}

.aj-countdown,
.aj-stars {
    display: grid;
    gap: 0.35rem;
    text-align: center;
}

.aj-stars {
    color: var(--accent, #f59e0b);
    font-size: 1.6rem;
    font-weight: 900;
    letter-spacing: 0;
}

.aj-stars span {
    color: var(--gray-600, #4b5563);
    font-size: 0.95rem;
}

.aj-progress {
    display: grid;
    gap: 0.5rem;
}

.aj-progress > span {
    font-weight: 800;
}

.aj-progress__track {
    overflow: hidden;
    height: 12px;
    border-radius: 999px;
    background: var(--gray-200, #e5e7eb);
}

.aj-progress__track i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--primary, #2563eb), var(--secondary, #7c3aed));
}

.aj-nav-menu ul {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.aj-nav-menu--vertical ul {
    align-items: flex-start;
    flex-direction: column;
}

.aj-nav-menu .menu-item-has-children {
    position: relative;
}

.aj-nav-menu .sub-menu {
    display: none;
    position: absolute;
    z-index: 20;
    top: 100%;
    left: 0;
    min-width: 220px;
    padding: 0.75rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 35px rgba(15, 23, 42, 0.16);
}

.aj-nav-menu--vertical .sub-menu {
    position: static;
    box-shadow: none;
}

.aj-nav-menu--hover .menu-item-has-children:hover > .sub-menu,
.aj-nav-menu--hover .menu-item-has-children:focus-within > .sub-menu {
    display: flex;
}

.aj-nav-menu a,
.aj-post-card a,
.aj-toc a {
    color: var(--primary, #2563eb);
    text-decoration: none;
}

.aj-post-card h3 {
    margin: 0 0 0.65rem;
}

.aj-posts--carousel {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding-bottom: 0.5rem;
}

.aj-posts--carousel .aj-post-card {
    flex: 0 0 min(320px, 85vw);
    scroll-snap-align: start;
}

.aj-posts--timeline {
    display: grid;
    gap: 1rem;
}

.aj-posts--timeline .aj-post-card {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.aj-posts--timeline time {
    color: var(--primary, #2563eb);
    font-size: 0.85rem;
    font-weight: 800;
}

.aj-taxonomy-list ul,
.aj-social-share .wp-block-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.aj-taxonomy-list--list ul {
    display: grid;
    gap: 0.45rem;
}

.aj-taxonomy-list--inline a {
    border: 0;
    border-radius: 0;
    padding: 0;
}

.aj-taxonomy-list a {
    display: inline-flex;
    padding: 0.45rem 0.75rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 999px;
    color: var(--primary, #2563eb);
    text-decoration: none;
}

.aj-blockquote {
    margin: 0;
    padding: 1rem 1.25rem;
    border-left: 4px solid var(--primary, #2563eb);
    color: var(--gray-700, #374151);
    background: var(--gray-50, #f9fafb);
}

.aj-timeline,
.aj-faq,
.aj-how-to {
    display: grid;
    gap: 1rem;
}

.aj-media-left,
.aj-media-right,
.aj-cta--inline {
    display: grid;
    align-items: center;
    gap: 1rem;
}

.aj-media-left {
    grid-template-columns: minmax(120px, 0.8fr) minmax(0, 1.2fr);
}

.aj-media-right {
    grid-template-columns: minmax(0, 1.2fr) minmax(120px, 0.8fr);
}

.aj-cta--inline {
    grid-template-columns: minmax(0, 1fr) auto;
}

.aj-buttons--vertical .wp-block-buttons {
    align-items: flex-start;
    flex-direction: column;
}

.aj-icon-list--inline ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
}

.aj-how-to--cards ol,
.aj-how-to--cards ul {
    display: grid;
    gap: 0.75rem;
    padding-left: 0;
    list-style: none;
}

.aj-how-to--cards li {
    padding: 1rem;
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.aj-team--image-circle img {
    border-radius: 999px;
}

.aj-team--image-square img {
    border-radius: 0;
}

.aj-testimonials--grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
}

.aj-faq--grid {
    grid-template-columns: repeat(var(--aj-faq-columns, 2), minmax(0, 1fr));
}

.aj-faq details {
    border: 1px solid var(--gray-200, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.aj-faq summary {
    position: relative;
    padding: 1rem 1.15rem;
    color: var(--aj-faq-question-color, var(--gray-900, #111827));
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.aj-faq summary::-webkit-details-marker {
    display: none;
}

.aj-faq details[open] summary {
    color: var(--aj-faq-active-color, var(--primary, #2563eb));
}

.aj-faq details > *:not(summary) {
    padding: 0 1.15rem 1rem;
    color: var(--aj-faq-answer-color, var(--gray-700, #374151));
}

.aj-faq--separator details:not(:last-child),
.aj-faq--grid.aj-faq--separator details {
    border-bottom-color: var(--aj-faq-separator-color, var(--gray-200, #e5e7eb));
}

.aj-faq summary::before {
    content: attr(data-aj-icon);
}

.aj-faq details[open] summary::before {
    content: attr(data-aj-active-icon);
}

.aj-faq--icon-left summary {
    padding-left: 2.75rem;
}

.aj-faq--icon-left summary::before {
    left: 1rem;
}

.aj-faq--icon-right summary {
    padding-right: 2.75rem;
}

.aj-faq--icon-right summary::before {
    right: 1rem;
}

.aj-faq summary::before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    color: currentColor;
    font-weight: 900;
}

.aj-animate-fade-in {
    animation: ajFadeIn 500ms ease both;
}

.aj-animate-slide-up {
    animation: ajSlideUp 500ms ease both;
}

.aj-animate-zoom-in {
    animation: ajZoomIn 420ms ease both;
}

@keyframes ajFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes ajSlideUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes ajZoomIn {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

@media (max-width: 640px) {
    .aj-search {
        align-items: stretch;
        flex-direction: column;
    }

    .aj-media-left,
    .aj-media-right,
    .aj-cta--inline {
        grid-template-columns: 1fr;
    }
}
