/* ================================================================
   tct.css - Tenuta Castelnuovo Tancredi
   Stile della nuova home. Funziona SOLO dove il <body> ha la classe
   "tct-home": non cambia nulla nelle altre pagine del sito.
   Va caricato DOPO custom.css (lo fa head-new.cfm).
   ================================================================ */

.tct-home {
	--tct-gold: #8B7355;
	--tct-gold-dark: #6f5b3f;
	--tct-cream: #F7F4EF;
	--tct-ink: #2C2A27;
	--tct-text: #3b3935;
	--tct-green: #2f5f46;
	--tct-line: rgba(139,115,85,0.25);
	--tct-serif: 'Hedvig Letters Serif', Georgia, serif;
	--tct-sans: 'Raleway', sans-serif;
	background: var(--tct-cream);
	font-family: var(--tct-sans);
	color: var(--tct-ink);
}

.tct-home h1, .tct-home h2, .tct-home h3 {
	font-family: var(--tct-serif);
	color: var(--tct-ink) !important;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	margin: 0;
}

.tct-home a:focus-visible {
	outline: 2px solid var(--tct-gold-dark);
	outline-offset: 3px;
}

.tct-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: #fff;
	padding: 12px 18px;
}
.tct-skip:focus { left: 12px; top: 12px; }


/* ---------------- HEADER (trasparente sopra il video) ---------------- */

.tct-home #top-bar { display: none; }
.tct-home #wrapper { background: var(--tct-cream); }

.tct-home #header {
	background: transparent !important;
	border-bottom: 0;
}

.tct-home #header:not(.sticky-header) {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 200;
}

.tct-home #header:not(.sticky-header) #header-wrap { background: transparent; }

/* logo: chiaro sul video, scuro quando l'header diventa bianco */
.tct-home #logo img { height: 60px; width: auto; margin-top: 15px; }
.tct-home #header.sticky-header #logo img { height: 52px; margin-top: 8px; }
.tct-home .tct-logo-dark { display: none; }
.tct-home #header.sticky-header .tct-logo-light { display: none; }
.tct-home #header.sticky-header .tct-logo-dark { display: inline-block; }

/* voci di menu */
.tct-home #primary-menu ul li > a {
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tct-home #primary-menu ul li.tct-lang > a {
	font-size: 12px;
	letter-spacing: 0.1em;
}

.tct-home #primary-menu ul li.tct-menu-cta > a {
	background: var(--tct-green);
	color: #fff !important;
	margin-left: 14px;
}

@media (min-width: 992px) {
	.tct-home #header:not(.sticky-header) #primary-menu ul li.tct-menu-cta > a { background: #fff; color: var(--tct-green) !important; }
	.tct-home #header:not(.sticky-header) #primary-menu > ul > li > a { color: #fff; }
	.tct-home #header:not(.sticky-header) #primary-menu > ul > li > a:hover { opacity: 0.8; }
	.tct-home #primary-menu ul li.tct-menu-cta > a {
		margin-top: 22px;
		padding: 11px 26px;
	}
	.tct-home #primary-menu ul li.tct-menu-cta > a > div { line-height: 22px; }
}

/* header bianco (dopo lo scroll): altezza fissa, logo e pulsante dentro la barra */
@media (min-width: 992px) {
	.tct-home #header.sticky-header #header-wrap { height: 76px; }
	.tct-home #header.sticky-header #logo { height: 76px; }
	.tct-home #header.sticky-header #logo img { height: 46px; margin-top: 15px; }
	.tct-home #header.sticky-header #primary-menu > ul > li > a { padding-top: 27px; padding-bottom: 27px; }
	.tct-home #header.sticky-header #primary-menu ul li.tct-menu-cta > a { margin-top: 18px; padding: 9px 26px; }
}

@media (max-width: 991.98px) {
	/* barra bianca sempre fissa in alto: stessa altezza, stesso logo, anche scorrendo */
	.tct-home #wrapper { padding-top: 64px; }
	.tct-home #header,
	.tct-home #header.sticky-header,
	.tct-home #header.responsive-sticky-header {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 64px !important;
		background: #fff !important;
		opacity: 1 !important;
		z-index: 500;
		overflow: visible !important;
		box-shadow: 0 1px 8px rgba(0,0,0,0.08);
	}
	.tct-home #header-wrap,
	.tct-home #header.sticky-header #header-wrap,
	.tct-home #header.responsive-sticky-header #header-wrap {
		position: relative !important;
		top: auto !important;
		width: 100% !important;
		height: 64px !important;
		background: #fff !important;
		opacity: 1 !important;
		transform: none !important;
		overflow: visible !important;
	}
	.tct-home #primary-menu-trigger { top: 0; height: 64px; line-height: 64px; width: 50px; left: 8px; }
	.tct-home #logo,
	.tct-home #header.sticky-header #logo { float: none !important; width: 100% !important; box-sizing: border-box; margin: 0 !important; padding: 0 58px !important; text-align: center; height: 64px !important; line-height: 64px; }
	.tct-home #logo a { display: inline-block; }
	/* menu a tendina: chiuso di default, si apre col tocco sulle tre lineette */
	.tct-home #primary-menu > ul {
		display: none !important;
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		z-index: 400;
		margin: 0;
		padding: 6px 20px 20px 20px;
		background: #fff;
		box-shadow: 0 12px 24px rgba(0,0,0,0.12);
	}
	.tct-home #primary-menu.tct-menu-open > ul { display: block !important; }
	.tct-home #primary-menu > ul > li > a { padding: 14px 4px; border-bottom: 1px solid var(--tct-line); }
	.tct-home #primary-menu > ul > li > a > div { line-height: 22px; }
	.tct-home #logo img,
	.tct-home #header.sticky-header #logo img { height: 36px !important; width: auto !important; margin-top: 14px !important; }
	.tct-home .tct-logo-light { display: none !important; }
	.tct-home .tct-logo-dark { display: inline-block !important; }
	.tct-home #primary-menu-trigger { color: var(--tct-ink); left: 14px; }
	.tct-home #primary-menu > ul { background: #fff; }
	.tct-home #primary-menu ul li > a { color: var(--tct-ink) !important; }
	.tct-home #primary-menu ul li.tct-menu-cta > a { color: #fff !important; background: var(--tct-green); }
	.tct-home #primary-menu ul li.tct-menu-cta > a {
		margin: 10px 15px;
		padding: 13px 20px;
		text-align: center;
	}
}


/* ---------------- HERO ---------------- */

.tct-hero {
	position: relative;
	height: 100vh;
	min-height: 520px;
	max-height: 980px;
	background-color: #6d8a5b;
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
	overflow: hidden;
}

.tct-hero video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* leggero scuro in alto, per far leggere menu e logo su qualsiasi fotogramma */
.tct-hero::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 180px;
	background: linear-gradient(rgba(20,20,18,0.55), rgba(20,20,18,0));
	z-index: 1;
	pointer-events: none;
}

@media (max-width: 991.98px) {
	.tct-hero { height: 72vh; min-height: 420px; }
}


/* ---------------- STRUTTURA E TESTI ---------------- */

.tct-section { padding: 88px 0; background: var(--tct-cream); }
.tct-section--white { background: #fff; }
.tct-wrap { max-width: 1200px; margin: 0 auto; padding: 0 48px; }

.tct-main p {
	font-family: var(--tct-sans);
	font-size: 1.1rem;
	font-weight: 300;
	line-height: 1.75;
	color: var(--tct-text);
	text-align: left;
	margin: 0 0 20px 0;
}
.tct-main p:last-child { margin-bottom: 0; }
.tct-main strong { font-weight: 600; color: var(--tct-ink); }

.tct-eyebrow {
	font-size: 12px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--tct-gold-dark);
	margin: 0 0 18px 0;
}
.tct-main p.tct-eyebrow { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--tct-gold-dark); }

.tct-link {
	display: inline-block;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tct-gold-dark);
	text-decoration: none;
	border-bottom: 1px solid rgba(139,115,85,0.4);
	padding: 12px 0 2px 0;
	margin-top: 8px;
}
.tct-link:hover { color: var(--tct-green); border-color: var(--tct-green); }

.tct-book {
	display: inline-block;
	background: var(--tct-green);
	color: #fff !important;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 16px 40px;
	min-height: 48px;
	box-sizing: border-box;
}
.tct-book:hover { background: var(--tct-ink); }


/* ---------------- INTRO ---------------- */

.tct-intro {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 80px;
	align-items: start;
}
.tct-intro h1 { font-size: 44px; line-height: 1.2; }
.tct-brand { margin: 28px 0 0 0; }
.tct-main p.tct-brand {
	font-family: var(--tct-serif);
	font-style: normal;
	font-size: 22px;
	line-height: 1.5;
	font-weight: 400;
	color: var(--tct-gold-dark);
	margin: 28px 0 0 0;
}

.tct-facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	column-gap: 32px;
	margin-top: 88px;
	padding-top: 40px;
	border-top: 1px solid var(--tct-line);
}
.tct-fact-num {
	display: block;
	font-family: var(--tct-serif);
	font-size: 48px;
	line-height: 1;
	color: var(--tct-ink);
}
.tct-fact-label {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #4a4741;
}


/* ---------------- INTRO CENTRATA ---------------- */

.tct-lead { max-width: 760px; margin: 0 auto; text-align: center; }
.tct-lead h1 { font-size: 38px; line-height: 1.2; }
.tct-main .tct-lead p { text-align: center; }
.tct-main .tct-lead p.tct-brand { margin: 24px 0 30px 0; font-size: 20px; }

.tct-facts--small {
	max-width: 760px;
	margin: 44px auto 0 auto;
	padding-top: 32px;
	text-align: center;
}
.tct-facts--small .tct-fact-num { font-size: 38px; color: var(--tct-gold-dark); }
.tct-facts--small .tct-fact-label { font-size: 12px; }


/* ---------------- VILLE ---------------- */

.tct-head-center { text-align: center; margin-bottom: 64px; }
.tct-head-center h2 { font-size: 40px; line-height: 1.2; margin-bottom: 14px; }
.tct-main .tct-head-center p { text-align: center; font-size: 1rem; }

.tct-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
}
.tct-card { display: flex; flex-direction: column; }
.tct-card-img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	background: #d9d1c2;
}
.tct-card h3 { font-size: 28px; margin: 18px 0 8px 0; }
.tct-card h3 a { color: inherit; text-decoration: none; }
.tct-main .tct-card p { font-size: 0.95rem; line-height: 1.6; color: #4a4741; margin: 0 0 10px 0; }
.tct-card .tct-link { align-self: flex-start; }


/* ---------------- CANTINA / BIOLOGICO ---------------- */

.tct-split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 80px;
	align-items: center;
}
.tct-split--text { grid-template-columns: minmax(0, 760px); }
.tct-split h2 { font-size: 38px; line-height: 1.2; margin-bottom: 24px; }
.tct-split-img { width: 100%; height: 520px; object-fit: cover; display: block; }


/* ---------------- RITIRI / EVENTI ---------------- */

.tct-duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
}
.tct-duo-item { border: 1px solid var(--tct-line); background: #fff; }

/* ---------------- STORIA / LINEA DEL TEMPO ---------------- */

.tct-duo-item img { display: block; width: 100%; height: 320px; object-fit: cover; }
.tct-duo-body { padding: 32px 32px 30px 32px; }
.tct-duo-body h3 { font-size: 28px; margin-bottom: 12px; }

.tct-band { background: var(--tct-ink); padding: 72px 0; }

.tct-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 32px;
}
.tct-timeline li { margin: 0; padding: 0; }
.tct-tl-year {
	display: block;
	font-family: var(--tct-serif);
	font-size: 44px;
	line-height: 1.1;
	color: #D9C29A;
}
.tct-tl-text {
	display: block;
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.55;
	font-weight: 400;
	color: rgba(247,244,239,0.88);
}


/* ---------------- BARRA FINALE ---------------- */

.tct-cta-end {
	background: var(--tct-ink);
	padding: 80px 20px;
	text-align: center;
}
.tct-cta-end p {
	margin: 0 0 28px 0;
	color: var(--tct-cream);
	font-size: 15px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 300;
}


/* ---------------- TESTO DEI VIDEO/IMMAGINI NASCOSTO ---------------- */

.tct-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}


/* ---------------- MOBILE ---------------- */

@media (max-width: 991.98px) {
	.tct-cards { grid-template-columns: 1fr; gap: 44px; }
	.tct-card-img { aspect-ratio: 4 / 3; }
	.tct-intro, .tct-split, .tct-duo { grid-template-columns: 1fr; row-gap: 32px; }
	.tct-split-img { height: 320px; }
	.tct-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
}

@media (max-width: 767.98px) {
	.tct-section { padding: 56px 0; }
	.tct-wrap { padding: 0 20px; }
	.tct-main p { font-size: 1.05rem; }
	.tct-intro h1, .tct-lead h1 { font-size: 30px; }
	.tct-facts--small { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 8px; margin-top: 32px; padding-top: 24px; }
	.tct-facts--small .tct-fact-num { font-size: 30px; }
	.tct-facts--small .tct-fact-label { font-size: 10px; letter-spacing: 0.1em; }
	.tct-head-center { margin-bottom: 36px; }
	.tct-head-center h2, .tct-split h2 { font-size: 30px; }
	.tct-facts {  }
	.tct-fact-num { font-size: 38px; }
	.tct-fact-label { font-size: 11px; letter-spacing: 0.12em; }
	.tct-duo-body { padding: 24px 20px; }
	.tct-cta-end { padding: 56px 20px; }
	.tct-band { padding: 48px 0; }
	.tct-tl-year { font-size: 36px; }
	.tct-book { display: block; width: 100%; max-width: 360px; margin-left: auto; margin-right: auto; text-align: center; }
}


/* ---------------- FOOTER ---------------- */
.tct-home #footer .widget h4, .tct-home #footer h4 { color: #D9C29A !important; }


/* ---------------- PAGINE INTERNE (body con classe tct-inner) ---------------- */

.tct-inner #header,
.tct-inner #header:not(.sticky-header) { position: relative; background: #fff !important; }
.tct-inner #header:not(.sticky-header) #header-wrap { background: #fff; }
.tct-inner .tct-logo-light { display: none !important; }
.tct-inner .tct-logo-dark { display: inline-block !important; }
.tct-inner #header:not(.sticky-header) #primary-menu > ul > li > a { color: var(--tct-ink); }
.tct-inner #header:not(.sticky-header) #primary-menu ul li.tct-menu-cta > a { background: var(--tct-green); color: #fff !important; }
.tct-inner #logo img { margin-top: 15px; }
.tct-inner .tct-head-center { max-width: 760px; margin-left: auto; margin-right: auto; }
.tct-inner .tct-head-center h1 { font-size: 44px; line-height: 1.15; margin-bottom: 20px; }
.tct-main .tct-head-center p.tct-eyebrow { text-align: center; margin-bottom: 14px; }

.tct-cards--wide .tct-card-img { aspect-ratio: 4 / 3; }
.tct-card h2 { font-size: 28px; margin: 18px 0 8px 0; }
.tct-card h2 a { color: inherit; text-decoration: none; }
.tct-main .tct-card p.tct-price { font-weight: 600; color: var(--tct-ink); margin: 4px 0 10px 0; }

.tct-map { height: 420px; margin: 0; border-top: 1px solid var(--tct-line); }

@media (max-width: 767.98px) {
	.tct-inner .tct-head-center h1 { font-size: 32px; }
	.tct-map { height: 320px; }
}


/* ---------------- PAGINA DI UNA VILLA ---------------- */

.tct-pagehero {
	height: 36vw;
	min-height: 340px;
	max-height: 620px;
	background-size: cover;
	background-position: 70% 30%;
	background-color: var(--tct-cream);
}

.tct-section--tight { padding: 64px 0; }
.tct-inner .tct-head-center--tight { margin-bottom: 0; }
.tct-main .tct-head-center p.tct-head-cta { margin-top: 28px; }
.tct-narrow { max-width: 820px; margin: 0 auto; }

button.tct-book { border: 0; cursor: pointer; font-family: var(--tct-sans); }

/* icone dei servizi */
.tct-icons {
	list-style: none;
	margin: 0 auto 8px auto;
	padding: 0;
	max-width: 1000px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 28px 0;
	text-align: center;
}
.tct-icons li { flex: 0 0 16.666%; padding: 0 8px; box-sizing: border-box; }
.tct-narrow + .tct-icons { margin-top: 56px; }
.tct-icons + .tct-narrow { margin-top: 56px; }
.tct-icons img { display: block; height: 46px; width: auto; margin: 0 auto 12px auto; opacity: 0.75; }
.tct-icons span {
	display: block;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tct-ink);
}

/* tabella prezzi e calendario */
.tct-prices { max-width: 900px; margin: 0 auto 56px auto; }
.tct-prices table { width: 100%; border-collapse: collapse; }
.tct-prices th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tct-gold-dark);
	text-align: center;
	padding: 14px 10px;
	border-top: 1px solid var(--tct-line);
	border-bottom: 1px solid var(--tct-line);
}
.tct-prices td {
	font-size: 15px;
	color: var(--tct-text);
	text-align: center;
	padding: 16px 10px;
	border-bottom: 1px solid var(--tct-line);
}
.tct-prices tbody tr:hover td { background: rgba(139,115,85,0.06); }
.tct-calendar { max-width: 1100px; margin: 0 auto; }
.tct-calendar iframe { display: block; border: 0; }

/* gallerie a tutta larghezza */
.tct-masonry, .tct-slider, .tct-slider-mobile { margin: 0; }
.tct-slider { background: #fff; }

@media (max-width: 991.98px) {
	.tct-icons li { flex-basis: 33.333%; }
}
@media (max-width: 767.98px) {
	.tct-pagehero { height: 38vh; min-height: 240px; background-position: 72% center; }
	.tct-section--tight { padding: 48px 0; }
	.tct-prices th { font-size: 10px; letter-spacing: 0.06em; padding: 12px 4px; }
	.tct-prices td { font-size: 13px; padding: 12px 4px; }
}

/* ---------------- PAGINA CANTINA ---------------- */

.tct-tasting h2, .tct-story h2 { font-size: 34px; line-height: 1.2; margin-bottom: 20px; text-align: center; }
.tct-story h2 + p { margin-top: 0; }
.tct-story p + h2 { margin-top: 56px; }

.tct-tasting .tct-facts {
	list-style: none;
	margin: 32px 0 0 0;
	padding: 24px 0;
	display: flex;
	justify-content: center;
	gap: 0;
	border-top: 1px solid var(--tct-line);
	border-bottom: 1px solid var(--tct-line);
	text-align: center;
}
.tct-tasting .tct-facts li { flex: 1 1 0; padding: 0 12px; font-size: 15px; color: var(--tct-ink); }
.tct-tasting .tct-facts span {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tct-gold-dark);
}
.tct-main p.tct-tasting-cta { text-align: center; margin: 32px 0 0 0; }

/* griglia dei vini */
.tct-wines {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 48px 32px;
}
.tct-wine { flex: 0 0 calc(33.333% - 22px); text-align: center; }
.tct-wine-img {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	background: var(--tct-cream);
	overflow: hidden;
}
.tct-wine-img img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity .4s ease;
}
.tct-wine-img .tct-wine-alt { opacity: 0; }
.tct-wine-img:hover .tct-wine-alt { opacity: 1; }
.tct-wine h3 { font-size: 26px; margin: 18px 0 6px 0; }
.tct-wine h3 a { color: inherit; text-decoration: none; }
.tct-main p.tct-wine-price { font-weight: 600; color: var(--tct-ink); margin: 0; font-size: 1rem; text-align: center; }

@media (max-width: 991.98px) {
	.tct-wine { flex-basis: calc(50% - 16px); }
}
@media (max-width: 575.98px) {
	.tct-wines { gap: 36px 16px; }
	.tct-wine { flex-basis: calc(50% - 8px); }
	.tct-wine h3 { font-size: 20px; }
	.tct-tasting .tct-facts { flex-direction: column; gap: 16px; }
	.tct-tasting h2, .tct-story h2 { font-size: 28px; }
	.tct-wine-img .tct-wine-alt { display: none; }
}

/* ---------------- PAGINA DI UN VINO ---------------- */

.tct-main p.tct-back { margin: 0 0 28px 0; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; }
.tct-back a { color: var(--tct-gold-dark); text-decoration: none; }
.tct-back a:hover { color: var(--tct-green); }

.tct-prod { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; align-items: start; }
.tct-prod-main { display: block; }
.tct-prod-main img { display: block; width: 100%; height: auto; max-height: 680px; object-fit: contain; }
.tct-prod-thumbs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; margin-top: 20px; }
.tct-prod-thumbs a { display: block; aspect-ratio: 1 / 1; border: 1px solid var(--tct-line); background: var(--tct-cream); overflow: hidden; }
.tct-prod-thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; }

.tct-prod-info h1 { font-size: 44px; line-height: 1.15; margin: 0 0 10px 0; }
.tct-main p.tct-prod-price { font-size: 1.4rem; font-weight: 600; color: var(--tct-ink); margin: 0 0 28px 0; }

.tct-awards { list-style: none; margin: 28px 0 0 0; padding: 0; }
.tct-awards li { margin: 0 0 10px 0; padding: 4px 0 4px 16px; border-left: 2px solid var(--tct-gold); font-size: 15px; color: var(--tct-text); }
.tct-awards strong { display: block; color: var(--tct-ink); }

.tct-main p.tct-prod-cta { margin: 32px 0 0 0; }
.tct-prod-notes { list-style: none; margin: 22px 0 0 0; padding: 0; font-size: 14px; color: #6b665e; }
.tct-prod-notes li { margin: 0 0 4px 0; }

.tct-spec { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 0 32px; margin: 0; }
.tct-spec dt, .tct-spec dd { padding: 16px 0; border-top: 1px solid var(--tct-line); margin: 0; }
.tct-spec dt { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tct-gold-dark); padding-top: 19px; }
.tct-spec dd { font-size: 15px; line-height: 1.7; color: var(--tct-text); }
.tct-spec dd:last-child, .tct-spec dt:last-of-type { border-bottom: 0; }

/* modulo d'ordine */
.tct-order-total { margin: 0 0 20px 0; font-size: 14px; font-weight: 500; color: #8a4b2a; }
.tct-order-total.is-ok { color: var(--tct-green); }
.tct-btn[disabled] { opacity: 0.4; cursor: not-allowed; }

@media (max-width: 991.98px) {
	.tct-prod { grid-template-columns: 1fr; gap: 40px; }
	.tct-prod-main img { max-height: 520px; }
}
@media (max-width: 575.98px) {
	.tct-prod-info h1 { font-size: 32px; }
	.tct-spec { grid-template-columns: 1fr; }
	.tct-spec dt { border-bottom: 0; padding-bottom: 0; }
	.tct-spec dd { border-top: 0; padding-top: 6px; }
}

.tct-main p.tct-back--end { text-align: center; margin: 48px 0 0 0; }
.tct-main p.tct-back--end a {
	display: inline-block;
	padding: 16px 36px;
	font-size: 14px;
	border: 1px solid var(--tct-gold);
	color: var(--tct-gold-dark);
	transition: all .2s ease;
}
.tct-main p.tct-back--end a:hover { background: var(--tct-gold); color: #fff; }

.tct-prod-thumbs > a:only-child { width: 33%; }

.tct-main p.tct-wines-cta { text-align: center; margin: 56px 0 0 0; }
.tct-main p.tct-oil-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 32px; margin: 28px 0 0 0; }
@media (max-width: 767.98px) {
	.tct-main p.tct-oil-actions { flex-direction: column; align-items: stretch; text-align: center; }
	.tct-main p.tct-oil-actions .tct-link { align-self: center; }
}
.tct-main .tct-split p.tct-wine-price { text-align: left; margin-top: 18px; }
.tct-main p.tct-oil-actions { align-items: stretch; }
.tct-main p.tct-oil-actions .tct-link {
	display: inline-flex;
	align-items: center;
	padding: 0 32px;
	border: 1px solid var(--tct-gold);
	color: var(--tct-gold-dark);
	transition: all .2s ease;
}
.tct-main p.tct-oil-actions .tct-link:hover { background: var(--tct-gold); color: #fff; border-color: var(--tct-gold); }
@media (max-width: 767.98px) {
	.tct-main p.tct-oil-actions .tct-link { align-self: stretch; justify-content: center; padding: 18px 32px; }
}

/* ---------------- PAGINA RETREATS ---------------- */

.tct-sec-title { text-align: center; font-size: 34px; line-height: 1.2; margin: 0 0 44px 0; }
.tct-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1000px; margin: 0 auto; gap: 40px; }
.tct-cards--two .tct-card-img { aspect-ratio: 4 / 3; }

.tct-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 48px; max-width: 1100px; margin: 0 auto; }
.tct-service { border-top: 1px solid var(--tct-gold); padding-top: 22px; }
.tct-service h3 { font-size: 24px; line-height: 1.25; margin: 0 0 12px 0; }
.tct-main .tct-service p { font-size: 0.95rem; line-height: 1.7; color: #4a4741; margin: 0; }

.tct-service-list { list-style: none; margin: 56px auto 0 auto; padding: 0; max-width: 1100px; columns: 3; column-gap: 48px; }
.tct-service-list li {
	break-inside: avoid;
	margin: 0;
	padding: 14px 0;
	border-top: 1px solid var(--tct-line);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--tct-ink);
}

.tct-form { max-width: 960px; margin: 56px auto 0 auto; }

.tct-retreats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 56px; }
.tct-retreat { display: flex; flex-direction: column; border: 1px solid var(--tct-line); padding: 34px 30px; background: var(--tct-cream); }
.tct-retreat h3 { font-size: 26px; line-height: 1.2; margin: 0 0 12px 0; }
.tct-main p.tct-retreat-meta { font-size: 12px; font-weight: 500; letter-spacing: 0.1em; line-height: 1.6; text-transform: uppercase; color: var(--tct-gold-dark); margin: 0 0 16px 0; }
.tct-main .tct-retreat p { font-size: 0.95rem; line-height: 1.7; color: #4a4741; }
.tct-retreat .tct-link { align-self: flex-start; margin-top: auto; }

@media (max-width: 991.98px) {
	.tct-services, .tct-retreats { grid-template-columns: 1fr; }
	.tct-service-list { columns: 2; }
}
@media (max-width: 767.98px) {
	.tct-cards--two { grid-template-columns: 1fr; }
	.tct-sec-title { font-size: 28px; margin-bottom: 32px; }
}
@media (max-width: 575.98px) {
	.tct-service-list { columns: 1; }
}

/* ---------------- PAGINA BOOK NOW ---------------- */

.booking-only, .enquiry-only { display: none; }
.mode-booking .booking-only { display: block; }
.mode-enquiry .enquiry-only { display: block; }

.tct-tabs { display: flex; justify-content: center; gap: 12px; margin-top: 36px; }
.tct-tab {
	font-family: var(--tct-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 16px 30px;
	border: 1px solid var(--tct-gold);
	background: transparent;
	color: var(--tct-gold-dark);
	cursor: pointer;
	transition: all .2s ease;
}
.tct-tab:hover { background: rgba(139,115,85,0.1); }
.tct-tab.is-active { background: var(--tct-green); border-color: var(--tct-green); color: #fff; }
@media (max-width: 575.98px) {
	.tct-tabs { flex-direction: column; }
}

/* ---------------- PAGINA PRIVACY ---------------- */

.tct-legal { margin-top: 56px; }
.tct-legal h2 { font-size: 26px; line-height: 1.25; margin: 48px 0 16px 0; }
.tct-legal h2:first-child { margin-top: 0; }
.tct-main .tct-legal p { margin: 0 0 16px 0; font-size: 1rem; line-height: 1.8; }
.tct-legal ul { list-style: disc; margin: 0 0 18px 0; padding-left: 22px; }
.tct-legal li { margin: 0 0 10px 0; font-size: 1rem; line-height: 1.75; color: var(--tct-text); }
.tct-main .tct-legal p.tct-legal-date { margin-top: 40px; font-size: 14px; color: #6b665e; }
