/*
Theme Name: Uncode Child
Description: Child theme for Uncode theme
Author: Undsgn™
Author URI: http://www.undsgn.com
Template: uncode
Version: 1.0.0
Text Domain: uncode
*/

/* =========================================================================
   Saimex - "Parlaci del tuo progetto" form (Contact Form 7)
========================================================================= */

.saimex-form-grid {
    --saimex-yellow: #FDCC03;
    --saimex-yellow-hover: #e6b800;
    --saimex-input-bg: #ffffff;
    --saimex-input-text: #1a1a1a;
    --saimex-input-placeholder: #6b7280;
    --saimex-input-border-color: #505E69;
    --saimex-input-border-width: 3px;
    --saimex-input-padding-y: 14px;
    --saimex-input-padding-x: 18px;
    --saimex-row-gap: 16px;
    --saimex-on-dark-text: #ffffff;

    display: flex;
    flex-direction: column;
    gap: var(--saimex-row-gap);
}

/* CF7 wrappa ogni form-tag in <span class="wpcf7-form-control-wrap"> inline.
   Lo forzo a block così l'input dentro può prendere width:100% */
.saimex-form-grid .wpcf7-form-control-wrap {
    display: block;
}

/* ---------- Layout righe ---------- */

.saimex-form-row {
    display: block;
}

.saimex-form-row-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--saimex-row-gap);
}

@media (max-width: 768px) {
    .saimex-form-row-2col {
        grid-template-columns: 1fr;
    }
}

/* ---------- Input di base (text / tel / email / select / textarea) ---------- */

.saimex-form-grid input[type="text"],
.saimex-form-grid input[type="email"],
.saimex-form-grid input[type="tel"],
.saimex-form-grid select,
.saimex-form-grid textarea {
    width: 100%;
    background: var(--saimex-input-bg);
    border: var(--saimex-input-border-width) solid var(--saimex-input-border-color);
    border-radius: 0;
    padding: var(--saimex-input-padding-y) var(--saimex-input-padding-x);
    font: inherit;
    font-size: 1rem;
    line-height: 1.3;
    color: var(--saimex-input-text);
    box-shadow: none;
    outline: none;
    transition: border-color 0.2s;
    box-sizing: border-box;
}

.saimex-form-grid input::placeholder,
.saimex-form-grid textarea::placeholder {
    color: var(--saimex-input-placeholder);
    opacity: 1;
}

.saimex-form-grid input:focus,
.saimex-form-grid select:focus,
.saimex-form-grid textarea:focus {
    border-color: var(--saimex-yellow);
}

/* ---------- Select: arrow nativo nascosto, "+" custom ---------- */

.saimex-form-field-select {
    position: relative;
}

.saimex-form-grid select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 48px;
    cursor: pointer;
    background-image: none;
}

.saimex-form-field-select::after {
    content: '+';
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.5rem;
    line-height: 1;
    color: var(--saimex-input-text);
    pointer-events: none;
    font-weight: 400;
}

.saimex-form-grid select::-ms-expand {
    display: none;
}

/* ---------- Textarea ---------- */

.saimex-form-grid textarea {
    min-height: 140px;
    resize: vertical;
    font-family: inherit;
}

/* ---------- Privacy checkbox (acceptance) ---------- */

.saimex-form-row-privacy {
    padding: 4px 0;
}

.saimex-form-grid .wpcf7-acceptance .wpcf7-list-item {
    display: block;
    margin: 0;
}

.saimex-form-grid .wpcf7-acceptance label {
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--saimex-on-dark-text);
    font-size: 0.85rem;
    line-height: 1.4;
    cursor: pointer;
}

.saimex-form-grid .wpcf7-acceptance input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border: 1px solid var(--saimex-on-dark-text);
    border-radius: 0;
    background: transparent;
    cursor: pointer;
    margin: 2px 0 0;
    flex-shrink: 0;
    position: relative;
    transition: background 0.15s, border-color 0.15s;
}

.saimex-form-grid .wpcf7-acceptance input[type="checkbox"]:checked {
    background: var(--saimex-yellow);
    border-color: var(--saimex-yellow);
}

.saimex-form-grid .wpcf7-acceptance input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 0;
    width: 5px;
    height: 10px;
    border: solid var(--saimex-input-text);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ---------- Bottone submit ---------- */

.saimex-form-row-submit {
    margin-top: 8px;
    text-align: left;
}

.saimex-form-grid .wpcf7-submit {
    /*background: var(--saimex-yellow);
    color: var(--saimex-input-text);*/
    border: none;
    border-radius: 0;
    padding: 18px 40px;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: background 0.2s;
    -webkit-appearance: none;
    appearance: none;
}

.saimex-form-grid .wpcf7-submit:hover,
.saimex-form-grid .wpcf7-submit:focus {
    background: var(--saimex-yellow-hover);
    outline: none;
}

/* ---------- Stati di validazione CF7 ---------- */

.saimex-form-grid .wpcf7-not-valid {
    border-color: #d9534f !important;
}

.saimex-form-grid .wpcf7-not-valid-tip {
    color: #ffb4b4;
    font-size: 0.8rem;
    margin-top: 4px;
    display: block;
}

.wpcf7 .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 12px 16px;
    border: none;
    border-radius: 0;
    color: #fff;
    font-size: 0.9rem;
}

.wpcf7 form.sent .wpcf7-response-output {
    background: rgba(34, 139, 34, 0.85);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
    background: rgba(217, 83, 79, 0.85);
}

/* Azzera margin di eventuali <p> automatici di wpautop dentro il form */
.saimex-form-grid p {
    margin: 0;
}

/* Spinner durante l'invio */
.saimex-form-grid .wpcf7-spinner {
    background-color: var(--saimex-input-text);
    margin: 0 0 0 12px;
    vertical-align: middle;
}

/* Campo upload file */
.saimex-file-label{
    display: block;
    border: 2px dashed #8b95a0;
    background: rgba(255,255,255,.04);
    color: #c2c8cf;
    font-size: 14px;
    text-align: center;
    padding: 18px;
    cursor: pointer;
}
.cform-contatti input[type="file"]{
    display: block;
    margin: 12px auto 0;
    color: #c2c8cf;
    font-size: 13px;
}

/* La freccia "+" del select resta scura perché il select è bianco:
   nessun override necessario, eredita .saimex-form-field-select::after */

/* =========================================================================
   Saimex - Footer
========================================================================= */

.footer-heading-line {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Il blocco-testo si dimensiona sul contenuto, non a tutta larghezza */
.footer-heading-line .heading-text {
    flex: 0 0 auto;
}

/* Neutralizza il clearfix vuoto: in flex diventa un figlio inutile */
.footer-heading-line .clear {
    display: none;
}

/* La riga gialla riempie lo spazio residuo */
.footer-heading-line::after {
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: #FDCC03;
    align-self: flex-end;
    margin-bottom: 0.15em;
}

/* ============================================================
 	Saimex trapezio
 * ============================================================ */

/* La Row bianca (sotto "Unico referente") deve permettere all'SVG di
   sporgere verso l'alto: forziamo overflow visible a tutti i livelli
   della struttura WPBakery (Row → column → column-inner → wpb_wrapper). */
.row-with-trapezoid,
.row-with-trapezoid .vc_column_container,
.row-with-trapezoid .vc_column-inner,
.row-with-trapezoid .wpb_wrapper {
    overflow: visible !important;
}

.row-with-trapezoid {
    position: relative !important;
}

/* Il trapezio in sé.
   Aspect ratio nativo dell'SVG = 216 / 253 ≈ 0.854.
   Per non distorcere la forma: width / height deve restare ~0.854.
   Esempi validi: 14vw/16.4vw, 18vw/21vw, 22vw/25.8vw.
   top = -(0.554 × height) → fa cadere il vertice destro sul confine
   grigio/bianco. */
.saimex-trapezoid-yellow {
    position: absolute;
    top: -16vw;
    left: 65%;
    width: 12vw;
    height: 15vw;
    z-index: 2;
    pointer-events: none;
}

.saimex-trapezoid-yellow svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

/* Tablet: ridotto e leggermente spostato */
@media (max-width: 991px) {
    .saimex-trapezoid-yellow {
        top: -13vw;
        left: 45%;
        width: 15vw;
        height: 17.6vw;
    }
}

/* Mobile: scalato in alto ma più grande in proporzione (vw cresce
   come % di viewport stretta) */
@media (max-width: 575px) {
    .saimex-trapezoid-yellow {
        top: -16vw;
        left: 22%;
        width: 22vw;
        height: 25.8vw;
    }
}

/* ============================================================
 	Saimex topbar
 * ============================================================ */

.top-menu.top-menu-enhanced.top-menu-border.menu-light::after {
    height: 3px !important;
    background-color: #FDCC03 !important; /* giallo accent Saimex */
    border: 0 !important;
    opacity: 1 !important;
}