/**
 * Theme Name: Twenty Twenty-Five Child
 * Template:   twentytwentyfive
 */

/* ==========================================================================
   1. GLOBAL & TYPOGRAPHIC STYLES
   ========================================================================== */

html {
    scrollbar-gutter: stable;
}

body {
    font-feature-settings: "liga" 1, "dlig" 1, "onum" 0;
}

strong, b {
    font-weight: bold;
}

/* Prevent sub and sup from disrupting line spacing */
sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* ==========================================================================
   2. SITE NAVIGATION & HEADINGS
   ========================================================================== */

.wp-block-navigation-item__label,
.wp-block-site-title a {
    font-family: "Concourse 3", "Helvetica Neue", Helvetica, sans-serif;
    font-size: 1.1em;
}

/* ==========================================================================
   3. CONTACT FORM 7
   ========================================================================== */

/* Layout & Sizing */
.wpcf7-form-control {
    width: 100%;
    box-sizing: border-box;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea {
    font-size: 18px;
    padding: 15px;
    height: auto;
    border: 1px solid var(--wp--preset--color--accent-6) !important;
    border-radius: 4px;
}

/* Specific Field Adjustments */
.wpcf7 textarea {
    height: 200px;
}

.wpcf7-submit {
    width: auto !important;
    padding: 10px 30px;
    font-size: 18px;
    border-radius: 9999px;
    border: 1px solid black;
    color: white;
    background-color: black;
    font-family: "Concourse 3", "Helvetica Neue", Helvetica, sans-serif;
    height: 3em;
}

/* ==========================================================================
   4. QUERY PAGINATION
   ========================================================================== */

.wp-block-query-pagination {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    width: 100%;
    align-items: center;
    gap: 20px;
}

/* Pagination Placement & Logic */
.wp-block-query-pagination-previous { 
    grid-column: 1; 
    justify-self: start; 
}

.wp-block-query-pagination-numbers { 
    grid-column: 2; 
    justify-self: center; 
    display: flex; 
    gap: 0.3em; 
    margin: 0 !important; 
}

.wp-block-query-pagination-next { 
    grid-column: 3; 
    justify-self: end; 
}

/* Commas between numbers */
.wp-block-query-pagination-numbers *:not(:last-child)::after {
    content: ",";
    margin-right: 2px;
}

/* Icons: Shared Settings */
.wp-block-query-pagination-previous::before,
.wp-block-query-pagination-next::after,
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before,
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    vertical-align: middle;
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Hide Text Labels */
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
    font-size: 0 !important;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

/* Previous icon (Lucide circle arrow left) */
.wp-block-query-pagination-previous::before,
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 8-4 4 4 4'/%3E%3Cpath d='M16 12H8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 8-4 4 4 4'/%3E%3Cpath d='M16 12H8'/%3E%3C/svg%3E");
}

/* Next icon (Lucide circle arrow right) */
.wp-block-query-pagination-next::after,
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 16 4-4-4-4'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m12 16 4-4-4-4'/%3E%3Cpath d='M8 12h8'/%3E%3C/svg%3E");
}

/* Ghost state styling & positioning for missing buttons */
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before,
.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
    color: #bbbbbb;
    opacity: 0.5;
}

.wp-block-query-pagination:not(:has(.wp-block-query-pagination-previous))::before {
    grid-column: 1;
    justify-self: start;
}

.wp-block-query-pagination:not(:has(.wp-block-query-pagination-next))::after {
    grid-column: 3;
    justify-self: end;
}

/* ==========================================================================
   5. RESPONSIVE NAVIGATION & INTERACTION
   ========================================================================= */

/* Hide theme's default icons */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
    display: none !important;
}

/* New Icon Settings (Lucide) */
.wp-block-navigation__responsive-container-open::before,
.wp-block-navigation__responsive-container-close::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-color: currentColor;
    vertical-align: middle;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

/* Open Icon (Square Menu) */
.wp-block-navigation__responsive-container-open::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='M7 8h10'/%3E%3Cpath d='M7 12h10'/%3E%3Cpath d='M7 16h10'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='M7 8h10'/%3E%3Cpath d='M7 12h10'/%3E%3Cpath d='M7 16h10'/%3E%3C/svg%3E");
}

/* Close Icon (Square X) */
.wp-block-navigation__responsive-container-close::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='m9 9 6 6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='2'/%3E%3Cpath d='m15 9-6 6'/%3E%3Cpath d='m9 9 6 6'/%3E%3C/svg%3E");
}

/* Remove tap highlights and focus styles */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close,
.wp-block-navigation-item__content,
.wp-block-navigation-item a {
    -webkit-tap-highlight-color: transparent !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Best Practice: Accessibility Focus Only */
:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

/* ==========================================================================
   6. MEDIA QUERIES
   ========================================================================= */

@media (max-width: 700px) {
    /* Show hamburger icon earlier */
    .wp-block-navigation__responsive-container-open:not(.always-show) {
        display: flex !important;
    }

    /* Hide standard horizontal list */
    .wp-block-navigation__responsive-container:not(.always-show):not(.is-menu-open) {
        display: none !important;
    }

    /* Fixed position when menu is open */
    .wp-block-navigation__responsive-container.is-menu-open {
        display: flex !important;
        position: fixed;
    }
}