/*
Theme Name: OVM Communication
Theme URI: https://ovm-communication.fr/
Description: Thème enfant de Hello Elementor pour le Pancook Lille Zénith.
Author: OVM Communication
Author URI: https://ovm-communication.fr/
Template: hello-elementor
Version: 1.2.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
*/

/* ==================================================================
   Variables
   ================================================================== */
:root {
	/* Noir et or (13/11/2026) ; --pk-nuit et --pk-brique gardent leur nom pour ne pas toucher aux classes */
	--pk-noir: #0f0e0c;
	--pk-or: #c9a45c;
	--pk-or-2: #b08a43;
	--pk-or-fonce: #7d5f24;
	--pk-nuit: var(--pk-noir);
	--pk-papier: #f5efe3;
	--pk-papier-2: #ebe2d0;
	--pk-blanc: #fffdf8;
	--pk-encre: #1d1a16;
	--pk-gris: #6b645a;
	--pk-clair: #d8d0c2;
	--pk-brique: var(--pk-or-fonce);
	--pk-brique-2: var(--pk-or-2);
	--pk-titre: "Josefin Sans", system-ui, sans-serif;
	--pk-texte: "Lora", Georgia, serif;
	--pk-machine: "Courier Prime", "Courier New", monospace;

	/* Globales Elementor : les widgets reprennent la charte */
	--e-global-color-primary: var(--pk-encre);
	--e-global-color-secondary: var(--pk-nuit);
	--e-global-color-text: var(--pk-encre);
	--e-global-color-accent: var(--pk-or);
	--e-global-typography-primary-font-family: "Josefin Sans";
	--e-global-typography-secondary-font-family: "Josefin Sans";
	--e-global-typography-text-font-family: "Lora";
	--e-global-typography-accent-font-family: "Josefin Sans";
}

/* ==================================================================
   Base
   ================================================================== */
body {
	background-color: var(--pk-papier);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.2 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	color: var(--pk-encre);
	font-family: var(--pk-texte);
	font-size: 18px;
	line-height: 1.65;
}

a { color: inherit; }
a:hover { color: var(--pk-brique); }

h1, h2, h3, h4,
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--pk-titre);
	font-weight: 300;
	text-transform: uppercase;
	letter-spacing: .08em;
	line-height: 1.08;
	color: inherit;
}
.elementor-widget-heading h1.elementor-heading-title { font-size: clamp(44px, 6vw, 84px); letter-spacing: .06em; line-height: 1.02; }
.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(34px, 4vw, 54px); }
.elementor-widget-heading h3.elementor-heading-title { font-size: clamp(26px, 2.6vw, 32px); }

.elementor-widget-text-editor { font-family: var(--pk-texte); font-size: 18px; line-height: 1.65; color: inherit; }
.elementor-widget-text-editor p { margin: 0 0 18px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Filet brique sous les titres : classe "pk-filet" sur le widget titre */
.pk-filet .elementor-heading-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 2px;
	background: var(--pk-or);
	margin-top: 26px;
}
.pk-centre.pk-filet .elementor-heading-title::after { margin-inline: auto; }

/* Texte machine à écrire : classe "pk-machine" */
.pk-machine, .pk-machine p { font-family: var(--pk-machine) !important; font-size: 15px !important; color: var(--pk-gris); line-height: 1.6 !important; }
.pk-pain { border-top: 1px dashed rgba(29, 26, 22, .35); padding-top: 26px; }

/* ==================================================================
   Boutons
   ================================================================== */
.elementor-button,
.elementor-widget-button .elementor-button,
.pk-btn {
	font-family: var(--pk-titre) !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .16em;
	font-size: 14px !important;
	line-height: 1.2;
	padding: 17px 30px !important;
	background-color: var(--pk-or) !important;
	color: var(--pk-noir) !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transition: background-color .2s;
}
.elementor-button:hover { background-color: var(--pk-or-2) !important; color: var(--pk-noir) !important; }
.pk-btn-ligne .elementor-button {
	background-color: transparent !important;
	border: 1px solid currentColor !important;
	color: inherit !important;
}
.pk-btn-ligne .elementor-button:hover { background-color: rgba(255, 255, 255, .08) !important; }
.pk-btn-plein .elementor-button { width: 100%; justify-content: center; }

/* ==================================================================
   Pré-header et en-tête
   ================================================================== */
.pk-prehead { background: var(--pk-noir); color: #efe7d8; font-family: var(--pk-machine); font-size: 14px; }
.pk-prehead a { color: #efe7d8; text-decoration: none; }
.pk-prehead .elementor-widget-text-editor, .pk-prehead .elementor-widget-shortcode { font-family: var(--pk-machine); font-size: 14px; color: #efe7d8; }
.pk-live { display: inline-flex; align-items: center; gap: 10px; }
.pk-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pk-or); flex: none; }
.pk-live.is-ouvert .pk-dot { background: #7fb069; }

.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .elementor-location-header { top: 32px; }
.pk-header {
	background: rgba(245, 239, 227, .94);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid rgba(29, 26, 22, .12);
}
.pk-header .elementor-nav-menu a,
.pk-header .elementor-nav-menu--main .elementor-item {
	font-family: var(--pk-titre);
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: 14px;
	font-weight: 400;
	color: var(--pk-encre);
}
.pk-header .elementor-nav-menu--main .elementor-item:hover,
.pk-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--pk-brique); }
.pk-header .elementor-button { padding: 13px 22px !important; }
.pk-header .elementor-menu-toggle { background: transparent; color: var(--pk-encre); }
.pk-header .elementor-nav-menu--dropdown { background: var(--pk-papier); }
.pk-header .elementor-nav-menu--dropdown a { padding: 16px 24px; }

/* ==================================================================
   Sections
   ================================================================== */
.pk-hero { background-color: var(--pk-nuit); color: #f3ede2; }
.pk-hero .elementor-widget-text-editor { color: var(--pk-clair); font-size: 20px; }
.pk-hero {
	background-size: auto 100% !important;
	background-position: right center !important;
}
.pk-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--pk-nuit) 0%, var(--pk-nuit) 30%, rgba(15, 14, 12, .6) 42%, rgba(15, 14, 12, 0) 58%);
	z-index: 0;
	pointer-events: none;
}
.pk-hero .elementor-widget-heading { max-width: 760px !important; }
.pk-hero .elementor-widget-text-editor { max-width: 430px !important; }
.pk-hero > .e-con-inner, .pk-hero > * { position: relative; z-index: 1; }

.pk-nuit { background-color: var(--pk-nuit); color: #f3ede2; }
.pk-nuit .elementor-widget-text-editor { color: #cfc6b6; }
.pk-nuit .elementor-image-carousel-caption,
.pk-nuit figcaption, .pk-legende { font-family: var(--pk-titre); text-transform: uppercase; letter-spacing: .14em; font-size: 14px; color: #cfc6b6; margin-top: 16px; }

.pk-feuille {
	background: var(--pk-blanc);
	box-shadow: 0 40px 80px -40px rgba(29, 26, 22, .35);
}
.pk-ombre img { box-shadow: 0 30px 60px -30px rgba(29, 26, 22, .45); }
.pk-cadre img { border: 10px solid var(--pk-papier); }
.pk-cover, .pk-cover .elementor-widget-container, .pk-cover img { height: 100%; }
.pk-cover img { width: 100%; object-fit: cover; }

.pk-infos { background-color: var(--pk-papier-2); }
.pk-sep { border-top: 1px solid rgba(29, 26, 22, .2); }

/* Histoire : photos qui se chevauchent */
.pk-histoire-b { width: 58% !important; align-self: flex-start; margin-top: -110px; position: relative; z-index: 2; }
.pk-histoire-a { width: 80% !important; align-self: flex-end; }
.pk-sticky { position: sticky !important; top: 150px; align-self: flex-start; }
.pk-row-eq > .elementor-widget, .pk-row-eq > .e-con-inner > .elementor-widget { flex: 1 1 0; }

/* En-tête de feuille : titre + mention à droite, filet noir dessous */
.pk-entete { border-bottom: 1px solid var(--pk-encre); padding-bottom: 18px; margin-bottom: 12px; }
.pk-feuille .pk-entete .elementor-heading-title { font-size: clamp(28px, 3vw, 38px); }
.pk-entete .pk-mention, .pk-mention p { font-family: var(--pk-machine); font-size: 14px; color: var(--pk-brique); }

/* ==================================================================
   Carte (widget Liste de prix d'Elementor Pro)
   ================================================================== */
.elementor-price-list .elementor-price-list-item { margin-bottom: 22px; }
.elementor-price-list .elementor-price-list-header { align-items: baseline; }
.elementor-price-list .elementor-price-list-title {
	font-family: var(--pk-titre);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: 17px;
	font-weight: 400;
	color: var(--pk-encre);
}
.elementor-price-list .elementor-price-list-price { white-space: nowrap; font-family: var(--pk-machine); font-size: 16px; font-weight: 400; color: var(--pk-encre); }
.elementor-price-list .elementor-price-list-separator { border-bottom: 1px dotted var(--pk-gris) !important; border-bottom-width: 1px !important; }
.elementor-price-list .elementor-price-list-description { font-family: var(--pk-machine); font-size: 14px; color: var(--pk-gris); line-height: 1.5; margin-top: 4px; }

/* ==================================================================
   Horaires
   ================================================================== */
.pk-jour { display: flex; gap: 12px; align-items: baseline; font-family: var(--pk-machine); font-size: 15px; padding: 7px 0; }
.pk-jour i { flex: 1; border-bottom: 1px dotted var(--pk-gris); transform: translateY(-4px); }
.pk-jour.is-today { color: var(--pk-brique); font-weight: 700; }
.pk-note { font-family: var(--pk-machine); font-size: 14px; color: var(--pk-gris); margin-top: 22px; line-height: 1.6; }

/* ==================================================================
   Équipe
   ================================================================== */
.pk-noms p { font-family: var(--pk-titre); text-transform: uppercase; letter-spacing: .1em; font-size: 22px; line-height: 2.1; margin: 0; }
.pk-noms span { font-family: var(--pk-machine); text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--pk-gris); margin-left: 12px; }

/* ==================================================================
   Avis
   ================================================================== */
.pk-note-avis .elementor-heading-title { font-family: var(--pk-titre); font-weight: 300; font-size: clamp(60px, 7vw, 96px); letter-spacing: 0; line-height: 1; }
.pk-avis-source p { font-family: var(--pk-machine); font-size: 15px; color: var(--pk-gris); }
.pk-citation { border-top: 1px solid rgba(29, 26, 22, .2); padding-top: 26px; }
.pk-citation .elementor-widget-text-editor { font-style: italic; font-size: 21px; line-height: 1.5; }
.pk-auteur p { font-family: var(--pk-machine); font-size: 14px; color: var(--pk-gris); font-style: normal; }

/* ==================================================================
   Pied de page
   ================================================================== */
.pk-footer { background: var(--pk-noir); color: #cfc6b6; font-family: var(--pk-machine); font-size: 14px; }
.pk-footer a { color: #cfc6b6; text-decoration: none; }
.pk-footer a:hover { color: var(--pk-or); }
.pk-footer .elementor-widget-text-editor { font-family: var(--pk-machine); font-size: 14px; color: #cfc6b6; }
.pk-nuit a:hover, .pk-hero a:hover, .pk-prehead a:hover { color: var(--pk-or); }
.pk-footer .elementor-nav-menu a { font-family: var(--pk-machine); font-size: 14px; color: #cfc6b6; padding: 4px 0; }

/* Formulaires Elementor */
.elementor-form .elementor-field-group .elementor-field {
	background: var(--pk-blanc);
	border: 1px solid rgba(29, 26, 22, .35);
	border-radius: 0;
	font-family: var(--pk-machine);
	font-size: 15px;
	padding: 14px 16px;
}
.elementor-form .elementor-field-label { font-family: var(--pk-titre); text-transform: uppercase; letter-spacing: .1em; font-size: 13px; }

/* Pages simples (mentions légales, politique de cookies) */
.page .site-main .page-content, .pk-texte-long { max-width: 760px; margin-inline: auto; }

/* ==================================================================
   Mobile
   ================================================================== */
@media (max-width: 1024px) {
	.admin-bar .elementor-location-header { top: 46px; }
}
@media (max-width: 767px) {
	body { font-size: 17px; }
	.pk-hero { background-size: 170% auto !important; background-position: center bottom !important; }
	.pk-hero::before { background: linear-gradient(180deg, var(--pk-nuit) 0%, var(--pk-nuit) 45%, rgba(15, 14, 12, 0) 62%); }
	.pk-noms p { font-size: 19px; }
	.pk-histoire-a, .pk-histoire-b { width: 100% !important; margin-top: 14px; }
	.pk-sticky { position: relative !important; top: 0; }
	.elementor-price-list .elementor-price-list-title { font-size: 15px; letter-spacing: .05em; }
	.elementor-price-list .elementor-price-list-price { font-size: 14px; }
	.pk-citation .elementor-widget-text-editor { font-size: 19px; }
}

/* ==================================================================
   Bandeau cookies Complianz : noir et or
   ================================================================== */
.cmplz-cookiebanner {
	--cmplz_banner_background_color: var(--pk-noir) !important;
	--cmplz_banner_border_color: var(--pk-or) !important;
	--cmplz_banner_border_radius: 0 !important;
	--cmplz_text_color: #efe7d8 !important;
	--cmplz_hyperlink_color: var(--pk-or) !important;
	--cmplz_button_border_radius: 0 !important;
	--cmplz_button_accept_background_color: var(--pk-or) !important;
	--cmplz_button_accept_border_color: var(--pk-or) !important;
	--cmplz_button_accept_text_color: var(--pk-noir) !important;
	--cmplz_button_deny_background_color: transparent !important;
	--cmplz_button_deny_border_color: #efe7d8 !important;
	--cmplz_button_deny_text_color: #efe7d8 !important;
	--cmplz_button_settings_background_color: transparent !important;
	--cmplz_button_settings_border_color: #efe7d8 !important;
	--cmplz_button_settings_text_color: #efe7d8 !important;
	--cmplz_slider_active_color: var(--pk-or) !important;
	font-family: var(--pk-texte);
}
.cmplz-cookiebanner .cmplz-title,
.cmplz-cookiebanner .cmplz-btn { font-family: var(--pk-titre) !important; letter-spacing: .08em; text-transform: uppercase; }
.cmplz-cookiebanner .cmplz-close { color: #efe7d8 !important; }
