/* ============================================================
   ARN Associates — global stylesheet (standard CSS3).
   Mirrors src/index.css of the source React project 1:1:
   typography scale, buttons, animations, section rhythm,
   header states and JS-toggled container states.
   (Utility classes are produced by the pinned Tailwind v4
   engine with the identical @theme tokens.)
   ============================================================ */
   .bottomtext{
    background: #000;
    padding: 20px 0px;
    color: #fff;
    text-align: center;
   }
   .bottomtext a{
    text-decoration: underline;
    color: #fff;
   }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}
.logoarn{
  width: 110px;
}

body {
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.7;
  color: #111111;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* ---------- headings: Montserrat ---------- */
h1,
h2,
h3,
h4,
h5,
h6,
.font-display {
  font-family: var(--font-heading);
  font-weight: 700;
}

/* H1 : 34 mobile / 42 tablet / 54 desktop */
h1 {
  font-size: 34px;
  line-height: 1.2em;
  letter-spacing: -0.02em;
}

/* H2 : 28 / 32 / 36 */
h2 {
  font-size: 28px;
  line-height: 1.2em;
  letter-spacing: -0.01em;
}

/* H3 : 20 / 22 / 24 */
h3 {
  font-size: 20px;
  line-height: 1.3em;
}

h4 {
  font-size: 18px;
  line-height: 1.4em;
}

@media (min-width: 768px) {
  h1 {
    font-size: 42px;
  }

  h2 {
    font-size: 32px;
  }

  h3 {
    font-size: 22px;
  }
}

@media (min-width: 1024px) {
  h1 {
    font-size: 54px;
  }

  h2 {
    font-size: 36px;
  }

  h3 {
    font-size: 24px;
  }
}

/* body text 16 / 1.7 everywhere */
p {
  font-size: 16px;
  line-height: 1.7;
}

p.fine,
.fine {
  font-size: 13px;
  line-height: 1.6;
}

/* ---------- buttons: 18px ---------- */
.btn {
  font-size: 18px;
  line-height: 1.2;
  font-family: var(--font-heading);
  font-weight: 600;
}

.btn-sm {
  font-size: 15px;
  line-height: 1.2;
  font-weight: 600;
}

/* ---------- icon font ---------- */
.material-symbols-rounded {
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.material-fill {
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

svg {
  display: block;
}

/* ---------- scrollbar ---------- */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background: #eef3f7;
}

::-webkit-scrollbar-thumb {
  background: #1f7cc1;
  border-radius: 8px;
}

::-webkit-scrollbar-thumb:hover {
  background: #1a659e;
}

/* ---------- animations ---------- */
@keyframes float-up {
  0% {
    opacity: 0;
    transform: translateY(30px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes pulse-ring {
  0% {
    transform: scale(1);
    opacity: 0.75;
  }

  100% {
    transform: scale(1.9);
    opacity: 0;
  }
}

.animate-float-up {
  animation: float-up 0.7s ease-out forwards;
}

.animate-fade-in {
  animation: fade-in 0.9s ease-out forwards;
}

.pulse-ring {
  animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.pulse-ring-delay {
  animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) 1s infinite;
}

/* scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* secondary-colour headline gradient */
.text-gradient-gold {
  background: linear-gradient(135deg, #da9027, #f4d19f, #da9027);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.grid-bg {
  background-image:
    linear-gradient(to right, rgba(31, 124, 193, 0.08) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(31, 124, 193, 0.08) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* section rhythm: 54px mobile+tablet, 70px desktop */
.section-y {
  padding-top: 54px;
  padding-bottom: 54px;
}

@media (min-width: 1024px) {
  .section-y {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

/* ---------- fixed header states ---------- */
.hdr {
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(4px);
}

.hdr.scrolled {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  box-shadow: 0 10px 15px -3px rgba(2, 6, 23, 0.05), 0 4px 6px -4px rgba(2, 6, 23, 0.05);
}

/* ---------- containers toggled by JS ---------- */
.mmenu {
  display: none;
}

.mmenu.open {
  display: block;
}

.msub {
  display: none;
}

.mgroup.open .msub {
  display: block;
}

.mgroup.open .mcaret {
  transform: rotate(180deg);
}

.modal-wrap {
  display: none;
}

.modal-wrap.open {
  display: flex;
}

.jobx {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows 0.4s ease-in-out, opacity 0.4s ease-in-out;
}

.job.open .jobx {
  grid-template-rows: 1fr;
  opacity: 1;
}

.job.open .jcaret {
  transform: rotate(180deg);
}