@font-face {
    font-family: 'Castel Sono Regular';
    src: url('../fonts/Sono-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Castel Jost Regular';
    src: url('../fonts/Jost-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Estilos exclusivos de page-contacto.php. */
.castel-contact-page {
    --cc-blue: #1057bf;
    --cc-paper: #ffffff;
    background: var(--cc-paper);
    color: #171717;
    width: 100%;
    min-width: 0;
}
.castel-contact-page *,
.castel-contact-page *::before,
.castel-contact-page *::after { box-sizing: border-box; }
.castel-contact-page a { color: var(--cc-blue); text-decoration: none; }
.castel-contact-page a:hover { text-decoration: underline; }
.castel-contact-page a:focus-visible,
.castel-contact-page input:focus-visible,
.castel-contact-page textarea:focus-visible,
.castel-contact-page button:focus-visible { outline: 2px solid var(--cc-blue); outline-offset: 4px; }
.castel-contact-page .cc-contact {
    padding: 140px 24px 110px;
}
.castel-contact-page .cc-contact-grid {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 100px;
    row-gap: 46px;
    align-items: start;
}
.castel-contact-page .cc-contact-details { min-width: 0; }
.castel-contact-page h1 {
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 27.2px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--cc-blue);
    margin: 0 0 22px;
}
.castel-contact-page .cc-contact-line {
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
    overflow-wrap: anywhere;
}
.castel-contact-page .cc-social {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin: 24px 0 30px;
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 14px;
    letter-spacing: 1.4px;
    line-height: 1.5;
    text-transform: uppercase;
}
.castel-contact-page .cc-outline-button,
.castel-contact-page .cc-contact-form input[type="submit"],
.castel-contact-page .cc-contact-form button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 225px;
    max-width: 100%;
    min-height: 44px;
    padding: 10px 20px;
    border: 1px solid var(--cc-blue);
    border-radius: 30px;
    background: transparent;
    color: var(--cc-blue);
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 2px;
    line-height: 1.4;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}
.castel-contact-page .cc-faq-button { width: 325px; }
.castel-contact-page .cc-outline-button:hover,
.castel-contact-page .cc-contact-form input[type="submit"]:hover,
.castel-contact-page .cc-contact-form button[type="submit"]:hover {
    background: var(--cc-blue);
    color: #fff;
    text-decoration: none;
}
.castel-contact-page .cc-contact-photo { margin: 0; }
.castel-contact-page .cc-contact-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    filter: grayscale(100%);
}
.castel-contact-page .cc-contact-form { max-width: 400px; width: 100%; min-width: 0; }
.castel-contact-page .cc-contact-form h2 {
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--cc-blue);
    margin: 0 0 20px;
}
.castel-contact-page .cc-contact-form form { margin: 0; }
.castel-contact-page .cc-contact-form form p { margin: 0 0 10px; }
.castel-contact-page .cc-contact-form label,
.castel-contact-page .wpcf7-form-control-wrap { display: block; width: 100%; }
.castel-contact-page .cc-contact-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.castel-contact-page .cc-contact-form textarea,
.castel-contact-page .cc-contact-form select {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    border: 1px solid #242424;
    border-radius: 0;
    background: transparent;
    padding: 9px 10px;
    color: #171717;
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 16px;
    line-height: 1.4;
    box-shadow: none;
}
.castel-contact-page .cc-contact-form textarea { height: 160px; resize: vertical; }
.castel-contact-page .cc-contact-form input::placeholder,
.castel-contact-page .cc-contact-form textarea::placeholder {
    color: #333;
    font-family: 'sono_light', monospace;
    font-size: 11px;
    line-height: 1.4;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    opacity: 1;
}
.castel-contact-page .cc-contact-form .form_btn { margin-top: 20px; }
.castel-contact-page .cc-contact-form .wpcf7-response-output { margin: 20px 0 0; }
.castel-contact-page .cc-contact-location {
    text-align: center;
    padding-top: 65px;
    font-family: 'sono_light', monospace;
    font-size: 14px;
    line-height: 1.7;
}
.castel-contact-page .cc-contact-location p { margin: 0; }
.castel-contact-page .cc-coordinates { display: block; margin-bottom: 32px; overflow-wrap: anywhere; }
.castel-contact-page .cc-stockists { scroll-margin-top: 100px; border-top: 1px solid #242424; }
.castel-contact-page .cc-stockists h2 {
    margin: 0;
    padding: 60px 24px;
    font-family: 'Jost', 'jost_light', sans-serif;
    font-size: 19.6px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--cc-blue);
    text-align: center;
}
.castel-contact-page .cc-stockists-map { width: 100%; height: 450px; }
.castel-contact-page .cc-stockists-map iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(100%); }
@media (max-width: 991px) {
    .castel-contact-page .cc-contact { padding: 100px 24px 70px; }
    .castel-contact-page .cc-contact-grid { column-gap: 40px; }
    .castel-contact-page .cc-contact-line { font-size: 14.4px; }
}
@media (max-width: 767px) {
    .castel-contact-page .cc-contact { padding: 80px 22px 60px; }
    .castel-contact-page .cc-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 38px; max-width: 520px; }
    .castel-contact-page h1 { font-size: 24px; }
    .castel-contact-page .cc-contact-form { max-width: none; }
    .castel-contact-page .cc-contact-location { padding-top: 0; font-size: 12px; }
    .castel-contact-page .cc-stockists h2 { font-size: 16.1px; padding: 52px 22px; }
    .castel-contact-page .cc-stockists-map { height: 380px; }
}

/* Titulos en Sono Regular sin espaciado adicional. */
.castel-contact-page h1,
.castel-contact-page .cc-stockists h2 {
    font-family: 'Castel Sono Regular', monospace;
    font-weight: 400;
    letter-spacing: normal;
}
.castel-contact-page .cc-contact-line {
    font-family: 'Castel Jost Regular', sans-serif;
    font-weight: 400;
}
/* Solo el encabezado de Contacto. */
.Web-Header.Web-Header_contacto {
    background-color: #ffffff;
    border-bottom: 1px solid #242424;
}
.Web-Header.Web-Header_contacto .header-nav-wrapper .header-nav ul > li > a,
.Web-Header.Web-Header_contacto .header-nav-wrapper .header-nav ul > li > a.active {
    color: #000;
}
.Web-Header.Web-Header_contacto .menu-activador .menu-activador-linea {
    background-color: #000;
}
