/*
 Theme Name:   RNR Sweet Child OM
 Template:     generatepress
 Description:  Plantilla Corporativa para Abogados (High Performance)
 Version:      1.0.0
 Author:       Rank and Roll Agency
*/

/*
   ============== TOC =============

1. VARIABLES (Paleta Corporativa)
2. FONT FACE
3. ESTILOS GLOBALES
4. HEADER & NAVEGACIÓN (Clean & Consolidated)
5. HERO
6. SOBRE NOSOTROS
7. HOME – SECCIÓN SERVICIOS
8. HOME – SECCIÓN CONTACTO
11. SECCIÓN TESTIMONIOS
12. FOOTER
13. PÁGINA SERVICIOS (PILAR Y SINGLE)
14. SECCIÓN FAQ
15. SOBRE NOSOTROS
16. BTN FLOTANTE LEAD RANKROLL
17. SLIDER HOME
18. GRID EDITORIAL HOME
19. SHOP HIGHLIGHTS
20. WOOCOMMERCE
====================================
*/


/* 
===================================== 
1. VARIABLES (Paleta Corporativa)
=====================================
 */
:root {
    --rnr-theme-dark: #c56b4e;   /* Color Tema General */
    --rnr-theme-light: #6B4A32;  /* Color tema general en versión clara para destacar elementos */
    --rnr-ctas: #c56b4e;        /* Color para CTAs */
    --rnr-soft-bg: #faf9f9;        /* Fondo gris Suave */
	--rnr-soft2-bg: #f7f8f9;   /* Fondo azul gris */
	--rnr-overlay: rgb(10 64 22 / 52%);
    --text-main: #2F2A26; 		  /* Color texto General - Gris Oscuro */
    --text-white: #c56b4e;		  /* Texto Blanco */
	--text-gray: #fafafa;		/* Para Textos en color gris claro*/
	--light-gray: #e2e2e2;		/* Para Textos en color gris claro*/
	--punk-pink: #ff0099;		/* Para el cta sticky R&R*/
	--neon-cyan: #00f3ff;		/* Para el cta hover R&R */
	--light-beige: #f6f0e3; /* Backgrounds cards or sections */
	--light-ivory: #F9F6F0; /*Background hero / sections */
    
    /* Variables de Fuentes */
    --font-head: GeneralSans-Variable; 
    --font-body: GeneralSans-Variable; 
	
	
	 /* Variables header nav */
    --header-height: 90px;
    --boutique-gold: #8c7851;
    --boutique-dark: #1a1a1a;

}

/*
=====================================
2. FONT FACE 
=====================================
*/
/**
* @license
*
* Font Family: General Sans
* Designed by: Frode Helland
* URL: https://www.fontshare.com/fonts/general-sans
* © 2025 Indian Type Foundry
*
* General Sans Extralight 
* General Sans ExtralightItalic 
* General Sans Light 
* General Sans LightItalic 
* General Sans Regular 
* General Sans Italic 
* General Sans Medium 
* General Sans MediumItalic 
* General Sans Semibold 
* General Sans SemiboldItalic 
* General Sans Bold 
* General Sans BoldItalic 
* General Sans Variable (Variable font)
* General Sans VariableItalic (Variable font)

*
*/
@font-face {
  font-family: 'GeneralSans-Extralight';
  src: url('assets/fonts/GeneralSans-Extralight.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Extralight.woff') format('woff'),
       url('assets/fonts/GeneralSans-Extralight.ttf') format('truetype');
  font-weight: 200;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-ExtralightItalic';
  src: url('assets/fonts/GeneralSans-ExtralightItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-ExtralightItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-ExtralightItalic.ttf') format('truetype');
  font-weight: 200;
  font-display: swap;
  font-style: italic;
}
@font-face {
  font-family: 'GeneralSans-Light';
  src: url('assets/fonts/GeneralSans-Light.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Light.woff') format('woff'),
       url('assets/fonts/GeneralSans-Light.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-LightItalic';
  src: url('assets/fonts/GeneralSans-LightItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-LightItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-LightItalic.ttf') format('truetype');
  font-weight: 300;
  font-display: swap;
  font-style: italic;
}
@font-face {
  font-family: 'GeneralSans-Regular';
  src: url('assets/fonts/GeneralSans-Regular.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Regular.woff') format('woff'),
       url('assets/fonts/GeneralSans-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-Italic';
  src: url('assets/fonts/GeneralSans-Italic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Italic.woff') format('woff'),
       url('assets/fonts/GeneralSans-Italic.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
  font-style: italic;
}
@font-face {
  font-family: 'GeneralSans-Medium';
  src: url('assets/fonts/GeneralSans-Medium.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Medium.woff') format('woff'),
       url('assets/fonts/GeneralSans-Medium.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-MediumItalic';
  src: url('assets/fonts/GeneralSans-MediumItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-MediumItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-MediumItalic.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
  font-style: italic;
}
@font-face {
  font-family: 'GeneralSans-Semibold';
  src: url('assets/fonts/GeneralSans-Semibold.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Semibold.woff') format('woff'),
       url('assets/fonts/GeneralSans-Semibold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-SemiboldItalic';
  src: url('assets/fonts/GeneralSans-SemiboldItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-SemiboldItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-SemiboldItalic.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
  font-style: italic;
}
@font-face {
  font-family: 'GeneralSans-Bold';
  src: url('assets/fonts/GeneralSans-Bold.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Bold.woff') format('woff'),
       url('assets/fonts/GeneralSans-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
  font-style: normal;
}
@font-face {
  font-family: 'GeneralSans-BoldItalic';
  src: url('assets/fonts/GeneralSans-BoldItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-BoldItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-BoldItalic.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
  font-style: italic;
}
/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 200.0 to 700.0
*/
@font-face {
  font-family: 'GeneralSans-Variable';
  src: url('assets/fonts/GeneralSans-Variable.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-Variable.woff') format('woff'),
       url('assets/fonts/GeneralSans-Variable.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: normal;
}
/**
* This is a variable font
* You can control variable axes as shown below:
* font-variation-settings: wght 700.0;
*
* available axes:
'wght' (range from 200.0 to 700.0
*/
@font-face {
  font-family: 'GeneralSans-VariableItalic';
  src: url('assets/fonts/GeneralSans-VariableItalic.woff2') format('woff2'),
       url('assets/fonts/GeneralSans-VariableItalic.woff') format('woff'),
       url('assets/fonts/GeneralSans-VariableItalic.ttf') format('truetype');
  font-weight: 200 700;
  font-display: swap;
  font-style: italic;
}

/*
=====================================
3. ESTILOS GLOBALES
===================================== 
*/
body {
    font-family: var(--font-body);
    color: var(--text-main);
    line-height: 1.6;
}

.separate-containers .site-main {
    margin: 0px;
}


h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-head);
    color: var(--rnr-theme-dark);
    font-weight: 700;
}

.bg-gray {margin: 4rem 0; background-color: var(--rnr-soft-bg);}
.bg-white {padding: 4rem 0; background-color: var(--text-white); }
.bg-blue-gray {padding: 4rem 0; background-color: var(--rnr-soft2-bg); }

.rnr-container {
    max-width: 100%;
    margin: 0 auto;
    padding: 0 60px;
}

.eng-wrapper {
    max-width: 800px;
    margin: 40px auto 0; /* Centrado horizontal */
}


.rnr-breadcrumbs {font-weight: 300; font-size: 0.85rem; color: var(--text-white); margin-bottom: 20px; text-transform: uppercase; letter-spacing: 1px; display: flex;    flex-wrap: wrap;    align-items: center;    gap: 8px;    position: relative;    z-index: 20; /* Asegura que esté encima de decoraciones */}/* Enlaces (Pasos previos) */ .crumb-link { color: var(--text-white); text-decoration: none; border-bottom: 1px solid transparent;    transition: all 0.2s ease;}.crumb-link:hover {color: var(--rnr-ctas); /* Rosa al pasar el mouse */    border-bottom-color: var(--rnr-ctas);}/* Separador (La flecha >) */.crumb-sep {color: var(--rnr-ctas); /* Amarillo o Cian */    font-weight: bold;}/* Página Actual (Sin enlace) */.crumb-current {color: var(--rnr-ctas); /* Cian para destacar dónde estás */    font-weight: bold;    text-shadow: 0 0 5px rgba(0, 243, 255, 0.3);}/* RESPONSIVE */@media (max-width: 900px) {.rnr-breadcrumbs { justify-content: center; /* Centrado en móvil */ font-size: 0.75rem;}}


/* 
==========================================================================
  4. HEADER & NAVEGACIÓN DESKTOP - MOBILE
========================================================================== 
*/


@media (min-width: 993px) {
    /* Ocultamos TODO lo relacionado con el móvil */
    .mobile-nav-wrapper, 
    .mobile-nav, 
    .rnr-mobile-toggle {
        display: none !important;
    }
    
    /* Nos aseguramos de que el desktop se vea */
    .desktop-nav {
        display: block !important;
    }
}

.rnr-nav {background-color: transparent;}

.rnr-nav ul  ul {background-color: var(--text-gray);}

.site-header {
    position: absolute; /* Flota sobre el video */
    top: 0;
    left: 0;
	padding: 0 !important;
    width: 100%;
    height: var(--header-height);
    z-index: 9999;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease;
    display: flex;
    align-items: center;
    background: transparent;
}

/* Header Inteligente: Aparece al hacer scroll hacia arriba */
.site-header.header-fixed {
    position: fixed;
    background: rgba(26, 26, 26, 0.9);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    height: 70px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
}

.site-header.header-hidden {
    transform: translateY(-100%); /* Se esconde al bajar */
}

.header-inner {
    display: flex;
    justify-content: space-between; /* Logo a la izquierda, Menú/Botón a la derecha */
    align-items: center;
    width: 100%;
    padding: 0;
}


/* Branding */

.site-branding {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
}

.desktop-nav {
    margin-left: auto; /* Empuja el menú hacia la derecha */
}

.site-branding img {
    height: 150px; 
    width: auto;
	display: block;
    transition: all 0.3s ease;
	justify-content: left;
}

.header-fixed .site-branding img {
    height: 45px;
}

/* --- DESKTOP NAV --- */
.desktop-nav ul {
    display: flex;
    align-items: center;
    gap: 30px;
    margin: 0;
    padding: 0;
    list-style: none;
}


.desktop-nav a {
    color: #fff;
    text-decoration: none;
    font-size: 12px !important;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    transition: color 0.3s ease;
}

.desktop-nav a:hover {
    color: var(--boutique-gold);
}

/* Botón CTA Refinado */
.desktop-nav li.menu-cta a {
    border: 1px solid #fff;
    padding: 10px 25px;
    border-radius: 2px; /* Cuadrado boutique */
    transition: all 0.3s ease;
}

.desktop-nav li.menu-cta a:hover {
    background: #fff;
    color: #000 !important;
}

/* --- CHEVRONS (FLECHAS) PARA SUBMENÚS --- */
.desktop-nav .menu-item-has-children > a {
    padding-right: 20px !important;
    position: relative;
}

/* Creamos la flecha con CSS puro */
.desktop-nav .menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid #fff; /* Color de la flecha */
    transition: transform 0.3s ease;
    opacity: 0.7;
}

/* Giro de la flecha al hacer hover */
.desktop-nav .menu-item-has-children:hover > a::after {
    transform: translateY(-50%) rotate(180deg);
}

/* Estilo del submenú (el dropdown) para que no sea azul */
ul.sub-menu  {
    position: absolute;
    top: 100%;
    left: 0;
    padding: 15px 0;
    min-width: 200px;
    display: none;
    flex-direction: column;
    border-top: 2px solid var(--boutique-gold);
}

.rnr-nav ul ul li:hover {
	background-color: var(--boutique-gold);
}

.sub-menu li a:hover {
	
	color:var(--light-beige);
}

.sub-menu li a {
    padding: 10px 20px;
    font-size: 12px;
    letter-spacing: 1px;
	color: var(--boutique-gold);
}

/* ------------------
MOBILE NAV (FULL SCREEN OVERLAY) 
--------------------- */
@media (max-width: 992px) {
    
	.desktop-nav {display:none;}

    .rnr-mobile-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        background: transparent;
        border: none;
        cursor: pointer;
        z-index: 11000 !important; /* Por encima de todo */
        position: relative;
    }

    /* 2. Construcción de las 3 líneas */
    .hamburger-box {
        width: 30px;
        height: 24px;
        display: inline-block;
        position: relative;
    }

    .hamburger-inner, 
    .hamburger-inner::before, 
    .hamburger-inner::after {
        width: 30px;
        height: 2px;
        background-color: #ffffff !important; /* Líneas blancas */
        position: absolute;
        transition: transform 0.2s ease;
    }

    .hamburger-inner {
        top: 50%;
        transform: translateY(-50%);
    }

    .hamburger-inner::before {
        content: "";
        top: -8px; /* Línea superior */
        left: 0;
    }

    .hamburger-inner::after {
        content: "";
        top: 8px; /* Línea inferior */
        left: 0;
    }

    /* 3. Animación a X cuando está activo */
    .is-active .hamburger-inner {
        background-color: transparent !important; /* Esconde la línea central */
    }

    .is-active .hamburger-inner::before {
        transform: translateY(8px) rotate(45deg);
    }

    .is-active .hamburger-inner::after {
        transform: translateY(-8px) rotate(-45deg);
    }

    /* 4. El Overlay (Asegurar que el texto sea blanco) */
    .mobile-nav {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: #1a1a1a !important; /* Fondo oscuro sólido */
        display: flex !important;
        flex-direction: column;
        justify-content: center;
		 text-align: center;
        align-items: center;
        z-index: 10500 !important;
        
        /* Oculto por defecto */
        visibility: hidden;
        opacity: 0;
        transition: all 0.4s ease;
    }

    .mobile-nav.is-open {
        visibility: visible;
        opacity: 1;
    }

    .mobile-nav ul {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 40px !important; /* Espacio lateral */
        width: 100%;
        max-height: 80vh; /* Para que si hay muchos items, se pueda hacer scroll */
        overflow-y: auto;
    }

    .mobile-nav li {
        display: block !important;
        margin: 20px 0 !important; /* Espacio entre links */
        opacity: 1 !important;
        visibility: visible !important;
    }

    .mobile-nav a {
        color: #ffffff !important;
        font-family: 'Playfair Display', serif;  fuente premium */
        font-size: 26px !important;
        text-decoration: none !important;
        letter-spacing: 1px;
        transition: color 0.3s ease;
        display: inline-block;
    }

    .mobile-nav a:hover {
        color: #8c7851 !important;
    }
	
	.mobile-nav ul ul {
        background: transparent !important;
        margin-top: 10px !important;
        padding-left: 0 !important;
    }
	
	.mobile-nav ul ul a {
        font-size: 18px !important;
        opacity: 0.8;
    }
	
	.mobile-nav li.menu-item-has-children > a {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
    }

    /* El indicador (+) */
    .mobile-nav li.menu-item-has-children > a::after {
        content: "+";
        font-family: Arial, sans-serif; /* Para asegurar que el + sea limpio */
        font-size: 20px;
        color: #8c7851;
        transition: transform 0.3s ease;
    }

    /* Cuando el submenú está abierto, rotamos el + para que parezca una x o - */
    .mobile-nav li.is-open > a::after {
        transform: rotate(45deg);
        color: #fff;
    }

    /* OCULTAR SUBMENÚS POR DEFECTO */
    .mobile-nav ul.sub-menu {
        display: none !important; /* Oculto */
        max-height: 0;
        overflow: hidden;
        background: rgba(255, 255, 255, 0.03); /* Fondo muy sutil para diferenciar */
        padding: 0 !important;
        margin: 10px 0 !important;
        transition: all 0.3s ease;
    }

    /* MOSTRAR SUBMENÚ CUANDO EL PADRE TIENE LA CLASE .is-open */
    .mobile-nav li.is-open > ul.sub-menu {
        display: block !important;
        max-height: 500px; /* Suficiente para los hijos */
        padding: 10px 0 !important;
    }

    /* Estilo de los links de segundo nivel (Hijos) */
    .mobile-nav ul.sub-menu li {
        margin: 10px 0 !important;
    }

    .mobile-nav ul.sub-menu a {
        font-size: 18px !important; /* Más pequeños que el padre */
        opacity: 0.7;
        font-family: inherit;
    }
	
	.menu-cta a {
    border: 1px solid #fff;
    padding: 10px 25px;
    border-radius: 2px; /* Cuadrado boutique */
    transition: all 0.3s ease;
}

	li.menu-cta a:hover {
    background: #fff;
    color: #000 !important;
}

    .site-branding {
        z-index: 11000 !important;
        position: relative;
    }
}



/*
=====================================
5. HERO 
=====================================
*/
.conta-hero {
    position: relative;
	overflow: hidden;
    margin-top: 0 !important; 
    padding-top: 120px; 
    background-position: center top; 
	z-index: 1;
	
}

/* --- HERO SECTION --- */
.conta-hero {
    position: relative;
    height: 100vh; /* Altura impactante */
    min-height: 500px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
	text-align: center;	
}
/* Overlay oscuro para que se lea el texto */
.conta-hero::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(90deg, rgba(10,37,64,0.1) 0%, rgba(10,37,64,0.1) 100%);
}

.hero-content {
    position: relative; z-index: 2; color: #fff; max-width: 900px; text-align: left;
}
.hero-content h1 {
    font-size: 4rem; color: #fff; line-height: 1.1; margin-bottom: 20px;
}
.hero-content p {
    font-size: 1.2rem; margin-bottom: 30px; opacity: 0.9;
}

.hero-desc {
	font-size: 1.5rem; margin-bottom: 2rem;
}

/* --- HERO REFINADO --- */

.hero-flex-center {
    display: flex;
    flex-direction: column;
    align-items: start;
    width: 100%;
    height: 100%;
    justify-content: center;
}

.hero-content .text-center {
    text-align: left;
    max-width: 800px;
    margin: 0 auto;
    z-index: 2;
}

.hero-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%); /* Centrado perfecto */
    object-fit: cover; /* Clave: hace que el video se comporte como un background-size: cover */
    z-index: -1; /* Se coloca detrás del contenido */
    pointer-events: none; /* Evita que el video interfiera con clicks en botones */
}

/* Asegúrate de que el contenedor de contenido esté por encima */
.hero-flex-center {
    position: relative;
    z-index: 2;
}

/* Opcional: Capa de superposición (overlay) para que el texto se lea mejor */
/* Si el video es muy brillante, esto ayudará al contraste */
.conta-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3); /* Ajusta la opacidad según necesites */
    z-index: 0; /* Por encima del video, debajo del texto */
}


/* Ajuste Responsivo para Móvil */
@media (max-width: 768px) {
    .hero-usp-bar {
        flex-direction: column; /* Apilados */
        align-items: flex-start; /* Alineados a la izquierda */
        gap: 15px;
        padding: 20px;
        width: 100%;
        margin-top: 30px;
    }
    
    /* Reducimos un poco el padding del hero en móvil para que quepa todo */
    .conta-hero {
        padding: 100px 0 60px 0; /* Ajuste de aire */
        height: auto; /* Altura automática en móvil */
        min-height: auto;
    }
	
	.hero-content h1 {
    font-size: 3rem;
}
}

/*
====================================
6. SOBRE NOSOTROS
====================================
*/


/* Ajuste para la siguiente sección para que no se tape con la barra */
.section-about {
    padding-top: 100px; 
}

/* --- RESPONSIVE --- */
@media (max-width: 768px) {
    /* Barra USP apilada en móvil */
    .hero-usp-bar {
        position: relative;
        bottom: auto; left: auto; transform: none;
        width: 100%;
        flex-direction: column;
        gap: 20px;
        align-items: flex-start;
        margin-top: 40px;
    }
    
    .section-about { padding-top: 50px; }

    /* Botón Flotante Móvil (Fuera del Hamburger) */
    /* Esto requiere un pequeño hook o HTML en el header */
    .mobile-header-cta {
        display: block;
        position: fixed; /* O absolute en el header */
        top: 15px;
        right: 60px; /* A la izquierda del hamburger */
        background: var(--rnr-ctas);
        color: #fff;
        padding: 8px 15px;
        border-radius: 4px;
        font-size: 0.85rem;
        font-weight: bold;
        z-index: 100;
        text-decoration: none;
    }
}

@media (min-width: 769px) {
    .mobile-header-cta { display: none; } /* Ocultar en escritorio */
}

/* --- SECCIÓN NOSOTROS (LAYOUT 60/40) --- */
.section-about {
    padding: 100px 0;
    background: #fff;
    overflow: hidden;
}

.about-split-layout {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr; /* Proporción aprox 60% - 35% + hueco */
    gap: 80px; /* Separación amplia y elegante */
    align-items: center;
}

/* Columna Izquierda */
.about-content-col h2 {
    font-size: 3rem;
    margin-bottom: 30px;
    line-height: 1.1;
}

.about-body p {
    font-size: 1.05rem;
    color: #555;
    margin-bottom: 20px;
}

/* Fila inferior (Dato + Botón) */
.about-footer-row {
    display: flex;
    align-items: center;
    gap: 40px;
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid #eee;
}

/* Dato Espectacular */
.stat-box {
    display: flex;
    flex-direction: column;
}

.stat-number {
    font-family: var(--font-head);
    font-size: 3.5rem;
    line-height: 1;
    font-weight: 800;
    color: var(--rnr-ctas);
}

.stat-label {
    font-size: 0.85rem;
    text-transform: uppercase;
    color: var(--rnr-theme-dark);
    font-weight: 700;
    letter-spacing: 1px;
}

/* Botón Outline (Borde) */
.btn-outline {
    background: transparent;
    color: var(--rnr-theme-dark);
    border: 2px solid var(--rnr-theme-dark);
    padding: 12px 35px;
}

.btn-outline-home {
	background: transparent;
    border: 1px solid #fff;
    padding: 20px 35px;
    border-radius: 2px;
	color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    transition: color 0.3s ease;
}

.btn-outline-home:hover {
    background: #fff !important;
    color: #000 !important;
}

.btn-outline:hover {
    background: var(--rnr-theme-dark);
    color: #fff;
}


/* --- MOSAICO ASIMÉTRICO (DERECHA) --- */
.about-mosaic-col {
    position: relative;
}

.mosaic-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 columnas internas */
    gap: 20px;
    position: relative;
    z-index: 2;
}

.mosaic-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}

/* Alturas fijas para controlar el diseño */
.mosaic-item { height: 300px; }

/* La Asimetría (Magia CSS) */
/* Bajamos la columna derecha del mosaico */
.item-2, .item-4 {
    transform: translateY(30px);
}

/* Subimos un poco la imagen 3 para crear tensión visual */
.item-3 {
    margin-top: -5px; 
}

/* Efecto Hover */
.mosaic-item:hover img {
    transform: scale(1.03);
}

/* Forma Decorativa Detrás */
.mosaic-shape {
    position: absolute;
    top: 10%; right: -20px;
    width: 80%; height: 80%;
    background: var(--rnr-soft-bg);
    z-index: -1;
    border-radius: 20px;
    transform: rotate(5deg);
}

/* RESPONSIVE */
@media (max-width: 900px) {
	.rnr-container {padding: 0 30px;}
	
    .about-split-layout {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .about-footer-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
    }
    
    /* En móvil, simplificamos el mosaico */
    .mosaic-item { height: 180px; }
    .item-2, .item-4, .item-3 { transform: none; margin: 0; }
}



/*
========================================= 
7. HOME SECCIÓN SERVICIOS
========================================= 
*/

.programs-footer-cta {
    margin-top: 20px;
    text-align: center;
    position: relative;
}

.cta-line {
    width: 1px;
    height: 60px;
    background-color: #8c7851;
    margin: 0 auto 30px;
    opacity: 0.5;
}

.btn-explore-hub {
    display: inline-flex;
    flex-direction: column;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-explore-hub .mono-text {
    font-size: 10px;
    color: #8c7851;
    letter-spacing: 3px;
    margin-bottom: 10px;
}

.btn-explore-hub .serif-link {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    color: #1a1a1a;
    border-bottom: 1px solid transparent;
    padding-bottom: 5px;
    transition: border-color 0.3s;
}

.btn-explore-hub:hover .serif-link {
    border-color: #8c7851;
    color: #8c7851;
}

/* Ajuste sutil para la Home */
.home-featured-programs {
    padding-bottom: 5rem; /* Más espacio para dejar respirar el CTA */
}

.section-services-boutique {
    padding: 100px 0;
    background-color: #2e4b32;
}

.services-header-center {
    text-align: center;
    margin-bottom: 60px;
}

.services-boutique-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

/* Tarjeta */
.boutique-card {
    background: var(--light-beige); /* Fondo crema muy sutil */
    border: 1px solid #e0ddd5;
    border-radius: 8px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

.boutique-card:hover {
    transform: translateY(-5px);
}

/* Imagen y Tag */
.card-image-wrapper {
    position: relative;
    padding: 15px; /* Margen interno para que la imagen no toque los bordes, como en la captura */
}

.card-image-wrapper img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 4px;
}

.card-tag {
    position: absolute;
    top: 25px;
    left: 25px;
    background: rgba(140, 120, 81, 0.8);
    color: white;
    padding: 4px 10px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 2px;
}

/* Contenido */
.card-content {
    padding: 0 25px 25px 25px;
}

.card-title-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    border-bottom: 1px solid #e0ddd5;
    padding-bottom: 10px;
    margin-bottom: 15px;
}

.card-title-row h3 {
    font-family: 'Playfair Display', serif;
    font-size: 24px;
    margin: 0;
}

.card-price {
    font-size: 14px;
    color: var(--boutique-gold);
}

.card-description {
    font-size: 14px;
    color: #666;
    line-height: 1.5;
    margin-bottom: 20px;
}

.card-specs {
    border-top: 1px solid #e0ddd5;
    margin-top: 15px;
    padding-top: 10px;
}

.spec-row {
    display: flex;
    justify-content: space-between;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.spec-label { color: #999; }
.spec-value { color: #333; font-weight: 500; }

/* Botón */
.card-actions {
    text-align: center;
}

.btn-boutique {
    display: inline-block;
    padding: 12px 30px;
    border: 1px solid #333;
    color: #333;
    text-decoration: none;
    font-size: 14px;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.btn-boutique:hover {
    background: #333;
    color: #fff;
}

/* --- SECTION STUDIO CUSTOM ITEMS --- */
/* --- SECTION ATELIER BOHO --- */
.section-atelier-boho {
    position: relative;
    padding: 140px 0;
    background-color: #F9F6F0; /* Crema Arena Cálido */
    color: #3A2E2A; /* Marrón oscuro cálido en lugar de negro */
    overflow: hidden;
}

/* Textura de estuco/papel acuarela */
.atelier-texture {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 1;
}

.atelier-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

/* --- EL COLLAGE VISUAL --- */
.atelier-visual {
    position: relative;
    padding: 20px;
}

/* La forma de Canto Rodado (Pebble Shape) */
.main-pebble-img {
    width: 90%;
    max-width: 500px;
    aspect-ratio: 4/5;
    object-fit: cover;
    /* La magia de la asimetría orgánica */
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    box-shadow: 15px 20px 40px rgba(58, 46, 42, 0.1);
    transition: border-radius 3s ease-in-out;
}

/* Sutil animación como si "respirara" */
.main-pebble-img:hover {
    border-radius: 40% 60% 70% 30% / 40% 50% 60% 50%;
}

/* Foto Secundaria (Polaroid) */
.makers-polaroid {
    position: absolute;
    bottom: -30px;
    right: -20px;
    width: 220px;
    background: #fff;
    padding: 10px 10px 30px 10px; /* Borde estilo foto antigua */
    box-shadow: 5px 15px 30px rgba(0,0,0,0.1);
    transform: rotate(4deg);
    z-index: 5;
}

.makers-polaroid img {
    width: 100%;
    height: auto;
    filter: sepia(0.1) contrast(1.1);
}

/* Trazos a lápiz */
.pencil-line {
    position: absolute;
    top: 15%; left: -20px;
    width: 80px; height: 80px;
    z-index: 10;
}

.pencil-note {
    position: absolute;
    top: 10%; left: -60px;
    font-family: 'Caveat', cursive;
    font-size: 20px;
    color: #5A4A42;
    transform: rotate(-10deg);
}

/* Sello Circular */
.boho-stamp {
    position: absolute;
    top: -20px; right: 20px;
    width: 100px; height: 100px;
    animation: spin 20s linear infinite;
    z-index: 0;
}

@keyframes spin { 100% { transform: rotate(360deg); } }

/* --- LA NARRATIVA (Textos) --- */
.typewriter-eyebrow {
    font-family: 'Courier New', Courier, monospace;
    font-size: 13px;
    color: #C08B6B; /* Terracotta suave */
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 20px;
    display: block;
}

.atelier-title {
    font-family: 'Playfair Display', serif;
    font-size: 52px;
    line-height: 1.1;
    color: #3A2E2A;
    margin-bottom: 30px;
}

.atelier-title em {
    color: #C08B6B;
    font-style: italic;
    font-weight: normal;
}

.atelier-lead {
    font-size: 18px;
    line-height: 1.8;
    color: #665C58;
    margin-bottom: 50px;
}

/* Categorías limpias */
.atelier-categories {
    list-style: none;
    padding: 0;
    margin-bottom: 50px;
}

.atelier-categories li {
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(58, 46, 42, 0.1);
    padding-bottom: 15px;
}

.atelier-categories strong {
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    display: block;
    margin-bottom: 5px;
    color: #3A2E2A;
}

.atelier-categories span {
    font-size: 15px;
    color: #888;
}

/* Acción: Botón Orgánico */
.atelier-action {
    display: flex;
    align-items: center;
    gap: 15px;
}

.btn-boho-link {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    color: #3A2E2A;
    text-decoration: none;
    position: relative;
    transition: color 0.3s;
}

.btn-boho-link::after {
    content: '';
    position: absolute;
    bottom: -5px; left: 0;
    width: 100%; height: 1px;
    background-color: #3A2E2A;
    transition: transform 0.3s;
    transform-origin: right;
}

.btn-boho-link:hover::after {
    transform: scaleX(0);
    transform-origin: left;
}

.btn-boho-link:hover { color: #C08B6B; }

.hand-arrow {
    transition: transform 0.3s;
}

.btn-boho-link:hover + .hand-arrow {
    transform: translateX(10px);
}

/* Responsive */
@media (max-width: 992px) {
    .atelier-layout { grid-template-columns: 1fr; gap: 60px; }
    .makers-polaroid { right: 0; width: 180px; }
    .atelier-title { font-size: 40px; }
    .pencil-note, .pencil-line { display: none; } /* Limpieza en móvil */
}

/* ======================
7.9 HOME APPRENTICESHIP
   ====================== */
   
   .section-home-student { padding: 120px 0; background-color: var(--light-ivory); }
.student-split { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: center; }

.student-intro { font-family: 'Playfair Display', serif; font-size: 24px; color: #8c7851; margin-bottom: 20px; }
.student-story { font-size: 16px; line-height: 1.8; color: #666; margin-bottom: 40px; }

/* The Polaroid Effect */
.polaroid-frame {
    background: #fff;
    padding: 15px 15px 60px 15px;
    box-shadow: 10px 20px 50px rgba(0,0,0,0.08);
    transform: rotate(2deg);
    border: 1px solid #eee;
}
.polaroid-frame img { width: 100%; height: auto; display: block; filter: contrast(1.05) sepia(0.05); }
.photo-label { display: block; text-align: center; margin-top: 25px; font-size: 22px; color: #8c7851; }

@media (max-width: 992px) {
    .student-split { grid-template-columns: 1fr; gap: 60px; }
    .student-info { order: 2; text-align: center; }
    .student-visual { order: 1; }
}

/*
========================================= 
7.10 HOME SECCIÓN CONTACTO
========================================= 
*/
.section-contact {
    padding: 100px 0;
    background-color: #fdfcf9; /* Fondo crema muy suave */
}

.contact-layout {
    display: grid;
    grid-template-columns: 45% 50%;
    gap: 5%;
}

.contact-title {
    font-family: 'Playfair Display', serif;
    font-size: 42px;
    margin-bottom: 20px;
}

.contact-desc {
    color: #666;
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 1.6;
}

/* Items de Contacto */
.contact-item {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
    align-items: center;
}

.icon-simple {
    color: var(--boutique-gold);
}

.value {
    color: #333;
    text-decoration: none;
    font-weight: 500;
}

/* Horarios */
.contact-hours {
    margin-top: 30px;
    padding: 20px;
    border-top: 1px solid #e0ddd5;
}

.hours-label {
    display: block;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 12px;
    margin-bottom: 10px;
    color: var(--boutique-gold);
}

.contact-hours p {
    font-size: 14px;
    margin-bottom: 5px;
    color: #555;
}

/* Mapa */
.map-wrapper {
    margin-top: 30px;
    border: 1px solid #e0ddd5;
	border-radius: 4px;
    padding: 5px;
    background: #fff;
}

/* Formulario Estilo Boutique */
.form-card-boutique {
    background: #fff;
    padding: 50px;
    border-radius: 4px;
    border: 1px solid #e0ddd5;
    box-shadow: 0 15px 40px rgba(140, 120, 81, 0.05);
}

.form-card-boutique h3 {
    font-family: 'Playfair Display', serif;
    font-size: 28px;
    margin-bottom: 10px;
}

/* Ajustes para los inputs del Contact Form 7 */
.wpcf7-form-control {
    width: 100%;
    padding: 12px;
    border: 1px solid #eee;
    background: #fdfcf9;
    margin-bottom: 15px;
    border-radius: 2px;
}

.wpcf7-submit {
    background: #333 !important;
    color: #fff !important;
    border: none !important;
    padding: 15px 40px !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    width: 100%;
}

@media (max-width: 992px) {
    .contact-layout { grid-template-columns: 1fr; }
}

/* Estilos CF7 Inputs */
.rnr-form-grid {
    display: grid;
}

.form-group label {
    display: block; font-size: 0.9rem; font-weight: 600; margin-bottom: 5px; color: #555;
}

.wpcf7-form-control-wrap input,
.wpcf7-form-control-wrap select,
.wpcf7-form-control-wrap textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: #f9f9f9;
    font-family: var(--font-body);
    font-size: 1rem;
}

.wpcf7-form-control-wrap input:focus,
.wpcf7-form-control-wrap textarea:focus {
    border-color: var(--rnr-theme-dark);
    background: #fff;
    outline: none;
}

/* Botón de Enviar */
.wpcf7-submit {
    background: var(--rnr-theme-dark);
    color: #fff;
    border: none;
    padding: 15px 30px;
    font-weight: bold;
    text-transform: uppercase;
    cursor: pointer;
    width: 100%;
    border-radius: 4px;
    transition: 0.3s;
}

.wpcf7-submit:hover {
    background: var(--rnr-ctas);
    color: #fff;
}

/* Responsive */
@media (max-width: 900px) {
    .contact-layout { grid-template-columns: 1fr; gap: 40px; }
    .contact-title { font-size: 2.5rem; }
    .form-card { padding: 30px 20px; }
}



/*
========================================= 
11. SECCIÓN TESTIMONIOS
=========================================
*/ 
.section-testimonials {
    padding: 100px 0;
    background: #fff;
    overflow: hidden; /* Evita scrollbars raros */
}

/* Layout Principal */
.testimonials-layout {
    display: grid;
    grid-template-columns: 40% 55%;
    gap: 5%;
    align-items: center;
	align-items: start;
}

/* --- COLUMNA IZQUIERDA (INFO) --- */


.testi-title {
    font-size: 2.5rem;
    line-height: 1.1;
    margin-bottom: 30px;
    color: var(--rnr-theme-dark);
}

/* Caja Dorada de Score */
.gmb-score-box {
    background: var(--rnr-ctas);
    color: #fff;
    padding: 25px;
    border-radius: 8px;
    display: inline-block;
    min-width: 200px;
    box-shadow: 0 10px 30px rgba(197, 160, 89, 0.3);
}

.score-stars {
    color: #fff; /* O amarillo claro */
    font-size: 1.2rem;
    letter-spacing: 3px;
    margin-bottom: 5px;
}

.score-number {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 10px;
}
.score-number .total { font-size: 1rem; opacity: 0.8; font-weight: 400; }

.score-source {
    display: flex; align-items: center; gap: 8px;
    font-size: 0.8rem; opacity: 0.9;
}

/* Botones de Navegación */
.slider-controls { margin-top: 30px; display: flex; gap: 10px; }

.nav-arrow {
    background: var(--rnr-soft-bg);
    color: var(--rnr-theme-dark);
    border: none;
    width: 40px; height: 40px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1.2rem;
    transition: 0.3s;
    display: flex; align-items: center; justify-content: center;
}
.nav-arrow:hover { background: var(--rnr-theme-dark); color: #fff; }


/* --- COLUMNA DERECHA (SLIDER CSS SNAP) --- */
.testi-slider-col {
    position: relative;
    width: 100%;
    /* Efecto de desvanecimiento a la derecha */
    mask-image: linear-gradient(to right, black 80%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black 80%, transparent 100%);
}

.testi-track {
    display: flex;
    gap: 30px;
    overflow-x: auto; /* Permite scroll horizontal */
    scroll-snap-type: x mandatory; /* Magia: se ajusta a las tarjetas */
    padding-bottom: 20px; /* Espacio para scrollbar oculto */
    scrollbar-width: none; /* Ocultar scrollbar Firefox */
}
.testi-track::-webkit-scrollbar { display: none; /* Ocultar scrollbar Chrome */ }

.testi-slide {
    flex: 0 0 300px; /* Ancho fijo de cada tarjeta */
    scroll-snap-align: start; /* Donde se detiene el scroll */
	height: 400px;
}

/* Estilo Tarjeta (Reutilizado y Ajustado) */
.testi-card {
    background: var(--rnr-soft-bg);
    padding: 30px;
    border-radius: 8px;
    height: 100%; /* Altura igualada */
    display: flex;
    flex-direction: column;
    border-left: 4px solid var(--rnr-ctas);
    transition: transform 0.3s;
}

.testi-card:hover { transform: translateY(-5px); background: #fff; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }

.quote-icon { font-size: 3rem; color: #ddd; line-height: 0.5; margin-bottom: 10px; }
.testi-text { font-style: italic; color: #555; font-size: 1.1rem; margin-bottom: 20px; flex-grow: 1; }
.testi-author strong { display: block; color: var(--rnr-theme-dark); }
.testi-author span { font-size: 0.8rem; color: #888; text-transform: uppercase; letter-spacing: 1px; }


/* --- RESPONSIVE --- */
@media (max-width: 900px) {
    .testimonials-layout {
        grid-template-columns: 1fr; /* Una columna */
        gap: 40px;
    }
	
	.testi-title {
    font-size: 2rem;
	}
    
    /* En móvil, los controles se pueden ocultar o poner abajo */
    .slider-controls { display: none; } 
    
    .testi-track { padding-right: 20px; } /* Espacio al final en móvil */
    .testi-slide { flex: 0 0 85%; } /* Tarjeta ocupa 85% pantalla móvil */
	
	/* Estilo Tarjeta (Reutilizado y Ajustado) */
.testi-card {width: 300px;}

}

.section-testimonials {
    padding: 100px 0;
    background-color: #FAF9F6;
}

.testimonials-layout {
    display: grid;
    grid-template-columns: 35% 65%;
    gap: 50px;
    align-items: center;
}

/* Columna de Autoridad */
.trust-platforms {
    margin: 30px 0;
}

.platform-badge {
    background: #fff;
    padding: 15px;
    border: 1px solid #e0ddd5;
    border-radius: 4px;
    margin-bottom: 15px;
}

.platform-badge.tripadvisor {
    border-left: 4px solid #34e0a1; /* El color verde de TripAdvisor */
}

.platform-badge {
    border-left: 4px solid var(--punk-pink);
}

.platform-header {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    text-transform: uppercase;
    color: #999;
    margin-bottom: 5px;
}

.platform-score strong {
    font-size: 20px;
    color: #333;
}

.platform-score span {
    color: var(--boutique-gold);
    font-size: 14px;
}

/* Tarjetas de Testimonios */
.testi-slider-col {
    overflow: hidden;
}

.testi-track {
    display: flex;
    transition: transform 0.5s ease;
}

.testi-slide {
    min-width: 100%;
    padding: 10px;
}

.testi-card {
    background: #fff;
    padding: 50px;
    border-radius: 8px;
    position: relative;
    box-shadow: 0 10px 30px rgba(0,0,0,0.03);
}

.testi-source-icon {
    position: absolute;
    top: 30px;
    right: 30px;
    opacity: 0.5;
}

.quote-icon {
    font-family: 'Playfair Display', serif;
    font-size: 80px;
    color: var(--boutique-gold);
    line-height: 1;
    position: absolute;
    top: 20px;
    left: 40px;
    opacity: 0.1;
}

.testi-text {
    font-size: 18px;
    line-height: 1.8;
    font-style: italic;
    color: #444;
    margin-bottom: 30px;
}

.testi-author strong {
    display: block;
    font-size: 16px;
    color: #111;
}

.testi-author span {
    font-size: 13px;
    color: #999;
}

/* Controles */
.slider-controls {
    display: flex;
    gap: 15px;
    margin-top: 30px;
}

.nav-arrow {
    background: none;
    border: 1px solid var(--boutique-gold);
    color: var(--boutique-gold);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    transition: 0.3s;
}

.nav-arrow:hover {
    background: var(--boutique-gold);
    color: #fff;
}

@media (max-width: 992px) {
    .testimonials-layout { grid-template-columns: 1fr; }
}

/*
====================================
12. FOOTER
====================================
*/
.site-footer {
    background-color: #1a1a1a;
    color: #fff;
    padding-top: 80px;
}

/* Statement Section */
.footer-statement {
    padding-bottom: 80px;
    border-bottom: 1px solid #333;
    text-align: center;
}

.big-quote {
    font-family: 'Playfair Display', serif;
    font-size: 5vw; /* Tamaño dinámico según pantalla */
    line-height: 1.1;
    color: #fdfcf9;
    margin-bottom: 40px;
    font-style: italic;
}

.final-cta p {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--boutique-gold);
    margin-bottom: 20px;
}

.btn-footer-cta {
    display: inline-block;
    padding: 15px 40px;
    border: 1px solid var(--boutique-gold);
    color: var(--boutique-gold);
    text-decoration: none;
    transition: 0.3s;
}

.btn-footer-cta:hover {
    background: var(--boutique-gold);
    color: #fff;
}

/* Main Footer */
.footer-main {
    padding: 80px 0;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
}

.footer-col h4 {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    margin-bottom: 25px;
    color: var(--boutique-gold);
}

.footer-col ul {
    list-style: none;
    padding: 0;
}

.footer-col ul li {
    margin-bottom: 12px;
}

.footer-col ul li a {
    color: #aaa;
    text-decoration: none;
    font-size: 14px;
    transition: color 0.3s;
}

.footer-col ul li a:hover {
    color: #fff;
}

.footer-logo {
    max-width: 150px;
    margin-bottom: 20px;
}

.footer-socials {
    display: flex;
    gap: 15px;
    margin-top: 20px;
}

.footer-socials a {
    color: #fff;
    font-size: 20px;
}

/* Sub-Footer */
.footer-bottom {
    padding: 30px 0;
    border-top: 1px solid #333;
    font-size: 12px;
    color: #666;
}

.bottom-flex {
    display: flex;
    justify-content: space-between;
}

.agency-credit a {
    color: var(--boutique-gold);
    text-decoration: none;
}

/* Mobile Responsive */
@media (max-width: 992px) {
    .big-quote { font-size: 40px; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
    .footer-grid { grid-template-columns: 1fr; }
    .bottom-flex { flex-direction: column; gap: 10px; text-align: center; }
}

/*
====================================
13. PÁGINA COURSES PILAR & SINGLE
====================================
*/
/* --- COURSE LP STYLES --- */

.course-hero {
    height: 80vh;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    color: #FDFCF9;
}

.hero-overlay-warm {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to right, rgba(58, 46, 42, 0.7) 20%, transparent 80%);
}

/* Atelier Specs: El bloque informativo rápido */
.section-course-specs {
    background: #fff;
    padding: 40px 0;
    border-bottom: 1px solid #eee;
}

.specs-grid {
    display: flex;
    justify-content: space-between;
    text-align: center;
}

.spec-box .mono-label {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: #C08B6B;
    letter-spacing: 2px;
    margin-bottom: 5px;
}

.spec-box strong {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    color: #3A2E2A;
}

/* Roadmap Grid: Proceso Escaneable */
.section-course-journey {
    padding: 120px 0;
    background-color: #F9F6F0; /* Fondo crema textura */
}

.journey-intro {
    max-width: 800px;
    margin-bottom: 80px;
}

.roadmap-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px;
}

.roadmap-pillar {
    position: relative;
    padding: 40px;
    background: #fff;
    border: 1px solid #e0ddd5;
    box-shadow: 10px 10px 0px rgba(192, 139, 107, 0.05); /* Sombra rígida boho */
}

.handwritten-num {
    font-family: 'Caveat', cursive;
    font-size: 42px;
    color: #C08B6B;
    position: absolute;
    top: -25px; left: 20px;
}

.roadmap-pillar h4 {
    font-family: 'Playfair Display', serif;
    font-size: 22px;
    margin-bottom: 15px;
    color: #3A2E2A;
}

.roadmap-pillar p {
    font-size: 15px;
    line-height: 1.6;
    color: #666;
}

/* Anotación manuscrita al margen */
.handwritten-annotation {
    margin-top: 60px;
    text-align: right;
    max-width: 400px;
    margin-left: auto;
}

.handwritten-annotation .handwritten {
    font-family: 'Caveat', cursive;
    font-size: 24px;
    color: #5A4A42;
    line-height: 1.2;
}

/* Botón Boho White */
.btn-boho-white {
    display: inline-block;
    border: 1px solid #fff;
    padding: 15px 40px;
    color: #fff !important;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 2px;
    transition: 0.3s;
    margin-top: 30px;
}

.btn-boho-white:hover {
    background: #fff;
    color: #3A2E2A !important;
}

@media (max-width: 768px) {
    .specs-grid { flex-direction: column; gap: 30px; }
    .roadmap-grid { grid-template-columns: 1fr; }
}

/* RESPONSIVE */
@media(max-width: 768px) {
    .hero-trust-seal { top: -60px; right: 50%; transform: translateX(50%); }
    .res-dynamic-content { padding: 30px; }
    .ledger-lines { display: none; } /* En móvil quitamos las líneas complejas */
}

/* Resultados Grid */
.results-grid { display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; }
.result-item { text-align: center; width: 200px; }
.result-item img { height: 60px; margin-bottom: 15px; }
.result-item h4 { font-size: 1.1rem; }

/* Relacionados */
.related-grid { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; flex-wrap: wrap; }

.related-card {
    background: #fff; padding: 20px 30px; border: 1px solid #eee; border-radius: 6px;
    text-decoration: none; color: var(--rnr-theme-dark); font-weight: bold;
    display: flex; align-items: center; gap: 10px; transition: 0.3s;
}
.related-card:hover { border-color: var(--rnr-ctas); transform: translateY(-3px); }

/* Responsive */
@media(max-width: 900px) {
    .split-layout, .req-list { grid-template-columns: 1fr; }
    .related-card { width: 100%; justify-content: space-between; }
}


/* 
=============================== 
16. CUSTOM ITEMS PAGE LP
===============================
/*

/* --- GLOBAL THEME: THE ARCHANES ATELIER --- */
.custom-items-lp {
    background-color: #F9F6F0; /* Warm Sand */
    color: #3A2E2A;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
}

/* --- HERO --- */
.bespoke-hero { padding: 100px 0; }
.bespoke-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
.pebble-hero-img {
    width: 100%;
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; /* Organic shape */
    box-shadow: 20px 20px 60px rgba(0,0,0,0.05);
}

/* --- PROCESS MAP --- */
.process-map-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin-top: 60px;
}
.process-card {
    border-top: 1px solid #C08B6B;
    padding-top: 25px;
}
.mono-num { font-family: 'Courier New', monospace; color: #C08B6B; font-size: 12px; }
.process-card h4 { font-family: 'Playfair Display', serif; font-size: 22px; margin: 10px 0; }

/* --- SLIDER --- */

.bespoke-slider-container {
    position: relative;
    margin-top: 50px;
    width: 100%;
}

.slider-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    gap: 20px;
    padding-bottom: 30px;
    scrollbar-width: none; /* Hide scrollbar for clean look */
}

.slider-track::-webkit-scrollbar { display: none; }

.slider-item {
    /* 80% width means 20% of the next image will always "peek" in */
    flex: 0 0 80%; 
    scroll-snap-align: center;
    transition: opacity 0.4s ease;
}

.item-inner {
    position: relative;
    width: 100%;
    height: 600px; /* Fixed height for consistency */
    background: #fff;
    border-radius: 2px;
    overflow: hidden;
    box-shadow: 15px 15px 40px rgba(58, 46, 42, 0.08);
}

.item-inner img {
    width: 100%;
    height: 100%;
    /* Use 'contain' if pieces are irregular, or 'cover' for immersive look */
    object-fit: contain; 
    padding: 20px; /* Air around the art piece if using contain */
    background-color: #F9F6F0; /* Soft bone background behind 'contain' */
}

.item-tag {
    position: absolute;
    bottom: 20px;
    right: 20px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: #8c7851;
    letter-spacing: 2px;
    background: rgba(255,255,255,0.8);
    padding: 4px 10px;
}

/* --- BOUTIQUE ARROWS --- */
.slider-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 50px;
    height: 50px;
    background: #fff;
    border: 1px solid #e0ddd5;
    color: #3A2E2A;
    font-size: 20px;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.slider-arrow:hover {
    background: #8c7851;
    color: #fff;
    border-color: #8c7851;
}

.slider-arrow.prev { left: -25px; }
.slider-arrow.next { right: -25px; }

/* Responsive Adjustments */
@media (max-width: 768px) {
    .slider-item { flex: 0 0 90%; } /* Smaller peek for mobile */
    .item-inner { height: 350px; }
    .slider-arrow { display: none; } /* Better touch experience without arrows */
}

/* --- RESPONSIVE --- */
@media (max-width: 992px) {
    .bespoke-hero-grid { grid-template-columns: 1fr; }
    .process-map-grid { grid-template-columns: 1fr 1fr; }
    .scroll-item { flex: 0 0 90%; } /* Smaller peek for mobile */
}
 
/*
=============================== 
16. ABOUT US
===============================
*/ 

.about-lp-boutique {
    background-color: #F9F6F0; /* Crema arena cálido */
    color: #3A2E2A;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
}

/* --- Hero Section --- */
.hero-about-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 80px;
    padding: 120px;
    align-items: center;
}

.serif-title-xl {
    font-family: 'Playfair Display', serif;
    font-size: 68px;
    line-height: 1;
    margin-bottom: 30px;
}

.serif-title-xl em { font-style: italic; font-weight: normal; color: #C08B6B; }

.pebble-frame-large {
    width: 100%;
    aspect-ratio: 1/1;
    overflow: hidden;
    border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
    box-shadow: 20px 20px 50px rgba(0,0,0,0.05);
}

.pebble-frame-large img { width: 100%; height: 100%; object-fit: cover; }

.hero-note {
    display: block;
    text-align: right;
    margin-top: 20px;
    font-size: 24px;
    color: #C08B6B;
}

/* --- Engineering Section --- */
.section-engineering-story {
    padding: 100px 0;
    background: #fff;
    border-radius: 100px 100px 0 0; /* Suavidad boho */
}

.engineering-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 100px;
    align-items: center;
}

.eng-visual-blueprint {
    position: relative;
    height: 400px;
    overflow: hidden;
    border-radius: 4px;
}

.blueprint-img {
    width: 100%; height: 100%; object-fit: cover;
    filter: sepia(0.3) opacity(0.6);
}

.blueprint-fade {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(to right, #fff 0%, transparent 100%);
    z-index: 1;
}

/* --- Archanes Section --- */
.section-archanes-soul {  padding: 80px 0 40px 0; }

.archanes-split {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 80px;
    align-items: start;
}

.pebble-frame-medium {
    width: 100%;
    aspect-ratio: 4/5;
    border-radius: 40% 60% 40% 60% / 50% 40% 60% 50%;
    overflow: hidden;
}

/* --- Manifesto --- */
.section-manifesto {
    padding: 40px 0 100px 0;
    text-align: center;
}

.manifesto-card {
    max-width: 800px;
    margin: -250px auto 0; 
    background: #fff;
    padding: 80px 60px;
    border: 1px solid #e0ddd5;
    position: relative;
    z-index: 10; 
    box-shadow: 0 20px 40px rgba(0,0,0,0.02);
}

.manifesto-footer {
    margin-top: 50px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #eee;
    padding-top: 30px;
}

.signature-block { text-align: left; }
.signature-block .handwritten { font-size: 32px; color: #3A2E2A; display: block; }

/* Responsive */
@media (max-width: 992px) {
    .hero-about-grid, .engineering-layout, .archanes-split { grid-template-columns: 1fr; gap: 40px; }
    .hero-about-text { text-align: center; order: 2; }
    .hero-about-visual { order: 1; }
    .serif-title-xl { font-size: 48px; }
	
	.section-archanes-soul {
        padding: 60px 0;
    }
    
    .archanes-split {
        gap: 40px;
    }

    .manifesto-card {
        margin: 0 auto; /* Quitamos el margen negativo en móvil */
        padding: 40px 20px;
        width: 100%;
        border-left: none;
        border-right: none; /* Estilo más limpio en pantallas pequeñas */
    }
    
    .section-manifesto {
        padding: 40px 15px;
    }
}


/*
===============================
16. CTA STICKY LEAD RANK&Roll
===============================
*/

/* Contenedor flotante */
.rnr-sticky-cta-wrapper {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    width: 90%;
    max-width: 400px;
    text-align: center;
}

/* El Botón */
.rnr-sticky-btn {
    display: block;
    background: var(--punk-pink); /* Tu rosa punk */
    color: #fff;
    padding: 15px 25px;
    border-radius: 50px; /* Tipo pastilla */
    text-decoration: none;
    font-family: var(--font-head);
    font-size: 1.2rem;
    font-weight: 700;
    text-transform: uppercase;
    box-shadow: 0 5px 20px rgba(0,0,0,0.4);
    transition: all 0.3s ease;
    border: 2px solid #fff;
}

.rnr-sticky-btn:hover {
    background: var(--neon-cyan);
    transform: scale(1.05);
}

.rnr-sticky-legend {font-size: .5rem;}

/* ======================
17. SLIDER HOME
   ====================== */
/* Contenedor Principal */
.experience-workshop {
    padding: 100px 0;
    background-color: #FAF9F6; /* Color hueso/arena */
    color: #333;
}

.experience-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

/* Tipografía y Textos */
.experience-badge {
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 14px;
    color: var(--boutique-gold); /* Tono madera/oliva */
    font-weight: bold;
    display: block;
    margin-bottom: 15px;
}

.experience-content h2 {
    font-family: 'Playfair Display', serif; /* O tu fuente serif base */
    font-size: 42px;
    line-height: 1.2;
    margin-bottom: 25px;
}

.experience-lead {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 30px;
    color: #555;
}

.experience-features {
    list-style: none;
    padding: 0;
    margin-bottom: 40px;
}

.experience-features li {
    margin-bottom: 12px;
    position: relative;
    padding-left: 25px;
}

.experience-features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--boutique-gold);
    font-weight: bold;
}

.experience-features ol, ul {
	margin: 0;
}



/* Caja de Precios */
.experience-pricing {
    display: flex;
    gap: 20px;
    margin-bottom: 40px;
}

.price-item {
    background: #fff;
    padding: 20px;
    border: 1px solid #eee;
    border-radius: 4px;
    flex: 1;
}

.price-item.highlighted {
    border: 2px solid var(--boutique-gold);
    background: #fdfcf9;
}

.price-label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    margin-bottom: 5px;
}

.price-value {
    font-size: 24px;
    font-weight: bold;
    color: var(--boutique-gold);
}

/* --- CSS SLIDER LOGIC --- */
.experience-gallery {
    position: relative;
}

.css-slider {
    width: 100%;
    position: relative;
}

.slider-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    border-radius: 8px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.1);
}

/* Esconder scrollbar */
.slider-wrapper::-webkit-scrollbar { display: none; }
.slider-wrapper { -ms-overflow-style: none; scrollbar-width: none; }

.slide {
    flex: 0 0 100%;
    scroll-snap-align: center;
    height: 500px; /* Ajusta según necesites */
}

.slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Navegación del Slider */
.slider-nav {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.slider-nav a {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ddd;
    transition: 0.3s;
}

.slider-nav a:hover { background: var(--boutique-gold); }

/* Responsive */
@media (max-width: 992px) {
    .experience-grid { grid-template-columns: 1fr; }
    .experience-content { order: 2; }
    .experience-gallery { order: 1; }
    .slide { height: 400px; }
}
  
/* ========================
	18. GRID EDITORIAL HOME
   ======================== */
   
.section-gallery {
    padding: 100px 0;
    background-color: #fff;
}

.gallery-header {
    text-align: center;
    margin-bottom: 50px;
}

.mosaic-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 220px; /* Altura base de las filas */
    gap: 15px;
}

.gallery-item {
    overflow: hidden;
    border-radius: 4px;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
	display: block;
    transition: transform 0.6s ease;
}

.gallery-item:hover img {
    transform: scale(1.08);
}

.item-1 {
    grid-column: span 2;
    grid-row: span 2;
}

/* La cuarta foto es vertical (Ocupa 1x2) */
.item-4 {
    grid-row: span 2;
}

/* La sexta foto es horizontal (Ocupa 2x1) */
.item-6 {
    grid-column: span 2;
}

/* Tarjeta de Instagram */
.instagram-cta {
    background-color: #FAF9F6;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border: 1px solid #e0ddd5;
}

.ig-card-content i {
    font-size: 30px;
    color: var(--boutique-gold);
    margin-bottom: 15px;
    display: block;
}

.ig-card-content p {
    font-size: 14px;
    margin-bottom: 10px;
    color: #333;
}

.ig-card-content a {
    font-weight: bold;
    color: var(--boutique-gold);
    text-decoration: none;
    font-size: 16px;
}

/* RESPONSIVE MÓVIL (2 Columnas) */
@media (max-width: 768px) {
    .mosaic-gallery {
        grid-template-columns: repeat(2, 1fr); /* 2 columnas en móvil */
        grid-auto-rows: 180px;
    }

    /* Reseteamos los spans para que todo encaje en 2 columnas */
    .item-1, .item-4, .item-6 {
        grid-column: span 1;
        grid-row: span 1;
    }

    /* Hacemos que la de Instagram destaque ocupando las 2 columnas al final */
    .item-8 {
        grid-column: span 2;
        padding: 40px 0;
    }
}

/* =================================
	19. SHOP HIGHLIGHTS
   ================================= */
   
.section-featured-shop {
    padding: 100px 0;
    background-color: var(--light-beige); /* Blanco puro para que la madera resalte */
}

.shop-header {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 60px;
}

.shop-header h2 {
    font-family: 'Playfair Display', serif;
    font-size: 48px;
    margin-bottom: 15px;
}

/* Grid de Tienda */
.shop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.shop-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

/* Imagen con efecto de hover */
.shop-img-wrapper {
    position: relative;
    overflow: hidden;
    background-color: #f9f9f9;
    aspect-ratio: 4 / 5; /* Formato vertical elegante */
    margin-bottom: 20px;
	border-radius: 8px;
}

.shop-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}

.shop-card:hover .shop-img-wrapper img {
    transform: scale(1.1);
}

/* Overlay sutil */
.shop-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.4s ease;
}

.shop-overlay span {
    color: #fff;
    border: 1px solid #fff;
    padding: 10px 20px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.shop-card:hover .shop-overlay {
    opacity: 1;
}

/* Info del Producto */
.shop-card-info h3 {
    font-family: 'Playfair Display', serif;
    font-size: 26px;
    margin-bottom: 8px;
    color: #111;
}

.shop-card-info p {
    font-size: 15px;
    color: #666;
    margin-bottom: 12px;
}

.shop-price-tag {
    font-size: 14px;
    font-weight: bold;
    color: var(--boutique-gold); /* Color madera/oro */
    letter-spacing: 0.5px;
}

/* Footer CTA */
.shop-footer-cta {
    text-align: center;
    margin-top: 60px;
}

.btn-shop-all {
    font-family: 'Playfair Display', serif;
    font-size: 20px;
    color: #111;
    text-decoration: none;
    border-bottom: 2px solid var(--boutique-gold);
    padding-bottom: 5px;
    transition: color 0.3s ease;
}

.btn-shop-all:hover {
    color: var(--boutique-gold);
}

/* Responsive */
@media (max-width: 992px) {
    .shop-grid {
        grid-template-columns: 1fr; /* 1 columna en móvil para que luzcan las fotos */
        gap: 50px;
    }
}

/* 	=======================
20. WOOCOMMERCE
	======================= */
	
/* --- Header Flip for Shop/Archive Pages --- */
/* Target only WooCommerce archive pages or pages without a Hero */
body.archive.woocommerce .site-header:not(.header-fixed),
body.single-product .site-header:not(.header-fixed) {
    background-color: var(--light-beige) !important; 
    border-bottom: 1px solid #eee;
}

body.archive.woocommerce .desktop-nav a,
body.single-product .desktop-nav a,
body.archive.woocommerce .josef-toggle .hamburger-inner,
body.single-product .josef-toggle .hamburger-inner {
    color: #111 !important; /* Change text to dark */
    background-color: transpartent !important; /* For the hamburger lines */
}

/* Make sure the logo is visible */
body.archive.woocommerce .site-branding img,
body.single-product .site-branding img {
    filter: invert(1); /* If your logo is white, this flips it to black. If it's colored, don't use this. */
}

/* --- BOUTIQUE PRODUCT PAGE --- */

/* Ajuste del Header para página de producto (Header Blanco) */
.single-product .site-header:not(.header-fixed) {
    background: #FAF9F6 !important;
    position: relative !important;
    border-bottom: 1px solid #e0ddd5;
}
.single-product .site-header:not(.header-fixed) a { color: var(--boutique-dark) !important; }
.single-product .site-header:not(.header-fixed) .hamburger-inner,
.single-product .site-header:not(.header-fixed) .hamburger-inner::before,
.single-product .site-header:not(.header-fixed) .hamburger-inner::after {
    background-color: #1a1a1a !important;
}

/* 1. Ocultar cantidad SOLO en productos de reserva */
.single-product.postid-542 .quantity {
    display: none !important;
}

/* 2. Si quieres que en productos físicos el QTY se vea más limpio (Etsy style) */
.single-product.product-type-simple .quantity {
    display: inline-block;
    margin-bottom: 15px;
}

.single-product.product-type-simple .quantity input {
    border: 1px solid #e2e2e2;
    padding: 10px;
    border-radius: 4px;
    width: 60px;
}


/* Layout Principal */


.etsy-main-grid {
    display: grid;
    grid-template-columns: 60% 40%;
    gap: 40px;
    max-width: 1300px;
    margin: 40px auto;
    padding: 0 20px;
}

/* Columna Derecha Pegajosa */
.etsy-buy-col {
    position: relative;
}

.etsy-buy-box-inner {
    position: sticky;
    top: 100px; /* Ajusta según la altura de tu header */
}

/* Tipografía y Precio */
.etsy-price-area .price {
    font-size: 32px !important;
    font-weight: 500;
    color: #222;
    margin-bottom: 1rem;
}

.tax-info {
    font-size: 13px;
    color: #595959;
    display: block;
    margin-bottom: 15px;
}

.etsy-product-title {
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1.4;
    margin-bottom: 0;
    color: var(--boutique-gold);
}

/* Botón Add to Cart Estilo Etsy */
.etsy-style-product .button.alt {
    background-color: #222 !important;
    color: #fff !important;
    width: 100%;
    border-radius: 30px !important; /* Forma de cápsula */
    padding: 18px !important;
    font-size: 16px !important;
    font-weight: bold !important;
    margin: 20px 0;
    transition: transform 0.2s;
}

.woocommerce .quantity .qty  {border-radius: 8px; border: 1px solid var(--boutique-dark);}

.etsy-style-product .button.alt:hover {
    transform: scale(1.02);
    background-color: #000 !important;
}

.etsy-actions form.cart {
    display: flex;
    align-items: center;
    gap: 15px;
}

.etsy-actions .quantity {
    margin: 0;
}

.etsy-actions .single_add_to_cart_button {
    width: auto;
    flex: 1;
}

/* Trust Badges */
.etsy-trust-badges {
    margin: 20px 0;
    font-size: 14px;
}

.badge-item {
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #222;
}

.badge-item i { color: #3b5a9d; } /* Azul sutil para iconos */

/* Acordeones */
.etsy-accordions {
    border-top: 1px solid var(--light-gray);
	margin-top: 1.5rem;
    padding: 15px 0;
}

.etsy-accordions summary {
    list-style: none;
    font-weight: bold;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.details-content {
    display:flex;
	gap: 20px;
	padding-top: 15px;
    font-size: 14px;
    line-height: 1.6;
	border-top: 1px solid var(--light-gray);
	border-bottom: 1px solid var(--light-gray);
}

/* Seller Card */
.etsy-seller-card {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 30px;
    padding: 20px;
    background: #f8f8f8;
    border-radius: 8px;
}

.etsy-seller-card img {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
}

.seller-card-link a {text-decoration: none; color: var(--boutique-dark); border-bottom: 2px solid var(--boutique-dark)}

.seller-card-link a:hover {pointer: cursor;} 

.flex-control-nav {
    display: flex;
    padding-top: 10px;
    gap: 10px;
	list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.flex-control-nav li {
    width: 100px !important;
	list-style: none !important;
    margin: 0 !important;
}

/* Estilo limpio para las miniaturas debajo de la imagen */
.flex-control-nav.flex-control-thumbs {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px; /* Espacio entre fotos */
    margin-top: 15px !important;
}

.flex-control-nav.flex-control-thumbs li {
    width: 70px !important; /* Tamaño de las miniaturas */
    cursor: pointer;
}

.flex-control-nav.flex-control-thumbs li img {
    border: 1px solid #eee;
    transition: all 0.3s ease;
    filter: grayscale(0.2);
}

/* Efecto cuando pasas el ratón o la foto está activa */
.flex-control-nav.flex-control-thumbs li img:hover,
.flex-control-nav.flex-control-thumbs li img.flex-active {
    border-color: #8c7851; /* El color madera de tu marca */
    filter: grayscale(0);
    opacity: 1;
}

/* --- CUSTOM BOUTIQUE SLIDER --- */

/* Contenedor principal */
.custom-boutique-slider {
    position: relative;
    width: 100%;
}

.slider-container {
    display: flex;
    flex-direction: column; /* En Desktop se ven una debajo de otra (Lujo) */
    gap: 20px;
}

.custom-slide img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.slider-indicators {
    display: none; /* Ocultos en desktop */
}


/* --- DYNAMIC CART ICON STYLING --- */
.cart-contents {
    position: relative;
    display: flex;
    align-items: center;
}

.cart-icon {
    transition: transform 0.3s ease;
}

.cart-contents:hover .cart-icon {
    transform: translateY(-2px);
}

/* The Counter Badge */
.cart-contents-count {
    position: absolute;
    top: -8px;
    right: -12px;
    background-color: #8c7851; /* Your gold color */
    color: #fff;
    font-size: 10px;
    font-weight: bold;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: sans-serif;
    line-height: 1;
}

/* Hide counter if it's 0 (Optional) */
.cart-contents-count:contains('0') {
    opacity: 0;
}

.wps_cal_timeslot button {
    font-size: .8rem;
    width: auto;
    background-color: var(--light-beige);
    color: #2e2e2e;
}

/* Style the WooCommerce Info/Success Message */


.woocommerce-message .button {
    background-color: #1a1a1a !important;
    color: #fff !important;
    border-radius: 16px !important;
    text-transform: uppercase;
    font-size: 12px;
}

/* --- ESTILO BANNER "AÑADIDO AL CARRITO" (ETSY STYLE) --- */

/* Contenedor del mensaje */
.woocommerce-message {
    border: 1px solid var(--boutique-gold) !important; /* Borde fino gris */
    background-color: var(--light-gray) !important; /* Fondo crema muy suave */
    color: #222 !important;
    padding: 20px 25px !important;
    margin-bottom: 30px !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 16px;
    border-radius: 8px;
}

/* El checkmark verde (icono) */
.woocommerce-message::before {
    content: "✓" !important;
    background-color: var(--boutique-gold) !important; 
    color: #fff !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-family: sans-serif;
    font-size: 12px;
    margin-right: 15px;
    position: static !important; 
}

/* El botón "VIEW CART" dentro del banner */
.woocommerce-message .button.wc-forward {
    background-color: #1a1a1a !important; /* Negro Boutique */
    color: #fff !important;
    padding: 10px 20px !important;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
    font-weight: bold;
    border-radius: 2px;
    float: none !important; /* Evita que flote raro */
    margin-left: auto;
    transition: background 0.3s;
}

.woocommerce-message .button.wc-forward:hover {
    background-color: #000 !important;
}

/* Ajuste para móvil */
@media (max-width: 600px) {
    .woocommerce-message {
        flex-direction: column;
        text-align: center;
        gap: 15px;
    }
    .woocommerce-message .button.wc-forward {
        width: 100%;
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .custom-boutique-slider {
        margin: 0 -20px; /* Rompe el padding del contenedor para ser Full Width */
        width: calc(100% + 40px);
    }

    .slider-container {
        flex-direction: row; /* En móvil van de lado */
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        gap: 0;
    }

    .slider-container::-webkit-scrollbar {
        display: none; /* Esconde la barra de scroll */
    }

    .custom-slide {
        flex: 0 0 100%; /* Cada foto ocupa el 100% del ancho */
        scroll-snap-align: center;
    }

    .custom-slide img {
        border-radius: 0; /* Imagen a sangre en móvil */
    }

    /* Puntos estilo Etsy */
    .slider-indicators {
        display: flex;
        justify-content: center;
        gap: 8px;
        padding: 15px 0;
    }

    .indicator-dot {
        width: 7px;
        height: 7px;
        background: #e0ddd5;
        border-radius: 50%;
        transition: background 0.3s;
    }

    .indicator-dot.active {
        background: #1a1a1a;
    }
}

/* --- BOUTIQUE ROW LAYOUT FOR BOOKING --- */

/* 1. The Main Form Container */
.etsy-style-product form.cart {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* 2. Top Row: Date & People side by side */
.mwb-mbfw-cart-page-data {
    display: flex !important;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-end;
}

.mbfw-date-picker-section__wrapper, 
.mbfw-additionl-detail-listing-section__wrapper {
    flex: 1; /* Each takes 50% */
    min-width: 140px;
}

/* Fix Labels */
.mbfw-date-picker-section label,
.mbfw-additionl-detail-listing-section {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: bold;
    letter-spacing: 1px;
    margin-bottom: 5px;
    color: #666;
}

/* Input styling */
#wps_booking_single_calendar_form, 
#mwb_mbfw_people_number {
    width: 100% !important;
    height: 45px;
    padding: 0 12px !important;
    border: 1px solid #e2e2e2 !important;
    border-radius: 4px !important;
}

/* 3. Bottom Row: Total & Button side by side */
/* We need to manipulate the elements inside the div and the button outside */

/* Force Total area to not take 100% yet */
.mwb-mbfw-total-area {
    width: 100%; /* Default */
    margin: 0 !important;
    padding: 10px 0 !important;
    background: transparent !important; /* Cleaner look */
}

/* Create a footer flex container using the form if possible */
.etsy-style-product form.cart {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Two columns */
    align-items: center;
    column-gap: 20px;
}

/* The plugin data should span both columns in row 1 */
.mwb-mbfw-cart-page-data {
    grid-column: span 2;
}

/* The Total Area (Row 2, Column 1) */
.mwb-mbfw-total-area {
    grid-column: 1;
}

/* The Book Now Button (Row 2, Column 2) */
.etsy-style-product .single_add_to_cart_button {
    grid-column: 2;
    margin: 0 !important;
}

/* 4. Total Cost Styling */
.mbfw-total-cost__wrapper .mbfw-total-listing-single-page {
    font-size: 22px !important;
    color: #1a1a1a;
}

.mbfw-total-cost__wrapper .mbfw-total-listing-single-page:first-child {
    font-family: 'Playfair Display', serif;
    font-weight: normal;
    font-size: 14px !important;
    text-transform: uppercase;
    color: #999;
}

/* --- RESPONSIVE: Stack them on mobile --- */
@media (max-width: 480px) {
    .etsy-style-product form.cart {
        grid-template-columns: 1fr; /* Stack back to 1 column */
    }
    .mwb-mbfw-cart-page-data {
        grid-column: span 1;
    }
    .mwb-mbfw-total-area, 
    .etsy-style-product .single_add_to_cart_button {
        grid-column: span 1;
    }
}

/* RESPONSIVE MÓVIL */
@media (max-width: 768px) {
    .etsy-main-grid {
        grid-template-columns: 1fr;
    }
	
	.etsy-main-grid {
		gap: 0px;
	}
    
	.etsy-gallery-col {
	margin-bottom: 0px;		
	}
	
    .etsy-buy-box-inner {
        position: static;
    }
    
    .etsy-product-title {
        font-size: 20px;
    }
}

/* --- 1. DISTRACTION-FREE HEADER (Cart & Checkout) --- */

/* Aplicamos a la cabecera en ambas páginas */
.woocommerce-cart .site-header, 
.woocommerce-checkout .site-header,
.boutique-checkout-page .site-header {
    position: relative !important;
    background: #FAF9F6 !important;
    border-bottom: 1px solid #eee;
    height: 80px !important;
    transform: none !important; /* Evita que el 'Smart Header' lo esconda */
}

/* Ocultamos navegación y botones en ambas páginas para evitar distracciones */
.woocommerce-cart .desktop-nav, 
.woocommerce-checkout .desktop-nav,
.woocommerce-cart .mobile-nav-wrapper, 
.woocommerce-checkout .mobile-nav-wrapper,
.boutique-checkout-page .desktop-nav, 
.boutique-checkout-page .mobile-nav-wrapper {
    display: none !important;
}

/* Centramos el logo en el proceso de pago */
.woocommerce-cart .header-inner, 
.woocommerce-checkout .header-inner,
.boutique-checkout-page .header-inner {
    justify-content: center !important;
}

/* Ajuste del logo para que no sea gigante en el checkout */
.woocommerce-cart .site-branding img,
.woocommerce-checkout .site-branding img {
    height: 60px !important;
}

/* --- 2. CART PAGE CLEANUP --- */
/* --- BOUTIQUE STYLES FOR WOOCOMMERCE BLOCKS (CART) --- */

/* 1. Tipografía Serif para los Títulos de Bloque */
.wc-block-cart__totals-title, 
.wc-block-components-product-name,
.wc-block-cart-items__header,
.wp-block-woocommerce-cart h2 {
    font-family: 'Playfair Display', serif !important;
    font-weight: 500 !important;
    color: #1a1a1a !important;
}

/* Targets specifically the entry content only on the Cart page */
.woocommerce-cart .inside-article {
    margin-top: 0px;
    padding: 1rem 4rem;
}

.woocommerce-checkout .inside-article {
    margin-top: 0px;
    padding: 1rem 4rem;
}

/* 2. Ajuste de la Tabla de Productos */
.wc-block-cart-items {
    border-collapse: separate;
    border-spacing: 0 20px;
}

.wc-block-cart-items__row {
    background: #fff;
    border-bottom: 1px solid #eee !important;
}

.wc-block-cart-item__image img {
    border-radius: 8px;
}

td.wc-block-cart-item__image {width: 20%;}

.wc-block-cart-item__product span, p, a{
	font-size: .85rem !important;
	
}


.wc-block-components-quantity-selector {
    border: 1px solid #e0ddd5 !important;
    border-radius: 2px !important;
}

/* 4. El Sidebar (Totales) */
.wc-block-cart__sidebar {
    background-color: #FAF9F6 !important; /* Tu color crema */
    padding: 30px !important;
    border-radius: 4px;
    border: 1px solid #e0ddd5;
}

.wp-block-woocommerce-checkout-order-summary-block {
	background-color: #FAF9F6 !important; /* Tu color crema */
    padding: 30px !important;
    border-radius: 4px;
    border: 1px solid #e0ddd5;
}

.wc-block-components-totals-footer-item {
    border-top: 2px solid #1a1a1a !important;
    padding-top: 20px !important;
}

.wc-block-components-totals-item__label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- OCULTAR CAMPOS DE DIRECCIÓN EN CHECKOUT BLOCKS --- */

/* Solo se activa si la clase 'cart-is-booking-only' está presente */
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__address_1,
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__address_2,
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__city,
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__postcode,
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__country,
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-address-form__state {
    display: none !important;
}

/* Mantenemos el Nombre, Apellido y Email visibles */
/* El título "Billing address" también puede sobrar si solo pedimos nombre */
.cart-is-booking-only .wc-block-checkout__billing-fields .wc-block-components-checkout-step__heading {
    display: none !important;
}

/* Opcional: Ajustar el margen del formulario para que no se vea vacío */
.cart-is-booking-only .wc-block-checkout__billing-fields {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* 5. El Botón "Proceed to Checkout" (Cápsula Etsy) */
.wc-block-cart__submit-button {
    background-color: #1a1a1a !important;
    color: #fff !important;
    border-radius: 8px !important;
    padding: 20px !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    font-size: 14px !important;
    border: none !important;
    transition: transform 0.2s ease !important;
}

.wc-block-cart__submit-button:hover {
    background-color: #000 !important;
    transform: scale(1.02);
}

/* --- RESPONSIVE MOBILE --- */
@media (max-width: 768px) {
    .wc-block-components-sidebar-layout {
        display: flex !important;
        flex-direction: column !important;
    }
    
    .wc-block-cart__main {
        margin-bottom: 40px;
    }
}

/* ======================
   21. APPRENTICESHIP PAGE STYLE
   ====================== */
.app-hero {
    height: 100vh;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    color: #fff;
}


/* --- BENEFITS --- */
.section-blueprint {
    position: relative;
    padding: 120px 0;
    background-color: #fdfcf9; /* Color papel hueso */
    overflow: hidden;
}

/* Creación de la cuadrícula técnica (Papel milimetrado) */
.blueprint-grid-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
	border-top: 4px solid var(--boutique-gold);
	border-bottom: 4px solid var(--boutique-gold);
    background-size: 40px 40px, 40px 40px, 10px 10px, 10px 10px;
    background-image: 
        linear-gradient(to right, rgba(140, 120, 81, 0.1) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(140, 120, 81, 0.1) 1px, transparent 1px),
        linear-gradient(to right, rgba(140, 120, 81, 0.05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(140, 120, 81, 0.05) 1px, transparent 1px);
    z-index: 1;
}

.blueprint-content {
    position: relative;
    z-index: 2;
}

/* Tipografías */
.handwritten { font-family: 'Caveat', cursive; font-weight: 700; color: #8c7851; font-size: 28px; }
.handwritten-title { font-family: 'Caveat', cursive; font-size: 54px; color: #1a1a1a; margin-bottom: 5px; }
.mono-text { font-family: 'JetBrains Mono', monospace; font-size: 12px; text-transform: uppercase; color: #999; letter-spacing: 2px; }
.technical-id { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8c7851; border: 1px solid #8c7851; padding: 2px 8px; border-radius: 2px; }

/* Layout de Notas */
.usp-blueprint-layout {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto auto;
    gap: 20px;
    margin-top: 60px;
}

.usp-note {
    background: rgba(255, 255, 255, 0.7);
    padding: 30px;
    border-radius: 2px;
    box-shadow: 5px 5px 15px rgba(0,0,0,0.02);
    position: relative;
}

.note-number {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: #8c7851;
    display: block;
    margin-bottom: 10px;
}

.usp-note p { font-size: 15px; color: #444; line-height: 1.5; margin: 0; }

/* Posicionamiento Asimétrico (Look Mode Designs) */
.note-1 { grid-column: 1 / span 4; }
.note-2 { grid-column: 6 / span 4; margin-top: 40px; }
.note-3 { grid-column: 2 / span 4; margin-top: -20px; }
.note-4 { grid-column: 8 / span 4; }

/* Sello decorativo */
.blueprint-seal {
    grid-column: 10 / span 3;
    text-align: right;
    padding-top: 40px;
    border-top: 1px solid #e0ddd5;
}

/* Mobile: Volvemos a un orden lógico pero manteniendo el estilo */
@media (max-width: 992px) {
    .usp-blueprint-layout { display: flex; flex-direction: column; gap: 30px; }
    .note-2, .note-3 { margin-top: 0; }
    .blueprint-header { text-align: center; }
}

/* --- PROGRAM CARDS --- */

.section-header-center {text-align: center;}
.section-header-center h2{font-family: 'Playfair Display', serif; font-size: 3rem;}

/* --- THE WORKSHOP AIR (Tactile Background) --- */
.sandpaper {
    background-color: #f2efe9; /* Raw Bone color */
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 150px;
    opacity: 0.98; /* Makes the noise subtle */
}


/* --- BOUTIQUE SPECIMEN CARDS --- */
.section-header-boutique {padding-top: 4rem}

.specimen-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    padding: 1rem 0 3rem 0;
	
}

.specimen-card {
    position: relative;
    height: 400px;
	border-radius: 4px;
    overflow: hidden;
    background: #1a1a1a;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

/* Image with Zoom Effect */
.specimen-img-container {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
}

.specimen-bg-img {
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: 0.8;
    transition: transform 1.2s ease, opacity 0.5s ease;
}

.specimen-card:hover .specimen-bg-img {
    transform: scale(1.1);
    opacity: 1;
}

/* The Sawdust Gradient (Bottom Shadow for Readability) */
.specimen-gradient {
    position: absolute;
    bottom: 0; left: 0; width: 100%; height: 60%;
    background: linear-gradient(to top, rgba(10,10,10,0.9) 0%, rgba(10,10,10,0) 100%);
}

/* Floating Content Structure */
.specimen-content {
    position: relative;
    z-index: 10;
    height: 100%;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.specimen-top {
    display: flex;
    justify-content: space-between;
    opacity: 0.6;
}

.specimen-bottom {
    transform: translateY(20px);
    transition: transform 0.5s ease;
}

.specimen-card:hover .specimen-bottom {
    transform: translateY(0);
}

.serif-title-card {
    font-family: 'Playfair Display', serif;
    font-size: 32px;
    color: #fff;
    margin-bottom: 20px;
    line-height: 1.1;
}

/* Technical Details */
.specimen-meta {
    border-top: 1px solid rgba(255,255,255,0.2);
    padding-top: 15px;
    margin-bottom: 30px;
}

.meta-row {
    display: flex;
    justify-content: space-between;
    font-size: .7rem;
    color: rgba(255,255,255,0.5);
    margin-bottom: 5px;
    letter-spacing: 1px;
}

.meta-row strong { color: #8c7851; }

/* Ghost Button (Mode Style) */
.btn-specimen {
    display: block;
    text-align: center;
	border-radius: 4px;
    border: 1px solid #fff;
    color: #fff !important;
    text-decoration: none;
    padding: 15px;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 2px;
    transition: all 0.3s ease;
}

.btn-specimen:hover {
    background: #fff;
    color: #000 !important;
}

/* --- VIEWFINDER CORNERS --- */
.viewfinder {
    position: absolute;
    width: 15px; height: 15px;
    border-color: rgba(255,255,255,0.3);
    border-style: solid;
    z-index: 15;
}
.corner-tl { top: 20px; left: 20px; border-width: 1px 0 0 1px; }
.corner-tr { top: 20px; right: 20px; border-width: 1px 1px 0 0; }
.corner-bl { bottom: 20px; left: 20px; border-width: 0 0 1px 1px; }
.corner-br { bottom: 20px; right: 20px; border-width: 0 1px 1px 0; }

@media (max-width: 992px) {
    .specimen-grid { grid-template-columns: 1fr; }
    .specimen-card { height: 500px; }
}


/* --- FAQ DETAILS STYLING --- */


.section-faqs {
    background-color: #fff;
	padding: 3rem .0;
}

.faq-wysiwyg-content details {
    border-bottom: 1px solid #eee;
    padding: 20px 0;
    cursor: pointer;
}
.faq-wysiwyg-content summary {
    font-weight: bold;
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    list-style: none;
    display: flex;
    justify-content: space-between;
}
.faq-wysiwyg-content summary::after { content: "+"; color: #8c7851; }


/* --- PROCESS TIMELINE (INQUIRY) --- */
.process-timeline {
    margin: 40px 0;
    position: relative;
    padding-left: 20px;
}

/* La línea vertical técnica */
.process-timeline::before {
    content: "";
    position: absolute;
    left: 0; top: 10px; bottom: 10px;
    width: 1px;
    background: linear-gradient(to bottom, #8c7851 0%, #e0ddd5 100%);
}

.timeline-step {
    position: relative;
    margin-bottom: 35px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

/* El punto conector */
.timeline-step::before {
    content: "";
    position: absolute;
    left: -23.5px; /* Centrado con la línea */
    top: 8px;
    width: 8px; height: 8px;
    background-color: #8c7851;
    border-radius: 50%;
}

.step-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    color: #8c7851;
    background: #fdfcf9;
    padding: 2px 6px;
    border: 1px solid #e0ddd5;
}

.step-txt strong {
    display: block;
    font-family: 'Playfair Display', serif;
    font-size: 18px;
    margin-bottom: 5px;
    color: #1a1a1a;
}

.step-txt p {
    font-size: 14px;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

/* Eliminar margen al último paso */
.timeline-step:last-child { margin-bottom: 0; }

.contact-details {
    margin-top: 50px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.contact-item {
    display: flex;
    align-items: center;
    gap: 15px;
}

.icon-simple svg {
    color: #8c7851;
    opacity: 0.8;
}

.contact-item .value {
    font-size: 15px;
    color: #444;
    text-decoration: none;
    line-height: 1.4;
}

.contact-hours {
    background: #fff;
    padding: 25px;
    border: 1px solid #e0ddd5;
    margin-top: 40px;
    position: relative;
}

/* Sello de "Workshop Status" */
.contact-hours::after {
    content: "EST. 2020";
    position: absolute;
    top: -10px; right: 20px;
    background: #8c7851;
    color: #fff;
    font-family: 'JetBrains Mono', monospace;
    font-size: 9px;
    padding: 2px 8px;
    letter-spacing: 1px;
}

/* --- FUNDRAISING VISION BANNER --- */

.section-fundraising-vision {
    padding: 120px 0;
    background-color: #f2efe9; /* El color Raw Bone que usamos */
}

.vision-board {
    background-color: #1a1a1a; /* Fondo oscuro tipo madera quemada o grafito */
    color: #fff;
    padding: 80px;
    border-radius: 2px;
    position: relative;
    overflow: hidden;
    /* Añadimos el ruido para que no sea un negro plano */
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
    background-blend-mode: overlay;
    box-shadow: 0 30px 60px rgba(0,0,0,0.15);
}

.project-stamp {
    position: absolute;
    top: 40px; right: 40px;
    font-size: 10px;
    color: #8c7851;
    border: 1px solid rgba(140, 120, 81, 0.4);
    padding: 10px;
    text-align: right;
    opacity: 0.8;
}

.vision-content {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 60px;
    align-items: center;
}

.eyebrow-dark {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 3px;
    color: #8c7851;
    margin-bottom: 20px;
    display: block;
}

.vision-text-col h2 {
    font-family: 'Playfair Display', serif;
    font-size: 42px;
    line-height: 1.1;
    margin-bottom: 25px;
    color: #fdfcf9;
}

.vision-text-col p {
    font-size: 17px;
    color: #ccc;
    line-height: 1.6;
    margin-bottom: 40px;
}

/* El Botón Boutique */
.btn-vision {
    display: inline-block;
    padding: 15px 35px;
    border: 1px solid #8c7851;
    color: #8c7851 !important;
    text-decoration: none;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 2px;
    transition: all 0.3s;
}

.btn-vision:hover {
    background: #8c7851;
    color: #fff !important;
}

/* LA NOTA MANUSCRITA */
.handwritten-note {
    background: #fdfcf9;
    color: #1a1a1a;
    padding: 40px;
    transform: rotate(3deg); /* Inclinación de papel real */
    position: relative;
    box-shadow: 10px 10px 30px rgba(0,0,0,0.3);
}

/* Efecto de cinta adhesiva (Tape) */
.tape {
    position: absolute;
    top: -15px; left: 50%;
    transform: translateX(-50%);
    width: 100px; height: 30px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(2px);
    border: 1px solid rgba(0,0,0,0.05);
}

.handwritten-note .handwritten {
    font-family: 'Caveat', cursive;
    font-size: 1.2rem !important;
	font-weight: 400;
    line-height: 1.3;
    margin-bottom: 15px;
}

.handwritten-note .signature {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: 18px;
    display: block;
    text-align: right;
    color: #8c7851;
}

/* Responsive */
@media (max-width: 992px) {
    .vision-content { grid-template-columns: 1fr; }
    .vision-board { padding: 40px; }
    .handwritten-note { transform: rotate(0); margin-top: 40px; }
}

/* =============================
23. FUNDRAISING PAGE
   ============================= */

.fund-hero {
    height: 90vh;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: center;
    text-align: center;
    color: #fff;
}

.fund-hero-content {
    max-width: 800px;
    margin: 0 auto;
}

.hero-overlay-dark {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(26, 22, 20, 0.6); /* Moody Umber */
}

/* Blueprint Section with Flex */
.blueprint-flex {
    display: flex;
    gap: 80px;
    align-items: center;
    padding: 100px 20px;
}

.blueprint-visual { position: relative; flex: 1; }
.blueprint-info { flex: 1; }

.blueprint-main-img {
    width: 100%;
    border-radius: 2px;
    box-shadow: 20px 20px 0px rgba(140, 120, 81, 0.1);
}

.blueprint-callout {
    position: absolute;
    top: -20px; right: -20px;
    background: #fff;
    padding: 15px;
    border: 1px solid #e0ddd5;
    transform: rotate(5deg);
}

/* Technical Timeline */
.section-roadmap { background: #fff; padding: 100px 0; }

.technical-timeline {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 60px;
    position: relative;
}

.timeline-point {
    padding-top: 30px;
    border-top: 1px solid #e0ddd5;
    position: relative;
}

.timeline-point.current { border-top: 2px solid #8c7851; }
.timeline-point.completed::after {
    content: "✓";
    position: absolute; top: -15px; left: 0;
    background: #8c7851; color: #fff;
    width: 24px; height: 24px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 12px;
}

.t-date { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8c7851; letter-spacing: 2px; }

/* --- FOUNDERS CARDS LAYOUT --- */

.section-founders-wall {
    padding: 100px 0;
    background-color: #F9F6F0; /* Fondo crema textura */
}

.founders-container {
    max-width: 1100px; /* Contenedor para limitar el movimiento lateral */
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 40px; /* Espacio entre tarjetas */
}

.founders-card {
    background: #fff;
    border: 1px solid #e0ddd5;
    padding: 50px;
    width: 100%;
    max-width: 600px; /* Un poco más estrechas para que el zigzag luzca */
    position: relative;
    box-shadow: 10px 10px 40px rgba(58, 46, 42, 0.03);
    transition: transform 0.3s ease;
}

/* Alineación Izquierda */
.card-left {
    margin-right: auto;
    margin-left: 0;
    text-align: left;
}

/* Alineación Derecha */
.card-right {
    margin-left: auto;
    margin-right: 0;
    text-align: right;
}

/* Alineación Centro (para balancear si hay una tercera) */
.card-center {
    margin: 0 auto;
    text-align: center;
}

/* Estilos internos de la tarjeta */
.founders-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 28px;
    margin: 15px 0;
    color: #3A2E2A;
}

.founders-card .leaf-icon {
    font-size: 30px;
    color: #8c7851;
}

.founders-card p {
    font-size: 15px;
    line-height: 1.6;
    color: #666;
}

.founders-container {
    position: relative;
}
.founders-container::before {
    content: "";
    position: absolute;
    left: 50%; top: 0; bottom: 0;
    width: 1px;
    background: #e0ddd5;
    z-index: 0;
}

/* RESPONSIVE: En móvil todas al centro y full width */
@media (max-width: 768px) {
    .founders-card {
        margin: 0 auto !important;
        max-width: 100%;
        text-align: center;
        padding: 40px 20px;
    }
}

.leaf-icon { font-size: 40px; margin-bottom: 20px;}

/* The Final CTA Box */
.section-final-cta-fund { padding: 120px 0; }
.cta-box-black {
    background: #1a1a1a;
    color: #fff;
    padding: 80px;
    text-align: center;
    border-radius: 4px;
}

.btn-gofundme {
    display: inline-block;
    background: #fff;
    color: #1a1a1a !important;
    padding: 20px 50px;
    border-radius: 40px;
    text-decoration: none;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 30px 0;
    transition: 0.3s;
}

.btn-gofundme:hover { transform: scale(1.05); background: #8c7851; color: #fff !important; }

.secure-note { display: block; font-size: 11px; opacity: 0.5; text-transform: uppercase; letter-spacing: 1px; }

@media (max-width: 992px) {
    .blueprint-flex, .technical-timeline { flex-direction: column; grid-template-columns: 1fr; gap: 40px; }
}

/* ========================
24. APPRENTICESHIP PAGE
   ======================== */

/* --- APPRENTICESHIP LP SPECIFIC --- */

/* Hero Adjustments */
.app-hero { height: 100vh; background-size: cover; background-position: center; position: relative; display: flex; align-items: center; color: #fff; }

.section-app-philosophy {margin: 2rem 0;}


/* Case Study / Anton Section */
.section-anton-feature { padding: 120px 0; background: #FAF9F6; }
.case-study-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; }

.polaroid-frame {
    background: #fff;
    padding: 15px 15px 60px 15px;
    box-shadow: 15px 30px 60px rgba(58, 46, 42, 0.1);
    transform: rotate(-2deg);
    border: 1px solid #eee;
}
.photo-label { display: block; text-align: center; margin-top: 20px; font-size: 20px; color: #C08B6B; }

/* Roadmap Tech Style */
.section-app-roadmap { padding: 120px 0; background: #fff; }
.roadmap-grid-tech { display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; margin-top: 80px; }

.roadmap-item { border-left: 1px solid #e0ddd5; padding: 0 0 0 30px; position: relative; }
.roadmap-item::before { content: ""; position: absolute; left: -5px; top: 0; width: 10px; height: 10px; background: #8c7851; border-radius: 50%; }

.mono-num { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8c7851; letter-spacing: 2px; display: block; margin-bottom: 15px; }

/* Form Layout */
.contact-app-layout { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 80px; padding: 100px 0; }

@media (max-width: 992px) {
    .case-study-grid, .roadmap-grid-tech, .contact-app-layout, .philosophy-layout { 
        grid-template-columns: 1fr; 
        gap: 60px; 
    }
}   

/* ======================= 
25. BLOG
   ======================= */
.single-diary-entry {
	margin-top: 4rem;
}

.entry-hero {
	padding: 2rem;
}
   
.diary-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
    margin-top: 80px;
}

.diary-card { transition: transform 0.4s ease; }
.diary-card:hover { transform: translateY(-5px); }

.diary-img-wrapper {
    position: relative;
    aspect-ratio: 16/10;
    overflow: hidden;
    background: #eee;
}

.diary-img-wrapper img { width: 100%; height: 100%; object-fit: cover; }

.diary-category {
    position: absolute; top: 20px; left: 20px;
    background: #fff; color: #1a1a1a;
    font-family: 'JetBrains Mono', monospace; font-size: 9px;
    padding: 4px 10px; text-transform: uppercase;
}

.diary-card-content h3 { font-family: 'Playfair Display', serif; font-size: 28px; margin: 20px 0 10px; }
.mono-date { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #8c7851; }

/* --- SINGLE ARTICLE LAYOUT --- */
.entry-content-layout {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 80px;
    padding: 80px 20px;
}

.entry-main-text {
    max-width: 750px;
    font-size: 18px;
    line-height: 1.8;
    color: #444;
}

.entry-main-text p { margin-bottom: 30px; }

/* The Sticky Master Note */
.entry-sidebar-notes { position: relative; }
.handwritten-sticky-note {
    position: sticky;
    top: 120px;
    background: #fffef0;
    padding: 30px;
    box-shadow: 10px 10px 30px rgba(0,0,0,0.05);
    transform: rotate(-2deg);
    border: 1px solid #f0eee9;
}

.tape-small {
    position: absolute; top: -10px; left: 50%;
    transform: translateX(-50%);
    width: 60px; height: 20px; background: rgba(0,0,0,0.05);
}

.note-sig {
    display: block; text-align: right;
    font-size: 14px; color: #8c7851; margin-top: 15px;
}

/* Related section */
.section-related-posts { padding: 80px 0; border-top: 1px solid #eee; background: #fff; }
.related-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 30px; }
.related-item {
    text-decoration: none; color: #1a1a1a;
    display: flex; justify-content: space-between; align-items: center;
    padding: 30px; border: 1px solid #eee;
}
.related-item:hover { border-color: #8c7851; }

@media (max-width: 992px) {
    .diary-grid { grid-template-columns: 1fr; }
    .entry-content-layout { grid-template-columns: 1fr; }
    .entry-sidebar-notes { order: 2; }
}

.read-more-link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #8c7851;
    margin-top: 15px;
}

.read-more-link svg {
    transition: transform 0.3s ease;
}

.diary-card:hover .read-more-link svg {
    transform: translateX(5px);
}

/* Estilo Paginación Boutique */
.pagination-boutique {
    margin-top: 60px;
    text-align: center;
    border-top: 1px solid #eee;
    padding-top: 30px;
}

.pagination-boutique a, .pagination-boutique span {
    padding: 10px 15px;
    text-decoration: none;
    color: #3A2E2A;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
}

.pagination-boutique .current {
    color: #8c7851;
    font-weight: bold;
}