/*
Theme Name: Edil Sole
Theme URI: https://edilsole.it
Author: Edilsoles Srl
Author URI: https://edilsole.it
Description: Tema custom per Edil Sole — impresa edile di Pozzuoli. Pagine: Home con bento grid 8 servizi e galleria cantieri, Azienda con timeline, Consulenze con 8 servizi tecnici, Contatti con form diretto. Palette nero/giallo, tipografia Archivo Black + Space Grotesk.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: edilsole
Tags: custom-colors, custom-menu, translation-ready
*/

html, body { margin:0; padding:0; background:#0A0A0A; color:#F5F1E8; font-family:'Space Grotesk', system-ui, sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
* { box-sizing:border-box; }
a { color:inherit; text-decoration:none; }
a:hover { color:#FFD100; }
::selection { background:#FFD100; color:#050505; }

/* WordPress alignment helpers */
.aligncenter { display:block; margin:0 auto; }
.alignleft { float:left; margin-right:1em; }
.alignright { float:right; margin-left:1em; }
.wp-caption { max-width:100%; }
.screen-reader-text { position:absolute !important; clip:rect(1px, 1px, 1px, 1px); overflow:hidden; height:1px; width:1px; }

/* Shared animations */
.reveal { opacity:0; transform:translateY(40px); transition:opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1); }
.reveal.in { opacity:1; transform:translateY(0); }
.rline { position:relative; overflow:hidden; padding-bottom:.12em; }
.rline::after { content:''; position:absolute; inset:0; background:#FFD100; transform-origin:right; transform:scaleX(1); transition:transform 1s cubic-bezier(.77,0,.18,1); }
.rline.in::after { transform:scaleX(0); }
.rline.done { overflow:visible; }
.rline.instant::after { transition:none !important; transform:scaleX(0) !important; }
.reveal.instant { transition:none !important; opacity:1 !important; transform:none !important; }
@keyframes marqueeX { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* Mobile menu */
.menuBtn { display:none; background:transparent; border:1px solid #333; color:#F5F1E8; padding:10px 14px; font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:.14em; cursor:pointer; }
.mobileMenu { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:#0A0A0A; z-index:150; padding:100px 32px 32px; flex-direction:column; gap:24px; }
.mobileMenu.on { display:flex; }
.mobileMenu a { font-family:'Archivo Black'; font-size:clamp(28px, 8vw, 40px); text-transform:uppercase; line-height:1; }

/* ============ FORM ELEMENTS (box design) ============ */
form label,
.form-label {
	display:block;
	font-family:'JetBrains Mono', monospace;
	font-size:11px;
	color:#888;
	letter-spacing:.18em;
	text-transform:uppercase;
	margin-bottom:10px;
}

form input[type="text"],
form input[type="email"],
form input[type="tel"],
form input[type="url"],
form input[type="number"],
form select,
form textarea {
	width:100%;
	background:#0A0A0A;
	border:1px solid #333;
	color:#F5F1E8;
	font-family:'Space Grotesk', sans-serif;
	font-size:15px;
	padding:18px 20px;
	outline:none;
	transition:border-color .3s, background .3s;
	border-radius:0;
	-webkit-appearance:none;
	appearance:none;
}
form input[type="text"]::placeholder,
form input[type="email"]::placeholder,
form input[type="tel"]::placeholder,
form textarea::placeholder { color:#555; }

form input[type="text"]:focus,
form input[type="email"]:focus,
form input[type="tel"]:focus,
form input[type="url"]:focus,
form input[type="number"]:focus,
form select:focus,
form textarea:focus {
	border-color:#FFD100;
	background:#111;
}

form select {
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='%23FFD100' d='M6 8L0 0h12z'/></svg>");
	background-repeat:no-repeat;
	background-position:right 20px center;
	background-size:10px;
	padding-right:40px;
	cursor:pointer;
}
form select option { background:#0A0A0A; color:#F5F1E8; }

form textarea {
	min-height:140px;
	font-family:'Space Grotesk', sans-serif;
	resize:vertical;
	line-height:1.6;
}

/* ============ CHIPS (clickable multi-select tags) ============ */
.chip {
	padding:12px 18px;
	border:1px solid #333;
	background:#0A0A0A;
	font-family:'JetBrains Mono', monospace;
	font-size:11px;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#C9C4B8;
	cursor:pointer;
	transition:all .25s;
	user-select:none;
	text-align:center;
	display:inline-flex;
	align-items:center;
	justify-content:center;
}
.chip:hover { border-color:#FFD100; color:#FFD100; }
.chip.on { background:#FFD100; color:#050505; border-color:#FFD100; }

/* ============ CUSTOM CHECKBOX (.cbox) ============ */
.cbox {
	display:flex !important;
	align-items:center;
	gap:12px;
	padding:14px 18px;
	border:1px solid #222;
	background:#0A0A0A;
	font-family:'JetBrains Mono', monospace;
	font-size:11px;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:#C9C4B8;
	cursor:pointer;
	transition:all .25s;
	margin:0 !important;
	text-transform:uppercase !important;
}
.cbox:hover { border-color:#FFD100; }
.cbox input[type="checkbox"] {
	appearance:none;
	-webkit-appearance:none;
	width:16px;
	height:16px;
	min-width:16px;
	border:1px solid #555;
	background:transparent;
	cursor:pointer;
	position:relative;
	margin:0;
	flex-shrink:0;
	transition:border-color .2s, background .2s;
}
.cbox input[type="checkbox"]:checked {
	background:#FFD100;
	border-color:#FFD100;
}
.cbox input[type="checkbox"]:checked::after {
	content:'';
	position:absolute;
	left:4px;
	top:0px;
	width:5px;
	height:10px;
	border:solid #050505;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}
.cbox:has(input:checked) { border-color:#FFD100; color:#FFD100; background:rgba(255,209,0,.04); }

/* GDPR line checkbox (inline, not a cbox) */
form .gdpr-row {
	display:flex;
	align-items:flex-start;
	gap:12px;
	padding:16px 20px;
	border:1px solid #222;
	background:#0A0A0A;
}
form .gdpr-row input[type="checkbox"] {
	appearance:none;
	-webkit-appearance:none;
	width:18px;
	height:18px;
	min-width:18px;
	border:1px solid #555;
	background:transparent;
	cursor:pointer;
	position:relative;
	margin:0;
	flex-shrink:0;
	margin-top:1px;
}
form .gdpr-row input[type="checkbox"]:checked {
	background:#FFD100;
	border-color:#FFD100;
}
form .gdpr-row input[type="checkbox"]:checked::after {
	content:'';
	position:absolute;
	left:5px;
	top:1px;
	width:5px;
	height:10px;
	border:solid #050505;
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}
form .gdpr-row label {
	letter-spacing:.02em !important;
	text-transform:none !important;
	font-family:'Space Grotesk' !important;
	font-size:13px !important;
	color:#888 !important;
	margin:0 !important;
	line-height:1.5;
	cursor:pointer;
}
form .gdpr-row a { color:#FFD100; text-decoration:underline; text-underline-offset:3px; }

/* Form field groups */
.form-group { display:flex; flex-direction:column; }
.form-group .error { font-family:'JetBrains Mono', monospace; font-size:10px; color:#FF4466; margin-top:6px; letter-spacing:.1em; text-transform:uppercase; }

/* Responsive */
@media (max-width: 1024px) {
	.nav-links { display:none !important; }
	.nav-cta { display:none !important; }
	.menuBtn { display:inline-flex; }
	nav img.nav-logo { height:60px !important; }
	section { padding-left:20px !important; padding-right:20px !important; }
	.cbox { padding:12px 14px; font-size:10px; }
}
@media (max-width: 640px) {
	nav { padding:14px 20px !important; }
	nav img.nav-logo { height:52px !important; }
	h1 { font-size:clamp(44px, 13vw, 72px) !important; }
	h2 { font-size:clamp(36px, 10vw, 60px) !important; }
	form input[type="text"],
	form input[type="email"],
	form input[type="tel"],
	form select,
	form textarea { font-size:14px; padding:14px 16px; }
}
