/*
Theme Name: AND Directorio
Author: Ícaro Chaparro P.
Author URI: www.icarochaparrop.com
Version: 01
*/


@font-face { font-family: "Optima LT Std"; src: url("fonts/OptimaLTStd.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }


:root {
	/* colors */
	--black: #333333;
	--white: #fff;
	--off-white: #FAFAFA;
	--grey: #D9D9D9;
	--green: #00FF00;
	--green-hover: #E0FFE0;

	/* spacing */
	--spacing-s: 8px;
	--spacing-m: 16px;
	--spacing-l: 32px;

	/* ancho de una columna del grid */
	--col: calc( ( 100vw - var( --spacing-m ) * 2 - var( --spacing-l ) * 7 ) / 8 );

	/* typography */
	--text-m: 400 16px/normal "Optima LT Std", 'Times New Roman', Times, serif;
}


/* reset */
*,
*::before,
*::after {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	-webkit-font-smoothing: antialiased;
}

ul,
ol {
	list-style: none;
}


input,
button,
textarea,
select {
	font: inherit;
	color: inherit;
}

button {
	background: none;
	border: 0;
	cursor: pointer;
}

a {
	color: inherit;
	text-decoration: none;
}

:focus {
	outline: none;
}

:focus-visible {
	outline: 1px solid var( --black );
	outline-offset: 2px;
}


body {
	padding: var( --spacing-m );
	font-family: "Optima LT Std", 'Times New Roman', Times, serif; 
	color: var( --black );
}


/* grid */
.grid {
	display: grid;
	grid-template-columns: repeat( 8, 1fr );
	column-gap: var( --spacing-l );
	min-height: calc( 100dvh - var( --spacing-m ) * 2 );
}

.grid > section {
	position: relative;
	grid-column: 1 / 3;
    display: flex;
    flex-direction: column;
}

.grid > section::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: calc( var( --spacing-l ) / -2 );
	width: .25px;
	background-color: var( --black );
}

.logo {
	display: block;
	align-self: flex-start;
	height: 32px;
	width: auto;
}

.text-home {
	display: flex;
	flex-direction: column;
	gap: var( --spacing-m );
	/* alinea con la primera li: margin-bottom de .directory-head + padding de .directory-row */
	margin-top: calc( var( --spacing-l ) + var( --spacing-s ) );
}

.text-home,
.text-home * {
	font: var( --text-m );
	text-wrap: pretty;
}

.last-update {
	color: var( --grey );
}

.last-update span {
	color: var( --black );
}

.grid > div {
	grid-column: 3 / 9;
}


/* directory */
.directory {
	position: relative;
	font: var( --text-m );
}

/* las li aparecen de una en una al cargar y al cerrar el form */
@keyframes directory-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.directory li {
	animation: directory-in .3s ease backwards;
	/* --i: posición de la li (index.php); máximo 1s de espera */
	animation-delay: calc( var( --delay-base, 0s ) + min( var( --i, 0 ) * 50ms, 1s ) );
}

/* tras abrir el form al menos una vez, las li esperan a que la cabecera vuelva arriba (.6s) */
.directory.was-open {
	--delay-base: .6s;
}

.directory-row {
	display: grid;
	grid-template-columns: 1fr 4fr 2.5fr 1.25fr 1fr;
	align-items: center;
	padding: var( --spacing-s );
}

.directory-head {
	position: relative;
	z-index: 1;
	height: 32px;
	padding-top: 0;
	padding-bottom: 0;
	margin-bottom: var( --spacing-l );
	color: var( --grey );
	transition: transform .6s ease;
}

/* posiciones fijas: el formulario se superpone a los títulos en la misma fila */
.directory-head > * {
	grid-row: 1;
}

.directory-head > span {
	transition: opacity .3s ease;
}

.directory-head > span:nth-of-type( 1 ) { grid-column: 2; }
.directory-head > span:nth-of-type( 2 ) { grid-column: 3; }
.directory-head > span:nth-of-type( 3 ) { grid-column: 4; }

.directory-add {
	grid-column: 1;
	justify-self: start;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background-color: var( --off-white );
	color: var( --black );
}

.directory-add span {
	display: inline-block;
	transition: transform .6s ease;
}


/* formulario (CF7) */
.directory-form {
	grid-column: 2 / -1;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease, visibility .3s;
}

.directory-form form {
	position: relative;
	display: flex;
	align-items: center;
	gap: var( --spacing-m );
}

.directory-form .wpcf7-form-control-wrap {
	position: relative;
	flex: 1;
}

.directory-form input[type="text"],
.directory-form input[type="url"],
.directory-form input[type="email"] {
	width: 100%;
	padding: var( --spacing-s ) 12px;
	border: 0;
	border-radius: 8px;
	background-color: var( --off-white );
	color: var( --black );
}

.directory-form select {
	width: 100%;
	padding: var( --spacing-s ) 12px;
	border: 0;
	border-radius: 8px;
	background: var( --off-white ) url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23D9D9D9'/%3E%3C/svg%3E" ) no-repeat right 12px center;
	color: var( --black );
	appearance: none;
	cursor: pointer;
}

/* "Provincia" en gris mientras no se elija una */
.directory-form select:has( option[value=""]:checked ) {
	color: var( --grey );
}

.directory-form select option {
	color: var( --black );
}

/* "Provincia" es solo placeholder: no aparece en la lista */
.directory-form option[value=""] {
	display: none;
}

/* desplegable personalizado (Chrome/Edge 135+); el resto usa el nativo */
@supports ( appearance: base-select ) {
	.directory-form select,
	.directory-form select::picker( select ) {
		appearance: base-select;
	}

	.directory-form select::picker-icon,
	.directory-form option::checkmark {
		display: none;
	}

	/* la lista se abre siempre hacia abajo, pegada al select */
	.directory-form select::picker( select ) {
		position-area: block-end span-inline-end;
		position-try-fallbacks: none;
		margin: 0;
		padding: 4px;
		max-height: 50vh;
		overflow-y: auto;
		border: 0;
		border-radius: 0 0 8px 8px;
		background-color: var( --off-white );
		box-shadow: none;
	}

	.directory-form select:open {
		border-radius: 8px 8px 0 0;
	}

	.directory-form option {
		padding: var( --spacing-s ) 12px;
		border-radius: 0;
		background: none;
		cursor: pointer;
	}

	.directory-form option:hover,
	.directory-form option:focus-visible {
		background-color: var( --green-hover );
		color: var( --green );
		outline: none;
	}
}

.directory-form input:focus-visible,
.directory-form select:focus-visible {
	outline: none;
}

/* sin el fondo azul/amarillo del autocompletado del navegador */
/* en dos reglas: si un navegador no entiende un selector, ignora la regla entera */
.directory-form input:-webkit-autofill,
.directory-form select:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px var( --off-white ) inset;
	box-shadow: 0 0 0 1000px var( --off-white ) inset;
	-webkit-text-fill-color: var( --black );
	caret-color: var( --black );
	transition: background-color 9999s ease-out;
}

.directory-form input:autofill,
.directory-form select:autofill {
	-webkit-box-shadow: 0 0 0 1000px var( --off-white ) inset;
	box-shadow: 0 0 0 1000px var( --off-white ) inset;
	-webkit-text-fill-color: var( --black );
	caret-color: var( --black );
	transition: background-color 9999s ease-out;
}

.directory-form input::placeholder {
	color: var( --grey );
}

.directory-form input[type="submit"] {
	margin-left: var( --spacing-m );
	padding: 0;
	border: 0;
	background: none;
	color: var( --black );
	cursor: pointer;
}

.directory-form .wpcf7-not-valid-tip,
.directory-form .wpcf7 form .wpcf7-response-output {
	position: absolute;
	top: calc( 100% + var( --spacing-s ) );
	left: 0;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 12px;
	color: var( --grey );
    padding: 8px 12px;
    border: none;
    background-color: var(--white);
}

.directory-form .wpcf7-spinner {
	position: absolute;
	right: 0;
	margin: 0;
}


/* abierto */
.directory.is-open ul,
.directory.is-open .directory-head > span {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* al abrir, la ul se va con un fundido; al cerrar reaparece al instante y las li se animan */
.directory.is-open ul {
	transition: opacity .3s ease, visibility 0s linear .3s;
}

.directory.is-open li {
	animation: none;
}

.directory.is-open .directory-add span {
	transform: rotate( 45deg );
}

.directory.is-open .directory-form {
	opacity: 1;
	visibility: visible;
	transition-delay: .4s;
}

.directory-initial {
	width: 26px;
	text-align: center;
}

.directory li:nth-child( even ) {
	background-color: var( --off-white );
}

.directory li:hover {
	background-color: var( --green-hover );
	color: var( --green );
}

.directory-web {
	display: flex;
	align-items: center;
	gap: 2px;
	justify-self: end;
	opacity: 0;
}

.directory li:hover .directory-web,
.directory-web:focus-visible {
	opacity: 1;
}

/* preview: centrada en la columna del directorio y en el viewport */
.directory-preview {
	position: fixed;
	z-index: 10;
	top: 0;
	bottom: 0;
	left: calc( var( --spacing-m ) + ( var( --col ) + var( --spacing-l ) ) * 2 );
	right: var( --spacing-m );
	display: none;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.directory-preview img {
	height: 50vh;
	width: auto;
	max-width: none;
	border: 1px solid var( --green );
	background-color: var( --white );
}

.directory li:hover .directory-preview {
	display: flex;
}

.home-col-info{flex: 1 ;display: flex; flex-direction: column ;justify-content: space-between;}