/*
Theme Name: Caterix Child
Template:   caterix
Theme URI: https://awaikenthemes.com/wordpress-theme/caterix/
Description: Caterix Child Theme
Author: AwaikenThemes
Author URI: https://awaikenthemes.com/
Version: 1.0.0
Text Domain: caterix-child
*/

/* ---------- Culinary Professionals Greece ---------- */

/* Brand colours and Greek-capable fonts (the parent theme's Bricolage Grotesque has no Greek glyphs) */
body {
	--e-global-color-primary: #2D2D86;
	--e-global-color-background: #F4F1EB;
	--e-global-color-divider: #2D2D861A;
	--e-global-color-text: #5C5A66;
	--e-global-typography-primary-font-family: "Commissioner", sans-serif;
	--e-global-typography-secondary-font-family: "Commissioner", sans-serif;
	--e-global-typography-accent-font-family: "Commissioner", sans-serif;
	--e-global-typography-text-font-family: "Source Sans 3", sans-serif;
}

/* Header logo */
.ata-site-logo-img { max-height: 54px; width: auto !important; }
@media (max-width: 767px) { .ata-site-logo-img { max-height: 42px; } }

/* Header: the demo "Book Now" button was removed, so let the menu take the free space */
@media (min-width: 1025px) {
	.header-version-1 > .e-con-full:last-child { flex: 1 1 auto; width: auto !important; max-width: none !important; }
	.header-version-1 .elementskit-menu-container { max-width: none; }
	.header-version-1 .elementskit-navbar-nav { justify-content: flex-end; flex-wrap: nowrap; }
	.header-version-1 .elementskit-navbar-nav > li > a { white-space: nowrap; font-size: 17px; }
}

/* Hero */
.cpg-hero .cpg-hero-kicker {
	display: inline-block;
	margin-bottom: 8px;
	padding: 6px 16px;
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 30px;
	font-size: 15px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.cpg-hero .elementor-widget-text-editor p:last-child { font-size: 20px; }

/* Cards */
.cpg-box { height: 100%; }
.cpg-card-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cpg-side-logo img { max-height: 340px; width: auto; margin: 0 auto; display: block; }

/* Board member photos: same frame for every portrait */
.chef-item-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top center; }

/* Galleries */
.cpg-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.cpg-gallery .gallery-icon { overflow: hidden; border-radius: 16px; }
.cpg-gallery .gallery-item:hover img { transform: scale(1.04); }

/* Timeline ("Η διαδρομή μας"): rows of milestones joined by one continuous line that turns at the row ends */
.cpg-snake {
	--line: var(--e-global-color-primary);
	--track: rgba(45, 45, 134, .16);
	--dot: var(--e-global-color-accent);
	--turn: 56px;
	--row-pad: 34px;
	--gap: 32px;
	position: relative;
	padding: 20px var(--turn) 0;
}
/* Without the script (or with reduced motion) the track itself is the line */
.cpg-snake:not(.is-animated) { --track: var(--line); }
.cpg-snake-row {
	position: relative;
	display: grid;
	grid-template-columns: repeat(var(--cols), 1fr);
	column-gap: var(--gap);
	margin: 0;
	padding: var(--row-pad) 0 44px;
	list-style: none;
	border-top: 2px solid var(--track);
}
/* Last row: the line stops at the final milestone instead of running on to the edge */
.cpg-snake-row.is-last { border-top-color: transparent; }
.cpg-snake-row.is-last .cpg-snake-item::after {
	content: "";
	position: absolute;
	top: calc(-1 * var(--row-pad) - 2px);
	height: 2px;
	background: var(--track);
	left: calc(-1 * var(--gap));
	right: calc(100% - 7px);
}
.cpg-snake-row.is-last .cpg-snake-item:first-child::after { left: 0; }
.cpg-snake-row.is-last.is-rev .cpg-snake-item::after { left: 7px; right: calc(-1 * var(--gap)); }
.cpg-snake-row.is-last.is-rev .cpg-snake-item:first-child::after { right: 0; }
.cpg-snake-row.is-rev { direction: rtl; }
.cpg-snake-row:not(.is-last)::after {
	content: "";
	position: absolute;
	top: -2px;
	bottom: -2px;
	right: calc(-1 * var(--turn));
	width: var(--turn);
	border: 2px solid var(--track);
	border-left: 0;
	border-radius: 0 var(--turn) var(--turn) 0;
}
.cpg-snake-row.is-rev:not(.is-last)::after {
	right: auto;
	left: calc(-1 * var(--turn));
	border: 2px solid var(--track);
	border-right: 0;
	border-radius: var(--turn) 0 0 var(--turn);
}
.cpg-snake-item { position: relative; direction: ltr; margin: 0; padding: 0; }
.cpg-snake-dot {
	position: absolute;
	z-index: 2;
	top: calc(-1 * var(--row-pad) - 8px);
	left: 0;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--dot);
	box-shadow: 0 0 0 4px var(--e-global-color-background);
	transition: background-color .35s ease, transform .35s ease, border-color .35s ease;
}
/* Scroll-drawn line (assets/js/cpg-timeline.js) */
.cpg-snake-svg { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.cpg-snake-svg path { fill: none; stroke: var(--line); stroke-width: 2; }
.cpg-snake.is-animated .cpg-snake-dot { background: var(--e-global-color-background); border: 2px solid var(--track); }
.cpg-snake.is-animated .cpg-snake-item.is-on .cpg-snake-dot { background: var(--dot); border-color: var(--dot); transform: scale(1.15); }
.cpg-snake.is-animated .cpg-snake-item > :not(.cpg-snake-dot) { opacity: .45; transition: opacity .5s ease; }
.cpg-snake.is-animated .cpg-snake-item.is-on > :not(.cpg-snake-dot) { opacity: 1; }
.cpg-snake-year {
	display: block;
	font-family: var(--e-global-typography-primary-font-family);
	font-size: 30px;
	font-weight: 400;
	line-height: 1.1;
	color: var(--dot);
}
.cpg-snake-title {
	display: block;
	margin: 8px 0 6px;
	font-family: var(--e-global-typography-primary-font-family);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--line);
}
.cpg-snake-item p { margin: 0; font-size: 15.5px; line-height: 1.5; }

/* Tablet and phone: one vertical line on the left */
@media (max-width: 1024px) {
	.cpg-snake { padding: 10px 0 0 28px; margin-left: 6px; }
	.cpg-snake::before { content: ""; position: absolute; left: 0; top: 0; width: 2px; height: var(--track-h, 100%); background: var(--track); }
	.cpg-snake-row { display: block; padding: 0; border-top: 0; direction: ltr; }
	.cpg-snake-row::after,
	.cpg-snake-row.is-last .cpg-snake-item::after { display: none; }
	.cpg-snake-item { padding-bottom: 30px; }
	.cpg-snake-dot { top: 8px; left: -34px; }
	.cpg-snake-year { font-size: 26px; }
}

/* Supporter logos */
.cpg-logo-box {
	background: #fff;
	border: 1px solid var(--e-global-color-divider);
	border-radius: 16px;
	padding: 18px;
	min-height: 120px;
	transition: box-shadow .3s ease, transform .3s ease;
}
.cpg-logo-box:hover { box-shadow: 0 10px 30px rgba(45, 45, 134, .08); transform: translateY(-2px); }
.cpg-logo img { width: auto; max-width: 100%; object-fit: contain; }
.cpg-logo-lg img { max-height: 80px; }
.cpg-logo-md img { max-height: 64px; }
.cpg-logo-sm img { max-height: 56px; }
.cpg-logo-box-sm { min-height: 100px; }

/* Footer contact links */
.cpg-footer-contact a { color: #fff; }
.cpg-footer-contact a:hover { color: var(--e-global-color-accent); }

/* Contact Form 7: acceptance + file fields */
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.wpcf7 input[type="file"] { width: 100%; padding: 10px; border: 1px dashed var(--e-global-color-divider); border-radius: 10px; background: #fff; }
