/*
Theme Name: Tapas Garden
Theme URI: https://tapasgardensamui.com
Author: Votre Nom
Author URI: https://example.com
Description: ThÃƒÂ¨me personnalisÃƒÂ© pour le restaurant Tapas Garden (hÃƒÂ©ros, menu, galerie, tÃƒÂ©moignages, FAQ, contact) administrable.
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tapas-garden
*/

/* Reset et base Tailwind CSS (simplifiÃƒÂ©) */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  font-family: Inter, system-ui, sans-serif;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  line-height: inherit;
  font-feature-settings: "rlig" 1, "calt" 1;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

a {
  color: inherit;
  text-decoration: inherit;
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

button {
  cursor: pointer;
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
  background-color: transparent;
  border: 0;
}

/* Variables CSS */
:root {
  --primary-50: #fef2f2;
  --primary-100: #fee2e2;
  --primary-200: #fecaca;
  --primary-300: #fca5a5;
  --primary-400: #f87171;
  --primary-500: #ef4444;
  --primary-600: #dc2626;
  --primary-700: #b91c1c;
  --primary-800: #991b1b;
  --primary-900: #7f1d1d;
  
  --secondary-50: #fffbeb;
  --secondary-100: #fef3c7;
  --secondary-200: #fde68a;
  --secondary-300: #fcd34d;
  --secondary-400: #fbbf24;
  --secondary-500: #f59e0b;
  --secondary-600: #d97706;
  --secondary-700: #b45309;
  --secondary-800: #92400e;
  --secondary-900: #78350f;
  
  --accent-50: #f0fdf4;
  --accent-100: #dcfce7;
  --accent-200: #bbf7d0;
  --accent-300: #86efac;
  --accent-400: #4ade80;
  --accent-500: #22c55e;
  --accent-600: #16a34a;
  --accent-700: #15803d;
  --accent-800: #166534;
  --accent-900: #14532d;
  
  --gray-50: #f9fafb;
  --gray-100: #f3f4f6;
  --gray-200: #e5e7eb;
  --gray-300: #d1d5db;
  --gray-400: #9ca3af;
  --gray-500: #6b7280;
  --gray-600: #4b5563;
  --gray-700: #374151;
  --gray-800: #1f2937;
  --gray-900: #111827;
  
  --radius: 0.5rem;
}

/* Utilitaires de base */
.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  max-width: 80rem;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* Layout */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.inset-0 { inset: 0; }
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-20 { z-index: 20; }
.z-50 { z-index: 50; }

/* Flexbox */
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.block { display: block; }
.inline-block { display: inline-block; }
.hidden { display: none; }

.flex-col { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

/* Grid */
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Sizing */
.w-full { width: 100%; }
.w-auto { width: auto; }
.h-full { height: 100%; }
.h-auto { height: auto; }
.min-h-screen { min-height: 100vh; }
.min-h-\[400px\] { min-height: 400px; }
.h-\[400px\] { height: 400px; }
.h-\[500px\] { height: 500px; }

.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-7xl { max-width: 80rem; }

/* Spacing */
.m-0 { margin: 0; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-16 { margin-bottom: 4rem; }
.mt-4 { margin-top: 1rem; }
.mt-8 { margin-top: 2rem; }
.mt-12 { margin-top: 3rem; }

.p-2 { padding: 0.5rem; }
.p-4 { padding: 1rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }

.gap-2 { gap: 0.5rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }
.gap-12 { gap: 3rem; }

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  margin-right: 0;
  margin-left: 0.5rem;
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
  margin-bottom: 0;
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
  margin-bottom: 0;
}

/* Horizontal spacing utilities */
.space-x-4 > :not([hidden]) ~ :not([hidden]) {
  margin-left: 1rem;
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1.5rem;
  margin-bottom: 0;
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 2rem;
  margin-bottom: 0;
}

/* Typography */
.font-display { font-family: Poppins, system-ui, sans-serif; }
.font-sans { font-family: Inter, system-ui, sans-serif; }

.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-5xl { font-size: 3rem; line-height: 1; }

@media (min-width: 640px) {
  .sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
  .sm\:text-base { font-size: 1rem; line-height: 1.5rem; }
  .sm\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
  .sm\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .sm\:text-5xl { font-size: 3rem; line-height: 1; }
}

@media (min-width: 768px) {
  .md\:text-2xl { font-size: 1.5rem; line-height: 2rem; }
  .md\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
  .md\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .md\:text-5xl { font-size: 3rem; line-height: 1; }
  .md\:text-7xl { font-size: 4.5rem; line-height: 1; }
}

@media (min-width: 1024px) {
  .lg\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
  .lg\:text-6xl { font-size: 3.75rem; line-height: 1; }
  .lg\:text-8xl { font-size: 6rem; line-height: 1; }
}

.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

.leading-tight { line-height: 1.25; }
.leading-relaxed { line-height: 1.625; }

.text-left { text-align: left; }
.text-center { text-align: center; }

.italic { font-style: italic; }

/* Colors */
.text-white { color: rgb(255 255 255); }
.text-black { color: rgb(0 0 0); }
.text-gray-200 { color: var(--gray-200); }
.text-gray-300 { color: var(--gray-300); }
.text-gray-400 { color: var(--gray-400); }
.text-gray-500 { color: var(--gray-500); }
.text-gray-600 { color: var(--gray-600); }
.text-gray-700 { color: var(--gray-700); }
.text-gray-800 { color: var(--gray-800); }
.text-gray-900 { color: var(--gray-900); }

.text-primary-300 { color: var(--primary-300); }
.text-primary-500 { color: var(--primary-500); }
.text-primary-600 { color: var(--primary-600); }

.text-yellow-400 { color: rgb(250 204 21); }

.text-white\/70 { color: rgba(255, 255, 255, 0.7); }
.text-white\/80 { color: rgba(255, 255, 255, 0.8); }

/* Backgrounds */
.bg-white { background-color: rgb(255 255 255); }
.bg-black { background-color: rgb(0 0 0); }
.bg-gray-50 { background-color: var(--gray-50); }
.bg-gray-100 { background-color: var(--gray-100); }
.bg-gray-200 { background-color: var(--gray-200); }
.bg-gray-800 { background-color: var(--gray-800); }
.bg-gray-900 { background-color: var(--gray-900); }

.bg-primary-100 { background-color: var(--primary-100); }
.bg-primary-500 { background-color: var(--primary-500); }
.bg-primary-600 { background-color: var(--primary-600); }

.bg-transparent { background-color: transparent; }
.bg-black\/30 { background-color: rgba(0, 0, 0, 0.3); }
.bg-white\/5 { background-color: rgba(255, 255, 255, 0.05); }
.bg-white\/10 { background-color: rgba(255, 255, 255, 0.1); }
.bg-white\/20 { background-color: rgba(255, 255, 255, 0.2); }
.bg-white\/80 { background-color: rgba(255, 255, 255, 0.8); }

/* Gradients */
.bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }

.from-amber-50 { --tw-gradient-from: #fffbeb; --tw-gradient-to: rgba(255, 251, 235, 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-black\/40 { --tw-gradient-from: rgba(0, 0, 0, 0.4); --tw-gradient-to: rgba(0, 0, 0, 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-primary-900\/20 { --tw-gradient-from: rgba(127, 29, 29, 0.2); --tw-gradient-to: rgba(127, 29, 29, 0); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }

.via-transparent { --tw-gradient-to: transparent; --tw-gradient-stops: var(--tw-gradient-from), transparent, var(--tw-gradient-to); }

.to-black\/20 { --tw-gradient-to: rgba(0, 0, 0, 0.2); }
.to-secondary-900\/20 { --tw-gradient-to: rgba(120, 53, 15, 0.2); }
.to-white { --tw-gradient-to: #fff; }

.bg-cover { background-size: cover; }
.bg-center { background-position: center; }
.bg-no-repeat { background-repeat: no-repeat; }

/* Borders */
.border { border-width: 1px; }
.border-2 { border-width: 2px; }
.border-white\/10 { border-color: rgba(255, 255, 255, 0.1); }
.border-white\/20 { border-color: rgba(255, 255, 255, 0.2); }
.border-white\/30 { border-color: rgba(255, 255, 255, 0.3); }
.border-transparent { border-color: transparent; }

.rounded { border-radius: 0.25rem; }
.rounded-md { border-radius: calc(var(--radius) - 2px); }
.rounded-lg { border-radius: var(--radius); }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }

/* Shadows */
.shadow-md { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); }
.shadow-lg { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); }
.shadow-xl { box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }

/* Effects */
.backdrop-blur-xl { backdrop-filter: blur(24px); }
.overflow-hidden { overflow: hidden; }
.cursor-pointer { cursor: pointer; }

.scale-110 { transform: scale(1.1); }

.transform { transform: translatevar(--tw-translate-x, var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

/* Transitions */
.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }

.duration-300 { transition-duration: 300ms; }

/* Hover states */

/* Reveal on scroll: elements start hidden (opacity 0, translateY 10px) and
   transition to visible (opacity 1, translateY 0) in 200ms when .is-revealed is added. */
.reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 800ms ease, transform 800ms ease;
  will-change: opacity, transform;
}
.reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    transition: none !important;
    transform: none !important;
  }
}
.hover\:bg-primary-600:hover { background-color: var(--primary-600); }
.hover\:bg-white\/10:hover { background-color: rgba(255, 255, 255, 0.1); }
.hover\:bg-white\/20:hover { background-color: rgba(255, 255, 255, 0.2); }
.hover\:text-white:hover { color: rgb(255 255 255); }
.hover\:shadow-2xl:hover { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }

/* FAQ specific styles to match original visuals: rounded blocks, red circular icons, gradient underline, hover surround and corner circles */
.faq-card {
  position: relative;
  background: linear-gradient(135deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 100%);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.25);
  box-shadow: 0 18px 40px -12px rgba(0,0,0,0.18);
  border-radius: 1.5rem; /* more rounded */
  overflow: hidden;
}
.faq-card .faq-corner {
  position: absolute;
  width: 4.5rem;
  height: 4.5rem;
  pointer-events: none;
  opacity: 0.25;
}
.faq-card .faq-corner.top-left {
  top: 0;
  left: 0;
  background: radial-gradient(circle at 30% 30%, rgba(239,68,68,0.12), rgba(239,68,68,0) 40%);
  border-bottom-right-radius: 9999px;
}
.faq-card .faq-corner.bottom-right {
  bottom: 0;
  right: 0;
  background: radial-gradient(circle at 70% 70%, rgba(239,68,68,0.12), rgba(239,68,68,0) 40%);
  border-top-left-radius: 9999px;
}
.faq-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 9999px;
  background: linear-gradient(135deg, var(--primary-500), var(--primary-600));
  color: white;
  box-shadow: 0 8px 18px rgba(0,0,0,0.12);
}
.faq-toggle {
  border-radius: 1rem; /* rounded on hover area */
  transition: border-color 180ms ease, background-color 180ms ease;
  border: 1px solid transparent;
}
.faq-toggle:hover {
  box-shadow: none; /* no shadow on hover */
  background-color: rgba(255,255,255,0.6);
  border-color: rgba(239,68,68,0.12); /* thin translucent red outline */
}
.faq-toggle:focus {
  outline: none;
  border-color: rgba(239,68,68,0.18);
}
.faq-underline {
  height: 2px;
  width: 4rem;
  background: var(--primary-500); /* solid red for category headings */
  display: block;
  margin: 0.75rem auto 0;
  border-radius: 99px;
}
.faq-question-underline {
  height: 1px;
  background: linear-gradient(90deg, var(--primary-500) 0%, rgba(255,255,255,0.9) 70%, rgba(255,255,255,0) 100%);
  border-radius: 99px;
}
.faq-content .rounded-2xl { border-radius: 1rem; }

/* Smooth accordion transitions fallback */
.faq-content { transition: height 320ms ease, opacity 260ms ease; }

/* FAQ specific styles (section #faq) - align with original design */
#faq {
  --faq-accent: var(--primary-500);
  padding-top: 3rem;
  padding-bottom: 3rem;
}

#faq .backdrop-blur-xl {
  background: linear-gradient(135deg, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0.9) 100%);
  border: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 22px 48px -16px rgba(31,41,55,0.18);
  border-radius: 1.5rem; /* more rounded corners */
}

/* Icon badge: solid red background to match original */
#faq .inline-flex.w-16.h-16 {
  width: 4rem; height: 4rem;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--primary-500); /* solid red */
  color: #fff; border-radius: 1rem; /* slightly less than full to keep pill feel */
  box-shadow: 0 10px 28px -10px rgba(239,68,68,0.28);
}

#faq h3.font-sans { text-transform: uppercase; letter-spacing: 0.06em; }

#faq .faq-toggle {
  display: block;
  width: 100%;
  text-align: left;
  padding: 1rem 0.5rem;
  background: transparent;
  border-radius: 0.75rem;
}

#faq .faq-toggle:hover { background: transparent; border-color: rgba(239,68,68,0.12); box-shadow: none; }

#faq .faq-toggle h4 { margin: 0; font-weight: 600; color: var(--gray-900); }
#faq .faq-toggle .faq-toggle-icon { transition: transform .25s ease, color .2s ease; color: var(--faq-accent); }
#faq .faq-toggle[aria-expanded="true"] .faq-toggle-icon { transform: rotate(180deg); }

#faq .faq-content {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: height .35s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
}

#faq .faq-content.open,
#faq .faq-content[style*="height:"] {
  opacity: 1;
}

#faq .faq-content .relative.bg-gradient-to-r {
  background: linear-gradient(90deg, rgba(255,255,255,0.95), rgba(255,255,255,0.9));
  border-radius: 0.75rem;
}

/* Small visual tweaks for list fallback */
#faq .faq-item { border-radius: 0.75rem; overflow: hidden; }
#faq .faq-item .p-6 { padding: 1.25rem; }

/* Ensure icons and badges match sizing on mobile */
@media (max-width: 768px) {
  #faq .inline-flex.w-16.h-16 { width: 3.5rem; height: 3.5rem; }
}

/* Minor accessibility: focus styles for keyboard users */
#faq .faq-toggle:focus { outline: 3px solid rgba(239,68,68,0.12); outline-offset: 3px; }

/* Responsive utilities */
@media (min-width: 640px) {
  .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
  .sm\:py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
  .sm\:py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
  .sm\:px-12 { padding-left: 3rem; padding-right: 3rem; }
  .sm\:mb-8 { margin-bottom: 2rem; }
  .sm\:mb-12 { margin-bottom: 3rem; }
  .sm\:mb-16 { margin-bottom: 4rem; }
  .sm\:flex-row { flex-direction: row; }
  .sm\:gap-4 { gap: 1rem; }
  .sm\:gap-6 { gap: 1.5rem; }
  .sm\:w-auto { width: auto; }
}

@media (min-width: 768px) {
  .md\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
  .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
}

@media (min-width: 1024px) {
  .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; }
}

/* Classes utilitaires spÃƒÂ©cifiques */
.section-padding {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

@media (min-width: 1024px) {
  .section-padding {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
}

.btn-primary {
  border-radius: var(--radius);
  background-color: var(--primary-500);
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  color: rgb(255 255 255);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.btn-primary:hover {
  transform: scale(1.05);
  background-color: var(--primary-600);
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.prose {
  max-width: none;
}

.prose p {
  margin-bottom: 1rem;
}

/* Corrections WordPress */
.wp-block-columns {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.wp-block-column {
  flex: 1;
  min-width: 0;
}

.wp-block-group {
  margin-bottom: 1.5rem;
}

.wp-block-image {
  margin-bottom: 1rem;
}

.wp-block-image img {
  width: 100%;
  height: auto;
}

.is-layout-flex {
  display: flex;
  flex-wrap: wrap;
}

.size-large {
  max-width: 100%;
  height: auto;
}

/* Quelques classes manquantes couramment utilisÃƒÂ©es */
.whitespace-nowrap { white-space: nowrap; }
.object-cover { object-fit: cover; }
.fill-current { fill: currentColor; }

/* Word-break utility used for long emails/addresses in contact block */
.break-all { word-break: break-all; }

/* Hover variant to match other hover:text-primary-* utilities */
.hover\:text-primary-600:hover { color: var(--primary-600); }

/* Utilitaires pour les patterns */
.tg-price {
  font-weight: 600;
  color: var(--primary-600);
}

/* === Utilitaires additionnels ajoutÃƒÂ©s pour les shortcodes === */
/* Hauteurs fixes */
.h-48 { height: 12rem; }
.h-12 { height: 3rem; }
.w-12 { width: 3rem; }
.w-5 { width: 1.25rem; }
.h-5 { height: 1.25rem; }
.w-6 { width: 1.5rem; }
.h-6 { height: 1.5rem; }

/* Texte */
.uppercase { text-transform: uppercase; }
.tracking-wide { letter-spacing: 0.05em; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mt-3 { margin-top: 0.75rem; }
.mr-3 { margin-right: 0.75rem; }
.pr-4 { padding-right: 1rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }

/* Couleurs supplÃƒÂ©mentaires */
.text-gray-600 { color: var(--gray-600); }
.text-gray-700 { color: var(--gray-700); }
.text-gray-900 { color: var(--gray-900); }
.bg-primary-100 { background-color: var(--primary-100); }
.text-primary-600 { color: var(--primary-600); }

/* Layout helpers */
.overflow-hidden { overflow: hidden; }
.aspect-square { aspect-ratio: 1 / 1; }
.object-cover { object-fit: cover; }
.inline-block { display: inline-block; }

/* Group hover (simplifiÃƒÂ©) */
.group { position: relative; }
.group:hover .group-hover\:scale-110 { transform: scale(1.10); }
.group:hover .group-hover\:translate-y-0 { transform: translateY(0); }
.group-hover\:scale-110 { transition: transform 0.5s; }
.group-hover\:translate-y-0 { transition: transform 0.3s; transform: translateY(100%); }
.hover\:scale-105:hover { transform: scale(1.05); }
.translate-y-full { transform: translateY(100%); }

/* OpacitÃƒÂ©s overlay */
.bg-opacity-0 { background-color: rgba(0,0,0,0); }
.group:hover .group-hover\:bg-opacity-60 { background-color: rgba(0,0,0,0.6); }

/* Durations & easing */
.duration-200 { transition-duration: 200ms; }
.duration-500 { transition-duration: 500ms; }
.ease-in-out { transition-timing-function: cubic-bezier(0.4,0,0.2,1); }

/* Timing dÃƒÂ©jÃƒÂ  prÃƒÂ©sent mais on ajoute composeurs manquants */
.transition-shadow { transition: box-shadow 0.3s ease; }

/* Hover couleurs */
.hover\:text-primary-500:hover { color: var(--primary-500); }

/* Hover shadows supplÃƒÂ©mentaires */
.hover\:shadow-lg:hover { box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1); }
.hover\:shadow-xl:hover { box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1); }

/* Hidden utility (dÃƒÂ©jÃƒÂ  plus haut mais on renforce) */
.hidden { display: none !important; }

/* Boutons onglets menu */
.menu-tab { cursor: pointer; }
.menu-tab.bg-primary-500 { color: #fff; }

/* Transition commune */
.transition-transform { transition: transform 0.3s ease; }

/* FAQ */
.faq-content { overflow: hidden; }

/* Max heights */
.max-h-0 { max-height: 0; }

/* Correctif transform neutre */

/* Overlay galerie amÃƒÂ©liorÃƒÂ© */
.overlay-panel { background: rgba(0,0,0,0); transition: background .4s ease; }
.group:hover .overlay-panel { background: rgba(0,0,0,0.55); }
.overlay-panel .translate-y-full { transform: translateY(100%); }
.group:hover .overlay-panel .translate-y-full { transform: translateY(0); }

/* Slider galerie */
.tg-gallery-slider .tg-slide { position: absolute; top:0; left:0; width:100%; height:100%; }
.tg-gallery-slider .tg-slide img { display:block; }
.tg-gallery-slider .tg-progress { transition: width .2s linear; }

/* Boutons de navigation du slider */
.tg-gallery-slider .tg-prev,
.tg-gallery-slider .tg-next,
.tg-gallery-slider .tg-toggle {
    position: absolute !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: rgba(255, 255, 255, 0.2) !important;
    backdrop-filter: blur(4px) !important;
    color: white !important;
    border: none !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    transition: background-color 0.3s ease, transform 0.3s ease !important;
    z-index: 20 !important;
}

/* Dimensions exactes de l'original */
.tg-gallery-slider .tg-prev,
.tg-gallery-slider .tg-next {
    width: 3rem !important; /* w-12 = 48px = 3rem */
    height: 3rem !important; /* h-12 = 48px = 3rem */
}

.tg-gallery-slider .tg-toggle {
    width: 2.5rem !important; /* w-10 = 40px = 2.5rem */
    height: 2.5rem !important; /* h-10 = 40px = 2.5rem */
}

/* Positionnement exact */
.tg-gallery-slider .tg-prev {
    left: 1rem !important; /* left-4 = 16px = 1rem */
    top: 50% !important;
    transform: translateY(-50%) !important;
}

.tg-gallery-slider .tg-next {
    right: 1rem !important; /* right-4 = 16px = 1rem */
    top: 50% !important;
    transform: translateY(-50%) !important;
}

.tg-gallery-slider .tg-toggle {
    top: 1rem !important; /* top-4 = 16px = 1rem */
    right: 1rem !important; /* right-4 = 16px = 1rem */
}

/* Hover effects - SANS dÃƒÂ©placement */
.tg-gallery-slider .tg-prev:hover,
.tg-gallery-slider .tg-next:hover {
    background-color: rgba(255, 255, 255, 0.3) !important;
    transform: translateY(-50%) scale(1.1) !important; /* Garde translateY + scale */
}

.tg-gallery-slider .tg-toggle:hover {
    background-color: rgba(255, 255, 255, 0.3) !important;
    transform: scale(1.1) !important; /* Juste scale, pas de translateY */
}

/* Tailles des icÃƒÂ´nes SVG - exactes de l'original */
.tg-gallery-slider .tg-prev svg,
.tg-gallery-slider .tg-next svg {
    width: 1.5rem !important; /* w-6 = 24px = 1.5rem */
    height: 1.5rem !important; /* h-6 = 24px = 1.5rem */
}

.tg-gallery-slider .tg-toggle svg {
    width: 1.25rem !important; /* w-5 = 20px = 1.25rem */
    height: 1.25rem !important; /* h-5 = 20px = 1.25rem */
}

/* Force la taille des icÃƒÂ´nes pause ET play */
.tg-gallery-slider button.tg-toggle svg {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
}

/* Effet de glissement pour les slides - NE PAS forcer les positions avec !important */
.tg-gallery-slider .tg-slide {
    transition: transform 0.7s ease-in-out, opacity 0.7s ease-in-out;
    /* Laisser le JavaScript contrÃƒÂ´ler transform et opacity */
}

/* Masquer COMPLÃƒË†TEMENT les captions dans le slider */
.tg-gallery-slider .tg-slide .absolute.bottom-0 {
    display: none !important;
}

/* S'assurer que les captions ne s'affichent jamais */
.tg-gallery-slider .bg-black\/40 {
    display: none !important;
}

/* Dots/pastilles du slider - dimensions exactes de l'original */
.tg-gallery-slider .tg-dot {
    width: 0.75rem !important; /* w-3 = 12px = 0.75rem */
    height: 0.75rem !important; /* h-3 = 12px = 0.75rem */
    border-radius: 50% !important;
    border: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    background-color: #d1d5db !important; /* bg-gray-300 */
}

.tg-gallery-slider .tg-dot:hover {
    background-color: #9ca3af !important; /* hover:bg-gray-400 */
}

.tg-gallery-slider .tg-dot.bg-primary-500 {
    background-color: #ef4444 !important; /* bg-primary-500 (rouge) */
    transform: scale(1.25) !important; /* scale-125 */
}

.tg-gallery-slider .tg-dot.scale-125 {
    transform: scale(1.25) !important;
}

/* Container des dots - espacement exact de l'original */
.tg-gallery-slider .flex.justify-center {
    margin-top: 1.5rem !important; /* mt-6 = 24px = 1.5rem */
    gap: 0.5rem !important; /* gap-2 = 8px = 0.5rem */
    padding-left: 1rem !important; /* px-4 = 16px left */
    padding-right: 1rem !important; /* px-4 = 16px right */
}

/* Container de la barre de progression */
.tg-gallery-slider .mt-4.w-full.bg-gray-200 {
    margin-top: 1rem !important; /* mt-4 = 16px = 1rem */
    width: 100% !important;
    background-color: #e5e7eb !important; /* bg-gray-200 */
    border-radius: 9999px !important; /* rounded-full */
    height: 0.25rem !important; /* h-1 = 4px = 0.25rem */
    overflow: hidden !important;
}

/* Barre de progression interne - style exact */
.tg-gallery-slider .tg-progress {
    background-color: #ef4444 !important; /* bg-primary-500 rouge */
    height: 100% !important;
    transition: width 0.2s linear !important;
    border-radius: inherit !important;
}

/* Force avec sÃƒÂ©lecteur encore plus spÃƒÂ©cifique */
.tg-gallery-slider div.tg-progress.h-full.bg-primary-500 {
    background-color: #ef4444 !important;
    height: 0.25rem !important;
    /* width est contrÃƒÂ´lÃƒÂ©e par JavaScript - ne pas forcer ! */
}



/* Marquee tÃƒÂ©moignages */
.tg-marquee-wrapper { overflow: hidden; width: 100%; position: relative; }
.tg-marquee-track { display: flex; gap: 2rem; animation: tg-marquee linear infinite; width: fit-content; }
.tg-testimonial-card {flex: 0 0 280px;max-width: 280px;background: #fff;border-radius: 0.75rem;padding: 1.25rem;/* box-shadow: 0 4px 10px -2px rgba(0,0,0,.08); */border:1px solid rgba(0,0,0,0.05);}
@media (min-width: 640px){ .tg-testimonial-card { flex-basis: 320px; max-width:320px; } }
@keyframes tg-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.tg-marquee-wrapper[data-speed="60"] .tg-marquee-track { animation-duration: 30s; }
.tg-marquee-wrapper[data-speed="40"] .tg-marquee-track { animation-duration: 30s; }
.tg-marquee-wrapper[data-speed="80"] .tg-marquee-track { animation-duration: 30s; }

/* Pause au survol */

/* Fades latÃƒÂ©raux */
.tg-marquee-wrapper:before,
.tg-marquee-wrapper:after {
  content:"";
  position:absolute;
  top:0;bottom:0;
  width:80px;
  pointer-events:none;
  z-index:10;
}
.tg-marquee-wrapper:before { left:0; background:linear-gradient(90deg,#f9fafb, rgba(249, 250, 251, 0)); }
.tg-marquee-wrapper:after {right:0;background: linear-gradient(-90deg, #f9fafb, rgba(249, 250, 251, 0));}

/* Menu sections alternÃƒÂ©es */
.tg-menu-sections .tg-menu-block { opacity:0; transform: translateY(20px); transition: all .6s ease; }
.tg-menu-sections .tg-menu-block:nth-child(odd) { transition-delay:.1s; }
.tg-menu-sections .tg-menu-block:nth-child(even) { transition-delay:.2s; }
/* Lightbox placeholder si non prÃƒÂ©sent */
a[data-lightbox="gallery"] { text-decoration: none; }

/* === ParitÃƒÂ© typographique / ÃƒÂ©lÃƒÂ©ments de section === */
.heading-section {
  font-family: Poppins, system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.15;
  font-size: 2rem; /* ~text-3xl */
  color: var(--gray-900);
  margin: 0 0 1.25rem 0;
  position: relative;
}
@media (min-width:640px){ .heading-section { font-size:2.25rem; } }
@media (min-width:1024px){ .heading-section { font-size:2.75rem; } }
.heading-section .highlight { color: var(--primary-600); }

.heading-underline {
  position: relative;
  padding-bottom: 1.5rem;
  margin-bottom: 2.5rem;
}
.heading-underline:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 3.5rem;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg,var(--primary-500),var(--primary-300));
}

.text-body {
  color: var(--gray-600);
  line-height: 1.7;
  font-size: 1rem;
}
@media (min-width:768px){ .text-body { font-size:1.0625rem; } }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.75rem;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-transform: uppercase;
  background: var(--primary-100);
  color: var(--primary-600);
  border-radius: 9999px;
  line-height: 1;
  white-space: nowrap;
}
.badge-outline {
  background: rgba(255,255,255,0.08);
  color: #fff;
  backdrop-filter: blur(10px);
  border:1px solid rgba(255,255,255,0.25);
}
.badge-soft-secondary {
  background: var(--secondary-100);
  color: var(--secondary-700);
}

.bg-cream { background-color: var(--secondary-50); }

.card-soft {
  background: #fff;
  border:1px solid rgba(0,0,0,0.05);
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 8px 20px -6px rgba(0,0,0,0.06);
  transition: box-shadow .3s ease, transform .3s ease;
}
.card-soft:hover { box-shadow:0 16px 32px -10px rgba(0,0,0,0.12); transform: translateY(-4px); }

.section-py { padding-top:4.5rem; padding-bottom:4.5rem; }
@media (min-width:1024px){ .section-py { padding-top:6rem; padding-bottom:6rem; } }

.muted { color: var(--gray-500); }

/* Fins ajustements pour listes menu dans sections alternÃƒÂ©es */
.tg-menu-sections .tg-menu-block .font-medium { font-weight:600; }

/* Alternance de sections fond clair */
.section-alt { background: var(--secondary-50); }
.section-alt-soft { background: linear-gradient(180deg,var(--secondary-50),#fff); }
.section-dark { background: var(--gray-900); color: var(--gray-200); }
.section-dark .heading-section { color:#fff; }

.divider-gradient {
  height:4px;
  width:90px;
  margin:0 auto 2rem;
  background: linear-gradient(90deg,var(--primary-500),var(--primary-300));
  border-radius:2px;
}

/* Navigation Styles */
nav {
  display: block !important;
  visibility: visible !important;
}

/* Debug navigation - temporary */
nav .hidden.lg\\:flex {
  display: flex !important;
}

nav button {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

nav .flex {
  display: flex !important;
}

nav .container {
  display: block !important;
}

nav .justify-between {
  display: flex !important;
  justify-content: space-between !important;
}

nav .justify-center {
  display: flex !important;
  justify-content: center !important;
}

/* Force logo text to show */
nav .hidden.sm\\:block {
  display: block !important;
}

nav .space-x-3 div:last-child {
  display: block !important;
}

/* Backup styles for logo text if gradient fails */
nav h1 {
  color: var(--primary-600) !important;
  display: block !important;
}

nav h1.text-transparent {
  color: var(--primary-600) !important;
}

.font-display {
  font-family: 'Inter', system-ui, sans-serif;
  font-feature-settings: "ss01" 1, "ss02" 1;
}

.bg-gradient-to-r {
  background: linear-gradient(to right, var(--bg-from, transparent), var(--bg-to, transparent));
}

.from-primary-500 { --bg-from: var(--primary-500); }
.via-secondary-500 { --bg-via: var(--secondary-500); }
.to-accent-500 { --bg-to: var(--accent-500); }

.from-white\/90 { --bg-from: rgba(255, 255, 255, 0.9); }
.via-white\/95 { --bg-via: rgba(255, 255, 255, 0.95); }
.to-white\/90 { --bg-to: rgba(255, 255, 255, 0.9); }

.from-primary-500 { --bg-from: var(--primary-500); }
.from-primary-600 { --bg-from: var(--primary-600); }
.to-primary-600 { --bg-to: var(--primary-600); }
.to-primary-700 { --bg-to: var(--primary-700); }
.to-secondary-600 { --bg-to: var(--secondary-600); }

.bg-clip-text {
  -webkit-background-clip: text;
  background-clip: text;
}

.text-transparent {
  color: transparent;
}

.backdrop-blur-md {
  backdrop-filter: blur(12px);
}

.fixed {
  position: fixed;
}

.top-0 {
  top: 0;
}

.left-0 {
  left: 0;
}

.right-0 {
  right: 0;
}

.z-50 {
  z-index: 50;
}

.z-\[60\] {
  z-index: 60;
}

.h-1 {
  height: 0.25rem;
}

.h-20 {
  height: 5rem;
}

.w-16 {
  width: 4rem;
}

.h-16 {
  height: 4rem;
}

.w-4 {
  width: 1rem;
}

.h-4 {
  height: 1rem;
}

.w-6 {
  width: 1.5rem;
}

.h-6 {
  height: 1.5rem;
}

.origin-left {
  transform-origin: left;
}

.transition-all {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.duration-500 {
  transition-duration: 500ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.container {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.flex {
  display: flex;
}

.hidden {
  display: none;
}

.items-center {
  align-items: center;
}

.justify-between {
  justify-content: space-between;
}

.justify-center {
  justify-content: center;
}

.space-x-3 > :not([hidden]) ~ :not([hidden]) {
  margin-left: 0.75rem;
}

.space-x-1 > :not([hidden]) ~ :not([hidden]) {
  margin-left: 0.25rem;
}

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  margin-left: 0.5rem;
}

.cursor-pointer {
  cursor: pointer;
}

.mr-8 {
  margin-right: 2rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mr-3 {
  margin-right: 0.75rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.bottom-0 {
  bottom: 0;
}

.left-1\/2 {
  left: 50%;
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
}

.w-1 {
  width: 0.25rem;
}

.object-contain {
  object-fit: contain;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.rounded-lg {
  border-radius: 0.5rem;
}

.rounded-md {
  border-radius: 0.375rem;
}

.rounded-full {
  border-radius: 9999px;
}

.shadow-lg {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.font-bold {
  font-weight: 700;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-gray-600 {
  color: var(--gray-600);
}

.text-gray-700 {
  color: var(--gray-700);
}

.text-green-600 {
  color: var(--accent-600);
}

.text-primary-600 {
  color: var(--primary-600);
}

.text-primary-500 {
  color: var(--primary-500);
}

.text-white {
  color: #fff;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.flex-1 {
  flex: 1 1 0%;
}

.bg-primary-50 {
  background-color: var(--primary-50);
}

.bg-gray-50 {
  background-color: var(--gray-50);
}

.bg-gray-100 {
  background-color: var(--gray-100);
}

.hover\:text-primary-500:hover {
  color: var(--primary-500);
}

.hover\:bg-gray-50:hover {
  background-color: var(--gray-50);
}

.hover\:bg-gray-100:hover {
  background-color: var(--gray-100);
}

.hover\:bg-primary\/90:hover {
  background-color: rgba(239, 68, 68, 0.9);
}

.hover\:from-primary-600:hover {
  --bg-from: var(--primary-600);
}

.hover\:to-primary-700:hover {
  --bg-to: var(--primary-700);
}

.hover\:shadow-xl:hover {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
}

.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: var(--primary-500);
}

.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:opacity-50:disabled {
  opacity: 0.5;
}

.ring-offset-background {
  --tw-ring-offset-color: #fff;
}

.inline-flex {
  display: inline-flex;
}

.h-10 {
  height: 2.5rem;
}

@media (min-width: 640px) {
  .sm\:block {
    display: block !important;
  }
  
  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1024px) {
  .lg\:flex {
    display: flex !important;
  }
  
  .lg\:hidden {
    display: none !important;
  }
}

/* Additional utility classes */
.w-3 {
  width: 0.75rem;
}

.h-3 {
  height: 0.75rem;
}

.w-5 {
  width: 1.25rem;
}

.h-5 {
  height: 1.25rem;
}

.text-white\/80 {
  color: rgba(255, 255, 255, 0.8);
}

.text-yellow-400 {
  color: #facc15;
}

.fill-current {
  fill: currentColor;
}

.backdrop-blur-xl {
  backdrop-filter: blur(24px);
}

.border-white\/20 {
  border-color: rgba(255, 255, 255, 0.2);
}

.border-white\/30 {
  border-color: rgba(255, 255, 255, 0.3);
}

.border-white\/10 {
  border-color: rgba(255, 255, 255, 0.1);
}

.bg-white\/10 {
  background-color: rgba(255, 255, 255, 0.1);
}

.bg-white\/5 {
  background-color: rgba(255, 255, 255, 0.05);
}

.bg-white\/20 {
  background-color: rgba(255, 255, 255, 0.2);
}

.hover\:bg-white\/10:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

.hover\:bg-white\/20:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.text-primary-300 {
  color: var(--primary-300);
}

.text-gray-200 {
  color: var(--gray-200);
}

.text-gray-300 {
  color: var(--gray-300);
}

.text-white\/70 {
  color: rgba(255, 255, 255, 0.7);
}

.hover\:text-white:hover {
  color: #fff;
}

.max-w-3xl {
  max-width: 48rem;
}

.max-w-4xl {
  max-width: 56rem;
}

.leading-tight {
  line-height: 1.25;
}

.leading-relaxed {
  line-height: 1.625;
}

.italic {
  font-style: italic;
}

.font-light {
  font-weight: 300;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mb-16 {
  margin-bottom: 4rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}

.p-6 {
  padding: 1.5rem;
}

.pt-20 {
  padding-top: 5rem;
}

.pt-16 {
  padding-top: 4rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.gap-2 {
  gap: 0.5rem;
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.5rem;
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.grid {
  display: grid;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.text-center {
  text-align: center;
}

.border {
  border-width: 1px;
}

.border-2 {
  border-width: 2px;
}

.border-transparent {
  border-color: transparent;
}

.overflow-hidden {
  overflow: hidden;
}

.min-h-screen {
  min-height: 100vh;
}

.inset-0 {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.z-0 {
  z-index: 0;
}

.z-\[1\] {
  z-index: 1;
}

.z-\[2\] {
  z-index: 2;
}

.z-\[3\] {
  z-index: 3;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.bg-cover {
  background-size: cover;
}

.bg-center {
  background-position: center;
}

.bg-no-repeat {
  background-repeat: no-repeat;
}

.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
}

.bottom-8 {
  bottom: 2rem;
}

@media (min-width: 640px) {
  .sm\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  
  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  
  .sm\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  
  .sm\:px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  
  .sm\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }
  
  .sm\:pt-16 {
    padding-top: 4rem;
  }
  
  .sm\:mb-8 {
    margin-bottom: 2rem;
  }
  
  .sm\:mb-12 {
    margin-bottom: 3rem;
  }
  
  .sm\:mb-16 {
    margin-bottom: 4rem;
  }
  
  .sm\:mr-3 {
    margin-right: 0.75rem;
  }
  
  .sm\:w-4 {
    width: 1rem;
  }
  
  .sm\:h-4 {
    height: 1rem;
  }
  
  .sm\:w-6 {
    width: 1.5rem;
  }
  
  .sm\:h-6 {
    height: 1.5rem;
  }
  
  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  
  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  
  .sm\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }
  
  .sm\:gap-4 {
    gap: 1rem;
  }
  
  .sm\:gap-6 {
    gap: 1.5rem;
  }
  
  .sm\:flex-row {
    flex-direction: row;
  }
  
  .sm\:w-auto {
    width: auto;
  }
}

@media (min-width: 768px) {
  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  
  .md\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
  
  .md\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }
  
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .lg\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }
  
  .lg\:text-8xl {
    font-size: 6rem;
    line-height: 1;
  }
  
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* About Section Additional Styles */
.section-padding {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.heading-secondary {
  font-size: 2.25rem;
  line-height: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: var(--gray-900);
}

.text-body {
  color: var(--gray-600);
  line-height: 1.75;
  font-size: 1rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.w-8 {
  width: 2rem;
}

.h-8 {
  height: 2rem;
}

.w-16 {
  width: 4rem;
}

.h-16 {
  height: 4rem;
}

.w-24 {
    width: 6rem;
}

.bg-primary-100 {
  background-color: var(--primary-100);
}

.bg-primary-50 {
  background-color: var(--primary-50);
}

.text-primary-500 {
  color: var(--primary-500);
}

.text-primary-600 {
  color: var(--primary-600);
}

.text-gray-700 {
  color: var(--gray-700);
}

.text-gray-900 {
  color: var(--gray-900);
}

.from-black\/20 {
  --bg-from: rgba(0, 0, 0, 0.2);
}

.to-transparent {
  --bg-to: transparent;
}

.bg-gradient-to-t {
  background: linear-gradient(to top, var(--bg-from), var(--bg-to));
}

.h-\[500px\] {
  height: 500px;
}

.h-\[400px\] {
  height: 400px;
}

.shadow-2xl {
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.mt-20 {
  margin-top: 5rem;
}
.mt-10 {
  margin-top: 2.5rem;
}

.group:hover .group-hover\:bg-primary-500 {
  background-color: var(--primary-500);
}

.group:hover .group-hover\:text-white {
  color: #fff;
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-300 {
  transition-duration: 300ms;
}

/* Menu Section Additional Styles */
.bg-gray-50 {
  background-color: var(--gray-50);
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.h-80 {
  height: 20rem;
}

.space-y-20 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 5rem;
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1rem;
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 1.5rem;
}

.border-b {
  border-bottom-width: 1px;
}

.border-gray-100 {
  border-color: var(--gray-100);
}

.last\:border-b-0:last-child {
  border-bottom-width: 0;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.tracking-wide {
  letter-spacing: 0.025em;
}

.uppercase {
  text-transform: uppercase;
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

@media (min-width: 1024px) {
  .lg\:flex {
    display: flex !important;
  }
  
  .lg\:hidden {
    display: none !important;
  }
  
  .lg\:order-1 {
    order: 1;
  }
  
  .lg\:order-2 {
    order: 2;
  }
}

.items-start {
  align-items: flex-start;
}

@media (min-width: 768px) {
  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

/* Testimonials Marquee (dÃƒÂ©filement continu) */
.tg-marquee-wrapper {
  overflow: hidden;
  white-space: nowrap;
  position: relative;
}

.tg-marquee-track {
  display: flex;
  animation: marquee 60s linear infinite;
  gap: 1.5rem;
  margin-top: 66px;
}



.tg-testimonial-card {
  flex-shrink: 0;
  width: 280px;
  background: transparent;
  border: 1px solid rgba(229, 231, 235, 0.3);
  border-radius: 0.75rem;
  padding: 1rem;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

@media (min-width: 640px) {
  .tg-testimonial-card {
    width: 320px;
    padding: 1.5rem;
  }
}

.tg-testimonial-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15);
}

@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Vitesses variables selon le nombre d'ÃƒÂ©lÃƒÂ©ments */
.tg-marquee-wrapper[data-speed="40"] .tg-marquee-track {
  animation-duration: 120s;
}

.tg-marquee-wrapper[data-speed="60"] .tg-marquee-track {
  animation-duration: 120s;
}

.tg-marquee-wrapper[data-speed="80"] .tg-marquee-track {
  animation-duration: 120s;
}

/* Testimonials - corrections pour le style original */
.tg-testimonial-card p {
  white-space: normal;
  word-break: break-word;
}
.tg-testimonial-card h3 + p {
  margin-top: 2px;
}

/* Additional small utilities required by shortcodes */
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  margin-top: 0.25rem;
  margin-bottom: 0;
}

.gap-1 { gap: 0.25rem; }

/* Hover variant used in FAQ/gallery where a stronger white overlay is desired */
.hover\:bg-white\/50:hover { background-color: rgba(255, 255, 255, 0.5); }

/* Hover variant to tint borders with a translucent primary color */
.hover\:border-primary-200\/50:hover { border-color: rgba(254,202,202,0.5); }

/* Tight tracking used on small labels */
.tracking-tight { letter-spacing: 0.01em; }

/* Group hover color for some FAQ toggles */
.group-hover\:text-primary-600 { transition: color .2s ease; }
.group:hover .group-hover\:text-primary-600 { color: var(--primary-600); }

body.admin-bar {
    margin-top: 32px;
}

body.admin-bar>main>nav {
    top: 33px;
}

main>nav p {
    margin: 0;
}