/*
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.8
Requires PHP: 7.2
Version: 1.3
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
*/

/* WordPress Core Styles */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

.more-link {
	display: block;
}

/* IMPORTANT: The previous global spacing reset was removed to avoid breaking Gutenberg */

/* ACCESSIBLE GARAGE DESIGN - WCAG AA COMPLIANT */
.gp-container {
    font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.6;
    color: #1a1a1a;
    background: #ffffff;
}

.gp-container * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.gp-wrapper {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Header Section - Accessible Colors */
.gp-header {
    background: linear-gradient(135deg, #0d2951 0%, #1e3c72 100%);
    color: #ffffff;
    padding: 60px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
    /* Removed 100vw/translate hack to work with Gutenberg alignments */
    margin-bottom: 30px;
}

.gp-company {
    font-size: 1.2em;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 20px;
    color: #ffffff;
    opacity: 1;
}

.gp-title {
    font-size: 3.5em;
    font-weight: 700;
    margin-bottom: 20px;
    text-shadow: 2px 2px 8px rgba(0,0,0,0.5);
    line-height: 1.1;
    color: #ffffff;
}

.gp-badge {
    display: inline-block;
    background: #d35400;
    color: #ffffff;
    padding: 12px 32px;
    border-radius: 30px;
    font-weight: 600;
    font-size: 1em;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(211, 84, 0, 0.4);
    animation: gp-pulse 2s infinite;
    border: 2px solid #ffffff;
}

@keyframes gp-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* Features Section - High Contrast */
.gp-features {
    padding: 60px 0;
    background: #f8f9fa;
    /* Removed 100vw/translate hack */
}

.gp-section-title {
    text-align: center;
    font-size: 2.5em;
    color: #1a1a1a;
    margin-bottom: 50px;
    position: relative;
    font-weight: 600;
}

.gp-section-title::after {
    content: "";
    display: block;
    width: 80px;
    height: 4px;
    background: #d35400;
    margin: 20px auto;
    border-radius: 2px;
}

.gp-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
    margin-top: 50px;
    padding: 0 20px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.gp-feature-card {
    background: #ffffff;
    padding: 35px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.12);
    transition: all 0.3s ease;
    border-top: 5px solid #0d2951;
    border: 1px solid #e0e0e0;
}

.gp-feature-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.18);
    border-top-color: #d35400;
}

.gp-feature-icon {
    font-size: 2.5em;
    margin-bottom: 20px;
    display: inline-block;
    color: #d35400;
}

.gp-feature-title {
    font-size: 1.3em;
    font-weight: 600;
    margin-bottom: 12px;
    color: #1a1a1a;
    line-height: 1.3;
}

.gp-feature-text {
    color: #444444;
    line-height: 1.8;
    font-size: 1em;
}

/* Pricing Section - Enhanced Contrast */
.gp-pricing {
    padding: 60px 0;
    background: #ffffff;
}

.gp-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 40px;
    margin-top: 60px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

.gp-price-card {
    background: #ffffff;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.15);
    transition: all 0.3s ease;
    position: relative;
    border: 2px solid #e0e0e0;
}

.gp-price-card:hover {
    transform: scale(1.05);
    box-shadow: 0 20px 45px rgba(0,0,0,0.25);
    border-color: #d35400;
}

.gp-price-card.gp-recommended {
    transform: scale(1.05);
    border: 3px solid #d35400;
    box-shadow: 0 20px 50px rgba(211, 84, 0, 0.2);
}

.gp-price-card.gp-recommended .gp-price-header {
    background: #d35400;
}

.gp-recommend-badge {
    position: absolute;
    top: 20px;
    right: -35px;
    background: #c0392b;
    color: #ffffff;
    padding: 8px 45px;
    transform: rotate(45deg);
    font-size: 0.8em;
    font-weight: 700;
    box-shadow: 0 3px 15px rgba(0,0,0,0.3);
    z-index: 1;
}

.gp-price-header {
    background: linear-gradient(135deg, #0d2951, #1e3c72);
    color: #ffffff;
    padding: 35px;
    text-align: center;
}

.gp-price-title {
    font-size: 1.8em;
    margin-bottom: 12px;
    font-weight: 600;
    color: #ffffff;
}

.gp-price-amount {
    font-size: 3.2em;
    font-weight: 700;
    margin: 20px 0;
    color: #ffffff;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

.gp-price-period {
    font-size: 1.1em;
    color: #ffffff;
    opacity: 0.95;
}

.gp-price-body {
    padding: 40px 30px;
    background: #ffffff;
}

.gp-price-list {
    list-style: none;
    padding: 0;
}

.gp-price-list li {
    padding: 16px 0;
    border-bottom: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    font-size: 1em;
    color: #1a1a1a;
    font-weight: 400;
}

.gp-price-list li:last-child {
    border-bottom: none;
}

/* Fixed: use proper Unicode escape for checkmark */
.gp-price-list li::before {
    content: "\2713"; /* ✓ */
    color: #27ae60;
    font-weight: bold;
    margin-right: 15px;
    font-size: 1.3em;
    background: #e8f5e8;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gp-savings {
    background: #27ae60;
    color: #ffffff;
    padding: 10px 18px;
    border-radius: 25px;
    font-weight: 600;
    display: inline-block;
    margin-top: 15px;
    font-size: 0.95em;
    box-shadow: 0 2px 10px rgba(39, 174, 96, 0.3);
}

/* Additional Costs Section */
.gp-additional {
    padding: 60px 0;
    background: #f8f9fa;
    /* Removed 100vw/translate hack */
}

.gp-cost-grid {
    display: grid;
    gap: 20px;
    margin-top: 40px;
    padding: 0 20px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.gp-cost-item {
    background: #ffffff;
    padding: 28px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 5px 20px rgba(0,0,0,0.12);
    transition: all 0.3s ease;
    border: 1px solid #e0e0e0;
}

.gp-cost-item:hover {
    transform: translateX(10px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.18);
    border-color: #d35400;
}

.gp-cost-label {
    font-weight: 600;
    color: #1a1a1a;
    display: flex;
    align-items: center;
    font-size: 1.05em;
}

.gp-cost-label span {
    margin-right: 15px;
    font-size: 1.5em;
    color: #d35400;
}

.gp-cost-value {
    font-size: 1.3em;
    font-weight: 700;
    color: #0d2951;
}

.gp-free {
    background: #27ae60;
    color: #ffffff;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.9em;
    font-weight: 600;
    box-shadow: 0 2px 8px rgba(39, 174, 96, 0.3);
}

/* BEAUTIFUL INFO BOX - Accessible */
.gp-info-box {
    background: linear-gradient(135deg, #fef8e7, #fdeaa7);
    border: 2px solid #d35400;
    border-left: 6px solid #d35400;
    padding: 35px;
    border-radius: 12px;
    margin: 40px 20px 0 20px;
    box-shadow: 0 8px 25px rgba(211, 84, 0, 0.15);
    max-width: 1160px;
    margin-left: auto;
    margin-right: auto;
}

.gp-info-box h4 {
    color: #8e2800;
    font-size: 1.6em;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    font-weight: 700;
}

/* Fixed: use proper Unicode escape for light-bulb */
.gp-info-box h4::before {
    content: "\1F4A1"; /* 💡 */
    margin-right: 15px;
    font-size: 1.2em;
    background: #ffffff;
    padding: 8px;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.gp-info-box p {
    margin-bottom: 18px;
    color: #5d4037;
    line-height: 1.7;
    font-size: 1.05em;
    font-weight: 400;
}

.gp-info-list {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.gp-info-list li {
    padding: 10px 0;
    padding-left: 35px;
    position: relative;
    color: #5d4037;
    line-height: 1.6;
    font-size: 1em;
}

/* Fixed: use proper Unicode escape for bullet */
.gp-info-list li::before {
    content: "\2022"; /* • */
    position: absolute;
    left: 12px;
    color: #d35400;
    font-weight: bold;
    font-size: 1.4em;
}

/* CTA Section - Enhanced Accessibility */
.gp-cta {
    background: linear-gradient(135deg, #1a1a1a, #2c2c2c);
    color: #ffffff;
    padding: 60px 0;
    text-align: center;
    /* Removed 100vw/translate hack */
}

.gp-cta-title {
    font-size: 2.5em;
    margin-bottom: 20px;
    font-weight: 600;
    color: #ffffff;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

.gp-cta-text {
    font-size: 1.3em;
    margin-bottom: 35px;
    color: #ffffff;
    line-height: 1.6;
}

.gp-cta-button {
    display: inline-block;
    background: #d35400;
    color: #ffffff;
    padding: 18px 45px;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 700;
    font-size: 1.2em;
    transition: all 0.3s ease;
    box-shadow: 0 8px 25px rgba(211, 84, 0, 0.4);
    border: 2px solid transparent;
}

.gp-cta-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(211, 84, 0, 0.5);
    text-decoration: none;
    color: #ffffff;
    background: #e67e22;
    border-color: #ffffff;
}

.gp-cta-button:focus {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

/* Responsive - Maintains Accessibility */
@media (max-width: 768px) {
    .gp-title {
        font-size: 2.8em;
    }
    
    .gp-features-grid,
    .gp-pricing-grid {
        grid-template-columns: 1fr;
    }
    
    .gp-price-card.gp-recommended {
        transform: scale(1);
    }
    
    .gp-cost-item {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
    
    .gp-section-title {
        font-size: 2.2em;
    }
    
    .gp-header {
        padding: 50px 0;
    }
    
    .gp-price-amount {
        font-size: 2.8em;
    }
    
    .gp-cta-title {
        font-size: 2.2em;
    }
}

/* Focus States for Accessibility */
.gp-feature-card:focus,
.gp-price-card:focus,
.gp-cost-item:focus {
    outline: 3px solid #d35400;
    outline-offset: 2px;
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    .gp-container {
        color: #000000;
        background: #ffffff;
    }
    
    .gp-header {
        background: #000000;
        color: #ffffff;
    }
    
    .gp-feature-card,
    .gp-price-card,
    .gp-cost-item {
        border: 2px solid #000000;
    }
}
/* Prevent long headings from overflowing on small screens */
:where(h1, h2, h3, h4, h5, h6) {
  overflow-wrap: anywhere; /* allow breaks in long words */
  word-break: break-word;  /* fallback for older browsers */
  hyphens: auto;           /* nicer hyphenation (uses site language) */
  min-width: 0;            /* avoid flex min-content overflow */
  flex-wrap: wrap;         /* if a heading is display:flex, allow wrapping */
}
