/*
Theme Name: Koronakis Law
Theme URI: https://www.koronakislaw.gr/
Author: Κορωνάκης Δικηγορική Εταιρία
Description: Θέμα της Κορωνάκης Δικηγορικής Εταιρίας – Koronakis Law Firm.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: koronakis-law
WPVibe: yes
Update URI: false
*/

/* ==========================================================================
   Βάση
   ========================================================================== */
:root {
	--kl-navy: var(--wp--preset--color--navy, #0B1626);
	--kl-navy-soft: var(--wp--preset--color--navy-soft, #16263D);
	--kl-ink: var(--wp--preset--color--ink, #1B2331);
	--kl-muted: var(--wp--preset--color--muted, #566174);
	--kl-gold: var(--wp--preset--color--gold, #C2A464);
	--kl-gold-deep: var(--wp--preset--color--gold-deep, #735E2E);
	--kl-ivory: var(--wp--preset--color--ivory, #F8F5EF);
	--kl-sand: var(--wp--preset--color--sand, #EFE8DB);
	--kl-line: var(--wp--preset--color--line, #E2DACB);
	--kl-white: #fff;
	--kl-pad: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2.5rem));
	--kl-wide: 1200px;
	--kl-ease: cubic-bezier(.2, .7, .2, 1);
	--kl-shadow: 0 18px 40px -24px rgba(11, 22, 38, .35);
}

html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern" 1;
}
::selection { background: var(--kl-gold); color: var(--kl-navy); }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--kl-gold);
	outline-offset: 3px;
}
a {
	text-decoration-thickness: 1px;
	text-underline-offset: .22em;
	text-decoration-color: var(--kl-gold);
	transition: color .2s var(--kl-ease), text-decoration-color .2s var(--kl-ease);
}
a:hover { text-decoration-color: currentColor; }
img { height: auto; }
strong { font-weight: 600; }
.screen-reader-text:focus { background: var(--kl-white); color: var(--kl-navy); }

/* ==========================================================================
   Κεφαλίδα
   ========================================================================== */
.kl-site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(248, 245, 239, .96);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid var(--kl-line);
}
.admin-bar .kl-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .kl-site-header { top: 46px; } }

.kl-topbar {
	background: var(--kl-navy);
	color: #C9D1DE;
	font-size: .82rem;
	letter-spacing: .01em;
}
.kl-topbar__inner {
	max-width: var(--kl-wide);
	margin: 0 auto;
	padding: .5rem var(--kl-pad);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.kl-topbar a { color: #fff; text-decoration: none; white-space: nowrap; }
.kl-topbar a:hover { color: var(--kl-gold); }
.kl-topbar__contacts { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; }
.kl-topbar__contacts span { color: var(--kl-gold); margin-right: .35rem; }
@media (max-width: 860px) { .kl-topbar__tag { display: none; } .kl-topbar__inner { justify-content: center; } }
@media (max-width: 600px) { .kl-topbar { display: none; } }

.kl-header__main {
	max-width: var(--kl-wide);
	margin: 0 auto;
	padding: .85rem var(--kl-pad) !important;
	gap: 1.5rem;
}
.kl-logo { display: inline-flex; flex-shrink: 0; line-height: 0; color: var(--kl-navy); }
.kl-logo__mark {
	display: block;
	height: 46px;
	aspect-ratio: 366.82 / 88.88;
	background: currentColor;
	-webkit-mask: url(assets/logo-navy.svg) left center / contain no-repeat;
	mask: url(assets/logo-navy.svg) left center / contain no-repeat;
}
.kl-logo:hover { color: var(--kl-gold-deep); }
@media (max-width: 600px) { .kl-logo__mark { height: 36px; } }
@media (min-width: 1081px) { .kl-nav .kl-nav-contact { display: none; } }

.kl-nav .wp-block-navigation-item__content { color: var(--kl-navy); text-decoration: none; padding: .35rem 0; position: relative; }
.kl-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 1px;
	background: var(--kl-gold); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--kl-ease);
}
.kl-nav .wp-block-navigation-item__content:hover::after,
.kl-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.kl-nav .wp-block-navigation__submenu-container {
	background: #fff !important;
	border: 1px solid var(--kl-line) !important;
	box-shadow: var(--kl-shadow);
	padding: .5rem 0 !important;
	min-width: 290px !important;
}
.kl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.2rem !important; font-weight: 400; }
.kl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }
.kl-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--kl-ivory); color: var(--kl-gold-deep); }
.kl-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--kl-ivory) !important; padding: 1.5rem var(--kl-pad) !important; }
.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; }
.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1rem !important; background: transparent !important; }

.kl-header__cta .wp-block-button__link { padding: .7rem 1.15rem !important; font-size: .92rem !important; }
@media (max-width: 1080px) {
	.kl-header__cta { display: none !important; }
	/* Μενού «χάμπουργκερ» σε tablet και κινητό, όχι μόνο κάτω από 600px. */
	.kl-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.kl-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.kl-nav .wp-block-navigation__responsive-container.is-menu-open { display: flex !important; position: fixed; inset: 0; z-index: 100000; overflow: auto; }
	.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; }
	.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; gap: .9rem; }
	.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; opacity: 1 !important; visibility: visible !important; width: auto !important; height: auto !important; min-width: 0 !important; }
	.kl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
}
.kl-nav .wp-block-navigation__responsive-container-open svg, .kl-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; fill: var(--kl-navy); }

/* ==========================================================================
   Κοινά στοιχεία
   ========================================================================== */
.kl-eyebrow {
	display: inline-flex !important;
	align-items: center;
	gap: .8rem;
	font-size: .78rem !important;
	font-weight: 600;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--kl-gold-deep);
	margin-bottom: .2rem !important;
}
.kl-eyebrow::before { content: ""; width: 2.2rem; height: 1px; background: currentColor; }
.kl-lead { font-size: var(--wp--preset--font-size--large) !important; color: var(--kl-muted); line-height: 1.6; }
.kl-small { font-size: var(--wp--preset--font-size--small) !important; color: var(--kl-muted); }

.kl-section { padding-top: var(--wp--preset--spacing--70) !important; padding-bottom: var(--wp--preset--spacing--70) !important; }
.kl-section--tight { padding-top: var(--wp--preset--spacing--60) !important; padding-bottom: var(--wp--preset--spacing--60) !important; }
.kl-section--sand { background: var(--kl-sand); }
.kl-section--white { background: #fff; }
.kl-section--navy { background: var(--kl-navy); color: #C9D1DE; }
.kl-section--navy :where(h1, h2, h3, h4) { color: #fff; }
.kl-section--navy .kl-eyebrow { color: var(--kl-gold); }
.kl-section--navy a { color: #fff; }
.kl-section--navy .kl-lead { color: #C9D1DE; }

/* Κουμπιά */
.kl-btn-gold .wp-block-button__link { background: var(--kl-gold) !important; color: var(--kl-navy) !important; }
.kl-btn-gold .wp-block-button__link:hover { background: #fff !important; color: var(--kl-navy) !important; }
.kl-btn-ghost .wp-block-button__link {
	background: transparent !important;
	color: inherit !important;
	box-shadow: inset 0 0 0 1px currentColor;
}
.kl-btn-ghost .wp-block-button__link:hover { background: var(--kl-gold) !important; color: var(--kl-navy) !important; box-shadow: inset 0 0 0 1px var(--kl-gold); }
.wp-block-button__link { transition: background-color .2s var(--kl-ease), color .2s var(--kl-ease), box-shadow .2s var(--kl-ease), transform .2s var(--kl-ease); }
.wp-block-button__link:active { transform: translateY(1px); }

/* Διπλό χρυσό πλαίσιο – από το λογότυπο */
.kl-frame { position: relative; }
.kl-frame img { position: relative; z-index: 1; display: block; width: 100%; }
.kl-frame::before {
	content: "";
	position: absolute;
	inset: -14px 14px 14px -14px;
	border: 1px solid var(--kl-gold);
	box-shadow: inset 0 0 0 4px transparent, inset 0 0 0 5px var(--kl-gold);
	z-index: 0;
	pointer-events: none;
}

/* ==========================================================================
   Hero αρχικής
   ========================================================================== */
.kl-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(120% 90% at 85% 10%, rgba(194, 164, 100, .14) 0%, rgba(194, 164, 100, 0) 55%),
		linear-gradient(180deg, #0B1626 0%, #0E1C30 100%);
	color: #C9D1DE;
	padding-top: var(--wp--preset--spacing--80) !important;
	padding-bottom: var(--wp--preset--spacing--80) !important;
}
.kl-hero::after {
	content: "";
	position: absolute;
	right: -6vw;
	bottom: -8vw;
	width: min(46vw, 620px);
	aspect-ratio: 87.95 / 101.27;
	background: var(--kl-gold);
	-webkit-mask: url(assets/mark.svg) center / contain no-repeat;
	mask: url(assets/mark.svg) center / contain no-repeat;
	opacity: .06;
	pointer-events: none;
}
.kl-hero > * { position: relative; z-index: 1; }
.kl-hero h1 { color: #fff; font-size: var(--wp--preset--font-size--display); max-width: 17ch; hyphens: manual; }
.kl-hero h1 em { font-style: normal; color: var(--kl-gold); }
.kl-hero .kl-eyebrow { color: var(--kl-gold); }
.kl-hero .kl-lead { color: #C9D1DE; max-width: 36rem; }
.kl-hero .wp-block-buttons { margin-top: 2rem !important; }
.kl-hero .kl-btn-ghost .wp-block-button__link { color: #fff !important; }

.kl-trust {
	margin-top: var(--wp--preset--spacing--60) !important;
	border-top: 1px solid rgba(255, 255, 255, .14);
	padding-top: 1.8rem;
	gap: 1.5rem 3rem !important;
}
.kl-trust p { margin: 0; font-size: .92rem; color: #AEB8C8; }
.kl-trust strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 2rem; font-weight: 500; color: #fff; line-height: 1.1; margin-bottom: .2rem; }

@media (prefers-reduced-motion: no-preference) {
	.kl-hero .kl-eyebrow, .kl-hero h1, .kl-hero .kl-lead, .kl-hero .wp-block-buttons, .kl-hero .kl-trust, .kl-hero .kl-frame {
		animation: kl-rise .9s var(--kl-ease) both;
	}
	.kl-hero h1 { animation-delay: .08s; }
	.kl-hero .kl-lead { animation-delay: .18s; }
	.kl-hero .wp-block-buttons { animation-delay: .28s; }
	.kl-hero .kl-frame { animation-delay: .2s; }
	.kl-hero .kl-trust { animation-delay: .4s; }
}
@keyframes kl-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Τίτλος σελίδας
   ========================================================================== */
.kl-page-hero {
	position: relative;
	overflow: hidden;
	background: var(--kl-navy);
	color: #C9D1DE;
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: var(--wp--preset--spacing--60) !important;
	margin-bottom: var(--wp--preset--spacing--60) !important;
}
.kl-page-hero::after {
	content: "";
	position: absolute;
	right: max(2vw, calc((100vw - var(--kl-wide)) / 2));
	top: 50%;
	transform: translateY(-50%);
	height: 78%;
	aspect-ratio: 87.95 / 101.27;
	background: var(--kl-gold);
	-webkit-mask: url(assets/mark.svg) center / contain no-repeat;
	mask: url(assets/mark.svg) center / contain no-repeat;
	opacity: .08;
	pointer-events: none;
}
.kl-page-hero > * { position: relative; z-index: 1; }
.kl-page-hero h1, .kl-page-hero .wp-block-post-title, .kl-page-hero .wp-block-query-title { color: #fff; font-size: var(--wp--preset--font-size--xx-large); max-width: 22ch; margin-top: .6rem; }
.kl-page-hero .wp-block-post-excerpt__excerpt, .kl-page-hero .kl-lead { color: #C9D1DE; font-size: var(--wp--preset--font-size--large); max-width: 44rem; margin-top: 1rem; }
.kl-page-hero .wp-block-post-excerpt__more-text { display: none; }
@media (max-width: 700px) { .kl-page-hero::after { opacity: .05; height: 60%; } }

.kl-breadcrumbs, .kl-breadcrumbs a { font-size: .82rem; color: #9FAABD; text-decoration: none; letter-spacing: .02em; }
.kl-breadcrumbs a:hover { color: var(--kl-gold); }
.kl-breadcrumbs .separator { color: var(--kl-gold); margin: 0 .45rem; }
.kl-breadcrumbs p { margin: 0; }

.kl-page-hero__inner > * { max-width: 46rem; }
.kl-page-hero__inner > h1 { max-width: 24ch; }

/* ==========================================================================
   Διάταξη με πλαϊνή στήλη
   ========================================================================== */
.kl-layout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}
.kl-layout > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.kl-layout .kl-content { max-width: 760px; }
.kl-sidebar { position: sticky; top: 130px; display: grid; gap: 1.25rem; }
.kl-sidebar__card { background: var(--kl-navy); color: #C9D1DE; padding: 1.8rem 1.6rem; position: relative; }
.kl-sidebar__card::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(194, 164, 100, .3); pointer-events: none; }
.kl-sidebar__card h2 { color: #fff; font-size: 1.45rem; margin: .5rem 0 1rem; }
.kl-sidebar__card .kl-eyebrow { color: var(--kl-gold); }
.kl-sidebar__card p { margin: 0 0 .8rem; font-size: .9rem; }
.kl-sidebar__card p span { display: block; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: #9FAABD; }
.kl-sidebar__card a.kl-tel { color: #fff; text-decoration: none; font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; }
.kl-sidebar__card a.kl-tel:hover { color: var(--kl-gold); }
.kl-sidebar__btn {
	display: block; text-align: center; margin-top: 1.2rem; padding: .85rem 1rem;
	background: var(--kl-gold); color: var(--kl-navy) !important; font-weight: 600; text-decoration: none; position: relative; z-index: 1;
}
.kl-sidebar__btn:hover { background: #fff; }
.kl-sidebar__nav { background: #fff; border: 1px solid var(--kl-line); padding: 1.4rem 1.5rem; }
.kl-sidebar__nav h2 { font-family: var(--wp--preset--font-family--body); font-size: .76rem; letter-spacing: .2em; text-transform: uppercase; color: var(--kl-gold-deep); margin: 0 0 .8rem; font-weight: 600; }
.kl-sidebar__nav ul { list-style: none; margin: 0; padding: 0; }
.kl-sidebar__nav li { border-top: 1px solid var(--kl-line); }
.kl-sidebar__nav li:first-child { border-top: 0; }
.kl-sidebar__nav a { display: block; padding: .6rem 0; color: var(--kl-navy); text-decoration: none; font-size: .95rem; }
.kl-sidebar__nav a:hover, .kl-sidebar__nav a[aria-current="page"] { color: var(--kl-gold-deep); }
@media (max-width: 1000px) {
	.kl-layout { grid-template-columns: 1fr; }
	.kl-sidebar { position: static; }
}

/* ==========================================================================
   Περιεχόμενο (prose)
   ========================================================================== */
.kl-content > h2:not(:first-child), .kl-prose h2:not(:first-child) { margin-top: 2.6em; }
.kl-content > h2::before, .kl-prose h2::before {
	content: "";
	display: block;
	width: 2.4rem;
	height: 2px;
	background: var(--kl-gold);
	margin-bottom: .9rem;
}
.kl-content > h3, .kl-prose h3 { margin-top: 1.9em; }
.kl-content ul li::marker, .kl-content ol li::marker, .kl-prose li::marker { color: var(--kl-gold-deep); }
.kl-content li + li, .kl-prose li + li { margin-top: .4em; }
.kl-content > p, .kl-content > ul, .kl-content > ol { max-width: 760px; }

.kl-callout {
	background: #fff;
	border: 1px solid var(--kl-line);
	border-left: 3px solid var(--kl-gold);
	padding: 1.6rem 1.8rem !important;
}
.kl-callout > :first-child { margin-top: 0; }
.kl-callout--sand { background: var(--kl-sand); border-color: var(--kl-sand); border-left-color: var(--kl-gold); }

.kl-notice {
	background: var(--kl-sand);
	border-left: 3px solid var(--kl-gold);
	padding: 1rem 1.25rem !important;
	font-size: .95rem;
	color: var(--kl-ink);
}

/* Κάρτες */
.kl-cards { gap: 1.25rem !important; }
.kl-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--kl-line);
	padding: 2rem 1.8rem 1.8rem !important;
	transition: transform .3s var(--kl-ease), box-shadow .3s var(--kl-ease), border-color .3s var(--kl-ease);
	height: 100%;
}
.kl-card::before {
	content: "";
	position: absolute; left: -1px; right: -1px; top: -1px; height: 2px;
	background: var(--kl-gold);
	transform: scaleX(0); transform-origin: left;
	transition: transform .35s var(--kl-ease);
}
.kl-card:hover { transform: translateY(-4px); box-shadow: var(--kl-shadow); border-color: transparent; }
.kl-card:hover::before { transform: scaleX(1); }
.kl-card h3 { font-size: 1.35rem; margin: .6rem 0 .5rem; }
.kl-card h3 a { color: var(--kl-navy); text-decoration: none; }
.kl-card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.kl-card p { color: var(--kl-muted); font-size: .98rem; margin: 0; }
.kl-card__num {
	font-family: var(--wp--preset--font-family--heading);
	color: var(--kl-gold-deep) !important;
	font-size: .95rem !important;
	letter-spacing: .12em;
	margin: 0 !important;
}
.kl-card__more { margin-top: 1.1rem !important; font-size: .9rem !important; font-weight: 600; color: var(--kl-navy) !important; letter-spacing: .02em; }
.kl-card__more::after { content: " →"; color: var(--kl-gold-deep); transition: margin .2s; }
.kl-card:hover .kl-card__more::after { margin-left: .3rem; }
.kl-section--navy .kl-card { background: var(--kl-navy-soft); border-color: rgba(255, 255, 255, .1); }
.kl-section--navy .kl-card p { color: #AEB8C8; }
.kl-section--navy .kl-card h3, .kl-section--navy .kl-card h3 a { color: #fff; }

/* Βήματα */
.kl-steps { counter-reset: kl-step; list-style: none; padding-left: 0 !important; display: grid; gap: 1.1rem; }
.kl-steps > li { counter-increment: kl-step; position: relative; padding-left: 3.6rem; min-height: 2.6rem; }
.kl-steps > li::before {
	content: counter(kl-step, decimal-leading-zero);
	position: absolute; left: 0; top: -.15rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem; color: var(--kl-gold-deep); line-height: 1;
}
.kl-steps > li::marker { content: ""; }
.kl-section--navy .kl-steps > li::before { color: var(--kl-gold); }

/* Κανόνες / γεγονότα */
.kl-facts { gap: 1.25rem !important; }
.kl-fact { border-top: 2px solid var(--kl-gold); padding-top: 1.1rem !important; }
.kl-fact h3 { font-size: 1.2rem; margin: 0 0 .45rem; }
.kl-fact p { margin: 0; font-size: .97rem; }
.kl-fact .kl-src { display: block; margin-top: .6rem; font-size: .8rem; color: var(--kl-muted); letter-spacing: .01em; }

/* Συχνές ερωτήσεις */
.kl-faq {
	border-bottom: 1px solid var(--kl-line);
	padding: 0 !important;
	margin: 0 !important;
}
.kl-faq:first-of-type { border-top: 1px solid var(--kl-line); }
.kl-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 1.25rem 3rem 1.25rem 0;
	position: relative;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.18rem;
	color: var(--kl-navy);
	line-height: 1.35;
}
.kl-faq summary::-webkit-details-marker { display: none; }
.kl-faq summary::after {
	content: "";
	position: absolute; right: .3rem; top: 50%;
	width: 14px; height: 14px; margin-top: -7px;
	background:
		linear-gradient(var(--kl-gold-deep), var(--kl-gold-deep)) center / 14px 1.5px no-repeat,
		linear-gradient(var(--kl-gold-deep), var(--kl-gold-deep)) center / 1.5px 14px no-repeat;
	transition: transform .25s var(--kl-ease);
}
.kl-faq[open] summary::after { transform: rotate(45deg); }
.kl-faq summary:hover { color: var(--kl-gold-deep); }
.kl-faq > :not(summary) { margin-top: 0; padding-bottom: 1.25rem; color: var(--kl-ink); max-width: 720px; }

/* Πίνακες */
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: .95rem; background: #fff; }
.wp-block-table th { background: var(--kl-navy); color: #fff; font-weight: 600; text-align: left; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--kl-line); padding: .75rem .9rem; vertical-align: top; }

/* Γραφεία */
.kl-office { background: #fff; border: 1px solid var(--kl-line); padding: 0 !important; height: 100%; }
.kl-office .wp-block-image { margin: 0; }
.kl-office .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.kl-office__body { padding: 1.5rem 1.6rem 1.7rem !important; }
.kl-office h3 { font-size: 1.4rem; margin: 0 0 .5rem; }
.kl-office p { margin: .25rem 0; font-size: .97rem; }
.kl-map iframe { width: 100%; height: 380px; border: 0; display: block; filter: grayscale(.4) contrast(1.05); }

/* Λογότυπα συνεργασιών */
.kl-logos.wp-block-gallery { gap: 1rem !important; }
.kl-logos .wp-block-image { background: #fff; border: 1px solid var(--kl-line); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.kl-logos .wp-block-image img { filter: grayscale(1); opacity: .8; transition: filter .3s, opacity .3s; object-fit: contain !important; max-height: 90px; }
.kl-logos .wp-block-image:hover img { filter: none; opacity: 1; }
.kl-logos .wp-block-image { flex-direction: column; }
.kl-logos .wp-block-image figcaption { position: static !important; background: none !important; color: var(--kl-muted) !important; font-size: .75rem !important; padding: .4rem 0 0 !important; text-align: center; }

/* Φόρμες (Fluent Forms) */
.kl-form-wrap { background: #fff; border: 1px solid var(--kl-line); padding: clamp(1.4rem, 3vw, 2.4rem) !important; }
.fluentform .ff-el-input--label label { font-weight: 600; color: var(--kl-navy); font-size: .92rem; }
.fluentform .ff-el-form-control {
	border: 1px solid #CFC6B5 !important;
	border-radius: 2px !important;
	background: var(--kl-ivory) !important;
	padding: .75rem .9rem !important;
	font-family: inherit !important;
	font-size: 1rem !important;
}
.fluentform .ff-el-form-control:focus { border-color: var(--kl-gold) !important; box-shadow: 0 0 0 3px rgba(194, 164, 100, .25) !important; background: #fff !important; }
.fluentform .ff-btn-submit {
	background: var(--kl-navy) !important;
	color: #fff !important;
	border-radius: 2px !important;
	padding: .95rem 1.8rem !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	border: 0 !important;
}
.fluentform .ff-btn-submit:hover { background: var(--kl-gold) !important; color: var(--kl-navy) !important; opacity: 1 !important; }

/* Φόρμα θέματος */
.kl-form { display: grid; gap: .2rem; }
.kl-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 1.2rem; }
.kl-form__field { margin: 0 0 1rem; }
.kl-form label { display: block; font-weight: 600; color: var(--kl-navy); font-size: .9rem; margin-bottom: .35rem; }
.kl-form input[type="text"], .kl-form input[type="tel"], .kl-form input[type="email"], .kl-form textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #CFC6B5;
	border-radius: 2px;
	background: var(--kl-ivory);
	padding: .8rem .95rem;
	font: inherit;
	font-size: 1rem;
	color: var(--kl-ink);
	transition: border-color .2s, box-shadow .2s, background .2s;
}
.kl-form input:focus, .kl-form textarea:focus { outline: none; border-color: var(--kl-gold); box-shadow: 0 0 0 3px rgba(194, 164, 100, .25); background: #fff; }
.kl-form__consent label { font-weight: 400; font-size: .88rem; color: var(--kl-ink); display: flex; gap: .6rem; align-items: flex-start; }
.kl-form__consent input { margin-top: .25rem; accent-color: var(--kl-navy); }
.kl-form__note { font-size: .82rem; color: var(--kl-muted); margin: .2rem 0 1rem; }
.kl-form__submit {
	background: var(--kl-navy); color: #fff; border: 0; border-radius: 2px; cursor: pointer;
	padding: 1rem 1.9rem; font: inherit; font-weight: 600; font-size: 1rem;
	transition: background .2s, color .2s;
}
.kl-form__submit:hover { background: var(--kl-gold); color: var(--kl-navy); }
.kl-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.kl-form-msg { padding: 1rem 1.2rem; margin-bottom: 1.2rem; border-left: 3px solid var(--kl-gold); background: var(--kl-sand); }
.kl-form-msg--err { border-left-color: #A33; background: #F8E9E7; }

/* Βίντεο (reels) */
.kl-reels { gap: 1.1rem !important; }
.kl-reel { margin: 0 !important; position: relative; }
.kl-reel a { display: block; position: relative; overflow: hidden; background: var(--kl-navy); }
.kl-reel img { aspect-ratio: 9 / 16; object-fit: cover; width: 100%; display: block; transition: transform .6s var(--kl-ease), opacity .3s; }
.kl-reel a::after {
	content: "";
	position: absolute; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px;
	border-radius: 50%;
	background: rgba(11, 22, 38, .55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23C2A464' d='M8 5v14l11-7z'/%3E%3C/svg%3E") 55% 50% / 26px no-repeat;
	border: 1px solid rgba(194, 164, 100, .7);
	transition: transform .3s var(--kl-ease);
}
.kl-reel a:hover img { transform: scale(1.04); opacity: .9; }
.kl-reel a:hover::after { transform: scale(1.1); }
.kl-reel figcaption { font-family: var(--wp--preset--font-family--heading); font-size: 1.05rem !important; color: var(--kl-navy) !important; margin-top: .7rem !important; line-height: 1.3; text-align: left; }

/* ==========================================================================
   Άρθρα
   ========================================================================== */
.kl-posts .wp-block-post-template { gap: 1.5rem; }
.kl-cat-list { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 2rem !important; }
.kl-cat-list li { margin: 0 !important; }
.kl-cat-list a { display: inline-block; padding: .45rem .9rem; border: 1px solid var(--kl-line); background: #fff; color: var(--kl-navy); text-decoration: none; font-size: .88rem; }
.kl-cat-list a:hover, .kl-cat-list .current-cat a { border-color: var(--kl-gold); color: var(--kl-gold-deep); }
.kl-post-card {
	background: #fff;
	border: 1px solid var(--kl-line);
	height: 100%;
	display: flex;
	flex-direction: column;
	transition: box-shadow .3s var(--kl-ease), transform .3s var(--kl-ease);
}
.kl-post-card:hover { box-shadow: var(--kl-shadow); transform: translateY(-3px); }
.kl-post-card .wp-block-post-featured-image { margin: 0; overflow: hidden; background: var(--kl-sand); }
.kl-post-card .wp-block-post-featured-image img { transition: transform .6s var(--kl-ease); }
.kl-post-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.kl-post-card > :not(.wp-block-post-featured-image) { padding-left: 1.4rem; padding-right: 1.4rem; }
.kl-post-card__date { margin-top: 1.2rem !important; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--kl-gold-deep); font-weight: 600; }
.kl-post-card__title { font-size: 1.3rem !important; margin: .4rem 0 .5rem !important; line-height: 1.3; }
.kl-post-card__title a { color: var(--kl-navy); text-decoration: none; }
.kl-post-card__title a:hover { color: var(--kl-gold-deep); }
.kl-post-card__excerpt { color: var(--kl-muted); font-size: .95rem; padding-bottom: 1.4rem; margin-top: 0 !important; }
.kl-post-card__excerpt .wp-block-post-excerpt__more-text { display: none; }

.kl-article-meta { font-size: .9rem; color: #AEB8C8; gap: .4rem 1.4rem !important; margin-top: 1rem !important; }
.kl-article-meta a { color: #fff; }
.kl-article-meta > * { margin: 0 !important; }
.kl-article-meta .wp-block-post-author-name::before { content: "Συντάκτης: "; color: #AEB8C8; }
.kl-article-meta .wp-block-post-date::before { content: "Δημοσίευση: "; }
.kl-updated { display: inline-block; }
.kl-terms a { font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: var(--kl-gold) !important; text-decoration: none; font-weight: 600; }
.kl-terms .wp-block-post-terms__separator { color: var(--kl-gold); }

.kl-article-image img { width: 100%; max-height: 460px; object-fit: cover; }

.kl-byline strong { color: #fff; font-weight: 600; }
.kl-article-meta p { margin: 0; }
.kl-author-box {
	border-top: 1px solid var(--kl-line);
	border-bottom: 1px solid var(--kl-line);
	padding: 1.6rem 0;
	margin-top: var(--wp--preset--spacing--60);
}
.kl-author-box p { margin: 0; }
.kl-author-box__label { font-size: .74rem; letter-spacing: .18em; text-transform: uppercase; color: var(--kl-gold-deep); font-weight: 600; }
.kl-author-box__name { font-family: var(--wp--preset--font-family--heading); font-size: 1.3rem; color: var(--kl-navy); margin: .3rem 0 .4rem !important; }
.kl-author-box__bio { color: var(--kl-muted); font-size: .95rem; }

/* ==========================================================================
   Κάλεσμα (CTA)
   ========================================================================== */
.kl-cta {
	background: var(--kl-navy-soft);
	color: #C9D1DE;
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: var(--wp--preset--spacing--70) !important;
	margin-top: var(--wp--preset--spacing--70) !important;
	position: relative;
	overflow: hidden;
}
.kl-cta::before {
	content: "";
	position: absolute; inset: 18px;
	border: 1px solid rgba(194, 164, 100, .28);
	pointer-events: none;
}
.kl-cta h2 { color: #fff; font-size: var(--wp--preset--font-size--xx-large); margin-top: .4rem; }
.kl-cta .kl-eyebrow { color: var(--kl-gold); }
.kl-cta__phones { gap: .6rem 2.4rem !important; }
.kl-cta__phones p { margin: 0; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: #9FAABD; }
.kl-cta__phones a { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.7rem; letter-spacing: 0; text-transform: none; color: #fff; text-decoration: none; margin-top: .15rem; }
.kl-cta__phones a:hover { color: var(--kl-gold); }
.kl-main + .kl-cta, .wp-site-blocks > .kl-cta { margin-top: var(--wp--preset--spacing--70); }

/* ==========================================================================
   Υποσέλιδο
   ========================================================================== */
.kl-footer {
	background: var(--kl-navy);
	color: #AEB8C8;
	font-size: .95rem;
	padding-top: var(--wp--preset--spacing--70) !important;
	padding-bottom: 1.5rem !important;
	margin-top: 0 !important;
}
.kl-footer a { color: #DCE2EA; text-decoration: none; }
.kl-footer a:hover { color: var(--kl-gold); }
.kl-footer h2, .kl-footer h3 {
	font-family: var(--wp--preset--font-family--body);
	font-size: .78rem !important;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--kl-gold) !important;
	font-weight: 600;
	margin: 0 0 1.1rem;
}
.kl-footer ul { list-style: none; padding: 0; margin: 0; }
.kl-footer li + li { margin-top: .55rem; }
.kl-footer p { margin: 0 0 .4rem; }
.kl-footer__logo {
	display: block;
	width: 210px;
	aspect-ratio: 366.82 / 88.88;
	background: var(--kl-gold);
	-webkit-mask: url(assets/logo-navy.svg) left center / contain no-repeat;
	mask: url(assets/logo-navy.svg) left center / contain no-repeat;
	margin-bottom: 1.3rem;
}
.kl-footer__grid { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr 1fr; gap: 2.5rem 3rem; }
@media (max-width: 1000px) { .kl-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .kl-footer__grid { grid-template-columns: 1fr; } }
.kl-footer__brand p { max-width: 24rem; }
.kl-footer__social { margin-top: 1.2rem !important; }
.kl-footer__social a { color: var(--kl-gold); }
.kl-footer__hours { color: #8E99AC; font-size: .88rem; margin-top: 1rem !important; }
.kl-footer__disclaimer { font-size: .8rem; color: #7F8A9D; margin: 1rem 0 0 !important; }
.kl-footer__office + .kl-footer__office { margin-top: 1.1rem; }
.kl-footer__office strong { color: #fff; font-weight: 600; display: block; }
.kl-social { display: flex; gap: .7rem; margin-top: 1.3rem; }
.kl-social a {
	width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid rgba(194, 164, 100, .45); color: var(--kl-gold);
	transition: background .2s, color .2s;
}
.kl-social a:hover { background: var(--kl-gold); color: var(--kl-navy); }
.kl-social svg { width: 17px; height: 17px; fill: currentColor; }
.kl-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, .1);
	margin-top: var(--wp--preset--spacing--60) !important;
	padding-top: 1.4rem !important;
	font-size: .85rem;
	gap: .6rem 1.6rem !important;
}
.kl-footer__bottom p { margin: 0; }

/* Σταθερή μπάρα κλήσης στο κινητό */
.kl-mobilebar { display: none; }
@media (max-width: 781px) {
	.kl-mobilebar {
		display: grid;
		grid-template-columns: 1fr 1fr;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
		background: var(--kl-navy);
		border-top: 1px solid rgba(194, 164, 100, .4);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.kl-mobilebar a {
		display: flex; align-items: center; justify-content: center; gap: .5rem;
		padding: .95rem .5rem; color: #fff; text-decoration: none; font-weight: 600; font-size: .95rem;
	}
	.kl-mobilebar a + a { background: var(--kl-gold); color: var(--kl-navy); }
	.kl-mobilebar svg { width: 18px; height: 18px; fill: currentColor; }
	body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
}

/* ==========================================================================
   Διάφορα
   ========================================================================== */
.wp-block-separator.is-style-kl-gold, .kl-rule { border: 0; height: 2px; width: 3rem; background: var(--kl-gold); margin-left: 0; opacity: 1; }
.kl-404 h1 { font-size: var(--wp--preset--font-size--xx-large); }
.kl-search .wp-block-search__input { border: 1px solid var(--kl-line); padding: .8rem 1rem; background: #fff; }
.kl-search .wp-block-search__button { background: var(--kl-navy); color: #fff; border: 0; padding: 0 1.4rem; }

@media (max-width: 781px) {
	.kl-hide-mobile { display: none !important; }
	.kl-frame::before { inset: -10px 10px 10px -10px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
	.kl-site-header, .kl-footer, .kl-cta, .kl-mobilebar { display: none !important; }
	body { background: #fff; }
}
