/*
Theme Name:   OceanWP JMPG
Theme URI:    https://julienmphotographik.fr/
Description:  Thème enfant d'OceanWP pour Julien M Photo Graphik. Design sombre et professionnel (anthracite + rouge du logo), responsive, compatible Elementor Basic et Pro. Le menu Personnaliser d'OceanWP reste inchangé.
Author:       Julien M Photo Graphik
Template:     oceanwp
Version:      1.0.3
Text Domain:  oceanwp-jmpg
Requires at least: 6.0
Requires PHP: 7.4
*/

/* ------------------------------------------------------------------
   1. Variables (modifiables ici, ou via le Customizer OceanWP qui garde la main)
------------------------------------------------------------------- */
:root {
	--jm-ink: #0E0F11;
	--jm-surface: #16181B;
	--jm-surface-2: #121316;
	--jm-line: #2A2D33;
	--jm-text: #EDEAE4;
	--jm-text-soft: #C9C7C0;
	--jm-muted: #A3A39E;
	--jm-accent: #FF5A60;      /* rouge clair : texte et liens sur fond sombre */
	--jm-red: #E30B13;         /* rouge du logo : boutons, aplats */
	--jm-accent-dark: #B00A10;
	--jm-paper: #F4F2EE;
	--jm-font-title: 'Big Shoulders Display', 'Arial Narrow', sans-serif;
	--jm-font-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ------------------------------------------------------------------
   2. Base
------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body,
body.boxed-layout #outer-wrap,
#wrap { background-color: var(--jm-ink); }

body,
button, input, select, textarea {
	font-family: var(--jm-font-body);
	color: var(--jm-text);
	-webkit-font-smoothing: antialiased;
}

body p, body li { line-height: 1.7; }
a { color: var(--jm-accent); }
a:hover { color: #fff; }

h1, h2, h3, h4, h5, h6,
.page-header .page-header-title,
.entry-title {
	font-family: var(--jm-font-title);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	line-height: 1;
	color: var(--jm-text);
}
h1 { font-size: clamp(2.75rem, 6vw, 5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.25rem); }
h3 { font-size: clamp(1.5rem, 2.5vw, 1.9rem); font-weight: 700; }

/* Focus visible pour l'accessibilité clavier */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible {
	outline: 3px solid var(--jm-accent);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------
   3. En-tête et menu
------------------------------------------------------------------- */
#site-header,
#site-header.transparent-header,
#site-header.has-header-media { background-color: var(--jm-ink); border-bottom: 1px solid var(--jm-line); }

#site-navigation-wrap .dropdown-menu > li > a,
.oceanwp-mobile-menu-icon a {
	font-family: var(--jm-font-body);
	font-size: 15px;
	font-weight: 500;
	color: var(--jm-text);
	min-height: 44px;
}
#site-navigation-wrap .dropdown-menu > li > a:hover,
#site-navigation-wrap .dropdown-menu > .current-menu-item > a,
#site-navigation-wrap .dropdown-menu > .current-menu-ancestor > a {
	color: var(--jm-accent);
	font-weight: 700;
}
#site-navigation-wrap .dropdown-menu ul.sub-menu {
	background: var(--jm-surface);
	border: 1px solid var(--jm-line);
}
#site-navigation-wrap .dropdown-menu ul li a { color: var(--jm-text); }
#site-navigation-wrap .dropdown-menu ul li a:hover { background: var(--jm-surface-2); color: var(--jm-accent); }

/* Menu mobile */
#mobile-dropdown,
#sidr, .sidr {
	background: var(--jm-ink);
	border-top: 1px solid var(--jm-line);
}
#mobile-dropdown ul li a, .sidr ul li a {
	color: var(--jm-text);
	min-height: 48px;
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--jm-line);
}

/* Bouton d'action dans le menu : ajouter la classe CSS "menu-cta" à l'entrée Contact */
#site-navigation-wrap .dropdown-menu > li.menu-cta > a {
	background: var(--jm-red);
	color: #fff;
	font-weight: 700;
	padding: 0 20px;
	margin-left: 12px;
}
#site-navigation-wrap .dropdown-menu > li.menu-cta > a:hover { background: #fff; color: var(--jm-ink); }

/* ------------------------------------------------------------------
   4. Boutons (OceanWP + Elementor)
------------------------------------------------------------------- */
.button, .theme-button, input[type="submit"], button[type="submit"],
.elementor-button, .wp-block-button__link {
	font-family: var(--jm-font-body);
	font-weight: 700;
	font-size: 16px;
	letter-spacing: 0;
	text-transform: none;
	border-radius: 0;
	background-color: var(--jm-red);
	color: #fff;
	border: 0;
	min-height: 52px;
	padding: 14px 28px;
	transition: background-color .2s ease, color .2s ease;
}
.button:hover, .theme-button:hover, input[type="submit"]:hover, button[type="submit"]:hover,
.elementor-button:hover, .wp-block-button__link:hover {
	background-color: #fff;
	color: var(--jm-ink);
}
/* Variante contour : classe CSS "btn-outline" sur le bouton Elementor */
.btn-outline .elementor-button, .btn-outline.button {
	background: transparent;
	color: var(--jm-text);
	border: 1px solid #5A5D64;
}
.btn-outline .elementor-button:hover { background: var(--jm-text); color: var(--jm-ink); }

/* ------------------------------------------------------------------
   5. Contenu, formulaires, cartes
------------------------------------------------------------------- */
#main #content-wrap { padding-top: 0; padding-bottom: 0; }
.page-header { background: var(--jm-ink); border-bottom: 1px solid var(--jm-line); }

input[type="text"], input[type="email"], input[type="tel"], input[type="url"],
input[type="search"], input[type="number"], select, textarea,
.elementor-field-group .elementor-field {
	background: var(--jm-surface);
	border: 1px solid #3A3E45;
	border-radius: 0;
	color: var(--jm-text);
	min-height: 48px;
	font-size: 16px; /* évite le zoom auto sur iOS */
}
input::placeholder, textarea::placeholder { color: var(--jm-muted); }

img { height: auto; max-width: 100%; }

/* ------------------------------------------------------------------
   6. Pied de page
------------------------------------------------------------------- */
#footer-widgets, #footer-bottom, #footer { background: #0A0B0C; border-color: var(--jm-line); color: var(--jm-text); }
#footer-widgets .footer-box a, #footer-bottom a { color: var(--jm-text); }
#footer-widgets .footer-box a:hover, #footer-bottom a:hover { color: var(--jm-accent); }
#footer-widgets .widget-title {
	font-family: var(--jm-font-body);
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--jm-accent);
	border: 0;
}

/* ------------------------------------------------------------------
   7. Responsive
------------------------------------------------------------------- */
@media (max-width: 959px) {
	h1 { font-size: clamp(2.5rem, 9vw, 3.5rem); }
	.elementor-section .elementor-container { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 767px) {
	body { font-size: 16px; }
	.button, .elementor-button { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
}


/* ------------------------------------------------------------------
   8. Modèles Elementor natifs (classes jm-*)
   Principe : ce thème ne donne que des VALEURS PAR DÉFAUT (faible spécificité).
   Tout réglage fait dans le panneau Elementor (couleur du texte, police,
   taille, fond, marges...) l'emporte toujours sur ces styles.
------------------------------------------------------------------- */
body.elementor-page .page-header { display: none; }
body.elementor-page #content-wrap.container,
body.elementor-page #content-wrap { width: 100%; max-width: 100%; padding: 0; }
body.elementor-page #primary { width: 100%; padding: 0; float: none; }
body.elementor-page #left-sidebar, body.elementor-page #right-sidebar { display: none; }

/* Couleurs par défaut, changées automatiquement selon le fond (variables héritées) */
body.elementor-page, .jm-bg-dark {
	--jm-fg: #EDEAE4;      /* titres */
	--jm-body: #C9C7C0;    /* paragraphes */
	--jm-mut: #A3A39E;     /* texte discret */
	--jm-acc: #FF5A60;     /* accent (texte) */
	--jm-box: #16181B;     /* fond des cartes */
	--jm-box-bd: #2A2D33;  /* bordure des cartes */
}
.jm-bg-alt { background-color: var(--jm-surface-2); border-top: 1px solid var(--jm-line); border-bottom: 1px solid var(--jm-line); }
.jm-bg-alt.jm-noborder-b { border-bottom: 0; }
.jm-bg-alt.jm-noborder-t { border-top: 0; }
.jm-bg-light {
	background-color: var(--jm-paper);
	--jm-fg: #16181B; --jm-body: #3A3C40; --jm-mut: #5A5C60; --jm-acc: #B00A10; --jm-box: #FFFFFF; --jm-box-bd: #D9D5CB;
}
.jm-box-dark {
	--jm-fg: #EDEAE4; --jm-body: #C9C7C0; --jm-mut: #A3A39E; --jm-acc: #FF5A60; --jm-box: #16181B; --jm-box-bd: #16181B;
}

/* Titres */
.elementor-widget.jm-eyebrow .elementor-heading-title { font-family: var(--jm-font-body); font-size: 13px; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; line-height: 1.4; color: var(--jm-acc); }
.elementor-widget.jm-display .elementor-heading-title { font-size: clamp(2.5rem, 4.6vw, 4.5rem); line-height: .95; color: var(--jm-fg); }
.elementor-widget.jm-display-m .elementor-heading-title { font-size: clamp(2.25rem, 5vw, 4.25rem); }
.elementor-widget.jm-title .elementor-heading-title { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1; color: var(--jm-fg); }
.elementor-widget.jm-title-s .elementor-heading-title { font-size: clamp(1.6rem, 3vw, 2.25rem); }
.elementor-widget.jm-title-xl .elementor-heading-title { font-size: clamp(2.25rem, 5vw, 4rem); }
.elementor-widget.jm-box-title .elementor-heading-title { font-size: 1.6rem; line-height: 1.05; color: var(--jm-fg); }
.elementor-widget.jm-sub .elementor-heading-title { font-family: var(--jm-font-body); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--jm-acc); }
.elementor-widget.jm-stat-title .elementor-heading-title { font-size: 2.25rem; line-height: 1.05; color: var(--jm-acc); }
.elementor-widget.jm-tl-year .elementor-heading-title { font-size: 3rem; line-height: 1; color: var(--jm-acc); }
.elementor-widget.jm-eyebrow { margin-bottom: 14px; }
.elementor-widget.jm-display { margin-bottom: 22px; }
.elementor-widget.jm-title { margin-bottom: 16px; }
.elementor-widget.jm-nomargin { margin-bottom: 0; }
.elementor-widget.jm-box-title { margin-bottom: 4px; }
.elementor-widget.jm-sub { margin-bottom: 8px; }
.jm-h1-loc { display: block; margin-top: 12px; font-family: var(--jm-font-body); font-weight: 600; font-size: clamp(1rem, 2vw, 1.4rem); letter-spacing: .02em; text-transform: none; color: var(--jm-mut); }
.jm-accent { color: var(--jm-acc); }

/* Textes */
.elementor-widget-text-editor { color: var(--jm-body); line-height: 1.7; }
.elementor-widget.jm-lead { font-size: 18px; line-height: 1.7; margin-bottom: 24px; }
.elementor-widget.jm-lead .elementor-text-editor { max-width: 720px; }
.jm-center .elementor-widget.jm-lead .elementor-text-editor, .elementor-widget.jm-lead-c .elementor-text-editor { max-width: 720px; margin: 0 auto; }
.elementor-widget.jm-box-text { font-size: 15px; line-height: 1.65; }
.elementor-widget.jm-stat-text { font-size: 14px; color: var(--jm-mut); }
.elementor-widget.jm-note { font-size: 13px; color: var(--jm-mut); margin-top: 6px; }
.elementor-widget.jm-rating { font-size: 14px; color: var(--jm-mut); margin-top: 18px; }
.elementor-widget.jm-rating strong { font-size: 18px; font-weight: 800; margin-right: 6px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor strong { color: inherit; }
.jm-chips-w ul, ul.jm-chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0; padding: 0; }
.jm-chips-w li, ul.jm-chips li { margin: 0; padding: 12px 18px; border: 1px solid var(--jm-box-bd); background: var(--jm-box); font-size: 15px; font-weight: 600; color: var(--jm-fg); line-height: 1.4; }

/* Boutons (couleurs par défaut, modifiables dans Style > Bouton) */
.elementor-widget-button.jm-btn .elementor-button,
.elementor-widget-button.jm-btn-dark .elementor-button,
.elementor-widget-button.jm-btn-ghost .elementor-button { min-height: 52px; padding: 0 28px; display: inline-flex; align-items: center; }
.elementor-widget-button.jm-btn-ghost .elementor-button { background: transparent; color: var(--jm-fg); border: 1px solid #5A5D64; font-weight: 600; }
.elementor-widget-button.jm-btn-ghost .elementor-button:hover { background: #EDEAE4; color: #0E0F11; }
.elementor-widget-button.jm-btn-dark .elementor-button { background: #16181B; color: #F4F2EE; }
.elementor-widget-button.jm-btn-dark .elementor-button:hover { background: var(--jm-red); color: #fff; }
.elementor-widget-button.jm-link .elementor-button { background: transparent; color: var(--jm-acc); min-height: 44px; padding: 0; font-size: 15px; }
.elementor-widget-button.jm-link .elementor-button:hover { background: transparent; color: var(--jm-fg); }
.elementor-widget-button.btn-outline .elementor-button { min-height: 44px; padding: 0 18px; font-size: 14px; font-weight: 600; }
.elementor-widget-button[class*="jm-btn"], .elementor-widget-button.btn-outline { margin-right: 12px; margin-bottom: 10px; }
.elementor-widget-button.jm-link { margin-top: auto; margin-bottom: 0; }

/* Structure : colonnes, cartes, bandeaux */
.elementor-section.jm-cols > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-section.jm-cols > .elementor-container > .elementor-column > .elementor-column-wrap > .elementor-widget-wrap { padding: 0 24px; }
.elementor-section.jm-cols > .elementor-container > .elementor-column:first-child > .elementor-widget-wrap,
.elementor-section.jm-cols > .elementor-container > .elementor-column:first-child > .elementor-column-wrap > .elementor-widget-wrap { padding-left: 0; }
.elementor-section.jm-cols > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap,
.elementor-section.jm-cols > .elementor-container > .elementor-column:last-child > .elementor-column-wrap > .elementor-widget-wrap { padding-right: 0; }
.jm-right > .elementor-widget-wrap, .jm-right > .elementor-column-wrap > .elementor-widget-wrap { justify-content: flex-end; }
.jm-right .elementor-button-wrapper { text-align: right; }
.jm-center .elementor-widget-wrap { justify-content: center; text-align: center; }

.elementor-section.jm-cards > .elementor-container { align-items: stretch; }
.elementor-column.jm-box { padding: 10px; display: flex; }
.elementor-column.jm-box > .elementor-widget-wrap,
.elementor-column.jm-box > .elementor-column-wrap > .elementor-widget-wrap {
	background-color: var(--jm-box); border: 1px solid var(--jm-box-bd); padding: 28px; align-content: flex-start; width: 100%;
}
.elementor-column.jm-box > .elementor-column-wrap { display: flex; width: 100%; }
.elementor-column.jm-box > .elementor-widget-wrap > .elementor-widget:not(:last-child) { margin-bottom: 10px; }
.elementor-column.jm-box-dark > .elementor-widget-wrap { background-color: #16181B; border-color: #16181B; }

.elementor-section.jm-stats .elementor-column > .elementor-widget-wrap { padding: 8px 16px; }
.elementor-column.jm-tl { padding: 0 12px; }
.elementor-column.jm-tl > .elementor-widget-wrap { border-top: 2px solid var(--jm-acc); padding-top: 20px; }

/* Images */
.elementor-widget.jm-frame .elementor-widget-container { aspect-ratio: 4 / 5; max-height: 640px; overflow: hidden; background: var(--jm-box); border: 1px solid var(--jm-box-bd); }
.elementor-widget.jm-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.elementor-widget.jm-frame-34 .elementor-widget-container { aspect-ratio: 3 / 4; max-height: 560px; }
.elementor-widget.jm-frame-sq .elementor-widget-container { aspect-ratio: 1 / 1; max-height: 520px; }
.elementor-widget.jm-frame-hero .elementor-widget-container { aspect-ratio: 4 / 3; max-height: 560px; }
.elementor-widget.jm-frame-hero img { object-position: 18% 88%; }

/* Listes à puces (icon-list) */
.jm-checks .elementor-icon-list-items { display: flex; flex-direction: column; gap: 8px; }
.jm-checks .elementor-icon-list-item { align-items: flex-start; }
.jm-checks .elementor-icon-list-icon { padding-top: .55em; }
.jm-checks .elementor-icon-list-icon i { color: var(--jm-red); font-size: 8px; }
.jm-checks .elementor-icon-list-icon svg { fill: var(--jm-red); width: 8px; }
.jm-checks .elementor-icon-list-text { font-size: 14px; line-height: 1.55; color: var(--jm-body); padding-left: 10px; }
.jm-contact-list .elementor-icon-list-icon i { color: var(--jm-acc); }
.jm-contact-list .elementor-icon-list-text { color: var(--jm-fg); font-size: 16px; padding-left: 12px; }
.jm-contact-list .elementor-icon-list-item { margin-bottom: 10px; }

/* Liste de prix */
.elementor-widget-price-list .elementor-price-list-item { padding: 10px 0; border-bottom: 1px solid var(--jm-box-bd); margin: 0; }
.elementor-widget-price-list .elementor-price-list-title { font-family: var(--jm-font-body); font-weight: 600; font-size: 15px; color: var(--jm-body); }
.elementor-widget-price-list .elementor-price-list-price { font-family: var(--jm-font-title); font-weight: 800; font-size: 1.7rem; line-height: 1; color: var(--jm-acc); white-space: nowrap; }
.elementor-widget-price-list .elementor-price-list-separator { border-bottom: 1px dotted var(--jm-box-bd); }
.elementor-widget-price-list .elementor-price-list-description { font-size: 13px; color: var(--jm-mut); }

/* Compteurs et barres de compétence */
.elementor-widget-counter.jm-stat .elementor-counter-number-wrapper { font-family: var(--jm-font-title); font-weight: 800; font-size: 3.5rem; line-height: 1; color: var(--jm-acc); }
.elementor-widget-counter.jm-stat .elementor-counter-title { font-size: 14px; color: var(--jm-mut); }
.elementor-widget-progress.jm-skill { margin-bottom: 6px; }
.elementor-widget-progress.jm-skill .elementor-title { font-size: 14px; font-weight: 700; color: var(--jm-fg); }
.elementor-widget-progress.jm-skill .elementor-progress-wrapper { background-color: var(--jm-line); border-radius: 0; height: 8px; }
.elementor-widget-progress.jm-skill .elementor-progress-bar { background-color: var(--jm-red); height: 8px; }
.elementor-widget-progress.jm-skill .elementor-progress-percentage { display: none; }

/* Galerie (image-gallery d'Elementor) */
.elementor-widget.jm-glr .gallery { display: grid; gap: 12px; }
.elementor-widget.jm-glr .gallery-columns-2 { grid-template-columns: repeat(2, 1fr); }
.elementor-widget.jm-glr .gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.elementor-widget.jm-glr .gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.elementor-widget.jm-glr .gallery-columns-5 { grid-template-columns: repeat(5, 1fr); }
.elementor-widget.jm-glr .gallery-columns-6 { grid-template-columns: repeat(6, 1fr); }
.elementor-widget.jm-glr .gallery .gallery-item { max-width: none; width: auto; margin: 0; padding: 0; float: none; }
.elementor-widget.jm-glr .gallery-icon a { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--jm-box); border: 1px solid var(--jm-box-bd); }
.elementor-widget.jm-glr .gallery-icon img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.elementor-widget.jm-glr .gallery-icon a:hover img { transform: scale(1.04); }
.elementor-widget.jm-glr-wide .gallery-icon a { aspect-ratio: 5 / 2; }

/* Réseaux sociaux, carte, shortcodes */
.jm-social .elementor-social-icon { background-color: var(--jm-box); border: 1px solid var(--jm-box-bd); color: var(--jm-fg); }
.jm-social .elementor-social-icon:hover { background-color: var(--jm-red); }
.elementor-widget-shortcode, .elementor-widget-google_maps { margin-bottom: 0; }
.elementor-widget.jm-map { margin-top: 18px; }

/* Formulaire Contact Form 7 */
.wpcf7 form p { margin: 0 0 18px; }
.wpcf7 label { display: block; font-size: 14px; font-weight: 700; color: var(--jm-fg); margin-bottom: 8px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea { width: 100%; padding: 12px 14px; }
.wpcf7 .wpcf7-list-item { display: inline-flex; align-items: center; gap: 8px; margin: 0 20px 8px 0; font-size: 15px; }
.wpcf7 .wpcf7-list-item label { margin: 0; font-weight: 500; display: inline-flex; align-items: center; gap: 8px; }
.wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"] { width: 22px; height: 22px; accent-color: var(--jm-red); }
.wpcf7 .wpcf7-submit { cursor: pointer; }
.wpcf7-not-valid-tip { color: #FF8A8F; font-size: 13px; }
.wpcf7 form .wpcf7-response-output { border-color: var(--jm-accent); color: var(--jm-text); margin: 16px 0 0; }

/* Tablette et mobile */
@media (max-width: 1024px) {
	.elementor-widget.jm-glr .gallery-columns-4, .elementor-widget.jm-glr .gallery-columns-5, .elementor-widget.jm-glr .gallery-columns-6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
	.elementor-section.jm-cols > .elementor-container > .elementor-column > .elementor-widget-wrap,
	.elementor-section.jm-cols > .elementor-container > .elementor-column > .elementor-column-wrap > .elementor-widget-wrap { padding: 0; }
	.elementor-section.jm-cols > .elementor-container > .elementor-column:not(:last-child) { margin-bottom: 28px; }
	.elementor-section.jm-stats .elementor-column > .elementor-widget-wrap { padding: 8px 0; }
	.jm-right > .elementor-widget-wrap, .jm-right > .elementor-column-wrap > .elementor-widget-wrap { justify-content: flex-start; }
	.jm-right .elementor-button-wrapper { text-align: left; }
	.elementor-column.jm-box { padding: 6px 0; }
	.elementor-column.jm-box > .elementor-widget-wrap { padding: 22px; }
	.elementor-widget.jm-display .elementor-heading-title, .elementor-widget.jm-display-m .elementor-heading-title { font-size: clamp(1.9rem, 8.6vw, 2.75rem); }
	.elementor-column.jm-tl { padding: 0; }
	.elementor-widget.jm-glr .gallery-columns-3, .elementor-widget.jm-glr .gallery-columns-4, .elementor-widget.jm-glr .gallery-columns-5, .elementor-widget.jm-glr .gallery-columns-6 { grid-template-columns: repeat(2, 1fr); }
	.elementor-widget.jm-glr-wide .gallery { grid-template-columns: 1fr; }
	.elementor-widget-button[class*="jm-btn"], .elementor-widget-button.btn-outline { margin-right: 0; width: 100%; }
}
.elementor-widget-heading .elementor-heading-title { overflow-wrap: normal; word-break: normal; hyphens: none; }
body.elementor-page { overflow-x: clip; }
