/*
Theme Name: ABILITA' DIVERSE
Theme URI: 
Author: Studio70
Author URI: https://www.studio70.it/
Description: Tema accessibile conforme WCAG 2.2 / WAI-ARIA
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: accessibility-ready, wcag-2.2
Text Domain: abilitadiverse
*/


/* ==========================================================================
   1.0 RESET
   ========================================================================== */
html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, 
blockquote, pre,abbr, address, cite, code,del, dfn, em, img, ins, 
kbd, q, samp,small, strong, sub, sup, var,b, i,dl, dt, dd, ol, ul, 
li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, 
tr, th, td,article, aside, canvas, details, figcaption, figure,footer, 
header, hgroup, menu, nav, section, summary,time, mark, audio, video 	{ margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; background:transparent;}
body 																	{ line-height:1; font-family: 'PT Sans Narrow', sans-serif;}
article,aside,details, figcaption,figure,footer, 
header,hgroup,menu,nav,section 											{ display:block;}
nav ul 																	{ list-style:none;}
blockquote, q 															{ quotes:none;}
blockquote:before, blockquote:after,q:before, q:after					{ content:''; content:none;}
a 																		{ margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; text-decoration:none; color:#4A4A4A; text-rendering: geometricPrecision;}
ins 																	{ background-color:#ff9; color:#000; text-decoration:none;}
mark 																	{ background-color:#ff9; color:#000; font-style:italic; font-weight:bold;}
del 																	{ text-decoration: line-through;}
abbr[title], dfn[title] 												{ border-bottom:1px dotted; cursor:help;}
table 																	{ border-collapse:collapse; border-spacing:0; font-family: 'PT Sans Narrow', sans-serif !important;}
hr 																		{ display:block; height:1px; border:0; border-top:1px solid #cccccc; margin:1em 0; padding:0;}
input, select				 											{ vertical-align:middle;}
* 																		{ box-sizing:border-box;}


/* ==========================================================================
   2.0 VARIABILI CSS
   ========================================================================== */
:root {
	/* Colori principali */
	--color-primary: 			#53b6bc;
	--color-primary-dark: 		#2A9D94;
	--color-secondary: 			#E8912C;
	--color-secondary-dark: 	#D07A1F;
	
	/* Colori testo */
	--color-text: 				#4A4A4A;
	--color-text-light: 		#666666;
	--color-white: 				#FFFFFF;
	
	/* Colori sfondo */
	--color-bg: 				#FFFFFF;
	--color-bg-light: 			#F5F5F5;
	
	/* Colori rainbow per il logo */
	--rainbow-red: 				#FF0000;
	--rainbow-orange: 			#FF7F00;
	--rainbow-yellow: 			#FFFF00;
	--rainbow-green: 			#00FF00;
	--rainbow-blue: 			#0000FF;
	--rainbow-indigo: 			#4B0082;
	--rainbow-violet: 			#8B00FF;
	
	/* Layout */
	--container-width: 			1600px;
	--header-height-top: 		60px;
	--header-height-main: 		70px;
	--logo-size: 				140px;
	
	/* Spacing */
	--spacing-xs: 				5px;
	--spacing-sm: 				10px;
	--spacing-md: 				15px;
	--spacing-lg: 				20px;
	--spacing-xl: 				30px;
	
	/* Transizioni */
	--transition-fast: 			0.2s ease;
	--transition-normal: 		0.3s ease;
	
	/* Focus - WCAG 2.4.7 */
	--focus-outline: 			3px solid var(--color-secondary);
	--focus-outline-offset: 	2px;
	
	/* Z-index */
	--z-header: 				1000;
	--z-overlay: 				1100;
	--z-modal: 					1200;
}


/* ==========================================================================
   3.0 ACCESSIBILITÀ - WCAG 2.2
   ========================================================================== */

/* 3.1 Screen Reader Only - Testo visibile solo agli screen reader */
.screen-reader-text 														{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.screen-reader-text:focus 													{ background-color:var(--color-bg); border-radius:3px; box-shadow:0 0 2px 2px rgba(0,0,0,0.6); clip:auto !important; color:var(--color-text); display:block; font-size:0.875rem; font-weight:700; height:auto; left:5px; line-height:normal; padding:15px 23px 14px; text-decoration:none; top:5px; width:auto; z-index:var(--z-modal);}

/* 3.2 Skip Link - WCAG 2.4.1 */
.skip-link 																	{ position:absolute; top:-100px; left:50%; transform:translateX(-50%); background:var(--color-primary); color:var(--color-white); padding:var(--spacing-md) var(--spacing-lg); z-index:var(--z-modal); border-radius:0 0 5px 5px; font-weight:700; transition:top var(--transition-fast);}
.skip-link:focus 															{ top:0; outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 3.3 Focus Styles - WCAG 2.4.7 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible 													{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 3.4 Reduced Motion - WCAG 2.3.3 */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after 													{ animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}


/* ==========================================================================
   4.0 HEADER - Struttura Base
   ========================================================================== */

/* 4.1 Site Header Container */
.site-header 																{ position:relative; width:100%; z-index:var(--z-header);}

/* 4.2 Top Bar */
.top-bar 																	{ background:var(--color-bg); width:100%; height:var(--header-height-top);}
.top-bar-inner 																{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); height:100%; display:flex; justify-content:flex-end; align-items:center;}

/* 4.3 Top Bar Info List */
.top-bar-info 																{ display:flex; align-items:center; gap:var(--spacing-xl); list-style:none; margin:0; padding:0;}
.info-item 																	{ display:flex; align-items:center; gap:var(--spacing-sm);}
.info-icon 																	{ display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.info-icon svg 																{ width:32px; height:32px;}
.info-content 																{ display:flex; flex-direction:column; line-height:1.3;}
.info-label 																{ color:var(--color-secondary); font-size:14px; font-weight:700; letter-spacing:0.5px;}
.info-text 																	{ color:var(--color-text-light); font-size:13px;}


/* ==========================================================================
   5.0 MAIN HEADER - Logo + Menu + Actions
   ========================================================================== */

/* 5.1 Main Header Container */
.main-header 																{ background:var(--color-primary); width:100%; height:var(--header-height-main); position:relative;}
.main-header.is-sticky 														{ position:fixed; top:0; left:0; right:0; box-shadow:0 2px 10px rgba(0,0,0,0.1);}
.main-header-inner 															{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); height:100%; display:flex; align-items:center; justify-content:space-between; position:relative;}

/* 5.2 Body padding when sticky */
body.header-sticky 															{ padding-top:var(--header-height-main);}


/* ==========================================================================
   6.0 LOGO
   ========================================================================== */

/* 6.1 Site Branding Container */
.site-branding 																{ position:relative; z-index:10; flex-shrink:0;}
.custom-logo-link 															{ display:block; text-decoration:none; margin-top: 25px;}
.custom-logo-link:focus-visible 											{ outline:var(--focus-outline); outline-offset:4px; border-radius:50%;}

/* 6.2 Logo Placeholder (quando non c'è logo personalizzato) */
.logo-placeholder 															{ position:relative; width:var(--logo-size); height:var(--logo-size); margin-top:calc((var(--header-height-main) - var(--logo-size)) / 2 - 20px); transition:width var(--transition-normal), height var(--transition-normal), margin-top var(--transition-normal);}

/* 6.3 Rainbow Border */
.logo-rainbow-border 														{ position:absolute; inset:0; border-radius:50%; background:conic-gradient(from 0deg, var(--rainbow-red), var(--rainbow-orange), var(--rainbow-yellow), var(--rainbow-green), var(--rainbow-blue), var(--rainbow-indigo), var(--rainbow-violet), var(--rainbow-red)); padding:6px;}
.logo-rainbow-border::before 												{ content:''; position:absolute; inset:6px; background:var(--color-white); border-radius:50%;}

/* 6.4 Logo Inner */
.logo-inner 																{ position:absolute; inset:6px; background:var(--color-white); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center;}
.logo-text 																	{ color:var(--color-text); font-size:14px; font-weight:700; line-height:1.3; transition:font-size var(--transition-normal);}
.logo-text small 															{ display:block; font-size:12px; font-weight:400;}
.logo-inner figure img 														{ position: absolute; top: 6%; left: 15%;}

/* 6.5 Logo Sticky State */
.main-header.is-sticky .logo-placeholder 									{ width: calc(var(--logo-size) - 10px); height: calc(var(--logo-size) - 10px); margin-top: 80px;}
.main-header.is-sticky .logo-text 											{ font-size:11px;}
.main-header.is-sticky .logo-text small 									{ font-size:9px;}


/* ==========================================================================
   7.0 NAVIGAZIONE PRINCIPALE
   ========================================================================== */

/* 7.1 Main Navigation Container */
.main-navigation 															{ flex:1; display:flex; justify-content:start; margin-left: 50px;}

/* 7.2 Menu Toggle (Hamburger) - Nascosto su desktop */
.menu-toggle 																{ display:none; background:none; border:none; cursor:pointer; padding:var(--spacing-sm); color:var(--color-white);}
.menu-toggle:focus-visible 													{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.menu-toggle-text 															{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);}

/* 7.3 Hamburger Icon */
.hamburger-box 																{ display:flex; flex-direction:column; justify-content:space-between; width:24px; height:18px;}
.hamburger-line 															{ display:block; width:100%; height:3px; background:var(--color-white); border-radius:2px; transition:transform var(--transition-fast), opacity var(--transition-fast);}

/* 7.4 Hamburger Animation */
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) 			{ transform:translateY(7.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) 			{ opacity:0;}
.menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) 			{ transform:translateY(-7.5px) rotate(-45deg);}

/* 7.5 Menu Container */
.menu-container 															{ display:flex; align-items:center;}

/* 7.6 Primary Menu List */
.primary-menu-list 															{ display:flex; align-items:center; gap:40px; list-style:none; margin:0; padding:0;}
.primary-menu-list li 														{ position:relative;}
.primary-menu-list > li > a 												{ display:flex; align-items:center; gap:5px; color:var(--color-white); font-size:20px; font-weight:400; padding:var(--spacing-sm) 0; transition:opacity var(--transition-fast); letter-spacing: 0.5px;}
.primary-menu-list > li > a:hover,
.primary-menu-list > li > a:focus 											{ opacity:0.8;}
.primary-menu-list > li > a:focus-visible 									{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 7.7 Menu Item con sottomenu - Freccia */
.primary-menu-list > li.menu-item-has-children > a::after 					{ content:''; display:inline-block; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid var(--color-white); margin-left:5px; transition:transform var(--transition-fast);}
.primary-menu-list > li.menu-item-has-children:hover > a::after,
.primary-menu-list > li.menu-item-has-children > a:focus::after 			{ transform:rotate(180deg);}

/* 7.8 Sottomenu */
.primary-menu-list .sub-menu 												{ position:absolute; top:100%; left:0; min-width:200px; background:var(--color-white); box-shadow:0 5px 20px rgba(0,0,0,0.15); border-radius:0 0 5px 5px; padding:var(--spacing-sm) 0; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast); list-style:none;}
.primary-menu-list > li:hover > .sub-menu,
.primary-menu-list > li:focus-within > .sub-menu 							{ opacity:1; visibility:visible; transform:translateY(0);}
.primary-menu-list .sub-menu li 											{ margin:0;}
.primary-menu-list .sub-menu a 												{ display:block; padding:var(--spacing-sm) var(--spacing-lg); color:var(--color-text); font-size:18px; transition:background var(--transition-fast), color var(--transition-fast);}
.primary-menu-list .sub-menu a:hover,
.primary-menu-list .sub-menu a:focus 										{ background:var(--color-bg-light); color:var(--color-primary);}
.primary-menu-list .sub-menu a:focus-visible 								{ outline:var(--focus-outline); outline-offset:-3px;}


/* ==========================================================================
   8.0 HEADER ACTIONS (Ricerca + Carrello)
   ========================================================================== */

/* 8.1 Actions Container */
.header-actions 															{ display:flex; align-items:center; gap:var(--spacing-md);}

/* 8.2 Actions Separator */
.actions-separator 															{ width:1px; height:24px; background:rgba(255,255,255,0.4);}

/* 8.3 Action Buttons */
.action-btn 																{ display:flex; align-items:center; justify-content:center; background:none; border:none; cursor:pointer; color:var(--color-white); padding:var(--spacing-xs); transition:opacity var(--transition-fast);}
.action-btn:hover 															{ opacity:0.8;}
.action-btn:focus-visible 													{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.action-btn svg 															{ width:24px; height:24px;}

/* 8.4 Search Button */
.search-toggle 																{ color:var(--color-white);}

/* 8.5 Cart Link */
.cart-link 																	{ position:relative; display: none;}
.cart-count 																{ position:absolute; top:-5px; right:-8px; min-width:18px; height:18px; background:var(--color-secondary); color:var(--color-white); font-size:11px; font-weight:700; border-radius:50%; display:flex; align-items:center; justify-content:center; padding:0 4px;}


/* ==========================================================================
   9.0 SEARCH INLINE
   ========================================================================== */

/* 9.1 Search Inline Container */
.search-inline 																{ display:flex; align-items:center; max-width:0; overflow:hidden; opacity:0; transition:max-width var(--transition-normal), opacity var(--transition-normal), margin var(--transition-normal); margin-right:0;}
.search-inline.is-active 													{ max-width:250px; opacity:1; margin-right:var(--spacing-md);}

/* 9.2 Search Form */
.search-inline .search-form 												{ display:flex; align-items:center; background:var(--color-white); border-radius:4px; overflow:hidden; height:36px;}
.search-inline .search-field 												{ border:none; padding:var(--spacing-xs) var(--spacing-sm); font-size:14px; font-family:inherit; outline:none; width:180px; height:100%;}
.search-inline .search-field:focus 											{ box-shadow:inset 0 0 0 2px var(--color-primary);}
.search-inline .search-submit 												{ background:var(--color-primary); border:none; padding:0 var(--spacing-sm); cursor:pointer; color:var(--color-white); height:100%; display:flex; align-items:center; justify-content:center; transition:background var(--transition-fast);}
.search-inline .search-submit:hover 										{ background:var(--color-primary-dark);}
.search-inline .search-submit:focus-visible 								{ outline:var(--focus-outline); outline-offset:-3px;}


/* ==========================================================================
   10.0 MOBILE MENU OVERLAY
   ========================================================================== */
.mobile-menu-overlay 														{ position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:calc(var(--z-header) - 1); opacity:0; visibility:hidden; transition:opacity var(--transition-normal), visibility var(--transition-normal);}
.mobile-menu-overlay.is-active 												{ opacity:1; visibility:visible;}


/* ==========================================================================
   11.0 MAIN CONTENT
   ========================================================================== */
.site-main 																	{ min-height:50vh;}


/* ==========================================================================
   12.0 FOOTER
   ========================================================================== */
.site-footer 																{ background:var(--color-text); color:var(--color-white); padding:var(--spacing-xl) 0;}
.footer-inner 																{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg);}


/* ==========================================================================
   13.0 HERO BANNER SLIDER
   ========================================================================== */

/* 13.1 Hero Banner Container */
.hero-banner 																{ position:relative; width:100%; height:calc(100vh - var(--header-height-top)); min-height:400px; max-height:700px; overflow:hidden; margin-top:calc(-1 * var(--header-height-main));}

/* 13.2 Live Region per Screen Reader */
.hero-banner-live 															{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

/* 13.3 Slides Container */
.hero-banner-slides 														{ position:relative; width:100%; height:100%;}

/* 13.4 Single Slide */
.hero-slide 																{ position:absolute; top:0; left:0; width:100%; height:100%; opacity:0; visibility:hidden; transition:opacity 0.8s ease, visibility 0.8s ease; z-index:1;}
.hero-slide.is-active 														{ opacity:1; visibility:visible; z-index:2;}

/* 13.5 Slide Background Image */
.hero-slide-bg 																{ position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:center center; background-repeat:no-repeat;}

/* 13.6 Slide Overlay (per contrasto testo - WCAG 1.4.3) */
.hero-slide-overlay 														{ position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(90deg, rgba(60, 181, 173, 0.7) 0%, rgba(60, 181, 173, 0.4) 50%, rgba(60, 181, 173, 0.1) 100%);}

/* 13.7 Slide Content */
.hero-slide-content 														{ position:relative; z-index:3; width:100%; height:100%; display:flex; align-items:center;}
.hero-slide-inner 															{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); padding-left:calc(var(--logo-size) + 80px); width:100%;}

/* 13.8 Slide Subtitle (Titolo del post - italic) */
.hero-slide-subtitle 														{ color:var(--color-white); font-size:28px; font-style:italic; font-weight:400; margin:0 0 var(--spacing-md) 0; letter-spacing:1px; text-shadow:0 2px 4px rgba(0,0,0,0.2);}

/* 13.9 Slide Title (Contenuto - bold) */
.hero-slide-title 															{ color:var(--color-white); font-size:48px; font-weight:700; line-height:1.2; margin:0 0 var(--spacing-xl) 0; max-width:700px; text-transform:uppercase; text-shadow:0 2px 4px rgba(0,0,0,0.2);}

/* 13.10 Call to Action Button */
.hero-slide-cta 															{ margin-top:var(--spacing-lg);}

.btn 																		{ display:inline-flex; align-items:center; justify-content:center; padding:var(--spacing-md) var(--spacing-xl); border-radius:30px; font-size:16px; font-weight:700; text-decoration:none; transition:all var(--transition-normal); cursor:pointer; border:2px solid transparent;}

.btn-primary 																{ background:var(--color-secondary); color:var(--color-white); border-color:var(--color-secondary);}
.btn-primary:hover 															{ background:var(--color-secondary-dark); border-color:var(--color-secondary-dark);}
.btn-primary:focus-visible 													{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

.btn-cta 																	{ padding:var(--spacing-md) 35px; font-size:14px; letter-spacing:0.5px; text-transform:uppercase;}


/* ==========================================================================
   14.0 HERO BANNER NAVIGATION
   ========================================================================== */

/* 14.1 Navigation Container */
.hero-banner-nav 															{ position:absolute; top:0; left:0; right:0; bottom:0; z-index:10; pointer-events:none; display:flex; align-items:center; justify-content:space-between; padding:0;}

/* 14.2 Navigation Buttons */
.hero-nav-btn 																{ pointer-events:auto; background:transparent; border:none; cursor:pointer; color:var(--color-white); padding:var(--spacing-lg); transition:all var(--transition-normal); display:flex; align-items:center; justify-content:center; opacity:0.7;}
.hero-nav-btn:hover 														{ opacity:1;}
.hero-nav-btn:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset); opacity:1;}

/* 14.3 Navigation Icons */
.hero-nav-icon 																{ display:flex; align-items:center; justify-content:center;}
.hero-nav-icon svg 															{ width:40px; height:40px;}

/* 14.4 Navigation Prev/Next Positioning */
.hero-nav-prev 																{ margin-left:var(--spacing-sm);}
.hero-nav-next 																{ margin-right:var(--spacing-sm);}


/* ==========================================================================
   15.0 HERO BANNER CONTROLS (Play/Pause)
   ========================================================================== */

/* 15.1 Controls Container */
.hero-banner-controls 														{ position:absolute; bottom:var(--spacing-xl); right:var(--spacing-xl); z-index:10;}

/* 15.2 Control Button */
.hero-control-btn 															{ background:rgba(255,255,255,0.2); border:2px solid var(--color-white); border-radius:50%; width:44px; height:44px; cursor:pointer; color:var(--color-white); display:flex; align-items:center; justify-content:center; transition:all var(--transition-normal);}
.hero-control-btn:hover 													{ background:rgba(255,255,255,0.3);}
.hero-control-btn:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 15.3 Control Icons */
.hero-control-icon 															{ display:flex; align-items:center; justify-content:center;}


/* ==========================================================================
   16.0 CTA ENROLL A CHILD
   ========================================================================== */

/* 16.1 CTA Enroll Container */
.cta-enroll 																{ background:var(--color-primary); width:100%; padding:var(--spacing-xl) 0;}
.cta-enroll-inner 															{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); display:flex; align-items:center; justify-content:space-between; gap:var(--spacing-xl);}

/* 16.2 CTA Enroll Icon */
.cta-enroll-icon 															{ flex-shrink:0;}
.cta-enroll-icon-circle 													{ width:80px; height:80px; background:var(--color-white); border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 15px rgba(0,0,0,0.1);}
.cta-enroll-icon-circle svg 												{ width:48px; height:48px;}

/* 16.3 CTA Enroll Content */
.cta-enroll-content 														{ flex:1;}
.cta-enroll-title 															{ color:var(--color-white); font-size:24px; font-weight:700; margin:0 0 var(--spacing-xs) 0; letter-spacing:1px;}
.cta-enroll-text 															{ color:var(--color-white); font-size:18px; font-weight:400; margin:0; line-height:1.4;}

/* 16.4 CTA Enroll Action */
.cta-enroll-action 															{ flex-shrink:0;}

/* 16.5 Button Outline White */
.btn-outline-white 															{ background:transparent; color:var(--color-white); border:2px solid var(--color-white); padding:var(--spacing-sm) var(--spacing-xl); font-size:14px; letter-spacing:0.5px;}
.btn-outline-white:hover 													{ background:var(--color-white); color:var(--color-primary);}
.btn-outline-white:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}


/* ==========================================================================
   17.0 OUR SERVICES SECTION
   ========================================================================== */

/* 17.1 Services Container */
.our-services 																{ background:var(--color-bg); width:100%; padding:80px 0;}
.services-inner 															{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); display:flex; align-items:flex-start; gap:60px;}


/* ==========================================================================
   18.0 SECTION HEADER (Riutilizzabile)
   ========================================================================== */

/* 18.1 Section Header Container */
.section-header 															{ text-align:center; margin-bottom:60px; max-width:var(--container-width); margin-left:auto; margin-right:auto; padding:0 var(--spacing-lg);}

/* 18.2 Section Title */
.section-title 																{ color:var(--color-text-light); font-size:36px; font-weight:700; margin:0 0 var(--spacing-sm) 0; letter-spacing:2px; text-transform:uppercase;}

/* 18.3 Section Subtitle */
.section-subtitle 															{ color:var(--color-text-light); font-size:16px; font-weight:400; margin:0 0 var(--spacing-lg) 0;}

/* 18.4 Section Divider */
.section-divider 															{ display:flex; align-items:center; justify-content:center; gap:var(--spacing-sm);}
.divider-line 																{ width:30px; height:2px; background:var(--color-primary);}
.divider-circle 															{ width:12px; height:12px; border:2px solid var(--color-primary); border-radius:50%; background:transparent;}


/* ==========================================================================
   19.0 SERVICES INTRO (Colonna Sinistra)
   ========================================================================== */

/* 19.1 Services Intro Container */
.services-intro 															{ flex:0 0 380px; max-width:380px;}

/* 19.2 Intro Title */
.services-intro-title 														{ color:var(--color-text); font-size:28px; font-weight:700; margin:0 0 var(--spacing-md) 0; line-height:1.3;}

/* 19.3 Intro Content (WYSIWYG) */
.services-intro-content 													{ color:var(--color-text-light); font-size:18px; line-height:1.7; margin:0 0 var(--spacing-xl) 0;}
.services-intro-content p 													{ margin:0 0 var(--spacing-md) 0;}
.services-intro-content p:last-child 										{ margin-bottom:0;}
.services-intro-content strong 												{ color:var(--color-text-light); font-size:18px; font-weight:400; text-transform:uppercase; letter-spacing:0.5px; display:block; margin-bottom:var(--spacing-md);}

/* 19.4 Intro Content - Lista dal WYSIWYG */
.services-intro-content ul 													{ list-style:none; margin:var(--spacing-lg) 0 0 0; padding:0;}
.services-intro-content ul li 												{ position:relative; padding-left:30px; margin-bottom:var(--spacing-md); color:var(--color-text-light); font-size:18px; line-height:1.4;}
.services-intro-content ul li:last-child 									{ margin-bottom:0;}
.services-intro-content ul li::before 										{ content:''; position:absolute; left:0; top:2px; width:20px; height:20px; border:2px solid var(--color-secondary); border-radius:50%; background:transparent;}
.services-intro-content ul li::after 										{ content:''; position:absolute; left:9px; top:7px; width:5px; height:8px; border:solid var(--color-secondary); border-width:0 2px 2px 0; transform:rotate(45deg);}

/* 19.5 Intro Action Button */
.services-intro-action 														{ margin-top:var(--spacing-xl);}

/* 19.6 Button Outline Secondary */
.btn-outline-secondary 														{ background:transparent; color:var(--color-secondary); border:2px solid var(--color-secondary); padding:var(--spacing-sm) var(--spacing-xl); font-size:14px; letter-spacing:0.5px; text-transform:uppercase; font-weight:700; transition:all var(--transition-normal);}
.btn-outline-secondary:hover 												{ background:var(--color-secondary); color:var(--color-white);}
.btn-outline-secondary:focus-visible 										{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}


/* ==========================================================================
   20.0 SERVICES GRID (Colonna Destra)
   ========================================================================== */

/* 20.1 Services Grid Container */
.services-grid 																{ flex:1; display:grid; grid-template-columns:repeat(3, 1fr); gap:40px 30px;}

/* 20.2 Service Card */
.service-card 																{ display:flex; flex-direction:column; align-items:flex-start;}

/* 20.3 Service Icon */
.service-icon 																{ margin-bottom:var(--spacing-md);}
.service-icon-circle 														{ width:100px; height:100px; border:2px solid #E8E8E8; border-radius:50%; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--color-white); transition:border-color var(--transition-normal);}
.service-card:hover .service-icon-circle,
.service-card:focus-within .service-icon-circle 							{ border-color:var(--color-primary);}
.service-icon-circle img 													{ width:48px; height:48px; object-fit:contain;}
.service-icon-placeholder 													{ color:var(--color-secondary);}
.service-icon-placeholder svg 												{ width:48px; height:48px;}

/* 20.4 Service Title */
.service-title 																{ color:var(--color-text); font-size:18px; font-weight:700; margin:0 0 var(--spacing-sm) 0; text-transform:uppercase; letter-spacing:0.5px; line-height:1.3;}
.service-title a 															{ color:inherit; text-decoration:none; transition:color var(--transition-fast);}
.service-title a:hover,
.service-title a:focus 														{ color:var(--color-primary);}
.service-title a:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 20.5 Service Description */
.service-description 														{ color:var(--color-text-light); font-size:18px; line-height:1.6; margin:0;}

/* ==========================================================================
   21.0 GALLERY SHOWCASE
   ========================================================================== */

/* 21.1 Gallery Showcase Container */
.gallery-showcase 															{ width:100%; background:var(--color-bg);}

/* 21.2 Gallery Strip - Striscia Immagini */
.gallery-strip 																{ display:flex; width:100%; overflow:hidden;}

/* 21.3 Gallery Strip Item */
.gallery-strip-item 														{ flex:1 1 20%; min-width:0; position:relative; overflow:hidden;}

/* 21.4 Gallery Strip Figure */
.gallery-strip-figure 														{ margin:0; padding:0; width:100%; height:100%; aspect-ratio:4/3;}

/* 21.5 Gallery Strip Image */
.gallery-strip-image 														{ width:100%; height:100%; object-fit:cover; display:block; transition:transform var(--transition-normal);}
.gallery-strip-item:hover .gallery-strip-image,
.gallery-strip-item:focus-within .gallery-strip-image 						{ transform:scale(1.05);}

/* 21.6 CTA Gallery - Modifica specifica (eredita da cta-enroll) */
.cta-gallery 																{ /* Utilizza tutte le proprietà di .cta-enroll */}
.cta-gallery .cta-enroll-title 												{ font-style:italic; text-transform:uppercase;}

/* ==========================================================================
   22.0 LATEST POSTS (WHAT'S NEW)
   ========================================================================== */

/* 22.1 Latest Posts Container */
.latest-posts 																{ background:var(--color-bg); width:100%; padding:80px 0;}

/* 22.2 Latest Posts Inner */
.latest-posts-inner 														{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg);}

/* 22.3 Posts Grid */
.latest-posts-grid 															{ display:grid; grid-template-columns:repeat(3, 1fr); gap:40px; list-style:none; margin:0; padding:0;}


/* ==========================================================================
   23.0 POST CARD
   ========================================================================== */

/* 23.1 Post Card Container */
.post-card 																	{ display:flex; flex-direction:column;}
.post-card-article 															{ display:flex; flex-direction:column; height:100%;}

/* 23.2 Post Card Figure */
.post-card-figure 															{ margin:0 0 var(--spacing-lg) 0; padding:0; overflow:hidden; border-radius:4px;}
.post-card-figure a 														{ display:block; line-height:0;}

/* 23.3 Post Card Image */
.post-card-image 															{ width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform var(--transition-normal); object-position: top;}
.post-card:hover .post-card-image,
.post-card:focus-within .post-card-image 									{ transform:scale(1.05);}

/* 23.4 Post Card Placeholder (no image) */
.post-card-figure--placeholder 												{ background:var(--color-bg-light);}
.post-card-placeholder 														{ width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; color:var(--color-text-light); opacity:0.5;}

/* 23.5 Post Card Date */
.post-card-date 															{ display:flex; align-items:baseline; gap:2px; margin:0 0 var(--spacing-sm) 0; color:var(--color-primary);}
.post-card-date-day 														{ font-size:32px; font-weight:700; line-height:1;}
.post-card-date-separator 													{ font-size:24px; font-weight:400; margin:0 2px;}
.post-card-date-month 														{ font-size:14px; font-weight:400; text-transform:uppercase; letter-spacing:0.5px;}

/* 23.6 Post Card Title */
.post-card-title 															{ font-size:22px; font-weight:700; line-height:1.3; margin:0 0 var(--spacing-sm) 0;}
.post-card-title a 															{ color:var(--color-secondary); text-decoration:none; transition:color var(--transition-fast);}
.post-card-title a:hover,
.post-card-title a:focus 													{ color:var(--color-secondary-dark);}
.post-card-title a:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 23.7 Post Card Excerpt */
.post-card-excerpt 															{ color:var(--color-text-light); font-size:16px; line-height:1.6; margin:0; flex-grow:1;}

/* 23.8 Latest Posts Action (CTA Button) */
.latest-posts-action 														{ text-align:center; margin-top:50px;}

/* 23.9 Latest Posts Empty State */
.latest-posts-empty 														{ max-width:var(--container-width); margin:0 auto; padding:var(--spacing-xl) var(--spacing-lg); text-align:center; color:var(--color-text-light); font-size:18px;}

/* ==========================================================================
   24.0 NEWSLETTER CTA SECTION
   ========================================================================== */

/* 24.1 Newsletter CTA Container */
.newsletter-cta 															{ background:var(--color-bg); width:100%; padding:60px 0; border-top:1px solid var(--color-bg-light);}
.newsletter-cta-inner 														{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); display:flex; align-items:center; justify-content:center; gap:60px;}

/* 24.2 Newsletter Icon */
.newsletter-icon 															{ flex-shrink:0;}
.newsletter-icon-box 														{ width:100px; height:100px; background:var(--color-bg); border:2px solid var(--color-bg-light); border-radius:8px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 15px rgba(0,0,0,0.05);}
.newsletter-icon-box svg 													{ width:60px; height:60px;}

/* 24.3 Newsletter Content */
.newsletter-content 														{ flex:1; max-width:600px;}
.newsletter-title 															{ color:var(--color-text); font-size:32px; font-weight:700; margin:0 0 var(--spacing-lg) 0; letter-spacing:0.5px;}

/* 24.4 Newsletter Form */
.newsletter-form 															{ width:100%;}
.newsletter-form-group 														{ display:flex; align-items:stretch; background:var(--color-bg); border:1px solid #E0E0E0; border-radius:30px; overflow:hidden; box-shadow:0 2px 10px rgba(0,0,0,0.05);}
.newsletter-input 															{ flex:1; border:none; padding:var(--spacing-md) var(--spacing-xl); font-size:16px; font-family:inherit; outline:none; background:transparent; min-width:0;}
.newsletter-input::placeholder 												{ color:var(--color-text-light); opacity:0.7;}
.newsletter-input:focus 													{ box-shadow:inset 0 0 0 2px var(--color-primary);}
.newsletter-submit 															{ flex-shrink:0; border-radius:30px; margin:4px; padding:var(--spacing-sm) var(--spacing-xl); font-size:14px; font-weight:700; letter-spacing:0.5px;}


/* ==========================================================================
   25.0 FOOTER COLOR BAR
   ========================================================================== */
.footer-color-bar 															{ width:100%; height:8px; background:var(--color-secondary);}


/* ==========================================================================
   26.0 FOOTER - Main Structure
   ========================================================================== */

/* 26.1 Site Footer Container */
.site-footer 																{ background:var(--color-primary); color:var(--color-white); padding:0;}

/* 26.2 Footer Inner (Riutilizzato) */
.footer-inner 																{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg);}


/* ==========================================================================
   27.0 FOOTER MAIN CONTENT
   ========================================================================== */

/* 27.1 Footer Main Container */
.footer-main 																{ padding:60px 0;}
.footer-main .footer-inner 													{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:60px;}

/* 27.2 Footer Column */
.footer-column 																{ display:flex; flex-direction:column;}

/* 27.3 Footer Title */
.footer-title 																{ color:var(--color-white); font-size:18px; font-weight:700; margin:0 0 var(--spacing-sm) 0; letter-spacing:1px; text-transform:uppercase;}

/* 27.4 Footer Title Divider */
.footer-title-divider 														{ width:40px; height:3px; background:var(--color-secondary); margin-bottom:var(--spacing-xl);}

/* 27.5 Footer About */
.footer-about-text 															{ color:rgba(255,255,255,0.9); font-size:18px; line-height:1.7; margin-bottom:var(--spacing-lg);}
.footer-about-text p 														{ margin:0;}
.footer-credit 																{ color:rgba(255,255,255,0.7); font-size:18px; line-height:1.6;}
.footer-credit p 															{ margin:0;}
.footer-credit a 															{ color:var(--color-white); text-decoration:underline; transition:opacity var(--transition-fast);}
.footer-credit a:hover 														{ opacity:0.8;}
.footer-credit a:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 27.6 Footer Menu List */
.footer-menu-list 															{ list-style:none; margin:0; padding:0;}
.footer-menu-list li 														{ margin-bottom:var(--spacing-sm);}
.footer-menu-list li:last-child 											{ margin-bottom:0;}
.footer-menu-list a 														{ color:rgba(255,255,255,0.9); font-size:18px; text-decoration:none; transition:all var(--transition-fast); display:inline-block; position:relative; padding-left:0;}
.footer-menu-list a::before 												{ content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--color-white); transition:width var(--transition-fast);}
.footer-menu-list a:hover 													{ color:var(--color-white);}
.footer-menu-list a:hover::before 											{ width:100%;}
.footer-menu-list a:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}


/* ==========================================================================
   28.0 FOOTER SOCIAL
   ========================================================================== */

/* 28.1 Footer Social Container */
.footer-social 																{ background:var(--color-bg); padding:40px 0;}
.footer-social-inner 														{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); display:flex; justify-content:center;}

/* 28.2 Social Links */
.social-links 																{ display:flex; align-items:center; gap:var(--spacing-lg); list-style:none; margin:0; padding:0;}

/* 28.3 Social Item */
.social-item 																{ margin:0;}

/* 28.4 Social Link */
.social-link 																{ display:flex; align-items:center; justify-content:center; width:56px; height:56px; border:2px solid var(--color-text); border-radius:50%; color:var(--color-text); text-decoration:none; transition:all var(--transition-normal);}
.social-link:hover 															{ background:var(--color-primary); border-color:var(--color-primary); color:var(--color-white);}
.social-link:focus-visible 													{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.social-link svg 															{ width:24px; height:24px;}


/* ==========================================================================
   29.0 FOOTER COPYRIGHT
   ========================================================================== */

/* 29.1 Footer Copyright Container */
.footer-copyright 															{ background:var(--color-bg); padding:var(--spacing-lg) 0; border-top:1px solid var(--color-bg-light);}
.footer-copyright-inner 													{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg); text-align:center;}

/* 29.2 Copyright Text */
.copyright-text 															{ color:var(--color-text-light); font-size:18px; margin:0;}
.copyright-text span 														{ margin:0 var(--spacing-xs);}


/* ==========================================================================
   RESPONSIVE - Footer - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.newsletter-cta 														{ padding:50px 0;}
	.newsletter-cta-inner 													{ gap:50px;}
	.newsletter-icon-box 													{ width:90px; height:90px;}
	.newsletter-icon-box svg 												{ width:55px; height:55px;}
	.newsletter-title 														{ font-size:28px;}
	.footer-main 															{ padding:50px 0;}
	.footer-main .footer-inner 												{ gap:50px;}
	.footer-title 															{ font-size:18px;}
	.footer-about-text 														{ font-size:18px;}
	.footer-menu-list a 													{ font-size:18px;}
}


/* ==========================================================================
   RESPONSIVE - Footer - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.newsletter-cta 														{ padding:45px 0;}
	.newsletter-cta-inner 													{ gap:40px;}
	.newsletter-icon-box 													{ width:80px; height:80px;}
	.newsletter-icon-box svg 												{ width:48px; height:48px;}
	.newsletter-title 														{ font-size:26px; margin-bottom:var(--spacing-md);}
	.newsletter-input 														{ padding:var(--spacing-sm) var(--spacing-lg); font-size:15px;}
	.newsletter-submit 														{ padding:var(--spacing-sm) var(--spacing-lg); font-size:13px;}
	.footer-main 															{ padding:45px 0;}
	.footer-main .footer-inner 												{ gap:40px;}
	.footer-title 															{ font-size:16px;}
	.footer-title-divider 													{ margin-bottom:var(--spacing-lg);}
	.footer-about-text 														{ font-size:14px;}
	.footer-credit 															{ font-size:13px;}
	.footer-menu-list a 													{ font-size:14px;}
	.footer-social 															{ padding:35px 0;}
	.social-link 															{ width:50px; height:50px;}
	.social-link svg 														{ width:22px; height:22px;}
}


/* ==========================================================================
   RESPONSIVE - Footer - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.newsletter-cta 														{ padding:40px 0;}
	.newsletter-cta-inner 													{ flex-direction:column; gap:var(--spacing-lg); text-align:center;}
	.newsletter-content 													{ max-width:100%;}
	.newsletter-title 														{ font-size:24px;}
	.footer-main 															{ padding:40px 0;}
	.footer-main .footer-inner 												{ grid-template-columns:1fr; gap:40px; text-align:center;}
	.footer-column 															{ align-items:center;}
	.footer-title-divider 													{ margin-left:auto; margin-right:auto;}
	.footer-about-text 														{ max-width:500px;}
	.footer-menu-list 														{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--spacing-sm) var(--spacing-lg);}
	.footer-menu-list li 													{ margin-bottom:0;}
	.footer-social 															{ padding:30px 0;}
	.social-link 															{ width:48px; height:48px;}
	.social-link svg 														{ width:20px; height:20px;}
}


/* ==========================================================================
   RESPONSIVE - Footer - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.newsletter-cta 														{ padding:35px 0;}
	.newsletter-cta-inner 													{ flex-direction:column; gap:var(--spacing-lg); text-align:center;}
	.newsletter-icon-box 													{ width:70px; height:70px;}
	.newsletter-icon-box svg 												{ width:42px; height:42px;}
	.newsletter-title 														{ font-size:22px;}
	.newsletter-form-group 													{ flex-direction:column; border-radius:8px; gap:0;}
	.newsletter-input 														{ border-radius:8px 8px 0 0; text-align:center; border-bottom:1px solid #E0E0E0;}
	.newsletter-submit 														{ border-radius:0 0 8px 8px; margin:0; width:100%;}
	.footer-main 															{ padding:35px 0;}
	.footer-main .footer-inner 												{ grid-template-columns:1fr; gap:35px; text-align:center;}
	.footer-column 															{ align-items:center;}
	.footer-title 															{ font-size:16px;}
	.footer-title-divider 													{ margin-left:auto; margin-right:auto; margin-bottom:var(--spacing-lg);}
	.footer-about-text 														{ font-size:14px; max-width:100%;}
	.footer-credit 															{ font-size:13px;}
	.footer-menu-list 														{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--spacing-sm) var(--spacing-lg);}
	.footer-menu-list li 													{ margin-bottom:0;}
	.footer-menu-list a 													{ font-size:14px;}
	.footer-social 															{ padding:25px 0;}
	.social-links 															{ gap:var(--spacing-md);}
	.social-link 															{ width:46px; height:46px;}
	.social-link svg 														{ width:20px; height:20px;}
	.footer-copyright 														{ padding:var(--spacing-md) 0;}
	.copyright-text 														{ font-size:16px;}
}


/* ==========================================================================
   RESPONSIVE - Footer - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.newsletter-cta 														{ padding:30px 0;}
	.newsletter-cta-inner 													{ flex-direction:column; gap:var(--spacing-md); text-align:center;}
	.newsletter-icon-box 													{ width:60px; height:60px;}
	.newsletter-icon-box svg 												{ width:36px; height:36px;}
	.newsletter-title 														{ font-size:20px; margin-bottom:var(--spacing-md);}
	.newsletter-form-group 													{ flex-direction:column; border-radius:8px;}
	.newsletter-input 														{ padding:var(--spacing-md); font-size:14px; border-radius:8px 8px 0 0; text-align:center; border-bottom:1px solid #E0E0E0;}
	.newsletter-input::placeholder 											{ font-size:14px;}
	.newsletter-submit 														{ border-radius:0 0 8px 8px; margin:0; padding:var(--spacing-md); font-size:13px; width:100%;}
	.footer-color-bar 														{ height:6px;}
	.footer-main 															{ padding:30px 0;}
	.footer-main .footer-inner 												{ grid-template-columns:1fr; gap:30px; text-align:center;}
	.footer-column 															{ align-items:center;}
	.footer-title 															{ font-size:15px;}
	.footer-title-divider 													{ width:35px; margin-left:auto; margin-right:auto; margin-bottom:var(--spacing-md);}
	.footer-about-text 														{ font-size:13px; line-height:1.6;}
	.footer-credit 															{ font-size:12px;}
	.footer-menu-list 														{ display:flex; flex-direction:column; align-items:center; gap:var(--spacing-sm);}
	.footer-menu-list li 													{ margin-bottom:0;}
	.footer-menu-list a 													{ font-size:14px;}
	.footer-social 															{ padding:20px 0;}
	.social-links 															{ gap:var(--spacing-sm);}
	.social-link 															{ width:44px; height:44px;}
	.social-link svg 														{ width:18px; height:18px;}
	.footer-copyright 														{ padding:var(--spacing-sm) 0;}
	.copyright-text 														{ font-size:16px; line-height:1.5;}
}


/* ==========================================================================
   RESPONSIVE - Latest Posts - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.latest-posts 															{ padding:70px 0;}
	.latest-posts-grid 														{ gap:35px;}
	.post-card-date-day 													{ font-size:28px;}
	.post-card-date-separator 												{ font-size:22px;}
	.post-card-date-month 													{ font-size:13px;}
	.post-card-title 														{ font-size:20px;}
	.post-card-excerpt 														{ font-size:15px;}
	.latest-posts-action 													{ margin-top:45px;}
}


/* ==========================================================================
   RESPONSIVE - Latest Posts - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.latest-posts 															{ padding:60px 0;}
	.latest-posts-grid 														{ gap:30px;}
	.post-card-figure 														{ margin-bottom:var(--spacing-md);}
	.post-card-date-day 													{ font-size:26px;}
	.post-card-date-separator 												{ font-size:20px;}
	.post-card-date-month 													{ font-size:12px;}
	.post-card-title 														{ font-size:18px;}
	.post-card-excerpt 														{ font-size:14px;}
	.latest-posts-action 													{ margin-top:40px;}
}


/* ==========================================================================
   RESPONSIVE - Latest Posts - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.latest-posts 															{ padding:50px 0;}
	.latest-posts-grid 														{ grid-template-columns:repeat(3, 1fr); gap:25px;}
	.post-card-figure 														{ margin-bottom:var(--spacing-md);}
	.post-card-date-day 													{ font-size:24px;}
	.post-card-date-separator 												{ font-size:18px;}
	.post-card-date-month 													{ font-size:11px;}
	.post-card-title 														{ font-size:16px;}
	.post-card-excerpt 														{ font-size:13px; line-height:1.5;}
	.latest-posts-action 													{ margin-top:35px;}
}


/* ==========================================================================
   RESPONSIVE - Latest Posts - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.latest-posts 															{ padding:40px 0;}
	.latest-posts-grid 														{ grid-template-columns:repeat(2, 1fr); gap:30px var(--spacing-lg);}
	.latest-posts-grid .post-card:nth-child(3) 								{ grid-column:1 / -1; max-width:50%; margin:0 auto;}
	.post-card-figure 														{ margin-bottom:var(--spacing-sm);}
	.post-card-date-day 													{ font-size:26px;}
	.post-card-date-separator 												{ font-size:20px;}
	.post-card-date-month 													{ font-size:12px;}
	.post-card-title 														{ font-size:18px;}
	.post-card-excerpt 														{ font-size:14px;}
	.latest-posts-action 													{ margin-top:30px;}
}


/* ==========================================================================
   RESPONSIVE - Latest Posts - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.latest-posts 															{ padding:30px 0;}
	.latest-posts-grid 														{ grid-template-columns:1fr; gap:var(--spacing-xl);}
	.post-card-figure 														{ margin-bottom:var(--spacing-sm);}
	.post-card-image 														{ aspect-ratio:16/10;}
	.post-card-placeholder 													{ aspect-ratio:16/10;}
	.post-card-date 														{ margin-bottom:var(--spacing-xs);}
	.post-card-date-day 													{ font-size:24px;}
	.post-card-date-separator 												{ font-size:18px;}
	.post-card-date-month 													{ font-size:11px;}
	.post-card-title 														{ font-size:18px; margin-bottom:var(--spacing-xs);}
	.post-card-excerpt 														{ font-size:14px; line-height:1.5;}
	.latest-posts-action 													{ margin-top:25px;}
}

/* ==========================================================================
   RESPONSIVE - Gallery Showcase - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.gallery-strip-figure 													{ aspect-ratio:4/3;}
}


/* ==========================================================================
   RESPONSIVE - Gallery Showcase - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.gallery-strip-figure 													{ aspect-ratio:4/3;}
}


/* ==========================================================================
   RESPONSIVE - Gallery Showcase - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.gallery-strip 															{ flex-wrap:wrap;}
	.gallery-strip-item 													{ flex:1 1 33.333%; max-width:33.333%;}
	.gallery-strip-item:nth-child(4),
	.gallery-strip-item:nth-child(5) 										{ flex:1 1 50%; max-width:50%;}
	.gallery-strip-figure 													{ aspect-ratio:16/9;}
}


/* ==========================================================================
   RESPONSIVE - Gallery Showcase - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.gallery-strip 															{ flex-wrap:wrap;}
	.gallery-strip-item 													{ flex:1 1 50%; max-width:50%;}
	.gallery-strip-item:nth-child(5) 										{ flex:1 1 100%; max-width:100%;}
	.gallery-strip-figure 													{ aspect-ratio:16/10;}
}


/* ==========================================================================
   RESPONSIVE - Gallery Showcase - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.gallery-strip 															{ flex-direction:column;}
	.gallery-strip-item 													{ flex:1 1 100%; max-width:100%;}
	.gallery-strip-figure 													{ aspect-ratio:16/9;}
}

/* ==========================================================================
   RESPONSIVE - Services - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.our-services 															{ padding:70px 0;}
	.services-inner 														{ gap:50px;}
	.services-intro 														{ flex:0 0 340px; max-width:340px;}
	.services-intro-title 													{ font-size:26px;}
	.services-grid 															{ gap:35px 25px;}
	.service-icon-circle 													{ width:90px; height:90px;}
	.service-icon-circle img,
	.service-icon-placeholder svg 											{ width:44px; height:44px;}
	.section-title 															{ font-size:32px;}
}


/* ==========================================================================
   RESPONSIVE - Services - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.our-services 															{ padding:60px 0;}
	.services-inner 														{ gap:40px;}
	.services-intro 														{ flex:0 0 300px; max-width:300px;}
	.services-intro-title 													{ font-size:24px;}
	.services-intro-content 												{ font-size:14px;}
	.services-intro-content strong 											{ font-size:13px;}
	.services-intro-content ul li 											{ font-size:14px;}
	.services-grid 															{ gap:30px 20px;}
	.service-icon-circle 													{ width:80px; height:80px;}
	.service-icon-circle img,
	.service-icon-placeholder svg 											{ width:40px; height:40px;}
	.service-title 															{ font-size:14px;}
	.service-description 													{ font-size:13px;}
	.section-header 														{ margin-bottom:50px;}
	.section-title 															{ font-size:28px;}
	.section-subtitle 														{ font-size:15px;}
}


/* ==========================================================================
   RESPONSIVE - Services - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.our-services 															{ padding:50px 0;}
	.services-inner 														{ flex-direction:column; gap:50px;}
	.services-intro 														{ flex:0 0 auto; max-width:100%; text-align:center;}
	.services-intro-content ul 												{ display:inline-block; text-align:left;}
	.services-intro-action 													{ text-align:center;}
	.services-grid 															{ grid-template-columns:repeat(3, 1fr); gap:30px 20px;}
	.service-card 															{ align-items:center; text-align:center;}
	.service-icon-circle 													{ width:90px; height:90px;}
	.section-header 														{ margin-bottom:40px;}
	.section-title 															{ font-size:26px;}
	.section-subtitle 														{ font-size:14px;}
}


/* ==========================================================================
   RESPONSIVE - Services - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.our-services 															{ padding:40px 0;}
	.services-inner 														{ flex-direction:column; gap:40px;}
	.services-intro 														{ flex:0 0 auto; max-width:100%; text-align:center;}
	.services-intro-title 													{ font-size:22px;}
	.services-intro-content ul 												{ display:inline-block; text-align:left;}
	.services-intro-action 													{ text-align:center;}
	.services-grid 															{ grid-template-columns:repeat(2, 1fr); gap:30px var(--spacing-lg);}
	.service-card 															{ align-items:center; text-align:center;}
	.service-icon-circle 													{ width:80px; height:80px;}
	.service-icon-circle img,
	.service-icon-placeholder svg 											{ width:40px; height:40px;}
	.service-title 															{ font-size:14px;}
	.service-description 													{ font-size:13px;}
	.section-header 														{ margin-bottom:35px;}
	.section-title 															{ font-size:24px;}
	.section-subtitle 														{ font-size:14px;}
}


/* ==========================================================================
   RESPONSIVE - Services - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.our-services 															{ padding:30px 0;}
	.services-inner 														{ flex-direction:column; gap:30px;}
	.services-intro 														{ flex:0 0 auto; max-width:100%; text-align:center;}
	.services-intro-title 													{ font-size:20px;}
	.services-intro-content 												{ font-size:14px;}
	.services-intro-content strong 											{ font-size:12px;}
	.services-intro-content ul li 											{ font-size:14px; padding-left:28px;}
	.services-intro-content ul li::before 									{ width:18px; height:18px;}
	.services-intro-content ul li::after 									{ left:5px; top:6px; width:5px; height:7px;}
	.services-intro-content ul 												{ display:inline-block; text-align:left;}
	.services-intro-action 													{ text-align:center;}
	.btn-outline-secondary 													{ padding:var(--spacing-sm) var(--spacing-lg); font-size:13px;}
	.services-grid 															{ grid-template-columns:1fr; gap:var(--spacing-xl);}
	.service-card 															{ align-items:center; text-align:center;}
	.service-icon-circle 													{ width:80px; height:80px;}
	.service-icon-circle img,
	.service-icon-placeholder svg 											{ width:40px; height:40px;}
	.service-title 															{ font-size:15px;}
	.service-description 													{ font-size:13px; max-width:280px;}
	.section-header 														{ margin-bottom:30px;}
	.section-title 															{ font-size:22px; letter-spacing:1px;}
	.section-subtitle 														{ font-size:13px;}
}


/* ==========================================================================
   RESPONSIVE - CTA Enroll - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.cta-enroll-title 														{ font-size:22px;}
	.cta-enroll-text 														{ font-size:16px;}
}


/* ==========================================================================
   RESPONSIVE - CTA Enroll - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.cta-enroll-icon-circle 												{ width:70px; height:70px;}
	.cta-enroll-icon-circle svg 											{ width:40px; height:40px;}
	.cta-enroll-title 														{ font-size:20px;}
	.cta-enroll-text 														{ font-size:15px;}
}


/* ==========================================================================
   RESPONSIVE - CTA Enroll - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.cta-enroll-inner 														{ flex-wrap:wrap; justify-content:center; text-align:center;}
	.cta-enroll-content 													{ flex:0 0 100%; order:2; margin-top:var(--spacing-md);}
	.cta-enroll-icon 														{ order:1;}
	.cta-enroll-action 														{ order:3; margin-top:var(--spacing-md);}
}


/* ==========================================================================
   RESPONSIVE - CTA Enroll - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.cta-enroll-inner 														{ flex-direction:column; text-align:center;}
	.cta-enroll-icon-circle 												{ width:70px; height:70px;}
	.cta-enroll-icon-circle svg 											{ width:40px; height:40px;}
	.cta-enroll-title 														{ font-size:20px;}
	.cta-enroll-text 														{ font-size:15px;}
	.cta-enroll-action 														{ margin-top:var(--spacing-md);}
}


/* ==========================================================================
   RESPONSIVE - CTA Enroll - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.cta-enroll 															{ padding:var(--spacing-lg) 0;}
	.cta-enroll-inner 														{ flex-direction:column; text-align:center; gap:var(--spacing-md);}
	.cta-enroll-icon-circle 												{ width:60px; height:60px;}
	.cta-enroll-icon-circle svg 											{ width:36px; height:36px;}
	.cta-enroll-title 														{ font-size:18px;}
	.cta-enroll-text 														{ font-size:14px;}
	.btn-outline-white 														{ padding:var(--spacing-sm) var(--spacing-lg); font-size:13px;}
}


/* ==========================================================================
   RESPONSIVE - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	:root 																	{ --container-width:1366px;}
	
	/* Hero Banner */
	.hero-slide-inner 														{ padding-left:calc(var(--logo-size) + 60px);}
	.hero-slide-title 														{ font-size:42px; max-width:600px;}
	.hero-slide-subtitle 													{ font-size:24px;}
}


/* ==========================================================================
   RESPONSIVE - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	:root 																	{ --container-width:1024px; --logo-size:120px;}
	.primary-menu-list 														{ gap:var(--spacing-md);}
	.primary-menu-list > li > a 											{ font-size:14px;}
	
	/* Hero Banner */
	.hero-banner 															{ min-height:500px; max-height:700px;}
	.hero-slide-inner 														{ padding-left:calc(var(--logo-size) + 40px);}
	.hero-slide-title 														{ font-size:36px; max-width:500px;}
	.hero-slide-subtitle 													{ font-size:22px;}
	.hero-nav-icon svg 														{ width:32px; height:32px;}
}


/* ==========================================================================
   RESPONSIVE - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	:root 																	{ --container-width:768px; --logo-size:100px; --header-height-top:50px; --header-height-main:60px;}
	
	/* Top Bar - Nascondi su tablet */
	.top-bar 																{ display:none;}
	
	/* Logo adjustment */
	.logo-placeholder 														{ margin-top:calc((var(--header-height-main) - var(--logo-size)) / 2 - 10px);}
	
	/* Show hamburger */
	.menu-toggle 															{ display:flex;}
	
	/* Mobile Menu */
	.menu-container 														{ position:fixed; top:var(--header-height-main); left:0; right:0; bottom:0; background:var(--color-white); transform:translateX(-100%); transition:transform var(--transition-normal); overflow-y:auto; padding:var(--spacing-lg);}
	.menu-container.is-active 												{ transform:translateX(0);}
	
	/* Menu List Mobile */
	.primary-menu-list 														{ flex-direction:column; align-items:stretch; gap:0;}
	.primary-menu-list > li > a 											{ color:var(--color-text); padding:var(--spacing-md) 0; border-bottom:1px solid var(--color-bg-light); justify-content:space-between;}
	.primary-menu-list > li.menu-item-has-children > a::after 				{ border-top-color:var(--color-text);}
	
	/* Submenu Mobile */
	.primary-menu-list .sub-menu 											{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; padding:0 0 0 var(--spacing-lg); max-height:0; overflow:hidden; transition:max-height var(--transition-normal);}
	.primary-menu-list > li.submenu-open > .sub-menu 						{ max-height:500px;}
	
	/* Search Inline */
	.search-inline.is-active 												{ max-width:180px;}
	.search-inline .search-field 											{ width:120px;}
	
	/* Hero Banner */
	.hero-banner 															{ height:70vh; min-height:450px; max-height:600px; margin-top:0;}
	.hero-slide-inner 														{ padding-left:var(--spacing-lg); padding-right:var(--spacing-lg); text-align:center;}
	.hero-slide-title 														{ font-size:32px; max-width:100%; margin-left:auto; margin-right:auto;}
	.hero-slide-subtitle 													{ font-size:20px;}
	.hero-slide-overlay 													{ background:rgba(60, 181, 173, 0.6);}
	.hero-nav-icon svg 														{ width:28px; height:28px;}
	.hero-banner-controls 													{ bottom:var(--spacing-lg); right:var(--spacing-lg);}
}


/* ==========================================================================
   RESPONSIVE - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	:root 																	{ --container-width:100%; --logo-size:90px; --header-height-main:55px;}
	
	/* Top Bar */
	.top-bar 																{ display:none;}
	
	/* Logo */
	.logo-placeholder 														{ margin-top:calc((var(--header-height-main) - var(--logo-size)) / 2 - 5px);}
	.custom-logo-link 														{ margin-top: 70px;}

	/* Hamburger */
	.menu-toggle 															{ display:flex;}
	.site-branding 															{ position: absolute; z-index: 10; flex-shrink: 0; left: calc(50% - 45px);}
	.main-navigation 														{ margin-left: 0;}
	.main-header.is-sticky .logo-placeholder 								{ margin-top: -40px;}

	/* Mobile Menu */
	.menu-container 														{ position:fixed; top:var(--header-height-main); left:0; right:0; bottom:0; background:var(--color-white); transform:translateX(-100%); transition:transform var(--transition-normal); overflow-y:auto; padding:var(--spacing-lg);}
	.menu-container.is-active 												{ transform:translateX(0);}
	.menu-container 														{ display: block; align-items: center;}

	/* Menu List */
	.primary-menu-list 														{ flex-direction:column; align-items:stretch; gap:0; margin-top: 25px;}
	.primary-menu-list > li > a 											{ color:var(--color-text); padding:var(--spacing-md) 0; border-bottom:1px solid var(--color-bg-light); justify-content:space-between;}
	.primary-menu-list > li.menu-item-has-children > a::after 				{ border-top-color:var(--color-text);}
	
	/* Submenu */
	.primary-menu-list .sub-menu 											{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; padding:0 0 0 var(--spacing-lg); max-height:0; overflow:hidden; transition:max-height var(--transition-normal);}
	.primary-menu-list > li.submenu-open > .sub-menu 						{ max-height:500px;}
	
	/* Header Actions */
	.actions-separator 														{ display:none;}
	.header-actions 														{ gap:var(--spacing-sm);}
	
	/* Search Inline */
	.search-inline.is-active 												{ max-width:150px;}
	.search-inline .search-field 											{ width:100px;}
	
	/* Hero Banner */
	.hero-banner 															{ height:60vh; min-height:400px; max-height:550px; margin-top:0;}
	.hero-slide-inner 														{ padding-left:var(--spacing-md); padding-right:var(--spacing-md); text-align:center;}
	.hero-slide-title 														{ font-size:28px;}
	.hero-slide-subtitle 													{ font-size:18px;}
	.hero-nav-btn 															{ padding:var(--spacing-sm);}
	.hero-nav-icon svg 														{ width:24px; height:24px;}
	.hero-banner-controls 													{ bottom:var(--spacing-md); right:var(--spacing-md);}
	.hero-control-btn 														{ width:40px; height:40px;}
	.btn-cta 																{ padding:var(--spacing-sm) var(--spacing-lg); font-size:13px;}
}


/* ==========================================================================
   RESPONSIVE - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	:root 																	{ --container-width:100%; --logo-size:80px; --header-height-main:50px; --spacing-lg:15px;}
	
	/* Top Bar */
	.top-bar 																{ display:none;}
	
	/* Logo */
	.logo-placeholder 														{ margin-top:calc((var(--header-height-main) - var(--logo-size)) / 2);}
	.logo-text 																{ font-size:12px;}
	.logo-text small 														{ font-size:10px;}
	.site-branding 															{ position: absolute; z-index: 10; flex-shrink: 0; left: calc(50% - 45px);}
	.main-navigation 														{ margin-left: 0;}
	.custom-logo-link 														{ margin-top: 50px;}

	/* Hamburger */
	.menu-toggle 															{ display:flex;}
	
	/* Mobile Menu */
	.menu-container 														{ position:fixed; top:var(--header-height-main); left:0; right:0; bottom:0; background:var(--color-white); transform:translateX(-100%); transition:transform var(--transition-normal); overflow-y:auto; padding:var(--spacing-md);}
	.menu-container.is-active 												{ transform:translateX(0);}
	.menu-container 														{ display: block; align-items: center;}
	.main-header.is-sticky .logo-placeholder 								{ margin-top: -25px;}

	/* Menu List */
	.primary-menu-list 														{ flex-direction:column; align-items:stretch; gap:0;}
	.primary-menu-list > li > a 											{ color:var(--color-text); padding:var(--spacing-md) 0; border-bottom:1px solid var(--color-bg-light); justify-content:space-between; font-size:16px;}
	.primary-menu-list > li.menu-item-has-children > a::after 				{ border-top-color:var(--color-text);}
	
	/* Submenu */
	.primary-menu-list .sub-menu 											{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; padding:0 0 0 var(--spacing-md); max-height:0; overflow:hidden; transition:max-height var(--transition-normal);}
	.primary-menu-list > li.submenu-open > .sub-menu 						{ max-height:500px;}
	
	/* Header Actions */
	.actions-separator 														{ display:none;}
	.header-actions 														{ gap:var(--spacing-xs);}
	.action-btn svg 														{ width:20px; height:20px;}
	.cart-count 															{ min-width:16px; height:16px; font-size:10px;}
	
	/* Search Inline - nascosto su mobile piccolo, si apre come overlay */
	.search-inline 															{ position:absolute; right:var(--spacing-md); top:100%; background:var(--color-primary); padding:var(--spacing-sm); border-radius:0 0 5px 5px; max-width:0; margin-right:0;}
	.search-inline.is-active 												{ max-width:calc(100vw - 40px);}
	.search-inline .search-field 											{ width:calc(100vw - 100px);}
	
	/* Hero Banner */
	.hero-banner 															{ height:55vh; min-height:350px; max-height:500px; margin-top:0;}
	.hero-slide-inner 														{ padding-left:var(--spacing-sm); padding-right:var(--spacing-sm); text-align:center;}
	.hero-slide-title 														{ font-size:24px; line-height:1.3;}
	.hero-slide-subtitle 													{ font-size:16px;}
	.hero-nav-btn 															{ padding:var(--spacing-xs);}
	.hero-nav-icon svg 														{ width:20px; height:20px;}
	.hero-banner-controls 													{ bottom:var(--spacing-sm); right:var(--spacing-sm);}
	.hero-control-btn 														{ width:36px; height:36px;}
	.btn-cta 																{ padding:var(--spacing-sm) var(--spacing-md); font-size:12px;}
}


/* ==========================================================================
   30.0 PAGE BANNER (Pagine Interne)
   ========================================================================== */

/* 30.1 Page Banner Container */
.page-banner 																{ position:relative; width:100%; min-height:280px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.page-banner.has-image 														{ min-height:350px;}
.page-banner.no-image 														{ background:var(--color-primary); min-height:200px;}

/* 30.2 Page Banner Background Image */
.page-banner-bg 															{ position:absolute; top:0; left:0; width:100%; height:100%; background-size:cover; background-position:top center; background-repeat:no-repeat;}

/* 30.3 Page Banner Overlay */
.page-banner-overlay 														{ position:absolute; top:0; left:0; width:100%; height:100%; background:rgba(74, 74, 74, 0.55);}

/* 30.4 Page Banner Content */
.page-banner-content 														{ position:relative; z-index:3; width:100%; text-align:center; padding:60px var(--spacing-lg);}
.page-banner-inner 															{ max-width:var(--container-width); margin:0 auto;}

/* 30.5 Page Banner Title */
.page-banner-title 															{ color:var(--color-white); font-size:42px; font-weight:700; margin:0 0 var(--spacing-md) 0; text-transform:uppercase; letter-spacing:2px; text-shadow:0 2px 4px rgba(0,0,0,0.2);}
.page-banner-title span 													{ color:var(--color-secondary);}

/* 30.6 Breadcrumb */
.page-breadcrumb 															{ color:rgba(255,255,255,0.8); font-size:14px;}
.page-breadcrumb a 															{ color:var(--color-white); text-decoration:none; transition:opacity var(--transition-fast);}
.page-breadcrumb a:hover 													{ opacity:0.8;}
.page-breadcrumb a:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.page-breadcrumb .breadcrumb_last 											{ color:var(--color-secondary);}


/* ==========================================================================
   31.0 CONTENT AREA (Layout Pagine Interne)
   ========================================================================== */

/* 31.1 Content Area Container */
.content-area 																{ background:var(--color-bg); width:100%; padding:60px 0;}

/* 31.2 Content Inner */
.content-inner 																{ max-width:var(--container-width); margin:0 auto; padding:0 var(--spacing-lg);}

/* 31.3 Entry Content (WYSIWYG) */
.entry-content 																{ color:var(--color-text); font-size:18px; line-height:1.8;}
.entry-content h2 															{ font-size:28px; font-weight:700; margin:40px 0 var(--spacing-lg) 0; color:var(--color-text); letter-spacing:0.5px;}
.entry-content h3 															{ font-size:24px; font-weight:700; margin:35px 0 var(--spacing-md) 0; color:var(--color-text);}
.entry-content h4 															{ font-size:20px; font-weight:700; margin:30px 0 var(--spacing-md) 0; color:var(--color-text);}
.entry-content h5 															{ font-size:18px; font-weight:700; margin:25px 0 var(--spacing-sm) 0; color:var(--color-text);}
.entry-content h6 															{ font-size:16px; font-weight:700; margin:20px 0 var(--spacing-sm) 0; color:var(--color-text);}
.entry-content p 															{ margin:0 0 var(--spacing-lg) 0; font-size: 24px; letter-spacing: 1px;}
.entry-content p:last-child 												{ margin-bottom:0;}
.entry-content a 															{ color:var(--color-primary); text-decoration:underline; transition:color var(--transition-fast);}
.entry-content a:hover 														{ color:var(--color-primary-dark);}
.entry-content a:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.entry-content ul,
.entry-content ol 															{ margin:0 0 var(--spacing-lg) 0; padding-left:30px;}
.entry-content li 															{ margin-bottom:var(--spacing-sm); line-height:1.6; font-size: 24px;}
.entry-content blockquote 													{ border-left:4px solid var(--color-primary); margin:var(--spacing-xl) 0; padding:var(--spacing-lg) var(--spacing-xl); background:var(--color-bg-light); font-style:italic; font-size:20px; line-height:1.6; color:var(--color-text-light);}
.entry-content blockquote p 												{ margin:0;}
.entry-content img 															{ max-width:100%; height:auto; border-radius:4px; margin:var(--spacing-lg) 0;}
.entry-content table 														{ width:100%; border-collapse:collapse; margin:var(--spacing-xl) 0;}
.entry-content th,
.entry-content td 															{ padding:var(--spacing-sm) var(--spacing-md); border:1px solid #E0E0E0; text-align:left;}
.entry-content th 															{ background:var(--color-bg-light); font-weight:700;}
.entry-content figure 														{ margin:var(--spacing-xl) 0;}
.entry-content figcaption 													{ font-size:14px; color:var(--color-text-light); text-align:center; margin-top:var(--spacing-sm);}


/* ==========================================================================
   32.0 SINGLE POST
   ========================================================================== */

/* 32.1 Single Post Meta */
.single-post-meta 															{ display:flex; align-items:center; gap:var(--spacing-lg); margin-bottom:var(--spacing-xl); padding-bottom:var(--spacing-lg); border-bottom:1px solid var(--color-bg-light);}
.single-post-date 															{ display:flex; align-items:baseline; gap:2px; color:var(--color-primary);}
.single-post-categories 													{ display:flex; flex-wrap:wrap; gap:var(--spacing-sm);}
.single-post-category 														{ display:inline-block; background:var(--color-bg-light); color:var(--color-text); font-size:13px; font-weight:700; padding:4px 12px; border-radius:20px; text-decoration:none; text-transform:uppercase; letter-spacing:0.5px; transition:all var(--transition-fast);}
.single-post-category:hover 												{ background:var(--color-primary); color:var(--color-white);}
.single-post-category:focus-visible 										{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 32.2 Single Post Footer (Tags) */
.single-post-footer 														{ margin-top:var(--spacing-xl); padding-top:var(--spacing-xl); border-top:1px solid var(--color-bg-light);}
.single-post-tags 															{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--spacing-sm);}
.single-post-tags-label 													{ font-size:16px; font-weight:700; color:var(--color-text); margin-right:var(--spacing-xs);}
.single-post-tag 															{ display:inline-block; background:transparent; color:var(--color-primary); font-size:14px; padding:4px 12px; border:1px solid var(--color-primary); border-radius:20px; text-decoration:none; transition:all var(--transition-fast);}
.single-post-tag:hover 													{ background:var(--color-primary); color:var(--color-white);}
.single-post-tag:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}


/* ==========================================================================
   33.0 POST NAVIGATION (Prev/Next)
   ========================================================================== */
.post-navigation 															{ margin-top:60px; padding-top:var(--spacing-xl); border-top:2px solid var(--color-bg-light);}
.post-navigation-inner 														{ display:flex; justify-content:space-between; gap:var(--spacing-xl);}
.post-nav-link 																{ display:flex; flex-direction:column; gap:var(--spacing-xs); text-decoration:none; flex:1; max-width:45%; transition:color var(--transition-fast);}
.post-nav-link:hover 														{ color:var(--color-primary);}
.post-nav-link:focus-visible 												{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.post-nav-next 																{ text-align:right; margin-left:auto;}
.post-nav-label 															{ display:flex; align-items:center; gap:var(--spacing-xs); font-size:14px; font-weight:700; color:var(--color-primary); text-transform:uppercase; letter-spacing:0.5px;}
.post-nav-next .post-nav-label 												{ justify-content:flex-end;}
.post-nav-title 															{ font-size:18px; color:var(--color-text); line-height:1.4; transition:color var(--transition-fast);}
.post-nav-link:hover .post-nav-title 										{ color:var(--color-primary);}


/* ==========================================================================
   34.0 POSTS GRID (Archivio / Categorie)
   ========================================================================== */
.posts-grid 																{ display:grid; grid-template-columns:repeat(3, 1fr); gap:40px; list-style:none; margin:0; padding:0;}

/* 34.1 Archive Description */
.archive-description 														{ max-width:800px; margin:0 auto var(--spacing-xl) auto; text-align:center; color:var(--color-text-light); font-size:18px; line-height:1.7;}
.archive-description p 														{ margin:0;}


/* ==========================================================================
   35.0 POST CARD HORIZONTAL (Ricerca / Index)
   ========================================================================== */
.post-card-horizontal 														{ display:flex; gap:var(--spacing-xl); padding:var(--spacing-xl) 0; border-bottom:1px solid var(--color-bg-light);}
.post-card-horizontal:first-child 											{ padding-top:0;}
.post-card-horizontal:last-child 											{ border-bottom:none;}
.post-card-horizontal .post-card-figure 									{ flex:0 0 280px; margin:0; border-radius:4px; overflow:hidden;}
.post-card-horizontal .post-card-image 										{ width:100%; height:100%; object-fit:cover; aspect-ratio:16/10;}
.post-card-horizontal .post-card-body 										{ flex:1; display:flex; flex-direction:column; justify-content:center; gap:var(--spacing-sm);}

/* 35.1 Post Type Label (Ricerca) */
.post-card-type 															{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--color-primary); margin-bottom:var(--spacing-xs);}
.post-card-type a 															{ color:inherit; text-decoration:none; transition:color var(--transition-fast);}
.post-card-type a:hover,
.post-card-type a:focus 													{ color:var(--color-primary-dark);}
.post-card-type a:focus-visible 											{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}

/* 35.2 Button Small */
.btn-sm 																	{ padding:var(--spacing-xs) var(--spacing-lg); font-size:13px; letter-spacing:0.5px; text-transform:uppercase; font-weight:700;}


/* ==========================================================================
   36.0 PAGINATION
   ========================================================================== */
.pagination 																{ margin-top:50px; text-align:center;}
.pagination .page-numbers 													{ display:flex; justify-content:center; align-items:center; gap:var(--spacing-sm); list-style:none; margin:0; padding:0;}
.pagination .page-numbers li 												{ margin:0;}
.pagination .page-numbers a,
.pagination .page-numbers span 												{ display:flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 var(--spacing-sm); border-radius:4px; font-size:16px; font-weight:700; text-decoration:none; transition:all var(--transition-fast);}
.pagination .page-numbers a 												{ color:var(--color-text); border:1px solid #E0E0E0;}
.pagination .page-numbers a:hover 											{ background:var(--color-primary); color:var(--color-white); border-color:var(--color-primary);}
.pagination .page-numbers a:focus-visible 									{ outline:var(--focus-outline); outline-offset:var(--focus-outline-offset);}
.pagination .page-numbers .current 											{ background:var(--color-primary); color:var(--color-white); border:1px solid var(--color-primary);}
.pagination .page-numbers .dots 											{ border:none; color:var(--color-text-light);}
.pagination .page-numbers .prev,
.pagination .page-numbers .next 											{ border:none; color:var(--color-primary);}
.pagination .page-numbers .prev:hover,
.pagination .page-numbers .next:hover 										{ background:transparent; color:var(--color-primary-dark);}


/* ==========================================================================
   36.1 COUNSELORS GRID
   ========================================================================== */
.counselors-grid 															{ display:grid; grid-template-columns:repeat(2, 1fr); gap:30px; list-style:none; margin:0; padding:0;}

/* 36.2 Counselor Card - Layout orizzontale */
.counselor-card 															{ display:flex; flex-direction:row; gap:var(--spacing-lg); border-radius:4px; overflow:hidden; background:var(--color-white); box-shadow:0 2px 8px rgba(0,0,0,0.06);}
.counselor-card-figure 														{ flex:0 0 180px; margin:0; padding:0; overflow:hidden;}
.counselor-card-figure a 													{ display:block; height:100%; line-height:0;}
.counselor-card-image 														{ width:100%; height:100%; object-fit:cover; object-position:top; display:block; transition:transform var(--transition-normal);}
.counselor-card:hover .counselor-card-image,
.counselor-card:focus-within .counselor-card-image 							{ transform:scale(1.05);}
.counselor-card-figure--placeholder 										{ background:var(--color-bg-light);}
.counselor-card-placeholder 												{ width:100%; height:100%; min-height:220px; display:flex; align-items:center; justify-content:center; color:var(--color-text-light); opacity:0.5;}
.counselor-card-body 														{ flex:1; display:flex; flex-direction:column; justify-content:center; padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-lg) 0;}


/* ==========================================================================
   37.0 SEARCH PAGE
   ========================================================================== */

/* 37.1 Search Results Summary */
.search-results-summary 													{ margin-bottom:var(--spacing-xl);}
.search-results-count 														{ font-size:18px; color:var(--color-text-light); margin:0;}

/* 36.3 Single Counselor Layout */
.single-counselor-layout 													{ display:flex; gap:var(--spacing-xl); align-items:flex-start;}
.single-counselor-figure 													{ flex:0 0 300px; margin:0; padding:0; border-radius:4px; overflow:hidden;}
.single-counselor-image 													{ width:100%; height:auto; display:block; object-fit:cover; border-radius:4px;}
.single-counselor-content 													{ flex:1; min-width:0;}


/* 37.2 Search Page Form */
.search-form-container 														{ margin-bottom:var(--spacing-xl); padding-bottom:var(--spacing-xl); border-bottom:1px solid var(--color-bg-light);}
.search-page-form-group 													{ display:flex; align-items:stretch; max-width:600px; background:var(--color-bg); border:2px solid #E0E0E0; border-radius:30px; overflow:hidden; transition:border-color var(--transition-fast);}
.search-page-form-group:focus-within 										{ border-color:var(--color-primary);}
.search-page-field 															{ flex:1; border:none; padding:var(--spacing-md) var(--spacing-xl); font-size:16px; font-family:inherit; outline:none; background:transparent; min-width:0;}
.search-page-submit 														{ flex-shrink:0; border-radius:30px; margin:4px; padding:var(--spacing-sm) var(--spacing-xl);}

/* 37.3 No Results */
.no-results 																{ text-align:center; padding:60px 0;}
.no-results-icon 															{ color:var(--color-text-light); opacity:0.4; margin-bottom:var(--spacing-xl);}
.no-results-title 															{ font-size:28px; font-weight:700; color:var(--color-text); margin:0 0 var(--spacing-md) 0;}
.no-results p 																{ font-size:18px; color:var(--color-text-light); margin:0 0 var(--spacing-xl) 0;}


/* ==========================================================================
   RESPONSIVE - Internal Pages - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.page-banner-title 														{ font-size:38px;}
	.content-area 															{ padding:50px 0;}
	.entry-content 															{ font-size:17px;}
	.posts-grid 															{ gap:35px;}
	.counselors-grid 														{ gap:25px;}
}


/* ==========================================================================
   RESPONSIVE - Internal Pages - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.page-banner 															{ min-height:240px;}
	.page-banner.has-image 													{ min-height:300px;}
	.page-banner-title 														{ font-size:34px;}
	.page-banner-content 													{ padding:50px var(--spacing-lg);}
	.content-area 															{ padding:45px 0;}
	.entry-content 															{ font-size:16px;}
	.entry-content h2 														{ font-size:24px;}
	.entry-content h3 														{ font-size:20px;}
	.entry-content blockquote 												{ font-size:18px;}
	.posts-grid 															{ gap:30px;}
	.post-card-horizontal .post-card-figure 								{ flex:0 0 240px;}
	.single-counselor-figure 												{ flex:0 0 260px;}
}


/* ==========================================================================
   RESPONSIVE - Internal Pages - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.page-banner 															{ min-height:200px;}
	.page-banner.has-image 													{ min-height:260px;}
	.page-banner.no-image 													{ min-height:160px;}
	.page-banner-title 														{ font-size:28px; letter-spacing:1px;}
	.page-banner-content 													{ padding:40px var(--spacing-lg);}
	.content-area 															{ padding:40px 0;}
	.entry-content 															{ font-size:16px; line-height:1.7;}
	.entry-content h2 														{ font-size:22px; margin-top:30px;}
	.entry-content h3 														{ font-size:18px; margin-top:25px;}
	.entry-content blockquote 												{ font-size:16px; padding:var(--spacing-md) var(--spacing-lg);}
	.posts-grid 															{ grid-template-columns:repeat(2, 1fr); gap:25px;}
	.counselors-grid 														{ grid-template-columns:1fr; gap:25px;}
	.counselor-card-figure 													{ flex:0 0 160px;}
	.single-counselor-figure 												{ flex:0 0 220px;}
	.post-card-horizontal 													{ gap:var(--spacing-lg);}
	.post-card-horizontal .post-card-figure 								{ flex:0 0 200px;}
	.post-navigation-inner 													{ gap:var(--spacing-lg);}
	.post-nav-title 														{ font-size:16px;}
	.single-post-meta 														{ flex-wrap:wrap;}
}


/* ==========================================================================
   RESPONSIVE - Internal Pages - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.page-banner 															{ min-height:180px;}
	.page-banner.has-image 													{ min-height:220px;}
	.page-banner.no-image 													{ min-height:140px;}
	.page-banner-title 														{ font-size:24px; letter-spacing:1px;}
	.page-banner-content 													{ padding:30px var(--spacing-lg);}
	.content-area 															{ padding:35px 0;}
	.entry-content 															{ font-size:15px; line-height:1.7;}
	.entry-content h2 														{ font-size:20px; margin-top:25px;}
	.entry-content h3 														{ font-size:18px;}
	.entry-content blockquote 												{ font-size:15px; padding:var(--spacing-md);}
	.posts-grid 															{ grid-template-columns:repeat(2, 1fr); gap:20px;}
	.counselors-grid 														{ grid-template-columns:1fr; gap:20px;}
	.counselors-grid 														{ grid-template-columns:1fr; gap:20px;}
	.counselor-card-figure 													{ flex:0 0 140px;}
	.single-counselor-layout 												{ flex-direction:column;}
	.single-counselor-figure 												{ flex:none; max-width:280px;}
	.post-card-horizontal 													{ flex-direction:column; gap:var(--spacing-md);}
	.post-card-horizontal .post-card-figure 								{ flex:none;}
	.post-card-horizontal .post-card-image 									{ aspect-ratio:16/9;}
	.post-navigation-inner 													{ flex-direction:column; gap:var(--spacing-lg);}
	.post-nav-link 															{ max-width:100%;}
	.post-nav-next 															{ text-align:left;}
	.post-nav-next .post-nav-label 											{ justify-content:flex-start;}
	.single-post-meta 														{ flex-direction:column; gap:var(--spacing-sm);}
	.search-page-form-group 												{ flex-direction:column; border-radius:8px;}
	.search-page-field 														{ border-radius:8px 8px 0 0; text-align:center; border-bottom:1px solid #E0E0E0;}
	.search-page-submit 													{ border-radius:0 0 8px 8px; margin:0; width:100%;}
}


/* ==========================================================================
   RESPONSIVE - Internal Pages - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.page-banner 															{ min-height:150px;}
	.page-banner.has-image 													{ min-height:180px;}
	.page-banner.no-image 													{ min-height:120px;}
	.page-banner-title 														{ font-size:20px; letter-spacing:0.5px;}
	.page-banner-content 													{ padding:25px var(--spacing-md);}
	.page-breadcrumb 														{ font-size:12px;}
	.content-area 															{ padding:25px 0;}
	.entry-content 															{ font-size:15px; line-height:1.6;}
	.entry-content h2 														{ font-size:18px; margin-top:20px;}
	.entry-content h3 														{ font-size:16px;}
	.entry-content h4 														{ font-size:15px;}
	.entry-content blockquote 												{ font-size:14px; padding:var(--spacing-sm) var(--spacing-md);}
	.entry-content ul,
	.entry-content ol 														{ padding-left:20px;}
	.posts-grid 															{ grid-template-columns:1fr; gap:var(--spacing-xl);}
	.counselors-grid 														{ grid-template-columns:1fr; gap:var(--spacing-lg);}
	.counselor-card 														{ flex-direction:column;}
	.counselor-card-figure 													{ flex:none; height:250px;}
	.counselor-card-body 													{ padding:var(--spacing-md);}
	.single-counselor-layout 												{ flex-direction:column;}
	.single-counselor-figure 												{ flex:none; max-width:100%;}
	.post-card-horizontal 													{ flex-direction:column; gap:var(--spacing-md); padding:var(--spacing-lg) 0;}
	.post-card-horizontal .post-card-figure 								{ flex:none;}
	.post-card-horizontal .post-card-image 									{ aspect-ratio:16/9;}
	.post-navigation 														{ margin-top:40px;}
	.post-navigation-inner 													{ flex-direction:column; gap:var(--spacing-lg);}
	.post-nav-link 															{ max-width:100%;}
	.post-nav-next 															{ text-align:left;}
	.post-nav-next .post-nav-label 											{ justify-content:flex-start;}
	.post-nav-title 														{ font-size:15px;}
	.single-post-meta 														{ flex-direction:column; gap:var(--spacing-sm);}
	.single-post-category 													{ font-size:12px; padding:3px 10px;}
	.search-page-form-group 												{ flex-direction:column; border-radius:8px;}
	.search-page-field 														{ padding:var(--spacing-md); font-size:14px; border-radius:8px 8px 0 0; text-align:center; border-bottom:1px solid #E0E0E0;}
	.search-page-submit 													{ border-radius:0 0 8px 8px; margin:0; padding:var(--spacing-md); width:100%;}
	.no-results 															{ padding:40px 0;}
	.no-results-title 														{ font-size:22px;}
	.no-results p 															{ font-size:16px;}
}


/* ==========================================================================
   RF SERVIZI - Grid cards da shortcode [rf_field name="servizi"]
   ========================================================================== */

/* Container: griglia 3 colonne */
.rf-output[data-rf-slug="servizi"] 											{ display:grid; grid-template-columns:repeat(3, 1fr); gap:40px 30px; max-width:var(--container-width); margin:0 auto; padding:var(--spacing-xl) var(--spacing-lg);}

/* Singola card (article) */
.rf-output[data-rf-slug="servizi"] .rf-item 								{ display:flex; flex-direction:column; align-items:flex-start;}

/* Titolo h1 → stile service-title homepage */
.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content h1 					{ color:var(--color-text); font-size:22px; font-weight:700; margin:0 0 var(--spacing-sm) 0; text-transform:uppercase; letter-spacing:0.5px; line-height:1.3;}

/* Paragrafo → stile service-description homepage */
.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content p 					{ color:var(--color-text-light); font-size:18px; line-height:1.6; margin:0 0 var(--spacing-sm) 0;}
.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content p:last-child 		{ margin-bottom:0;}


/* ==========================================================================
   RESPONSIVE - RF Servizi - Desktop Large (max-width: 1919px)
   ========================================================================== */
@media only screen and (max-width: 1919px) and (min-width: 1366px) {
	.rf-output[data-rf-slug="servizi"] 										{ gap:35px 25px;}
}

/* ==========================================================================
   RESPONSIVE - RF Servizi - Desktop (max-width: 1365px)
   ========================================================================== */
@media only screen and (max-width: 1365px) and (min-width: 1024px) {
	.rf-output[data-rf-slug="servizi"] 										{ gap:30px 20px;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content h1 				{ font-size:14px;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content p 				{ font-size:13px;}
}

/* ==========================================================================
   RESPONSIVE - RF Servizi - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) and (min-width: 768px) {
	.rf-output[data-rf-slug="servizi"] 										{ grid-template-columns:repeat(3, 1fr); gap:30px 20px;}
	.rf-output[data-rf-slug="servizi"] .rf-item 							{ align-items:center; text-align:center;}
}

/* ==========================================================================
   RESPONSIVE - RF Servizi - Mobile Large (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) and (min-width: 480px) {
	.rf-output[data-rf-slug="servizi"] 										{ grid-template-columns:repeat(2, 1fr); gap:30px var(--spacing-lg);}
	.rf-output[data-rf-slug="servizi"] .rf-item 							{ align-items:center; text-align:center;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content h1 				{ font-size:14px;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content p 				{ font-size:13px;}
}

/* ==========================================================================
   RESPONSIVE - RF Servizi - Mobile Small (max-width: 479px)
   ========================================================================== */
@media only screen and (max-width: 479px) {
	.rf-output[data-rf-slug="servizi"] 										{ grid-template-columns:1fr; gap:var(--spacing-xl);}
	.rf-output[data-rf-slug="servizi"] .rf-item 							{ align-items:center; text-align:center;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content h1 				{ font-size:15px;}
	.rf-output[data-rf-slug="servizi"] .rf-wysiwyg-content p 				{ font-size:13px; max-width:280px;}
}


/* ==========================================================================
   CONTACT FORM 7 - Layout & Styling
   ========================================================================== */

/* Form container */
.wpcf7 																		{ max-width:800px; margin:0 auto;}
.wpcf7-form 																{ display:flex; flex-direction:column; gap:var(--spacing-lg);}

/* Row layout */
.cf7-row 																	{ display:flex; gap:var(--spacing-xl); width:100%;}
.cf7-col 																	{ flex:1; display:flex; flex-direction:column;}
.cf7-col-full 																{ flex:1; display:flex; flex-direction:column; width:100%;}

/* Labels */
.wpcf7-form label 															{ display:block; font-size:15px; font-weight:700; color:#4A4A4A; margin-bottom:6px; letter-spacing:0.3px;}
.wpcf7-form .required 														{ color:var(--color-secondary); font-weight:700;}

/* Input fields */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea 														{ width:100%; padding:12px 16px; font-family:'PT Sans Narrow', sans-serif; font-size:16px; color:#4A4A4A; background:#FFFFFF; border:2px solid #E0E0E0; border-radius:4px; transition:border-color var(--transition-normal), box-shadow var(--transition-normal); appearance:none; -webkit-appearance:none;}

/* Placeholder */
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder 											{ color:#AAAAAA; font-style:italic;}

/* Focus states */
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus 												{ border-color:var(--color-primary); box-shadow:0 0 0 3px rgba(83, 182, 188, 0.15); outline:none;}

/* Select dropdown arrow */
.wpcf7-form select 														{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234A4A4A' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:44px; cursor:pointer;}

/* Textarea */
.wpcf7-form textarea 														{ resize:vertical; min-height:140px; line-height:1.6;}

/* Consent / acceptance section */
.cf7-consents 																{ flex-direction:column; gap:var(--spacing-sm);}
.cf7-consents .cf7-col-full 												{ flex-direction:row; align-items:flex-start; gap:0;}
.wpcf7-form .cf7-consents .wpcf7-list-item 									{ margin:0;}
.wpcf7-form .cf7-consents input[type="checkbox"] 							{ width:18px; height:18px; margin:2px 10px 0 0; flex-shrink:0; accent-color:var(--color-primary); cursor:pointer; appearance:auto; -webkit-appearance:auto;}
.wpcf7-form .cf7-consents .wpcf7-acceptance 								{ display:flex; align-items:flex-start; font-size:14px; line-height:1.5; color:#666666;}
.wpcf7-form .cf7-consents .wpcf7-acceptance a 								{ color:var(--color-primary); text-decoration:underline; font-weight:700; transition:color var(--transition-fast);}
.wpcf7-form .cf7-consents .wpcf7-acceptance a:hover 						{ color:var(--color-primary-dark, #2A9D94);}

/* Submit row */
.cf7-submit 																{ justify-content:center; margin-top:var(--spacing-sm);}
.cf7-submit .wpcf7-submit 													{ display:inline-flex; align-items:center; justify-content:center; padding:var(--spacing-md) 35px; font-family:'PT Sans Narrow', sans-serif; font-size:14px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; color:#FFFFFF; background:var(--color-secondary); border:2px solid var(--color-secondary); border-radius:30px; cursor:pointer; transition:all var(--transition-normal);}
.cf7-submit .wpcf7-submit:hover 											{ background:var(--color-secondary-dark, #D07A1F); border-color:var(--color-secondary-dark, #D07A1F);}
.cf7-submit .wpcf7-submit:focus 											{ outline:3px solid var(--color-secondary); outline-offset:2px;}

/* Validation messages */
.wpcf7-form .wpcf7-not-valid 												{ border-color:#D32F2F;}
.wpcf7-form .wpcf7-not-valid:focus 											{ box-shadow:0 0 0 3px rgba(211, 47, 47, 0.15);}
.wpcf7-form .wpcf7-not-valid-tip 											{ display:block; font-size:13px; color:#D32F2F; margin-top:4px;}
.wpcf7-form .wpcf7-response-output 											{ text-align:center; padding:var(--spacing-md) var(--spacing-lg); border-radius:4px; font-size:15px; margin-top:var(--spacing-sm);}
.wpcf7-form.sent .wpcf7-response-output 									{ border-color:#2E7D32; color:#2E7D32; background:rgba(46, 125, 50, 0.06);}
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output 								{ border-color:#D32F2F; color:#D32F2F; background:rgba(211, 47, 47, 0.06);}

/* Spinner */
.wpcf7-spinner 																{ display:block; margin:var(--spacing-sm) auto 0;}

/* ==========================================================================
   RESPONSIVE - Contact Form 7 - Tablet (max-width: 1023px)
   ========================================================================== */
@media only screen and (max-width: 1023px) {
	.wpcf7 																	{ max-width:100%;}
}

/* ==========================================================================
   RESPONSIVE - Contact Form 7 - Mobile (max-width: 767px)
   ========================================================================== */
@media only screen and (max-width: 767px) {
	.cf7-row 																{ flex-direction:column; gap:var(--spacing-lg);}
	.wpcf7-form input[type="text"],
	.wpcf7-form input[type="email"],
	.wpcf7-form input[type="tel"],
	.wpcf7-form select,
	.wpcf7-form textarea 													{ font-size:16px; padding:11px 14px;}
}

/* ==========================================================================
   RESPONSIVE - Contact Form 7 - Reduced Motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.wpcf7-form input[type="text"],
	.wpcf7-form input[type="email"],
	.wpcf7-form input[type="tel"],
	.wpcf7-form select,
	.wpcf7-form textarea,
	.cf7-submit .wpcf7-submit 												{ transition:none;}
}