/*
Theme Name: My Custom Theme
Theme URI: http://example.com/my-custom-theme
Author: Your Name
Author URI: http://example.com
Description: A custom WordPress theme.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my-custom-theme
*/

/* ── Section label badges ──────────────────────────────────────
   WordPress doesn't reliably size flex group children to fit-content
   without a global contentSize. This ensures pill badges render
   as pills, not full-width bars.
──────────────────────────────────────────────────────────────── */
.wp-block-group[style*="border-radius:9999px"].has-background {
    width: fit-content;
}

.wp-block-group[style*="border-radius:9999px"] p {
    margin: 0;
}

/* ── FAQ card spacing ──────────────────────────────────────────
   blockGap on a constrained layout isn't reliably output without
   a global contentSize in theme.json. Use adjacent sibling instead.
──────────────────────────────────────────────────────────────── */
.faq-item + .faq-item {
    margin-top: 1.5rem;
}

/* ── Gallery column gap ────────────────────────────────────────
   appearanceTools:true enables blockGap, which defaults to
   spacing-40 (1.5rem/24px) when no explicit styles.spacing.blockGap
   is set in theme.json. Restore the original 8px gap.
──────────────────────────────────────────────────────────────── */
:root .wp-block-gallery.is-layout-flex {
    gap: 8px;
}

/* ── Contact Form 7 ────────────────────────────────────────────
   Prefix all rules with ".wpcf7 .wpcf7-form" (0-3-1 specificity)
   to beat CF7's own bundled stylesheet (0-2-1) regardless of
   load order.
──────────────────────────────────────────────────────────────── */

/* Paragraph spacing between fields */
.wpcf7 .wpcf7-form p {
    margin-top: 0;
    margin-bottom: var(--wp--preset--spacing--40);
}

.wpcf7 .wpcf7-form p:last-child {
    margin-bottom: 0;
}

/* Labels */
.wpcf7 .wpcf7-form label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--wp--preset--color--text-dark);
    margin-bottom: 0.375rem;
}

/* Inputs and textarea */
.wpcf7 .wpcf7-form input[type="text"],
.wpcf7 .wpcf7-form input[type="email"],
.wpcf7 .wpcf7-form input[type="tel"],
.wpcf7 .wpcf7-form input[type="url"],
.wpcf7 .wpcf7-form input[type="number"],
.wpcf7 .wpcf7-form select,
.wpcf7 .wpcf7-form textarea {
    display: block;
    width: 100%;
    padding: 0.625rem 0.875rem;
    font-size: 1rem;
    color: var(--wp--preset--color--text-dark);
    background: #fff;
    border: 1.5px solid var(--wp--preset--color--gray-200);
    border-radius: 8px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}

.wpcf7 .wpcf7-form input[type="text"]:focus,
.wpcf7 .wpcf7-form input[type="email"]:focus,
.wpcf7 .wpcf7-form input[type="tel"]:focus,
.wpcf7 .wpcf7-form input[type="url"]:focus,
.wpcf7 .wpcf7-form input[type="number"]:focus,
.wpcf7 .wpcf7-form select:focus,
.wpcf7 .wpcf7-form textarea:focus {
    border-color: var(--wp--preset--color--primary);
    box-shadow: 0 0 0 3px rgba(50, 88, 194, 0.15);
}

.wpcf7 .wpcf7-form textarea {
    resize: vertical;
    min-height: 7rem;
}

/* Submit button */
.wpcf7 .wpcf7-form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    background: var(--wp--preset--color--primary);
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.1s ease;
}

.wpcf7 .wpcf7-form input[type="submit"]:hover {
    background: var(--wp--preset--color--primary-dark);
}

.wpcf7 .wpcf7-form input[type="submit"]:active {
    transform: translateY(1px);
}

/* Validation errors */
.wpcf7 .wpcf7-form input.wpcf7-not-valid,
.wpcf7 .wpcf7-form textarea.wpcf7-not-valid {
    border-color: #c0392b;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12);
}

.wpcf7 .wpcf7-not-valid-tip {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.8125rem;
    color: #c0392b;
}

/* Response output (success / error banner) */
.wpcf7 .wpcf7-response-output {
    margin-top: var(--wp--preset--spacing--40) !important;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    font-size: 0.9375rem;
    border: none !important;
}

.wpcf7 .wpcf7-form.sent .wpcf7-response-output {
    background: #edfaf1;
    color: #1e7e34;
}

.wpcf7 .wpcf7-form.failed .wpcf7-response-output,
.wpcf7 .wpcf7-form.spam .wpcf7-response-output,
.wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
    background: #fdf3f2;
    color: #c0392b;
}