/*
 Theme Name:   Twenty Twenty-Five Child
 Theme URI:
 Description:  Child theme for the Twenty Twenty-Five theme
 Author:
 Author URI:
 Template:     twentytwentyfive
 Version:      1.0.2
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  twentytwentyfive-child
*/

/* Add your custom styles below this line */

/**
 * Prevent horizontal scrollbars caused by full-width (100vw) breakout blocks.
 * Viewport units (vw) include the scrollbar width in some browsers, 
 * which can cause a tiny overflow when a block is forced to 100vw.
 */
body {
    overflow-x: hidden;
}

.custom-quote-block {
    padding-top: var(--wp--preset--spacing--30) !important;
}

/* ==========================================================================
   Custom Page Templates Alignment
   ========================================================================== */

/* Shared alignment for Sponsored Products, Booking, and Blog pages */
.sponsored-products-page .page-title-container,
.book-us-page .page-content-container,
.blog-home-page .page-title-container {
    width: 100%;
    max-width: 1465px;
    margin-inline: auto;
    padding-inline: 1rem;
    margin-block-start: clamp(2rem, 5vw, 4rem);
    margin-block-end: 2rem;
}

.sponsored-products-page .page-title,
.book-us-page .page-title,
.blog-home-page .page-title {
    margin: 0 0 1.5rem 0;
    font-size: clamp(2.5rem, 5vw, 4rem);
    line-height: 1.1;
    font-weight: 800;
}

@media (min-width: 768px) {

    .sponsored-products-page .page-title-container,
    .book-us-page .page-content-container,
    .blog-home-page .page-title-container {
        padding-inline: 2rem;
    }
}

@media (min-width: 1024px) {

    .sponsored-products-page .page-title-container,
    .book-us-page .page-content-container,
    .blog-home-page .page-title-container {
        padding-inline: 6rem;
    }
}

/* Form Headings within page content */
.book-us-page h2 {
    margin-block-start: 2.5rem;
    margin-block-end: 1.5rem;
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
}

.book-us-page p {
    font-size: 1.125rem;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    color: #444;
}

/* ==========================================================================
   Ninja Forms Traditional Styling (FORCE STACKED & UNIFORM)
   ========================================================================== */

/* Target the wrapper specifically within our page */
.book-us-page .nf-form-cont {
    margin-block-start: 1rem;
    max-width: 600px !important;
    /* Narrower for better focus */
    width: 100% !important;
}

/* Force every container, row, and element to be block-level (stacked) */
.book-us-page .nf-form-content nf-fields-holder,
.book-us-page .nf-field-container,
.book-us-page .nf-field,
.book-us-page .field-wrap,
.book-us-page .nf-field-label,
.book-us-page .nf-field-element {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    float: none !important;
    clear: both !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Row separation */
.book-us-page .nf-field-container {
    margin-bottom: 2rem !important;
}

/* Label Styling - Strictly on Top */
.book-us-page .nf-field-label {
    margin-bottom: 8px !important;
}

.book-us-page .nf-field-label label {
    font-weight: 700 !important;
    font-size: 1.1rem !important;
    color: #1a1a1a !important;
    text-transform: none !important;
}

/* Uniform Field Widths */
.book-us-page .nf-field-element input:not([type="button"]),
.book-us-page .nf-field-element textarea,
.book-us-page .nf-field-element select,
.book-us-page .nf-field-element .ninja-forms-datepicker {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 2px solid #333 !important;
    /* Bold, traditional border */
    border-radius: 4px !important;
    padding: 12px 16px !important;
    font-size: 1.1rem !important;
    font-family: inherit !important;
    color: #1a1a1a !important;
    box-shadow: none !important;
}

/* Focus State */
.book-us-page .nf-field-element input:focus,
.book-us-page .nf-field-element textarea:focus,
.book-us-page .nf-field-element select:focus {
    background-color: #f9f9f9 !important;
    border-color: #000 !important;
    outline: none !important;
}

/* Required Symbol */
.book-us-page .ninja-forms-req-symbol {
    color: #c00 !important;
    font-weight: bold;
}

/* Traditional Submit Button */
.book-us-page .nf-field-container.submit-container {
    margin-top: 1rem !important;
}

.book-us-page .nf-field-element input[type="button"] {
    background-color: #1a1a1a !important;
    color: #fff !important;
    padding: 16px 48px !important;
    border-radius: 4px !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    cursor: pointer;
    border: none !important;
    width: auto !important;
    min-width: 200px;
    transition: background-color 0.2s;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.book-us-page .nf-field-element input[type="button"]:hover {
    background-color: #444 !important;
}

/* Error messages */
.book-us-page .nf-error-msg {
    color: #d00 !important;
    font-weight: bold !important;
    margin-top: 8px !important;
    display: block !important;
}