/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled;
 * in most instances, the `style.min.css` file will be served. It is not recommended that you
 * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style
 * overrides via "Additional CSS" in the Site Editor.
 */

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
    text-decoration-thickness: 1px !important;
    text-underline-offset: 0.1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
    outline-width: 2px;
    outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
    margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
    outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption {
    text-wrap: pretty;
}

p, li {
    text-wrap: wrap;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
 */
.more-link {
    display: block;
}

/*
 * Prevents unnecessary scrollbars while handling long lines of preformatted text.
 * https://core.trac.wordpress.org/ticket/63875
 */
:where(pre) {
    overflow-x: auto;
}

/* ============================================
   PROFESSOR TEX - TOKENS (DERIVED)
   ============================================ */

:root {
    --ptx-content-max: var(--wp--style--global--wide-size, 1200px);

    --ptx-shadow-strong: 0 18px 40px rgba(0, 0, 0, 0.6);
    --ptx-shadow-button: 0 8px 18px rgba(0, 0, 0, 0.4);
    --ptx-shadow-button-hover: 0 10px 22px rgba(0, 0, 0, 0.5);

    --ptx-soft-border: color-mix(in srgb, var(--wp--preset--color--text) 10%, var(--wp--preset--color--bg));
    --ptx-soft-hover: color-mix(in srgb, var(--wp--preset--color--text) 12%, var(--wp--preset--color--bg));
    --ptx-card-bg: color-mix(in srgb, var(--wp--preset--color--text) 4%, var(--wp--preset--color--bg));
    --ptx-card-bg-hover: color-mix(in srgb, var(--wp--preset--color--text) 7%, var(--wp--preset--color--bg));

    --ptx-brand-gold-hover: color-mix(in srgb, var(--wp--preset--color--brand-gold) 85%, var(--wp--preset--color--text));
    --ptx-brand-blue-hover: color-mix(in srgb, var(--wp--preset--color--brand-blue) 85%, var(--wp--preset--color--text));

    --ptx-header-bg: color-mix(in srgb, var(--wp--preset--color--bg) 95%, transparent);
}

/* ============================================
   NAVIGATION PIPES (DESKTOP ONLY)
   ============================================ */

@media (min-width: 782px) {
    :where(.ptx-header-nav) :is(ul.wp-block-navigation__container, div.wp-block-navigation__container) {
        gap: 0 !important;
    }

    :where(.ptx-header-nav) :is(ul.wp-block-navigation__container, div.wp-block-navigation__container)
    > :is(li.wp-block-navigation-item, div.wp-block-navigation-item)
    + :is(li.wp-block-navigation-item, div.wp-block-navigation-item)
    > a.wp-block-navigation-item__content::before {
        content: "|";
        display: inline-block;
        margin: 0 0.5rem;
        opacity: 0.7;
        color: var(--wp--preset--color--text-muted, currentColor);
    }
}

/* ============================================
   MOBILE NAV OVERLAY
   ============================================ */

@media (max-width: 781px) {
    :where(.ptx-header-nav) :is(ul.wp-block-navigation__container, div.wp-block-navigation__container)
    > :is(li.wp-block-navigation-item, div.wp-block-navigation-item)
    > a.wp-block-navigation-item__content::before {
        content: none !important;
    }

    :where(.ptx-header-nav) .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--wp--preset--color--bg) !important;
        color: var(--wp--preset--color--text) !important;
    }

    :where(.ptx-header-nav) .wp-block-navigation__responsive-container.is-menu-open :is(a, .wp-block-navigation-item__content, .wp-block-navigation-item__label) {
        color: var(--wp--preset--color--text) !important;
    }

    :where(.ptx-header-nav) .wp-block-navigation__responsive-container.is-menu-open :is(a:hover, .wp-block-navigation-item__content:hover) {
        color: var(--wp--preset--color--text-muted) !important;
    }

    :where(.ptx-header-nav) .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-close, .wp-block-navigation__responsive-container-close svg) {
        color: var(--wp--preset--color--text) !important;
        fill: currentColor !important;
    }

    :where(.ptx-header-nav) .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
        background-color: var(--wp--preset--color--bg) !important;
        border-color: var(--wp--preset--color--border) !important;
    }
}

/* ============================================
   PROFESSOR TEX - CUSTOM STYLES
   ============================================ */

/* === STICKY HEADER === */
:where(.wp-site-blocks) > header.wp-block-template-part,
.sticky-header {
    position: sticky;
    top: 0;
    z-index: 50;

    background-color: var(--ptx-header-bg) !important;
    backdrop-filter: blur(8px);

    border-bottom: 1px solid var(--ptx-soft-border);
}

.sticky-header .wp-block-group__inner-container,
:where(.wp-site-blocks) > header.wp-block-template-part .wp-block-group__inner-container {
    max-width: var(--ptx-content-max);
    margin: 0 auto;
    padding: 0.75rem 1.5rem;

    display: flex;
    align-items: center;
    gap: 1.5rem;
}

/* === LOGO === */
.wp-block-site-logo img,
.logo-placeholder {
    width: 40px;
    height: 40px;
    border-radius: 8px;

    background: radial-gradient(
            circle at 30% 20%,
            var(--wp--preset--color--brand-gold),
            var(--wp--preset--color--bg)
    );
}

/* === SITE TITLE === */
.wp-block-site-title {
    font-weight: 700 !important;
    font-size: 1.5rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 !important;
}

/* === NAVIGATION === */
/* Header navigation only (class can be on the nav block OR a wrapper) */
:where(.ptx-header-nav).wp-block-navigation,
:where(.ptx-header-nav) .wp-block-navigation {
    flex: 1 1 auto;
    justify-content: center;
}

:where(.ptx-header-nav) :is(ul.wp-block-navigation__container, div.wp-block-navigation__container) {
    gap: 1.75rem;
}

:where(.ptx-header-nav) .wp-block-navigation-item a {
    font-size: 0.95rem;
    opacity: 0.85;
    transition: opacity 0.2s;
}

:where(.ptx-header-nav) .wp-block-navigation-item a:hover {
    opacity: 1;
}


/* === BUTTONS (SHAPE ONLY, COLORS VIA theme.json OR CLASSES) === */
.wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 0.5rem 1.1rem !important;
    border-radius: 8px !important;

    font-size: 0.9rem !important;
    font-weight: 600 !important;

    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;

    transition: transform 0.1s ease, box-shadow 0.1s ease, background-color 0.1s ease, border-color 0.1s ease, color 0.1s ease;
}

/* Primary Button (Gold) */
.btn-primary .wp-block-button__link,
.wp-block-button.btn-primary .wp-block-button__link {
    background-color: var(--wp--preset--color--brand-gold) !important;
    color: var(--wp--preset--color--text) !important;
    border: 1px solid transparent !important;
    box-shadow: var(--ptx-shadow-button);
}

.btn-primary .wp-block-button__link:hover,
.wp-block-button.btn-primary .wp-block-button__link:hover {
    background-color: var(--ptx-brand-gold-hover) !important;
    transform: translateY(-1px);
    box-shadow: var(--ptx-shadow-button-hover);
}

/* Secondary Button (Blue Outline) */
.btn-secondary .wp-block-button__link,
.wp-block-button.btn-secondary .wp-block-button__link {
    background-color: transparent !important;
    color: var(--wp--preset--color--brand-blue) !important;
    border: 1px solid var(--wp--preset--color--brand-blue) !important;
}

.btn-secondary .wp-block-button__link:hover,
.wp-block-button.btn-secondary .wp-block-button__link:hover {
    background-color: color-mix(in srgb, var(--wp--preset--color--brand-blue) 12%, transparent) !important;
    color: var(--ptx-brand-blue-hover) !important;
    border-color: var(--ptx-brand-blue-hover) !important;
}

/* === HERO SECTION === */
.hero-section {
    background:
            radial-gradient(
                    circle at top left,
                    color-mix(in srgb, var(--wp--preset--color--brand-blue) 35%, transparent),
                    transparent 55%
            ),
            var(--wp--preset--color--surface) !important;

    padding: 2.5rem 1.5rem 3.5rem !important;
}

.hero-section .wp-block-columns {
    max-width: var(--ptx-content-max);
    margin: 0 auto;
}

.hero-section h1 {
    font-family: "Monocraft", var(--wp--preset--font-family--system-sans), monospace !important;
    font-size: 1.9rem !important;
    font-weight: 800 !important;
    margin-bottom: 1.2rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    line-height: 1.2 !important;
}

.hero-section p {
    font-size: 1rem;
    max-width: 34rem;
    opacity: 0.9;
}

.hero-video-container {
    background-color: var(--wp--preset--color--bg);
    border-radius: 8px;
    padding: 0.75rem;

    box-shadow: var(--ptx-shadow-strong);
    border: 1px solid var(--ptx-soft-border);
}

.hero-video-container :is(.wp-block-embed, .wp-block-video) {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;

    overflow: hidden;
    background-color: #000000;
}

.hero-video-container iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* === SECTION BACKGROUNDS === */
.section-dark {
    background-color: var(--wp--preset--color--bg) !important;
}

.section-light {
    background-color: color-mix(in srgb, var(--wp--preset--color--surface) 92%, var(--wp--preset--color--text)) !important;
}

.section-alt {
    background-color: var(--wp--preset--color--surface) !important;
}

.section-gold {
    background: linear-gradient(
            135deg,
            color-mix(in srgb, var(--wp--preset--color--brand-gold) 34%, var(--wp--preset--color--bg)),
            var(--wp--preset--color--bg)
    ) !important;
}

/* === SECTION STRUCTURE === */
.wp-block-group.section {
    padding: 3.5rem 1.5rem !important;
}

.wp-block-group.section .wp-block-group__inner-container {
    max-width: var(--ptx-content-max);
    margin-left: auto;
    margin-right: auto;
}

/* === TWO COLUMN SECTIONS === */
.two-col .wp-block-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 2.5rem;
    align-items: center;
}

/* === CARDS & GRIDS === */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
    align-items: stretch;
}

.card {
    background-color: var(--ptx-card-bg);
    border: 1px solid var(--ptx-soft-border);
    border-radius: 1rem;
    padding: 1.5rem;
    transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s;
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 0.75rem;
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4);
    background-color: var(--ptx-card-bg-hover);
}

.card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: var(--wp--preset--color--brand-blue);
}

.card p {
    font-size: 0.95rem;
    opacity: 0.85;
    line-height: 1.6;
    flex: 1 1 auto;
}

/* Cards: push CTA to the bottom */
.card :where(.wp-block-buttons, .wp-block-button) {
    margin-top: auto;
}

/* === SECTION TITLES === */
.section-title {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    margin-bottom: 0.75rem !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.section-subtitle {
    font-size: 1rem;
    opacity: 0.75;
    margin-bottom: 2rem;
}

/* === LANGUAGE SWITCHER === */
.lang-switch {
    font-size: 0.85rem;
    opacity: 0.8;
    display: inline-flex;
    gap: 0.3rem;
    align-items: center;
}

.lang-switch span {
    cursor: pointer;
    transition: opacity 0.2s;
}

.lang-switch .lang-active {
    font-weight: 600;
    opacity: 1;
}

.lang-switch span:hover {
    opacity: 1;
}

/* === RESPONSIVE === */
@media (max-width: 782px) {
    .sticky-header .wp-block-group__inner-container,
    :where(.wp-site-blocks) > header.wp-block-template-part .wp-block-group__inner-container {
        flex-direction: column;
        gap: 1rem;
    }

    :where(.ptx-header-nav).wp-block-navigation,
    :where(.ptx-header-nav) .wp-block-navigation {
        width: 100%;
    }

    .hero-section h1 {
        font-size: 1.6rem !important;
    }

    .hero-section .wp-block-columns {
        flex-direction: column;
    }

    .two-col .wp-block-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .sticky-header .wp-block-group__inner-container,
    :where(.wp-site-blocks) > header.wp-block-template-part .wp-block-group__inner-container {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 0.6rem !important;
    }

    .ptx-header-actions {
        order: 2 !important;
        margin-left: auto !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
    }

    .ptx-header-nav-wrap {
        order: 3 !important;
        margin-left: 0 !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
    }

    :where(.ptx-header-nav).wp-block-navigation,
    :where(.ptx-header-nav) .wp-block-navigation {
        width: auto !important;
        flex: 0 0 auto !important;
        justify-content: flex-end !important;
    }
}


@media (max-width: 600px) {
    .wp-block-group.section {
        padding: 2rem 1rem !important;
    }

    .hero-section {
        padding: 2rem 1rem !important;
    }
}

/* === FOOTER === */
footer.wp-block-template-part {
    background-color: var(--wp--preset--color--bg);
    border-top: 1px solid var(--ptx-soft-border);
    padding: 2rem 1.5rem;
}

footer.wp-block-template-part .wp-block-group__inner-container {
    max-width: var(--ptx-content-max);
    margin: 0 auto;
}

/* === UTILITY === */
.text-center {
    text-align: center !important;
}

.mb-large {
    margin-bottom: 3rem !important;
}

.mb-medium {
    margin-bottom: 2rem !important;
}

.mb-small {
    margin-bottom: 1rem !important;
}
