/*! ============================================================
 *  Revamp Consultancy – Static Tailwind v3 Utilities
 *  Auto-generated from 9 source files. Replaces Tailwind Play CDN.
 *  DO NOT hand-edit — regenerate if widgets change.
 *  ============================================================ */

/* =============================================================
   LAYER 0 — PREFLIGHT (minimal Tailwind reset)
   ============================================================= */
*,
::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%;
  -moz-tab-size: 4;
  tab-size: 4;
  font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-feature-settings: normal;
  font-variation-settings: normal;
}
body {
  margin: 0;
  line-height: inherit;
}
hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}
h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}
a {
  color: inherit;
  text-decoration: inherit;
}
b, strong {
  font-weight: bolder;
}
code, kbd, samp, pre {
  font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
}
small { font-size: 80%; }
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub { bottom: -0.25em; }
sup { top: -0.5em; }
table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}
button, select { text-transform: none; }
button, [type='button'], [type='reset'], [type='submit'] {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}
:-moz-focusring { outline: auto; }
:-moz-ui-invalid { box-shadow: none; }
progress { vertical-align: baseline; }
::-webkit-inner-spin-button,
::-webkit-outer-spin-button { height: auto; }
[type='search'] { -webkit-appearance: textfield; outline-offset: -2px; }
::-webkit-search-decoration { -webkit-appearance: none; }
::-webkit-file-upload-button { -webkit-appearance: button; font: inherit; }
summary { display: list-item; }
blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre {
  margin: 0;
}
fieldset { margin: 0; padding: 0; }
legend { padding: 0; }
ol, ul, menu { list-style: none; margin: 0; padding: 0; }
dialog { padding: 0; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { opacity: 1; color: #9ca3af; }
button, [role="button"] { cursor: pointer; }
:disabled { cursor: default; }
img, svg, video, canvas, audio, iframe, embed, object {
  display: block;
  vertical-align: middle;
}
img, video { max-width: 100%; height: auto; }
[hidden] { display: none; }

/* =============================================================
   LAYER 0.5 — BRAND DESIGN TOKENS (CSS Custom Properties)
   ============================================================= */
:root {
  --color-brand-navy:     #002B7A;
  --color-brand-navyDark: #0b1c3d;
  --color-brand-red:      #E11D24;
  --color-brand-redDark:  #c91218;
  --color-brand-yellow:   #fcb415;
}

/* =============================================================
   LAYER 1 — BASE / COMPONENTS
   ============================================================= */

/* -- Enquiry Modal (injected by widgets.js) -- */
#revamp-enquiry-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
#revamp-enquiry-modal.is-open { display: flex; }

#revamp-modal-box {
  background: #fff;
  border-radius: 1rem;
  max-width: 440px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 1.5rem;
  box-shadow: 0 25px 50px -12px rgba(0,0,0,.25);
  animation: modal-entrance .3s ease-out;
}

/* Custom scrollbar */
.custom-scrollbar::-webkit-scrollbar { width: 5px; }
.custom-scrollbar::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 9999px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 9999px; }

/* Hero background zoom animation */
@keyframes hero-bg-zoom {
  0%   { transform: scale(1); }
  100% { transform: scale(1.05); }
}
.hero-bg-zoom { animation: hero-bg-zoom 20s ease-in-out infinite alternate; }

/* Pulse animation (reuse Tailwind naming) */
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .5; }
}

/* Modal entrance animation */
@keyframes modal-entrance {
  from { opacity: 0; transform: translateY(16px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.animate-modal-entrance { animation: modal-entrance .3s ease-out; }

/* Bounce animation */
@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); }
}
.animate-bounce { animation: bounce 1s infinite; }

/* Footer link hover effect */
.footer-link {
  transition: color .2s, padding-left .2s;
  font-weight: 600;
}
.footer-link:hover {
  color: #fcb415;
  padding-left: 4px;
}

/* Flag icons (stub sizing) */
.flag-icon { display: inline-block; width: 20px; height: 15px; background-size: contain; background-repeat: no-repeat; background-position: center; }

/* =============================================================
   LAYER 2 — UTILITY CLASSES  (alphabetical within group)
   ============================================================= */

/* --- POSITION & DISPLAY --- */
.fixed        { position: fixed; }
.absolute     { position: absolute; }
.relative     { position: relative; }
.sticky       { position: sticky; }
.static       { position: static; }

.inset-0      { inset: 0; }
.inset-x-0    { left: 0; right: 0; }
.top-0        { top: 0; }
.top-1\/4     { top: 25%; }
.bottom-0     { bottom: 0; }
.bottom-3     { bottom: 0.75rem; }
.bottom-5     { bottom: 1.25rem; }
.bottom-1\/4  { bottom: 25%; }
.left-0       { left: 0; }
.left-2       { left: 0.5rem; }
.right-0      { right: 0; }
.right-2      { right: 0.5rem; }
.right-5      { right: 1.25rem; }

.z-0          { z-index: 0; }
.z-10         { z-index: 10; }
.z-20         { z-index: 20; }
.z-40         { z-index: 40; }
.z-50         { z-index: 50; }

.block        { display: block; }
.inline-flex  { display: inline-flex; }
.flex         { display: flex; }
.grid         { display: grid; }
.hidden       { display: none; }

/* --- FLEXBOX --- */
.flex-1       { flex: 1 1 0%; }
.flex-col     { flex-direction: column; }
.flex-row     { flex-direction: row; }
.flex-wrap    { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start  { align-items: start; }
.items-stretch{ align-items: stretch; }
.justify-between { justify-content: space-between; }
.justify-center  { justify-content: center; }
.justify-start   { justify-content: flex-start; }
.gap-1        { gap: 0.25rem; }
.gap-1\.5     { gap: 0.375rem; }
.gap-2        { gap: 0.5rem; }
.gap-2\.5     { gap: 0.625rem; }
.gap-3        { gap: 0.75rem; }
.gap-4        { gap: 1rem; }
.gap-6        { gap: 1.5rem; }
.gap-8        { gap: 2rem; }
.gap-x-4      { column-gap: 1rem; }
.gap-x-6      { column-gap: 1.5rem; }
.gap-y-3      { row-gap: 0.75rem; }
.gap-y-3\.5   { row-gap: 0.875rem; }
.shrink-0     { flex-shrink: 0; }
.self-start   { align-self: flex-start; }

/* --- GRID --- */
.grid-cols-1  { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.grid-cols-2  { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* --- OVERFLOW --- */
.overflow-hidden { overflow: hidden; }
.overflow-y-auto { overflow-y: auto; }

/* --- WIDTH --- */
.w-2          { width: 0.5rem; }
.w-3          { width: 0.75rem; }
.w-5          { width: 1.25rem; }
.w-7          { width: 1.75rem; }
.w-10         { width: 2.5rem; }
.w-11         { width: 2.75rem; }
.w-12         { width: 3rem; }
.w-14         { width: 3.5rem; }
.w-16         { width: 4rem; }
.w-48         { width: 12rem; }
.w-96         { width: 24rem; }
.w-full       { width: 100%; }
.w-fit        { width: fit-content; }
.w-max        { width: max-content; }
.max-w-xs     { max-width: 20rem; }
.max-w-lg     { max-width: 32rem; }
.max-w-xl     { max-width: 36rem; }
.max-w-2xl    { max-width: 42rem; }
.max-w-7xl    { max-width: 80rem; }
.min-w-0      { min-width: 0; }

/* --- HEIGHT --- */
.h-1          { height: 0.25rem; }
.h-2          { height: 0.5rem; }
.h-2\.5       { height: 0.625rem; }
.h-3          { height: 0.75rem; }
.h-3\.5       { height: 0.875rem; }
.h-4          { height: 1rem; }
.h-5          { height: 1.25rem; }
.h-6          { height: 1.5rem; }
.h-7          { height: 1.75rem; }
.h-8          { height: 2rem; }
.h-10         { height: 2.5rem; }
.h-11         { height: 2.75rem; }
.h-12         { height: 3rem; }
.h-14         { height: 3.5rem; }
.h-16         { height: 4rem; }
.h-24         { height: 6rem; }
.h-full       { height: 100%; }
.h-1\/2       { height: 50%; }
.min-h-\[140px\] { min-height: 140px; }
.min-h-\[290px\] { min-height: 290px; }
.h-\[180px\]  { height: 180px; }
.max-h-0      { max-height: 0; }
.max-h-screen { max-height: 100vh; }

/* --- MARGIN --- */
.mx-auto      { margin-left: auto; margin-right: auto; }
.my-2         { margin-top: 0.5rem; margin-bottom: 0.5rem; }
.my-auto      { margin-top: auto; margin-bottom: auto; }
.mt-0\.5      { margin-top: 0.125rem; }
.mt-1\.5      { margin-top: 0.375rem; }
.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; }
.ml-2         { margin-left: 0.5rem; }
.ml-3         { margin-left: 0.75rem; }
.mb-1         { margin-bottom: 0.25rem; }
.mb-4         { margin-bottom: 1rem; }

/* --- PADDING --- */
.p-1          { padding: 0.25rem; }
.p-2          { padding: 0.5rem; }
.p-2\.5       { padding: 0.5625rem; }
.p-4          { padding: 1rem; }
.p-5          { padding: 1.25rem; }
.p-6          { padding: 1.5rem; }
.px-1         { padding-left: 0.25rem; padding-right: 0.25rem; }
.px-1\.5      { padding-left: 0.375rem; padding-right: 0.375rem; }
.px-2\.5      { padding-left: 0.625rem; padding-right: 0.625rem; }
.px-3         { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-3\.5      { padding-left: 0.875rem; padding-right: 0.875rem; }
.px-4         { padding-left: 1rem; padding-right: 1rem; }
.px-5         { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6         { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-7         { padding-left: 1.75rem; padding-right: 1.75rem; }
.px-8         { padding-left: 2rem; padding-right: 2rem; }
.py-0\.5      { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.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-4         { padding-top: 1rem; padding-bottom: 1rem; }
.py-5         { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.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; }
.pt-1\.5      { padding-top: 0.375rem; }
.pt-2         { padding-top: 0.5rem; }
.pt-3         { padding-top: 0.75rem; }
.pt-4         { padding-top: 1rem; }
.pt-8         { padding-top: 2rem; }
.pt-10        { padding-top: 2.5rem; }
.pt-\[155px\] { padding-top: 155px; }
.pb-0         { padding-bottom: 0; }
.pb-2         { padding-bottom: 0.5rem; }
.pb-3         { padding-bottom: 0.75rem; }
.pb-4         { padding-bottom: 1rem; }
.pl-3         { padding-left: 0.75rem; }

/* --- SPACE BETWEEN (children) --- */
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.125rem; }
.space-y-1    > :not([hidden]) ~ :not([hidden]) { margin-top: 0.25rem; }
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.375rem; }
.space-y-2    > :not([hidden]) ~ :not([hidden]) { margin-top: 0.5rem; }
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.625rem; }
.space-y-3    > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
.space-y-4    > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
.space-y-5    > :not([hidden]) ~ :not([hidden]) { margin-top: 1.25rem; }
.space-y-6    > :not([hidden]) ~ :not([hidden]) { margin-top: 1.5rem; }
.space-y-8    > :not([hidden]) ~ :not([hidden]) { margin-top: 2rem; }
.space-y-10   > :not([hidden]) ~ :not([hidden]) { margin-top: 2.5rem; }
.space-y-12   > :not([hidden]) ~ :not([hidden]) { margin-top: 3rem; }

/* --- BORDER --- */
.border         { border-width: 1px; }
.border-2       { border-width: 2px; }
.border-b       { border-bottom-width: 1px; }
.border-t       { border-top-width: 1px; }
.border-l-4     { border-left-width: 4px; }
.border-slate-100 { border-color: #f1f5f9; }
.border-slate-200 { border-color: #e2e8f0; }
.border-orange-200 { border-color: #fed7aa; }
.border-red-200   { border-color: #fecaca; }
.border-red-400   { border-color: #f87171; }
.border-red-600   { border-color: #dc2626; }
.border-emerald-200 { border-color: #a7f3d0; }
.border-emerald-300 { border-color: #6ee7b7; }
.border-white\/10   { border-color: rgba(255,255,255,0.1); }
.border-white\/20   { border-color: rgba(255,255,255,0.2); }
.border-dashed    { border-style: dashed; }
.border-brand-red { border-color: #E11D24; }
.border-\[\\#002B7A\]\/20,
.border-\[#002B7A\]\/20 { border-color: rgba(0,43,122,0.2); }

/* --- BORDER RADIUS --- */
.rounded        { border-radius: 0.25rem; }
.rounded-md     { border-radius: 0.375rem; }
.rounded-lg     { border-radius: 0.5rem; }
.rounded-xl     { border-radius: 0.75rem; }
.rounded-2xl    { border-radius: 1rem; }
.rounded-full   { border-radius: 9999px; }

/* --- BACKGROUND --- */
.bg-white       { background-color: #fff; }
.bg-slate-50    { background-color: #f8fafc; }
.bg-slate-50\/50 { background-color: rgba(248,250,252,0.5); }
.bg-slate-50\/60 { background-color: rgba(248,250,252,0.6); }
.bg-slate-50\/70 { background-color: rgba(248,250,252,0.7); }
.bg-red-100     { background-color: #fee2e2; }
.bg-red-500     { background-color: #ef4444; }
.bg-emerald-50  { background-color: #ecfdf5; }
.bg-emerald-100 { background-color: #d1fae5; }
.bg-white\/10   { background-color: rgba(255,255,255,0.1); }
.bg-white\/95   { background-color: rgba(255,255,255,0.95); }
.bg-brand-navy  { background-color: #002B7A; }
.bg-brand-navyDark { background-color: #0b1c3d; }
.bg-brand-red   { background-color: #E11D24; }
.bg-brand-redDark { background-color: #c91218; }
.bg-slate-200   { background-color: #e2e8f0; }
.bg-\[\\#25D366\],
.bg-\[#25D366\] { background-color: #25D366; }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }

/* --- TEXT COLOR --- */
.text-white     { color: #fff; }
.text-white\/70 { color: rgba(255,255,255,0.7); }
.text-white\/80 { color: rgba(255,255,255,0.8); }
.text-white\/90 { color: rgba(255,255,255,0.9); }
.text-slate-400 { color: #94a3b8; }
.text-slate-500 { color: #64748b; }
.text-slate-600 { color: #475569; }
.text-slate-700 { color: #334155; }
.text-slate-800 { color: #1e293b; }
.text-slate-900 { color: #0f172a; }
.text-red-400   { color: #f87171; }
.text-emerald-600 { color: #059669; }
.text-emerald-800 { color: #065f46; }
.text-brand-navy  { color: #002B7A; }
.text-brand-red   { color: #E11D24; }
.text-\[\\#002B7A\],
.text-\[#002B7A\] { color: #002B7A; }
.text-\[\\#E11D24\],
.text-\[#E11D24\] { color: #E11D24; }
.text-\[\\#c91218\],
.text-\[#c91218\] { color: #c91218; }

/* --- TEXT SIZE --- */
.text-\[9px\]   { font-size: 9px; }
.text-\[10px\]  { font-size: 10px; }
.text-\[11px\]  { font-size: 11px; }
.text-\[13px\]  { font-size: 13px; }
.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-md        { 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-4xl       { font-size: 2.25rem;  line-height: 2.5rem; }

/* --- FONT WEIGHT --- */
.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; }

/* --- FONT FAMILY --- */
.font-sans      { font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.font-display   { font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.font-mono      { font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

/* --- FONT STYLE --- */
.italic         { font-style: italic; }

/* --- LINE HEIGHT --- */
.leading-none     { line-height: 1; }
.leading-tight    { line-height: 1.25; }
.leading-normal   { line-height: 1.5; }
.leading-relaxed  { line-height: 1.625; }

/* --- LETTER SPACING --- */
.tracking-tight  { letter-spacing: -0.025em; }
.tracking-wide   { letter-spacing: 0.025em; }
.tracking-wider  { letter-spacing: 0.05em; }

/* --- TEXT TRANSFORM --- */
.uppercase       { text-transform: uppercase; }

/* --- TEXT ALIGNMENT --- */
.text-center     { text-align: center; }
.text-left       { text-align: left; }

/* --- TEXT DECORATION --- */
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.line-clamp-4 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

/* --- OBJECT FIT --- */
.object-cover    { object-fit: cover; }
.object-contain  { object-fit: contain; }
.object-center   { object-position: center; }

/* --- SELECT / POINTER --- */
.select-none     { user-select: none; -webkit-user-select: none; }
.cursor-pointer  { cursor: pointer; }
.pointer-events-none { pointer-events: none; }

/* --- SHADOW --- */
.shadow-sm       { box-shadow: 0 1px 2px 0 rgba(0,0,0,.05); }
.shadow-md       { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.shadow-lg       { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.shadow-xl       { box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1); }
.shadow-2xl      { box-shadow: 0 25px 50px -12px rgba(0,0,0,.25); }
.drop-shadow-xs  { filter: drop-shadow(0 1px 1px rgba(0,0,0,.05)); }

/* --- OPACITY --- */
.opacity-0       { opacity: 0; }

/* --- BLUR --- */
.blur-3xl        { filter: blur(64px); }
.backdrop-blur-md { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }

/* --- FILL / STROKE --- */
.fill-current    { fill: currentColor; }
.fill-none       { fill: none; }
.fill-white      { fill: #fff; }
.stroke-current  { stroke: currentColor; }
.stroke-\[2\]    { stroke-width: 2; }

/* --- BRIGHTNESS --- */
.brightness-150  { filter: brightness(1.5); }

/* --- TRANSITION --- */
.transition-all      { transition-property: all;              transition-timing-function: cubic-bezier(.4,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(.4,0,.2,1); transition-duration: 150ms; }
.transition-shadow   { transition-property: box-shadow;       transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: 150ms; }
.transition-opacity  { transition-property: opacity;          transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: 150ms; }
.transition-transform{ transition-property: transform;        transition-timing-function: cubic-bezier(.4,0,.2,1); transition-duration: 150ms; }
.duration-200   { transition-duration: 200ms; }
.duration-300   { transition-duration: 300ms; }
.duration-350   { transition-duration: 350ms; }
.duration-500   { transition-duration: 500ms; }

/* --- TRANSFORM --- */
.transform       { transform: translate(var(--tw-translate-x,0), var(--tw-translate-y,0)) rotate(var(--tw-rotate,0)) skewX(var(--tw-skew-x,0)) skewY(var(--tw-skew-y,0)) scaleX(var(--tw-scale-x,1)) scaleY(var(--tw-scale-y,1)); }
.rotate-180      { --tw-rotate: 180deg; transform: rotate(180deg); }
.scale-105       { transform: scale(1.05); }

/* --- OUTLINE --- */
.outline-none    { outline: 2px solid transparent; outline-offset: 2px; }

/* --- RING --- */
.ring-1          { box-shadow: 0 0 0 1px var(--tw-ring-color, rgba(59,130,246,.5)); }
.ring-brand-navy { --tw-ring-color: #002B7A; }

/* =============================================================
   LAYER 3 — HOVER / FOCUS / ACTIVE / GROUP-HOVER STATE VARIANTS
   ============================================================= */

/* hover: text */
.hover\:text-red-400:hover      { color: #f87171; }
.hover\:text-white:hover        { color: #fff; }
.hover\:text-slate-700:hover    { color: #334155; }
.hover\:text-\[\\#002B7A\]:hover,
.hover\:text-\[#002B7A\]:hover  { color: #002B7A; }
.hover\:text-\[\\#E11D24\]:hover,
.hover\:text-\[#E11D24\]:hover  { color: #E11D24; }
.hover\:text-\[\\#c91218\]:hover,
.hover\:text-\[#c91218\]:hover  { color: #c91218; }
.hover\:text-brand-red:hover    { color: #E11D24; }

/* hover: bg */
.hover\:bg-slate-50:hover       { background-color: #f8fafc; }
.hover\:bg-slate-100:hover      { background-color: #f1f5f9; }
.hover\:bg-white\/20:hover      { background-color: rgba(255,255,255,0.2); }
.hover\:bg-brand-redDark:hover  { background-color: #c91218; }
.hover\:bg-brand-navyDark:hover { background-color: #0b1c3d; }
.hover\:bg-\[\\#E11D24\]:hover,
.hover\:bg-\[#E11D24\]:hover    { background-color: #E11D24; }
.hover\:bg-\[\\#20ba59\]:hover,
.hover\:bg-\[#20ba59\]:hover    { background-color: #20ba59; }

/* hover: border */
.hover\:border-red-500:hover    { border-color: #ef4444; }
.hover\:border-slate-300:hover  { border-color: #cbd5e1; }
.hover\:border-\[\\#002B7A\]:hover,
.hover\:border-\[#002B7A\]:hover { border-color: #002B7A; }
.hover\:border-\[\\#E11D24\]:hover,
.hover\:border-\[#E11D24\]:hover { border-color: #E11D24; }

/* hover: shadow */
.hover\:shadow-md:hover    { box-shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1); }
.hover\:shadow-lg:hover    { box-shadow: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1); }
.hover\:shadow-xl:hover    { box-shadow: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.1); }

/* hover: scale */
.hover\:scale-105:hover    { transform: scale(1.05); }
.hover\:scale-\[1\.01\]:hover { transform: scale(1.01); }
.hover\:scale-\[1\.02\]:hover { transform: scale(1.02); }

/* hover: translate */
.hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }

/* hover: underline */
.hover\:underline:hover    { text-decoration-line: underline; }

/* hover: opacity */
.hover\:opacity-100:hover  { opacity: 1; }

/* focus: */
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:ring-1:focus       { box-shadow: 0 0 0 1px var(--tw-ring-color, rgba(59,130,246,.5)); }
.focus\:ring-brand-navy:focus { --tw-ring-color: #002B7A; box-shadow: 0 0 0 1px #002B7A; }

/* active: */
.active\:scale-95:active   { transform: scale(0.95); }

/* group-hover: */
.group:hover .group-hover\:text-white    { color: #fff; }
.group:hover .group-hover\:text-\[\\#E11D24\],
.group:hover .group-hover\:text-\[#E11D24\] { color: #E11D24; }
.group:hover .group-hover\:text-brand-red { color: #E11D24; }
.group:hover .group-hover\:bg-\[\\#E11D24\],
.group:hover .group-hover\:bg-\[#E11D24\]  { background-color: #E11D24; }
.group:hover .group-hover\:scale-105     { transform: scale(1.05); }
.group:hover .group-hover\:opacity-100   { opacity: 1; }
.group:hover .group-hover\:border-\[\\#E11D24\],
.group:hover .group-hover\:border-\[#E11D24\] { border-color: #E11D24; }
.group:hover .group-hover\:text-brand-red  { color: #E11D24; }

/* --- placeholder --- */
.placeholder-slate-400::placeholder { color: #94a3b8; }

/* --- last child border --- */
.last\:border-0:last-child { border-width: 0; }

/* =============================================================
   LAYER 4 — RESPONSIVE VARIANTS
   ============================================================= */

/* ---- sm: (≥640px) ---- */
@media (min-width: 640px) {
  .sm\:flex-row     { flex-direction: row; }
  .sm\:grid-cols-2  { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:grid-cols-3  { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sm\:gap-6        { gap: 1.5rem; }
  .sm\:text-3xl     { font-size: 1.875rem; line-height: 2.25rem; }
  .sm\:text-5xl     { font-size: 3rem; line-height: 1; }
  .sm\:text-sm      { font-size: 0.875rem; line-height: 1.25rem; }
  .sm\:text-base    { font-size: 1rem; line-height: 1.5rem; }
  .sm\:text-lg      { font-size: 1.125rem; line-height: 1.75rem; }
  .sm\:text-\[11px\]{ font-size: 11px; }
  .sm\:text-\[13px\]{ font-size: 13px; }
  .sm\:p-8          { padding: 2rem; }
  .sm\:border-t-0   { border-top-width: 0; }
  .sm\:border-l     { border-left-width: 1px; }
  .sm\:border-r     { border-right-width: 1px; }
  .sm\:pt-0         { padding-top: 0; }
  .sm\:pl-4         { padding-left: 1rem; }
  .sm\:w-auto       { width: auto; }
}

/* ---- md: (≥768px) ---- */
@media (min-width: 768px) {
  .md\:flex-row      { flex-direction: row; }
  .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\:text-4xl      { font-size: 2.25rem; line-height: 2.5rem; }
  .md\:text-\[54px\] { font-size: 54px; }
  .md\:justify-start { justify-content: flex-start; }
}

/* ---- lg: (≥1024px) ---- */
@media (min-width: 1024px) {
  .lg\:flex          { display: flex; }
  .lg\:hidden        { display: none; }
  .lg\:grid-cols-2   { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:grid-cols-4   { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:grid-cols-5   { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .lg\:grid-cols-6   { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .lg\:grid-cols-12  { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .lg\:col-span-7    { grid-column: span 7 / span 7; }
  .lg\:border-b-0    { border-bottom-width: 0; }
}

/* ---- xl: (≥1280px) ---- */
@media (min-width: 1280px) {
  .xl\:flex-row     { flex-direction: row; }
  .xl\:col-span-6   { grid-column: span 6 / span 6; }
}

/* =============================================================
   LAYER 5 — MISC UTILITIES (arbitrary + edge-case)
   ============================================================= */

/* Arbitrary scale values */
.scale-\[1\.01\] { transform: scale(1.01); }
.scale-\[1\.02\] { transform: scale(1.02); }

/* Arbitrary border opacity */
.border-\[\\#002B7A\]\/20,
.border-\[#002B7A\]\/20 { border-color: rgba(0,43,122,0.2); }

/* group marker */
.group { position: relative; }

/* Gradient helpers used inline via style, but we still need from-transparent, via-*, etc. if referenced */
.from-transparent { --tw-gradient-from: transparent; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, transparent); }
.via-\[\\#002B7A\]\/20 { --tw-gradient-via: rgba(0,43,122,0.2); }
.to-transparent { --tw-gradient-to: transparent; }

/* overflow-hidden for the body (used by JS for modal) */
.overflow-hidden { overflow: hidden; }

/* =============================================================
   END OF FILE
   ============================================================= */
