/* ============================================================
   Tailwind-Compiled CSS — caballoloco.co
   Replaces TailwindCSS CDN (124 KiB JS) with static CSS (~18 KiB)
   ============================================================ */

/* --- CSS Reset / Base (from Tailwind Preflight) --- */
*, ::before, ::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; }
body { margin: 0; line-height: inherit; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
button, input, select, textarea { font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; color: inherit; margin: 0; padding: 0; }
button, [type='button'] { -webkit-appearance: button; background-color: transparent; background-image: none; }
img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
*, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; }
ul, ol { list-style: none; margin: 0; padding: 0; }
p { margin: 0; }
summary { display: list-item; }
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; }

/* --- Brand Colors (Custom Tailwind Config) --- */
:root {
  --brand-bg: #fcfaf6;
  --brand-text: #4a2c11;
  --brand-accent: #b55a40;
  --brand-lightGreen: #80af8d;
  --brand-cream: #f2deb9;
  --brand-green: #7a9276;
  --brand-border: #e8dfd1;
}

/* --- Font Families --- */
.font-sans { font-family: 'Inter', ui-sans-serif, system-ui, sans-serif; }
.font-rye { font-family: 'Rye', serif; }

/* --- Layout / Display --- */
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.grid { display: grid; }
.hidden { display: none; }
.contents { display: contents; }
.inline-flex { display: inline-flex; }

/* --- Position --- */
.relative { position: relative; }
.absolute { position: absolute; }
.fixed { position: fixed; }
.sticky { position: sticky; }
.inset-0 { inset: 0; }
.top-0 { top: 0; }
.top-4 { top: 1rem; }
.right-4 { right: 1rem; }
.bottom-4 { bottom: 1rem; }
.left-0 { left: 0; }
.left-4 { left: 1rem; }
.left-6 { left: 1.5rem; }
.left-1\/2 { left: 50%; }
.-bottom-1 { bottom: -0.25rem; }
.-left-1\.5 { left: -0.375rem; }
.-left-2 { left: -0.5rem; }
.-top-2 { top: -0.5rem; }

/* --- Z-Index --- */
.z-0 { z-index: 0; }
.z-10 { z-index: 10; }
.z-50 { z-index: 50; }
.z-\[90\] { z-index: 90; }
.z-\[100\] { z-index: 100; }
.z-\[110\] { z-index: 110; }
.z-\[120\] { z-index: 120; }

/* --- Overflow --- */
.overflow-hidden { overflow: hidden; }
.overflow-x-hidden { overflow-x: hidden; }
.overflow-x-auto { overflow-x: auto; }

/* --- Width --- */
.w-full { width: 100%; }
.w-1\/5 { width: 20%; }
.w-1\.5 { width: 0.375rem; }
.w-4 { width: 1rem; }
.w-5 { width: 1.25rem; }
.w-6 { width: 1.5rem; }
.w-7 { width: 1.75rem; }
.w-8 { width: 2rem; }
.w-12 { width: 3rem; }
.w-16 { width: 4rem; }
.w-20 { width: 5rem; }
.w-\[14px\] { width: 14px; }
.w-\[15\%\] { width: 15%; }
.w-\[33\%\] { width: 33%; }
.w-\[60\%\] { width: 60%; }
.w-\[70\%\] { width: 70%; }
.w-\[80\%\] { width: 80%; }
.w-\[230px\] { width: 230px; }
.w-\[280px\] { width: 280px; }
.min-w-\[90px\] { min-width: 90px; }
.min-w-\[230px\] { min-width: 230px; }
.min-w-\[260px\] { min-width: 260px; }
.min-w-\[280px\] { min-width: 280px; }
.max-w-2xl { max-width: 42rem; }
.max-w-sm { max-width: 24rem; }
.max-w-\[200px\] { max-width: 200px; }
.max-w-\[280px\] { max-width: 280px; }
.max-w-\[400px\] { max-width: 400px; }
.max-w-\[1200px\] { max-width: 1200px; }

/* --- Height --- */
.h-full { height: 100%; }
.h-fit { height: fit-content; }
.h-1\.5 { height: 0.375rem; }
.h-4 { height: 1rem; }
.h-5 { height: 1.25rem; }
.h-6 { height: 1.5rem; }
.h-7 { height: 1.75rem; }
.h-8 { height: 2rem; }
.h-12 { height: 3rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-32 { height: 8rem; }
.h-\[14px\] { height: 14px; }
.h-\[3px\] { height: 3px; }
.h-\[90px\] { height: 90px; }
.h-\[150px\] { height: 150px; }
.h-\[220px\] { height: 220px; }
.h-\[320px\] { height: 320px; }
.min-h-screen { min-height: 100vh; }
.min-h-\[60px\] { min-height: 60px; }
.min-h-\[250px\] { min-height: 250px; }

/* --- Flexbox --- */
.flex-col { flex-direction: column; }
.flex-1 { flex: 1 1 0%; }
.flex-\[2\] { flex: 2; }
.flex-shrink-0 { flex-shrink: 0; }
.shrink-0 { flex-shrink: 0; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-baseline { align-items: baseline; }
.items-stretch { align-items: stretch; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-0\.5 { gap: 0.125rem; }
.gap-1 { gap: 0.25rem; }
.gap-1\.5 { gap: 0.375rem; }
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-6 { gap: 1.5rem; }
.gap-8 { gap: 2rem; }

/* --- 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)); }
.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }
.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.col-span-2 { grid-column: span 2 / span 2; }
.col-start-1 { grid-column-start: 1; }
.col-start-2 { grid-column-start: 2; }
.row-span-2 { grid-row: span 2 / span 2; }
.row-start-1 { grid-row-start: 1; }
.row-start-2 { grid-row-start: 2; }
.row-start-3 { grid-row-start: 3; }

/* --- Snap Scroll --- */
.snap-x { scroll-snap-type: x mandatory; }
.snap-mandatory { /* already combined with snap-x */ }
.snap-center { scroll-snap-align: center; }
.snap-always { scroll-snap-stop: always; }

/* --- Spacing (Margin) --- */
.mx-auto { margin-left: auto; margin-right: auto; }
.mx-6 { margin-left: 1.5rem; margin-right: 1.5rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-auto { margin-top: auto; }
.mt-\[1px\] { margin-top: 1px; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-12 { margin-bottom: 3rem; }
.ml-1 { margin-left: 0.25rem; }
.ml-3 { margin-left: 0.75rem; }
.mr-1\.5 { margin-right: 0.375rem; }

/* --- Spacing (Padding) --- */
.p-1 { padding: 0.25rem; }
.p-2 { padding: 0.5rem; }
.p-2\.5 { padding: 0.625rem; }
.p-3 { padding: 0.75rem; }
.p-3\.5 { padding: 0.875rem; }
.p-4 { padding: 1rem; }
.p-5 { padding: 1.25rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
.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-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.pt-2 { padding-top: 0.5rem; }
.pt-3 { padding-top: 0.75rem; }
.pt-4 { padding-top: 1rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-3 { padding-bottom: 0.75rem; }
.pb-4 { padding-bottom: 1rem; }
.pb-5 { padding-bottom: 1.25rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-7 { padding-bottom: 1.75rem; }
.pb-8 { padding-bottom: 2rem; }
.pb-28 { padding-bottom: 7rem; }
.pl-3 { padding-left: 0.75rem; }
.pr-4 { padding-right: 1rem; }
.pr-6 { padding-right: 1.5rem; }
.pr-8 { padding-right: 2rem; }

/* --- Typography --- */
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.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-\[10px\] { font-size: 10px; }
.text-\[11px\] { font-size: 11px; }
.text-\[12px\] { font-size: 12px; }
.text-\[13px\] { font-size: 13px; }
.text-\[13\.5px\] { font-size: 13.5px; }
.text-\[14px\] { font-size: 14px; }
.text-\[15px\] { font-size: 15px; }
.text-\[16px\] { font-size: 16px; }
.text-\[18px\] { font-size: 18px; }
.text-\[20px\] { font-size: 20px; }
.text-\[24px\] { font-size: 24px; }
.text-\[26px\] { font-size: 26px; }
.text-\[46px\] { font-size: 46px; }
.text-\[56px\] { font-size: 56px; }
.text-\[70px\] { font-size: 70px; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }
.font-extrabold { font-weight: 800; }
.font-black { font-weight: 900; }
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-relaxed { line-height: 1.625; }
.tracking-tight { letter-spacing: -0.025em; }
.tracking-tighter { letter-spacing: -0.05em; }
.tracking-wide { letter-spacing: 0.025em; }
.tracking-wider { letter-spacing: 0.05em; }
.uppercase { text-transform: uppercase; }
.capitalize { text-transform: capitalize; }
.underline { text-decoration-line: underline; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }
.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.select-none { user-select: none; }
.outline-none { outline: 2px solid transparent; outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border-width: 0; }
.appearance-none { appearance: none; }

/* --- Text Colors --- */
.text-white { color: #fff; }
.text-white\/40 { color: rgb(255 255 255 / 0.4); }
.text-white\/80 { color: rgb(255 255 255 / 0.8); }
.text-white\/90 { color: rgb(255 255 255 / 0.9); }
.text-brand-text { color: var(--brand-text); }
.text-brand-text\/50 { color: rgb(74 44 17 / 0.5); }
.text-brand-text\/60 { color: rgb(74 44 17 / 0.6); }
.text-brand-text\/70 { color: rgb(74 44 17 / 0.7); }
.text-brand-text\/80 { color: rgb(74 44 17 / 0.8); }
.text-brand-accent { color: var(--brand-accent); }
.text-brand-green { color: var(--brand-green); }
.text-brand-lightGreen { color: var(--brand-lightGreen); }
.text-gray-400 { color: #9ca3af; }
.text-gray-500 { color: #6b7280; }
.text-gray-600 { color: #4b5563; }
.text-gray-700 { color: #374151; }
.text-blue-500 { color: #3b82f6; }
.text-red-500 { color: #ef4444; }
.text-orange-500 { color: #f97316; }
.text-\[\#8B4513\] { color: #8B4513; }
.text-\[\#8c593b\] { color: #8c593b; }
.text-\[\#e8dfd1\] { color: #e8dfd1; }
.text-\[\#fbbc05\] { color: #fbbc05; }
.text-\[\#fff4e3\] { color: #fff4e3; }

/* --- Background Colors --- */
.bg-white { background-color: #fff; }
.bg-white\/90 { background-color: rgb(255 255 255 / 0.9); }
.bg-black { background-color: #000; }
.bg-black\/10 { background-color: rgb(0 0 0 / 0.1); }
.bg-black\/50 { background-color: rgb(0 0 0 / 0.5); }
.bg-black\/70 { background-color: rgb(0 0 0 / 0.7); }
.bg-transparent { background-color: transparent; }
.bg-brand-bg { background-color: var(--brand-bg); }
.bg-brand-accent { background-color: var(--brand-accent); }
.bg-brand-accent\/20 { background-color: rgb(181 90 64 / 0.2); }
.bg-brand-cream { background-color: var(--brand-cream); }
.bg-brand-green { background-color: var(--brand-green); }
.bg-brand-lightGreen { background-color: var(--brand-lightGreen); }
.bg-brand-lightGreen\/10 { background-color: rgb(128 175 141 / 0.1); }
.bg-brand-lightGreen\/20 { background-color: rgb(128 175 141 / 0.2); }
.bg-gray-200 { background-color: #e5e7eb; }
.bg-orange-100 { background-color: #ffedd5; }
.bg-red-100 { background-color: #fee2e2; }
.bg-\[\#2a160c\] { background-color: #2a160c; }
.bg-\[\#33ccff\] { background-color: #33ccff; }
.bg-\[\#3b2313\] { background-color: #3b2313; }
.bg-\[\#4c6049\] { background-color: #4c6049; }
.bg-\[\#8c593b\] { background-color: #8c593b; }
.bg-\[\#914631\] { background-color: #914631; }
.bg-\[\#b47a5b\] { background-color: #b47a5b; }
.bg-\[\#dcb694\] { background-color: #dcb694; }
.bg-\[\#e0dcd5\] { background-color: #e0dcd5; }
.bg-\[\#e6ddcf\] { background-color: #e6ddcf; }
.bg-\[\#e8dfd1\]\/50 { background-color: rgb(232 223 209 / 0.5); }
.bg-\[\#f0e6d8\] { background-color: #f0e6d8; }
.bg-\[\#fdfbf7\] { background-color: #fdfbf7; }

/* --- Background Images / Gradients --- */
.bg-cover { background-size: cover; }
.bg-center { background-position: center; }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.from-black\/80 { --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-black\/20 { --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position); }
.from-brand-accent { --tw-gradient-from: var(--brand-accent) var(--tw-gradient-from-position); --tw-gradient-to: rgb(181 90 64 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.to-brand-green { --tw-gradient-to: var(--brand-green) var(--tw-gradient-to-position); }
.bg-\[url\(\'\/imagenes\/mapa\.jpeg\'\)\] { background-image: url('/imagenes/mapa.jpeg'); }
.bg-\[url\(\'\/imagenes\/wood-pattern\.webp\'\)\] { background-image: url('/imagenes/wood-pattern.webp'); }

/* --- Border --- */
.border { border-width: 1px; }
.border-2 { border-width: 2px; }
.border-\[1\.5px\] { border-width: 1.5px; }
.border-\[2px\] { border-width: 2px; }
.border-\[4px\] { border-width: 4px; }
.border-t { border-top-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-r { border-right-width: 1px; }
.border-t-4 { border-top-width: 4px; }
.border-b-4 { border-bottom-width: 4px; }
.border-brand-border { border-color: var(--brand-border); }
.border-brand-accent { border-color: var(--brand-accent); }
.border-white { border-color: #fff; }
.border-white\/20 { border-color: rgb(255 255 255 / 0.2); }
.border-gray-100 { border-color: #f3f4f6; }
.border-gray-200 { border-color: #e5e7eb; }
.border-gray-300 { border-color: #d1d5db; }
.border-gray-900 { border-color: #111827; }
.border-current { border-color: currentColor; }
.border-t-transparent { border-top-color: transparent; }
.border-\[\#1a0e08\] { border-color: #1a0e08; }
.border-\[\#402313\] { border-color: #402313; }
.border-\[\#4c6049\] { border-color: #4c6049; }
.border-\[\#5a3622\] { border-color: #5a3622; }
.border-\[\#914631\] { border-color: #914631; }
.border-\[\#dcb694\] { border-color: #dcb694; }
.border-\[\#e3d5c1\] { border-color: #e3d5c1; }

/* --- Border Radius --- */
.rounded { border-radius: 0.25rem; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }
.rounded-\[10px\] { border-radius: 10px; }
.rounded-\[14px\] { border-radius: 14px; }
.rounded-\[16px\] { border-radius: 16px; }
.rounded-\[20px\] { border-radius: 20px; }
.rounded-\[25px\] { border-radius: 25px; }

/* --- Object Fit --- */
.object-cover { object-fit: cover; }
.object-center { object-position: center; }

/* --- Shadows --- */
.shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-md { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-inner { --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

/* --- Drop Shadow --- */
.drop-shadow { filter: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06)); }
.drop-shadow-sm { filter: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05)); }
.drop-shadow-md { filter: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); }
.drop-shadow-none { filter: drop-shadow(0 0 #0000); }
.drop-shadow-\[0_0_8px_rgba\(181\,90\,64\,0\.4\)\] { filter: drop-shadow(0 0 8px rgba(181,90,64,0.4)); }

/* --- Opacity / Filters --- */
.opacity-0 { opacity: 0; }
.opacity-20 { opacity: 0.2; }
.opacity-60 { opacity: 0.6; }
.grayscale { filter: grayscale(100%); }
.backdrop-blur-sm { backdrop-filter: blur(4px); }

/* --- Transforms --- */
.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)); }
.transform-gpu { transform: translate3d(var(--tw-translate-x), var(--tw-translate-y), 0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.scale-95 { --tw-scale-x: .95; --tw-scale-y: .95; 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%; 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)); }

/* --- Transitions --- */
.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; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-shadow { transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.duration-150 { transition-duration: 150ms; }
.duration-300 { transition-duration: 300ms; }
.duration-500 { transition-duration: 500ms; }
.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

/* --- Cursor / Pointer --- */
.cursor-pointer { cursor: pointer; }
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }

/* --- Space-Y --- */
.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }

/* --- Animations --- */
@keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } }
@keyframes spin { to { transform: rotate(360deg); } }
.animate-bounce { animation: bounce 1s infinite; }
.animate-spin { animation: spin 1s linear infinite; }

/* --- Clip-Path --- */
.\[clip-path\:polygon\(0_0\,100\%_0\,85\%_50\%\,100\%_100\%\,0_100\%\)\] { clip-path: polygon(0 0, 100% 0, 85% 50%, 100% 100%, 0 100%); }
.\[clip-path\:polygon\(100\%_0\,100\%_100\%\,0_0\)\] { clip-path: polygon(100% 0, 100% 100%, 0 0); }

/* --- Interactive States --- */
.hover\:text-white:hover { color: #fff; }
.hover\:text-brand-text:hover { color: var(--brand-text); }
.hover\:text-\[\#6c9c79\]:hover { color: #6c9c79; }
.hover\:bg-\[\#914631\]:hover { background-color: #914631; }
.hover\:bg-\[\#637a5f\]:hover { background-color: #637a5f; }
.hover\:bg-\[\#6c9c79\]:hover { background-color: #6c9c79; }
.hover\:bg-\[\#2cb5e3\]:hover { background-color: #2cb5e3; }
.hover\:bg-\[\#d1ccc4\]:hover { background-color: #d1ccc4; }
.hover\:bg-black\/70:hover { background-color: rgb(0 0 0 / 0.7); }
.hover\:bg-gray-50:hover { background-color: #f9fafb; }
.hover\:bg-gray-100:hover { background-color: #f3f4f6; }
.hover\:bg-gray-900:hover { background-color: #111827; }
.hover\:bg-white\/10:hover { background-color: rgb(255 255 255 / 0.1); }
.hover\:opacity-90:hover { opacity: 0.9; }
.hover\:shadow-md:hover { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:shadow-lg:hover { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:scale-110:hover { --tw-scale-x: 1.1; --tw-scale-y: 1.1; 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)); }
.hover\:grayscale-0:hover { filter: grayscale(0); }
.active\:scale-90:active { --tw-scale-x: .9; --tw-scale-y: .9; 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)); }
.active\:scale-95:active { --tw-scale-x: .95; --tw-scale-y: .95; 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)); }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:border-brand-accent:focus { border-color: var(--brand-accent); }
.focus\:border-brand-lightGreen:focus { border-color: var(--brand-lightGreen); }

/* --- Group Variants --- */
.group:hover .group-hover\:text-white { color: #fff; }
.group:hover .group-hover\:translate-x-1 { --tw-translate-x: 0.25rem; 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)); }
.group:hover .group-hover\:translate-x-0\.5 { --tw-translate-x: 0.125rem; 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)); }
.group:hover .group-hover\:-translate-y-0\.5 { --tw-translate-y: -0.125rem; 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)); }
.group[open] .group-open\:rotate-180 { --tw-rotate: 180deg; 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)); }
details.group[open] .group-open\:rotate-180 { --tw-rotate: 180deg; 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)); }

/* =============================================================
   RESPONSIVE: md (min-width: 768px)
   ============================================================= */
@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:block { display: block; }
  .md\:grid { display: grid; }
  .md\:hidden { display: none; }
  .md\:inline-flex { display: inline-flex; }
  .md\:flex-row { flex-direction: row; }
  .md\:flex-none { flex: none; }
  .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\:aspect-\[21\/9\] { aspect-ratio: 21 / 9; }
  .md\:px-16 { padding-left: 4rem; padding-right: 4rem; }
  .md\:col-span-1 { grid-column: span 1 / span 1; }
  .md\:overflow-visible { overflow: visible; }
  .md\:w-auto { width: auto; }
  .md\:w-fit { width: fit-content; }
  .md\:w-1\/2 { width: 50%; }
  .md\:w-2 { width: 0.5rem; }
  .md\:w-5 { width: 1.25rem; }
  .md\:w-10 { width: 2.5rem; }
  .md\:w-12 { width: 3rem; }
  .md\:w-16 { width: 4rem; }
  .md\:w-28 { width: 7rem; }
  .md\:w-36 { width: 9rem; }
  .md\:w-40 { width: 10rem; }
  .md\:w-\[18px\] { width: 18px; }
  .md\:min-w-0 { min-width: 0; }
  .md\:h-2 { height: 0.5rem; }
  .md\:h-5 { height: 1.25rem; }
  .md\:h-10 { height: 2.5rem; }
  .md\:h-12 { height: 3rem; }
  .md\:h-16 { height: 4rem; }
  .md\:h-28 { height: 7rem; }
  .md\:h-36 { height: 9rem; }
  .md\:h-48 { height: 12rem; }
  .md\:h-auto { height: auto; }
  .md\:h-\[180px\] { height: 180px; }
  .md\:h-\[150px\] { height: 150px; }
  .md\:h-\[18px\] { height: 18px; }
  .md\:h-\[400px\] { height: 400px; }
  .md\:h-\[500px\] { height: 500px; }
  .md\:gap-1 { gap: 0.25rem; }
  .md\:gap-2 { gap: 0.5rem; }
  .md\:gap-3 { gap: 0.75rem; }
  .md\:gap-4 { gap: 1rem; }
  .md\:gap-6 { gap: 1.5rem; }
  .md\:gap-8 { gap: 2rem; }
  .md\:mx-0 { margin-left: 0; margin-right: 0; }
  .md\:mt-0 { margin-top: 0; }
  .md\:mt-3 { margin-top: 0.75rem; }
  .md\:mt-4 { margin-top: 1rem; }
  .md\:mt-5 { margin-top: 1.25rem; }
  .md\:mt-6 { margin-top: 1.5rem; }
  .md\:mt-8 { margin-top: 2rem; }
  .md\:mt-10 { margin-top: 2.5rem; }
  .md\:mt-12 { margin-top: 3rem; }
  .md\:mt-16 { margin-top: 4rem; }
  .md\:mb-4 { margin-bottom: 1rem; }
  .md\:mb-5 { margin-bottom: 1.25rem; }
  .md\:mb-8 { margin-bottom: 2rem; }
  .md\:mb-10 { margin-bottom: 2.5rem; }
  .md\:mb-16 { margin-bottom: 4rem; }
  .md\:ml-4 { margin-left: 1rem; }
  .md\:p-4 { padding: 1rem; }
  .md\:p-5 { padding: 1.25rem; }
  .md\:p-6 { padding: 1.5rem; }
  .md\:p-10 { padding: 2.5rem; }
  .md\:p-12 { padding: 3rem; }
  .md\:p-16 { padding: 4rem; }
  .md\:px-0 { padding-left: 0; padding-right: 0; }
  .md\:px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
  .md\:px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
  .md\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
  .md\:px-8 { padding-left: 2rem; padding-right: 2rem; }
  .md\:px-10 { padding-left: 2.5rem; padding-right: 2.5rem; }
  .md\:px-12 { padding-left: 3rem; padding-right: 3rem; }
  .md\:px-16 { padding-left: 4rem; padding-right: 4rem; }
  .md\:py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
  .md\:py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
  .md\:py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
  .md\:py-4 { padding-top: 1rem; padding-bottom: 1rem; }
  .md\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
  .md\:pt-4 { padding-top: 1rem; }
  .md\:pt-6 { padding-top: 1.5rem; }
  .md\:pb-0 { padding-bottom: 0; }
  .md\:pb-5 { padding-bottom: 1.25rem; }
  .md\:pb-12 { padding-bottom: 3rem; }
  .md\:pl-4 { padding-left: 1rem; }
  .md\:text-left { text-align: left; }
  .md\:text-lg { font-size: 1.125rem; line-height: 1.75rem; }
  .md\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
  .md\:text-\[12px\] { font-size: 12px; }
  .md\:text-\[13px\] { font-size: 13px; }
  .md\:text-\[14px\] { font-size: 14px; }
  .md\:text-\[15px\] { font-size: 15px; }
  .md\:text-\[16px\] { font-size: 16px; }
  .md\:text-\[18px\] { font-size: 18px; }
  .md\:text-\[20px\] { font-size: 20px; }
  .md\:text-\[22px\] { font-size: 22px; }
  .md\:text-\[24px\] { font-size: 24px; }
  .md\:text-\[28px\] { font-size: 28px; }
  .md\:text-\[32px\] { font-size: 32px; }
  .md\:text-\[42px\] { font-size: 42px; }
  .md\:text-\[64px\] { font-size: 64px; }
  .md\:text-\[96px\] { font-size: 96px; }
  .md\:text-\[120px\] { font-size: 120px; }
  .md\:rounded-xl { border-radius: 0.75rem; }
  .md\:rounded-\[20px\] { border-radius: 20px; }
  .md\:rounded-\[24px\] { border-radius: 24px; }
  .md\:rounded-\[30px\] { border-radius: 30px; }
  .md\:shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
  .md\:scale-105 { --tw-scale-x: 1.05; --tw-scale-y: 1.05; 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)); }
  .md\:border-4 { border-width: 4px; }
  .md\:space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }
  .md\:justify-start { justify-content: flex-start; }
  .md\:top-6 { top: 1.5rem; }
  .md\:bottom-12 { bottom: 3rem; }
  .md\:left-0 { left: 0; }
  .md\:left-12 { left: 3rem; }
  .md\:-left-2 { left: -0.5rem; }
  .md\:-left-4 { left: -1rem; }
  .md\:-top-4 { top: -1rem; }
  .md\:translate-x-0 { --tw-translate-x: 0; 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)); }
  .md\:w-auto { width: auto; }
  .md\:column-count-2 { column-count: 2; }
}

/* =============================================================
   RESPONSIVE: lg (min-width: 1024px)
   ============================================================= */
@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* =============================================================
   Extra utilities needed by /menu and /ubicacion JS templates
   ============================================================= */
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.min-w-0 { min-width: 0; }
.w-11 { width: 2.75rem; }
.h-11 { height: 2.75rem; }
.text-left { text-align: left; }
.text-brand-text\/40 { color: rgb(74 44 17 / 0.4); }
.text-brand-text\/45 { color: rgb(74 44 17 / 0.45); }
.bg-brand-cream\/30 { background-color: rgb(242 222 185 / 0.3); }
.bg-brand-cream\/60 { background-color: rgb(242 222 185 / 0.6); }
.bg-\[\#f8f4ee\] { background-color: #f8f4ee; }
.bg-red-50 { background-color: #fef2f2; }
.text-red-400 { color: #f87171; }
.border-brand-border\/30 { border-color: rgb(232 223 209 / 0.3); }
.border-brand-border\/40 { border-color: rgb(232 223 209 / 0.4); }
.border-brand-border\/50 { border-color: rgb(232 223 209 / 0.5); }
.pb-0\.5 { padding-bottom: 0.125rem; }

/* =============================================================
   MERGED: styles.css (eliminates 2nd render-blocking request)
   ============================================================= */
html { scroll-behavior: smooth; }

/* Ocultar scrollbars pero permitir scroll */
.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }

/* Utilidades para columnas de texto */
.column-count-1 { column-count: 1; }
.column-count-2 { column-count: 2; }

.wood-texture {
    background: linear-gradient(to right, #2a160c, #402313, #2a160c);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 10px 25px rgba(0,0,0,0.6);
    position: relative;
    overflow: hidden;
}
.wood-texture::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.08) 2px, rgba(0,0,0,0.08) 4px);
    pointer-events: none;
}

/* Floating Bar Touch Optimization */
#floatingBar {
    -webkit-user-select: none;
    user-select: none;
}
#floatingBar nav a {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    z-index: 10;
    cursor: pointer;
}

/* Detalles del acordeón */
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }

/* Animaciones Scroll Reveal */
.reveal { opacity: 0; transition: all 0.8s cubic-bezier(0.5, 0, 0, 1); }
.reveal.active { opacity: 1; transform: translate(0, 0) scale(1); }
.reveal-up { transform: translateY(40px); }
.reveal-down { transform: translateY(-40px); }
.reveal-left { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-zoom { transform: scale(0.9); }
.delay-100 { transition-delay: 0.1s; }
.delay-200 { transition-delay: 0.2s; }
.delay-300 { transition-delay: 0.3s; }

input[type="date"] {
    appearance: none;
    -webkit-appearance: none;
    background-color: transparent;
}

/* Checkbox Personalizado CORREGIDO */
.custom-checkbox:checked {
    background-color: #80af8d;
    border-color: #80af8d;
}
/* Importante: display: flex para mantener centrado el icono */
.custom-checkbox:checked + div {
    display: flex;
}

/* Botones de Hora */
.time-btn {
    transition: all 0.2s ease;
    background-color: white;
    color: #4a2c11; /* Brand text */
    border: 1px solid #e5e7eb;
}
.time-btn:hover:not(.disabled) {
    border-color: #80af8d;
    color: #80af8d;
    background-color: #f0fdf4;
}
.time-btn.active {
    background-color: #80af8d !important;
    color: white !important;
    border-color: #80af8d !important;
    font-weight: 700;
}
.time-btn.disabled {
    opacity: 0.4;
    cursor: not-allowed;
    background-color: #f3f4f6;
}

/* --- ESTILOS PERSONALIZADOS DEL CALENDARIO (FLATPICKR) --- */
.flatpickr-calendar {
    background: #fff;
    border: none !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1) !important;
    border-radius: 16px !important;
    width: auto !important;
    min-width: 300px !important;
    margin: 0 auto 20px auto;
    font-family: 'Inter', sans-serif;
    padding: 10px !important;
}

/* Cabecera del mes */
.flatpickr-months {
    background: transparent;
    padding: 5px 0 10px 0;
}
.flatpickr-month {
    color: #4a2c11 !important;
    fill: #4a2c11 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months, 
.flatpickr-current-month input.cur-year {
    font-family: 'Rye', serif;
    font-size: 1.2rem;
    color: #4a2c11;
    font-weight: normal;
}
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
    border-bottom-color: #4a2c11;
}
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
    border-top-color: #4a2c11;
}

/* Días de la semana */
.flatpickr-weekdays {
    background: transparent;
    margin-bottom: 5px;
}
span.flatpickr-weekday {
    color: #b55a40 !important; /* Terracota */
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
}

/* Días individuales */
.flatpickr-day {
    border-radius: 10px !important;
    color: #4a2c11;
    font-weight: 500;
    margin-top: 4px;
    height: 38px;
    line-height: 38px;
    border: 1px solid transparent;
    transition: all 0.2s;
}

/* Días deshabilitados */
.flatpickr-day.flatpickr-disabled, 
.flatpickr-day.flatpickr-disabled:hover {
    color: #cbd5e1 !important; /* Slate 300 */
}

/* Hover */
.flatpickr-day:hover {
    background: #fcfaf6 !important;
    border-color: #80af8d;
    color: #80af8d;
}

/* Día Seleccionado */
.flatpickr-day.selected, 
.flatpickr-day.startRange, 
.flatpickr-day.endRange, 
.flatpickr-day.selected.inRange, 
.flatpickr-day.startRange.inRange, 
.flatpickr-day.endRange.inRange, 
.flatpickr-day.selected:focus, 
.flatpickr-day.startRange:focus, 
.flatpickr-day.endRange:focus, 
.flatpickr-day.selected:hover, 
.flatpickr-day.startRange:hover, 
.flatpickr-day.endRange:hover, 
.flatpickr-day.selected.prevMonthDay, 
.flatpickr-day.startRange.prevMonthDay, 
.flatpickr-day.endRange.prevMonthDay, 
.flatpickr-day.selected.nextMonthDay, 
.flatpickr-day.startRange.nextMonthDay, 
.flatpickr-day.endRange.nextMonthDay {
    background: #80af8d !important; /* Verde Vivo */
    border-color: #80af8d !important;
    color: #fff !important;
    font-weight: bold;
    box-shadow: 0 4px 6px -1px rgba(128, 175, 141, 0.4);
}

/* Día Actual */
.flatpickr-day.today {
    border-color: #b55a40 !important;
    color: #b55a40;
    background-color: transparent;
}
.flatpickr-day.today.selected {
    color: #fff !important;
    border-color: #80af8d !important;
    background: #80af8d !important;
}

/* Validaciones visuales */
.input-error {
    border-color: #ef4444 !important;
    background-color: #fef2f2;
}
.error-message {
    color: #ef4444;
    font-size: 11px;
    margin-top: 4px;
    display: none;
    font-weight: 600;
}
.input-error + .error-message {
    display: block;
}
/* Style para select de paises */
.country-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 1.5rem;
}

 .flatpickr-current-month .flatpickr-monthDropdown-months, 
        .flatpickr-current-month input.cur-year {
            font-family: 'Rye', serif !important; /* Recupera la fuente del encabezado */
            font-weight: normal !important;
            padding: 0 !important;
        }

/* Corrección para Flatpickr responsivo en todos los móviles (Android e iOS) */
@media (max-width: 480px) {
    .flatpickr-calendar.inline,
    .flatpickr-innerContainer, 
    .flatpickr-rContainer, 
    .flatpickr-days, 
    .dayContainer {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        box-shadow: none !important; 
    }
    
    /* Forzar siempre 7 columnas (100% / 7 días = 14.28%) */
    .flatpickr-day {
        width: 14.28% !important;
        max-width: 14.28% !important;
        flex-basis: 14.28% !important;
    }
}

/* =============================================================
   Footer Redesign — New utility classes
   ============================================================= */

/* --- Background Colors (Footer) --- */
.bg-\[\#1a0e08\] { background-color: #1a0e08; }
.bg-\[\#130a05\] { background-color: #130a05; }
.bg-\[\#2a1a0f\] { background-color: #2a1a0f; }

/* --- Border Colors (Footer) --- */
.border-\[\#2a1a0f\] { border-color: #2a1a0f; }
.border-\[\#3a2518\] { border-color: #3a2518; }
.border-\[\#c4a882\]\/40 { border-color: rgb(196 168 130 / 0.4); }

/* --- Text Colors (Footer) --- */
.text-\[\#c4a882\] { color: #c4a882; }
.text-\[\#e8dfd1\]\/70 { color: rgb(232 223 209 / 0.7); }
.text-\[\#e8dfd1\]\/50 { color: rgb(232 223 209 / 0.5); }
.text-\[\#e8dfd1\]\/40 { color: rgb(232 223 209 / 0.4); }
.text-brand-accent\/70 { color: rgb(181 90 64 / 0.7); }
.text-brand-accent\/50 { color: rgb(181 90 64 / 0.5); }

/* --- Sizing (Footer) --- */
.w-9 { width: 2.25rem; }
.h-9 { height: 2.25rem; }
.w-10 { width: 2.5rem; }
.h-10 { height: 2.5rem; }
.w-24 { width: 6rem; }
.h-24 { height: 6rem; }
.h-48 { height: 12rem; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-\[2\/1\] { aspect-ratio: 2 / 1; }
.aspect-\[16\/9\] { aspect-ratio: 16 / 9; }
.aspect-video { aspect-ratio: 16 / 9; }
.whitespace-nowrap { white-space: nowrap; }

/* --- Spacing (Footer) --- */
.gap-2\.5 { gap: 0.625rem; }
.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.875rem * var(--tw-space-y-reverse)); }
.pt-12 { padding-top: 3rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.pb-10 { padding-bottom: 2.5rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.mt-12 { margin-top: 3rem; }
.mt-16 { margin-top: 4rem; }
.mr-1 { margin-right: 0.25rem; }
.mr-2 { margin-right: 0.5rem; }
.pl-5 { padding-left: 1.25rem; }

/* --- Typography (Footer) --- */
.tracking-\[0\.15em\] { letter-spacing: 0.15em; }
.text-\[22px\] { font-size: 22px; }
.text-\[9px\] { font-size: 9px; }
.italic { font-style: italic; }

/* --- Border Width (Footer) --- */
.border-3 { border-width: 3px; }

/* --- Opacity (Footer) --- */
.opacity-60 { opacity: 0.6; }

/* --- Hover States (Footer) --- */
.hover\:text-\[\#c4a882\]:hover { color: #c4a882; }
.hover\:bg-\[\#c4a882\]:hover { background-color: #c4a882; }
.hover\:text-\[\#1a0e08\]:hover { color: #1a0e08; }
.hover\:underline:hover { text-decoration-line: underline; }
.group:hover .group-hover\:text-brand-accent { color: var(--brand-accent); }

/* --- List (Footer blog posts) --- */
.list-disc { list-style-type: disc; }

/* --- Responsive: md (Footer) --- */
@media (min-width: 768px) {
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:items-start { align-items: flex-start; }
  .md\:text-left { text-align: left; }
  .md\:gap-4 { gap: 1rem; }
  .md\:pt-16 { padding-top: 4rem; }
  .md\:flex-row { flex-direction: row; }
}

/* --- Responsive: lg (Footer) --- */
@media (min-width: 1024px) {
  .lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:gap-8 { gap: 2rem; }
  .lg\:gap-0 { gap: 0; }
  .lg\:pr-8 { padding-right: 2rem; }
  .lg\:pl-8 { padding-left: 2rem; }
  .lg\:items-start { align-items: flex-start; }
  .footer-divider { border-right: 1px solid rgba(255, 255, 255, 0.08); align-self: stretch; padding-bottom: 1rem; }
  .footer-divider:not(:first-child) { padding-top: 2.5rem; }
  .lg\:pt-10 { padding-top: 2.5rem; }
}

/* Mobile footer spacing */
@media (max-width: 1023px) {
  footer .grid.grid-cols-1 { gap: 3rem; }
}

/* Scroll to top button */
.scroll-top-btn {
  position: fixed;
  bottom: 32px;
  right: 32px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #B55A40;
  color: #fff;
  border: none;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  box-shadow: 0 4px 14px rgba(181,90,64,0.35);
  z-index: 90;
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.35s ease, transform 0.35s ease, background 0.2s ease;
}
.scroll-top-btn.visible {
  display: flex;
  opacity: 1;
  transform: translateY(0);
}
.scroll-top-btn:hover {
  background: #914631;
  box-shadow: 0 6px 20px rgba(181,90,64,0.45);
}
@media (max-width: 768px) {
  .scroll-top-btn { display: none !important; }
}

/* --- Home Blog Cards & Responsive Grid --- */
#home-blog-grid {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  gap: 1rem;
  padding-bottom: 0.5rem;
}
#home-blog-grid .home-blog-card {
  min-width: 270px;
  width: 270px;
  max-width: 280px;
  flex-shrink: 0;
  scroll-snap-align: center;
}
@media (min-width: 768px) {
  #home-blog-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1.5rem !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
  }
  #home-blog-grid .home-blog-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    flex-shrink: 1 !important;
  }
}

/* --- Line Clamping --- */
.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.line-clamp-3 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
