
/* ============================================
   Design Tokens
   ============================================ */
:root {
  --color-navy: #0D1B2A;
  --color-navy-mid: #1B2A4A;
  --color-navy-light: #243352;
  --color-gold: #C9A84C;
  --color-gold-light: #E2C47A;
  --color-white: #FFFFFF;
  --color-off-white: #F5F4F0;
  --color-charcoal: #3C3C3C;
  --color-deep-gray: #2D2D2D;
  --color-border: #E0DDD6;

  --font-heading: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'DM Sans', -apple-system, sans-serif;
  --font-size-base: 16px;

  --section-padding-y: 6rem;
  --section-padding-x: 1.5rem;
  --max-content-width: 1200px;

  --radius: 8px;
  --radius-lg: 14px;
  --shadow-card: 0 4px 24px rgba(0,0,0,0.08);
  --shadow-card-hover: 0 12px 40px rgba(0,0,0,0.15);
  --transition: 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* ============================================
   Reset
   ============================================ */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size: var(--font-size-base); scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  line-height: 1.7;
  color: var(--color-deep-gray);
  background: var(--color-white);
  -webkit-font-smoothing: antialiased;
  padding-top: 5rem;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
ul, ol { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
p { margin-bottom: 1rem; }

/* ============================================
   Typography
   ============================================ */
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-navy);
}
h1 { font-size: clamp(2.2rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.75rem, 3.5vw, 2.75rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.5rem); }

/* Gold rule accent under section headings */
.section-title {
  position: relative;
  display: inline-block;
  margin-bottom: 1rem;
}
.section-title::after {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
  margin-top: 0.6rem;
  border-radius: 2px;
}
.section-title--center { display: block; text-align: center; }
.section-title--center::after { margin-left: auto; margin-right: auto; }

/* ============================================
   Layout
   ============================================ */
.container {
  width: 100%;
  max-width: var(--max-content-width);
  margin: 0 auto;
  padding: 0 var(--section-padding-x);
}
.section { padding: var(--section-padding-y) 0; }

@media (min-width: 768px)  { :root { --section-padding-x: 2.5rem; } }
@media (min-width: 1024px) { :root { --section-padding-x: 3rem; } }
@media (min-width: 1440px) { :root { --section-padding-x: 4rem; } }

/* ============================================
   Animations
   ============================================ */
@keyframes fade-up {
  from { opacity:0; transform:translateY(28px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes fade-in {
  from { opacity:0; }
  to   { opacity:1; }
}
.animate-on-scroll { opacity:0; }
.animate-in { animation: fade-up 0.6s cubic-bezier(0.25,0.46,0.45,0.94) both; }
.animate-in--fade { animation-name: fade-in; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:0s !important;
    transition-duration:0s !important;
    scroll-behavior:auto !important;
  }
  .animate-on-scroll { opacity:1; }
}

/* ============================================
   Navigation
   ============================================ */
.site-header {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(13, 27, 42, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(201,168,76,0.18);
  transition: background var(--transition), box-shadow var(--transition);
}
.site-header.scrolled {
  background: rgba(13, 27, 42, 0.98);
  box-shadow: 0 2px 24px rgba(0,0,0,0.3);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 5rem;
}
.nav__logo { display:flex; align-items:center; flex-shrink:0; }
.nav__logo-img { height: 3.5rem; width:auto; object-fit:contain; }

.nav__links {
  display: none;
  flex-direction: column;
  position: absolute;
  top: 5rem; left:0;
  width: 100%;
  background: rgba(13,27,42,0.98);
  border-top: 1px solid rgba(201,168,76,0.15);
  padding: 1rem 0;
}
.nav__links--open { display:flex; }
.nav__link {
  display: block;
  padding: 0.7rem var(--section-padding-x);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.8);
  transition: color var(--transition);
}
.nav__link:hover, .nav__link:focus { color: var(--color-gold); }

.nav__hamburger {
  display:flex; flex-direction:column;
  justify-content:center; gap:5px;
  width:44px; height:44px; padding:0.5rem;
}
.nav__hamburger-line {
  display:block; width:24px; height:2px;
  background: var(--color-gold); border-radius:1px;
  transition: transform 0.2s, opacity 0.2s;
}

@media (min-width: 768px) {
  .nav__links {
    display:flex; flex-direction:row; flex-wrap:nowrap;
    position:static; width:auto;
    background:none; border:none; padding:0; gap:0.1rem;
  }
  .nav__link { padding: 0.5rem 0.6rem; font-size:0.78rem; white-space:nowrap; }
  .nav__hamburger { display:none; }
}
@media (min-width: 1024px) {
  .nav__link { font-size:0.8125rem; padding:0.5rem 0.75rem; }
}

/* ============================================
   Hero
   ============================================ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0;
  margin-top: calc(-5rem - 2.4rem);
  text-align: center;
}
.hero__bg {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; z-index:0;
}
.hero__overlay {
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(
    135deg,
    rgba(13,27,42,0.96) 0%,
    rgba(13,27,42,0.90) 50%,
    rgba(13,27,42,0.96) 100%
  );
}
/* Decorative gold diagonal stripe */
.hero__overlay::after {
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(
    105deg,
    transparent 55%,
    rgba(201,168,76,0.05) 55%,
    rgba(201,168,76,0.05) 70%,
    transparent 70%
  );
}
.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  width: 100%;
  max-width: 820px;
  padding: 2rem 2rem;
  margin-left: auto;
  margin-right: auto;
}
.hero__eyebrow {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold);
  border: 1px solid rgba(201,168,76,0.4);
  padding: 0.35rem 1rem;
  border-radius: 2px;
  margin-bottom: 1.5rem;
}
.hero__headline {
  color: var(--color-white);
  margin-bottom: 1.25rem;
  text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.hero__subheadline {
  color: rgba(255,255,255,0.82);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.75;
  margin-bottom: 2.5rem;
  max-width: 680px;
  margin-left: auto; margin-right: auto;
}
.hero__cta-group { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.hero__cta {
  display:inline-block;
  padding: 0.95rem 2.5rem;
  background: linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  color: var(--color-navy);
  font-weight: 700;
  font-size: 0.9375rem;
  letter-spacing: 0.04em;
  border-radius: var(--radius);
  transition: transform var(--transition), box-shadow var(--transition);
  box-shadow: 0 4px 20px rgba(201,168,76,0.35);
}
.hero__cta:hover, .hero__cta:focus {
  transform: translateY(-3px);
  box-shadow: 0 8px 32px rgba(201,168,76,0.5);
}
.hero__cta--outline {
  background: transparent;
  color: var(--color-white);
  border: 1.5px solid rgba(255,255,255,0.5);
  box-shadow: none;
}
.hero__cta--outline:hover, .hero__cta--outline:focus {
  border-color: var(--color-gold);
  color: var(--color-gold);
  box-shadow: none;
}

/* ============================================
   About
   ============================================ */
.about { background: var(--color-white); }
.about__grid {
  display:grid; grid-template-columns:1fr; gap:3rem; align-items:center;
}
.about__heading { margin-bottom:1.5rem; }
.about__mission {
  font-size:1.1rem; line-height:1.85;
  color: var(--color-charcoal);
  border-left: 3px solid var(--color-gold);
  padding-left: 1.25rem;
  margin-bottom: 1.5rem;
}
.about__history { color: var(--color-deep-gray); line-height:1.8; }
.about__values { margin-top:1.75rem; }
.about__values-heading { font-size:1.2rem; margin-bottom:1rem; }
.about__values-list { display:flex; flex-direction:column; gap:0.75rem; }
.about__value-item { display:flex; align-items:flex-start; gap:0.6rem; line-height:1.6; }
.about__value-icon { color:var(--color-gold); flex-shrink:0; margin-top:0.2rem; }
.about__image-wrapper { position:relative; }
.about__image {
  width:100%; border-radius:var(--radius-lg);
  object-fit:cover;
  box-shadow: var(--shadow-card);
}
/* Gold corner accent */
.about__image-wrapper::before {
  content:'';
  position:absolute;
  top:-12px; left:-12px;
  width:80px; height:80px;
  border-top: 3px solid var(--color-gold);
  border-left: 3px solid var(--color-gold);
  border-radius: 4px 0 0 0;
  z-index:1;
}
@media (min-width:768px) {
  .about__grid { grid-template-columns:1fr 1fr; gap:4rem; }
}

/* ============================================
   Practice Areas
   ============================================ */
.practice-areas { background: var(--color-off-white); }
.practice-areas__heading { text-align:center; margin-bottom:0.75rem; }
.practice-areas__subheading {
  text-align:center; color:var(--color-charcoal);
  max-width:600px; margin:0 auto 3rem;
}
.practice-areas__grid {
  display:grid; grid-template-columns:1fr; gap:1.5rem;
}
.practice-areas__card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 2rem 1.75rem;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
  position:relative; overflow:hidden;
}
.practice-areas__card::before {
  content:'';
  position:absolute; top:0; left:0;
  width:4px; height:100%;
  background: linear-gradient(180deg, var(--color-gold), var(--color-gold-light));
  opacity:0;
  transition: opacity var(--transition);
}
.practice-areas__card:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); border-color:var(--color-gold); }
.practice-areas__card:hover::before { opacity:1; }
.practice-areas__icon { font-size:1.75rem; color:var(--color-gold); margin-bottom:1rem; display:block; }
.practice-areas__title { font-size:1.15rem; margin-bottom:0.6rem; }
.practice-areas__description { color:var(--color-charcoal); font-size:0.9375rem; line-height:1.7; margin:0; }

@media (min-width:768px)  { .practice-areas__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .practice-areas__grid { grid-template-columns:repeat(3,1fr); } }

/* ============================================
   Why Choose Us
   ============================================ */
.why-choose-us { background: var(--color-white); }
.why-choose-us__heading { text-align:center; margin-bottom:3rem; }
.why-choose-us__grid { display:grid; grid-template-columns:1fr; gap:2rem; }
.why-choose-us__item {
  text-align:center; padding:2rem 1.5rem;
  border-radius:var(--radius-lg);
  border: 1px solid var(--color-border);
  transition: box-shadow var(--transition), transform var(--transition);
}
.why-choose-us__item:hover { box-shadow:var(--shadow-card-hover); transform:translateY(-4px); }
.why-choose-us__icon { font-size:1.75rem; color:var(--color-gold); margin-bottom:1rem; display:block; }
.why-choose-us__title { font-size:1.1rem; margin-bottom:0.6rem; }
.why-choose-us__description { color:var(--color-charcoal); font-size:0.9375rem; line-height:1.7; margin:0; }

@media (min-width:768px)  { .why-choose-us__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .why-choose-us__grid { grid-template-columns:repeat(4,1fr); } }

/* ============================================
   Industries
   ============================================ */
.industries { background: var(--color-navy); }
.industries__heading { text-align:center; color:var(--color-white); margin-bottom:3rem; }
.industries__grid { display:grid; grid-template-columns:1fr; gap:1rem; }
.industries__item {
  display:flex; align-items:center; gap:0.85rem;
  padding:1.1rem 1.5rem;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(201,168,76,0.15);
  border-radius:var(--radius);
  transition: background var(--transition), border-color var(--transition);
}
.industries__item:hover { background:rgba(201,168,76,0.1); border-color:rgba(201,168,76,0.4); }
.industries__icon { font-size:1.25rem; color:var(--color-gold); flex-shrink:0; }
.industries__label { font-size:1rem; font-weight:500; color:var(--color-white); }

@media (min-width:768px)  { .industries__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .industries__grid { grid-template-columns:repeat(4,1fr); } }

/* ============================================
   Team
   ============================================ */
.team { background: var(--color-off-white); }
.team__heading { text-align:center; margin-bottom:0.75rem; }
.team__subheading {
  text-align:center; color:var(--color-charcoal);
  max-width:500px; margin:0 auto 3rem;
}
.team__grid {
  display:grid; grid-template-columns:1fr; gap:2.5rem;
}
/* Two-card centered layout */
.team__grid--centered {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width:600px) {
  .team__grid--centered { grid-template-columns: repeat(2,1fr); }
}

.team__card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow:hidden;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition), box-shadow var(--transition);
}
.team__card:hover { transform:translateY(-6px); box-shadow:var(--shadow-card-hover); }
.team__headshot-wrapper {
  width:100%; aspect-ratio:3/4; overflow:hidden;
  background: #e8e4dc;
}
.team__headshot {
  width:100%; height:100%; object-fit:cover; object-position:top center;
  transition: transform var(--transition);
}
.team__card:hover .team__headshot { transform:scale(1.04); }
.team__info {
  padding: 1.5rem 1.25rem 1.75rem;
  text-align:center;
  border-top: 3px solid var(--color-gold);
}
.team__name { font-size:1.2rem; margin-bottom:0.3rem; }
.team__title { color:var(--color-gold); font-size:0.875rem; font-weight:600; margin-bottom:0.25rem; }
.team__expertise { color:var(--color-charcoal); font-size:0.875rem; margin:0; }

/* ============================================
   Testimonials
   ============================================ */
.testimonials { background: var(--color-navy); }
.testimonials__heading { text-align:center; color:var(--color-white); margin-bottom:3rem; }
.testimonials__carousel { max-width:820px; margin:0 auto; position:relative; }
.testimonials__track { position:relative; min-height:220px; }
.testimonials__card { display:none; text-align:center; padding:2rem 1rem; }
.testimonials__card[data-index="0"] { display:block; }
.testimonials__quote {
  font-family:var(--font-heading);
  font-size:clamp(1.05rem,2vw,1.25rem);
  line-height:1.85; font-style:italic;
  margin-bottom:1.75rem;
  color:rgba(255,255,255,0.9);
}
.testimonials__quote::before { content:'\201C'; font-size:3rem; color:var(--color-gold); line-height:0; vertical-align:-0.6rem; margin-right:0.2rem; }
.testimonials__client { display:flex; flex-direction:column; gap:0.25rem; }
.testimonials__client-name { font-weight:600; font-size:1rem; color:var(--color-white); }
.testimonials__company { color:var(--color-gold); font-size:0.875rem; }
.testimonials__controls { display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:2rem; }
.testimonials__arrow {
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.1);
  border:1px solid rgba(201,168,76,0.3);
  color:var(--color-white); font-size:1.1rem;
  transition: background var(--transition), border-color var(--transition);
}
.testimonials__arrow:hover { background:rgba(201,168,76,0.2); border-color:var(--color-gold); }
.testimonials__dots { display:flex; gap:0.5rem; }
.testimonials__dot {
  width:10px; height:10px; border-radius:50%;
  background:rgba(255,255,255,0.25);
  transition: background var(--transition), transform var(--transition);
}
.testimonials__dot--active { background:var(--color-gold); transform:scale(1.3); }

/* ============================================
   Case Highlights
   ============================================ */
.case-highlights { background: var(--color-white); }
.case-highlights__heading { text-align:center; margin-bottom:0.75rem; }
.case-highlights__subheading { text-align:center; color:var(--color-charcoal); max-width:600px; margin:0 auto 3rem; }
.case-highlights__grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
.case-highlights__card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:2rem 1.75rem;
  box-shadow:var(--shadow-card);
  transition: transform var(--transition), box-shadow var(--transition);
  position:relative;
}
.case-highlights__card::after {
  content:'';
  position:absolute; bottom:0; left:0;
  width:100%; height:3px;
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
  opacity:0; transition: opacity var(--transition);
}
.case-highlights__card:hover { transform:translateY(-5px); box-shadow:var(--shadow-card-hover); }
.case-highlights__card:hover::after { opacity:1; }
.case-highlights__title { font-size:1.15rem; margin-bottom:0.75rem; }
.case-highlights__description { color:var(--color-charcoal); font-size:0.9375rem; line-height:1.7; margin-bottom:1rem; }
.case-highlights__metric { font-weight:700; color:var(--color-gold); font-size:1rem; }

@media (min-width:768px)  { .case-highlights__grid { grid-template-columns:repeat(2,1fr); } }

/* ============================================
   Insights
   ============================================ */
.insights { background: var(--color-off-white); }
.insights__heading { text-align:center; margin-bottom:0.75rem; }
.insights__subheading { text-align:center; color:var(--color-charcoal); max-width:600px; margin:0 auto 3rem; }
.insights__grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
.insights__card {
  display:flex; flex-direction:column;
  background:var(--color-white);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  padding:1.75rem;
  box-shadow:var(--shadow-card);
  transition: transform var(--transition), box-shadow var(--transition);
  color:inherit;
}
.insights__card:hover { transform:translateY(-5px); box-shadow:var(--shadow-card-hover); }
.insights__category {
  display:inline-block; font-size:0.7rem; font-weight:700;
  text-transform:uppercase; letter-spacing:0.1em;
  color:var(--color-navy); background:rgba(201,168,76,0.15);
  padding:0.25rem 0.6rem; border-radius:3px; margin-bottom:0.75rem;
}
.insights__title { font-size:1.1rem; margin-bottom:0.5rem; line-height:1.4; }
.insights__date { font-size:0.8rem; color:#999; margin-bottom:0.75rem; }
.insights__excerpt { color:var(--color-charcoal); font-size:0.9375rem; line-height:1.7; margin:0; }

@media (min-width:768px)  { .insights__grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px) { .insights__grid { grid-template-columns:repeat(4,1fr); } }

/* ============================================
   Contact
   ============================================ */
.contact { background: var(--color-white); }
.contact__heading { text-align:center; margin-bottom:0.75rem; }
.contact__subheading { text-align:center; color:var(--color-charcoal); max-width:600px; margin:0 auto 3rem; }
.contact__grid { display:grid; grid-template-columns:1fr; gap:3rem; }
.contact__form-group { margin-bottom:1.25rem; }
.contact__label { display:block; font-weight:600; font-size:0.875rem; margin-bottom:0.4rem; color:var(--color-deep-gray); }
.contact__input {
  width:100%; padding:0.8rem 1rem;
  font-family:var(--font-body); font-size:1rem;
  border:1.5px solid var(--color-border);
  border-radius:var(--radius);
  background:var(--color-white); color:var(--color-deep-gray);
  transition: border-color var(--transition), box-shadow var(--transition);
}
.contact__input:focus { outline:none; border-color:var(--color-navy); box-shadow:0 0 0 3px rgba(27,42,74,0.1); }
.contact__input.field-error { border-color:#c0392b; box-shadow:0 0 0 3px rgba(192,57,43,0.1); }
.contact__select {
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233C3C3C' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center;
  padding-right:2.5rem;
}
.contact__textarea { resize:vertical; min-height:130px; }
.contact__error { display:block; font-size:0.8rem; color:#c0392b; margin-top:0.25rem; min-height:1.2rem; }
.contact__submit {
  display:inline-block; padding:0.95rem 2.5rem;
  background:linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  color:var(--color-navy); font-weight:700; font-size:0.9375rem;
  border-radius:var(--radius); cursor:pointer;
  transition: transform var(--transition), box-shadow var(--transition);
  box-shadow:0 4px 20px rgba(201,168,76,0.3);
}
.contact__submit:hover, .contact__submit:focus {
  transform:translateY(-2px);
  box-shadow:0 8px 32px rgba(201,168,76,0.45);
}
.contact__form-message { margin-top:1rem; padding:0.75rem 1rem; border-radius:var(--radius); font-size:0.9375rem; font-weight:500; }
.contact__form-message:empty { display:none; }
.contact__form-message--success { background:#eafaf1; color:#1e8449; border:1px solid #a9dfbf; }
.contact__form-message--error   { background:#fdedec; color:#c0392b; border:1px solid #f5b7b1; }
.contact__info {
  padding:2.5rem 2rem;
  background:linear-gradient(145deg, var(--color-navy), var(--color-navy-light));
  color:var(--color-white); border-radius:var(--radius-lg);
  border:1px solid rgba(201,168,76,0.2);
}
.contact__info-heading { color:var(--color-white); margin-bottom:1.75rem; }
.contact__info-item { display:flex; align-items:flex-start; gap:0.85rem; margin-bottom:1.5rem; }
.contact__info-icon { font-size:1.25rem; color:var(--color-gold); flex-shrink:0; margin-top:0.15rem; }
.contact__info-item strong { display:block; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:0.25rem; color:var(--color-gold); }
.contact__info-item p { margin:0; font-size:0.9375rem; line-height:1.6; }
.contact__info-item a { color:var(--color-white); text-decoration:underline; text-underline-offset:2px; }
.contact__info-item a:hover { color:var(--color-gold); }

@media (min-width:768px) { .contact__grid { grid-template-columns:1.4fr 1fr; } }

/* ============================================
   Footer
   ============================================ */
.site-footer {
  background: var(--color-navy);
  color:rgba(255,255,255,0.8);
  padding-top:4rem; padding-bottom:1.75rem;
  border-top:1px solid rgba(201,168,76,0.2);
}
.footer__grid { display:grid; grid-template-columns:1fr; gap:2.5rem; margin-bottom:3rem; }
.footer__logo { display:inline-block; margin-bottom:0.75rem; }
.footer__logo-img { height:3rem; width:auto; }
.footer__tagline { font-size:0.875rem; color:rgba(255,255,255,0.55); max-width:260px; letter-spacing:0.06em; text-transform:uppercase; }
.footer__heading { font-family:var(--font-body); font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--color-gold); margin-bottom:1.1rem; }
.footer__links { display:flex; flex-direction:column; gap:0.6rem; }
.footer__link { font-size:0.9rem; color:rgba(255,255,255,0.65); transition:color var(--transition); }
.footer__link:hover { color:var(--color-white); }
.footer__social-links { display:flex; flex-direction:column; gap:0.6rem; }
.footer__social-link { font-size:0.9rem; color:rgba(255,255,255,0.65); transition:color var(--transition); }
.footer__social-link:hover { color:var(--color-gold); }
.footer__bottom {
  border-top:1px solid rgba(255,255,255,0.1);
  padding-top:1.25rem; text-align:center;
  font-size:0.8rem; color:rgba(255,255,255,0.4);
}
.footer__bottom p { margin:0; }

@media (min-width:768px) { .footer__grid { grid-template-columns:2fr 1fr 1fr 1fr; } }

/* ============================================
   Image Banner Strip (img3.jpg)
   ============================================ */
.img-banner {
  position: relative;
  height: 260px;
  overflow: hidden;
}
.img-banner__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(1.05);
  transition: transform 8s ease;
}
.img-banner:hover .img-banner__img { transform: scale(1); }
.img-banner__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(13,27,42,0.82) 0%,
    rgba(27,42,74,0.65) 100%
  );
}
.img-banner__text {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.img-banner__text span {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3vw, 2.2rem);
  font-style: italic;
  color: var(--color-white);
  letter-spacing: 0.04em;
  text-align: center;
  text-shadow: 0 2px 20px rgba(0,0,0,0.4);
  border-bottom: 2px solid var(--color-gold);
  padding-bottom: 0.4rem;
}

/* ============================================
   Contact Section — background image (img4.jpg)
   ============================================ */
.contact {
  position: relative;
  overflow: hidden;
}
.contact__bg-wrapper {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.contact__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0.08;
}
.contact__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(245,244,240,0.97) 0%,
    rgba(245,244,240,0.93) 100%
  );
}
.contact__inner {
  position: relative;
  z-index: 1;
}

/* ============================================
   Top Contact Bar
   ============================================ */
.topbar {
  background: var(--color-navy);
  border-bottom: 1px solid rgba(201,168,76,0.25);
  font-size: 0.78rem;
  color: rgba(255,255,255,0.7);
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  z-index: 1001;
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 2.4rem;
}
.topbar__contact {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.topbar__item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  color: rgba(255,255,255,0.72);
  transition: color var(--transition);
  white-space: nowrap;
}
.topbar__item:hover { color: var(--color-gold); }
.topbar__icon { font-size: 0.85rem; }
.topbar__right {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.topbar__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  font-size: 0.7rem;
  font-weight: 700;
  color: rgba(255,255,255,0.65);
  transition: border-color var(--transition), color var(--transition), background var(--transition);
}
.topbar__social:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
  background: rgba(201,168,76,0.1);
}

/* Hide phone on very small screens */
@media (max-width: 480px) {
  .topbar__contact a:last-child { display: none; }
}
/* Hide topbar on mobile entirely to save space */
@media (max-width: 640px) {
  .topbar { display: none; }
}

/* Adjust header and body offset for topbar */
.site-header { top: 2.4rem; }
body { padding-top: calc(5rem + 2.4rem); }

@media (max-width: 640px) {
  .site-header { top: 0; }
  body { padding-top: 5rem; }
}

/* ============================================
   Footer — Improved
   ============================================ */
.site-footer {
  background: var(--color-navy);
  color: rgba(255,255,255,0.75);
  padding-top: 0;
  padding-bottom: 0;
}
.footer__accent-bar {
  height: 4px;
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light), var(--color-gold));
}
.site-footer .container { padding-top: 4rem; padding-bottom: 0; }

.footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
@media (min-width: 640px)  { .footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer__grid { grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 3rem; } }

/* Brand */
.footer__logo { display: inline-block; margin-bottom: 0.85rem; }
.footer__logo-img { height: 3.25rem; width: auto; }
.footer__tagline {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: 0.75rem;
}
.footer__brand-desc {
  font-size: 0.875rem;
  line-height: 1.7;
  color: rgba(255,255,255,0.55);
  max-width: 280px;
  margin-bottom: 1.25rem;
}
.footer__social-row {
  display: flex;
  gap: 0.6rem;
}
.footer__social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(201,168,76,0.35);
  font-size: 0.8rem;
  font-weight: 700;
  color: rgba(255,255,255,0.7);
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}
.footer__social-btn:hover {
  background: var(--color-gold);
  border-color: var(--color-gold);
  color: var(--color-navy);
}

/* Columns */
.footer__col {}
.footer__heading {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-gold);
  margin-bottom: 1.1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(201,168,76,0.2);
}
.footer__links {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer__link {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.6);
  transition: color var(--transition), padding-left var(--transition);
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.footer__link::before {
  content: '›';
  color: var(--color-gold);
  font-size: 1rem;
  line-height: 1;
}
.footer__link:hover { color: var(--color-white); padding-left: 4px; }

/* Contact list */
.footer__contact-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.footer__contact-item {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.65);
  line-height: 1.6;
}
.footer__contact-item--address { align-items: flex-start; }
.footer__contact-icon {
  color: var(--color-gold);
  flex-shrink: 0;
  margin-top: 0.1rem;
  font-size: 0.9rem;
}
.footer__contact-link {
  color: rgba(255,255,255,0.65);
  transition: color var(--transition);
  word-break: break-all;
}
.footer__contact-link:hover { color: var(--color-gold); }

/* Bottom bar */
.footer__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.25rem 0;
  font-size: 0.8rem;
  color: rgba(255,255,255,0.35);
  text-align: center;
}
.footer__bottom p { margin: 0; }
.footer__bottom-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.footer__bottom-link {
  color: rgba(255,255,255,0.4);
  transition: color var(--transition);
}
.footer__bottom-link:hover { color: var(--color-gold); }
.footer__bottom-sep { color: rgba(255,255,255,0.2); }

@media (min-width: 640px) {
  .footer__bottom {
    flex-direction: row;
    justify-content: space-between;
  }
}

/* ============================================
   Scroll offset — compensate for fixed header
   ============================================ */
/* topbar (2.4rem) + nav (5rem) + a little breathing room */
:root {
  --header-offset: 8rem;
}

section[id],
div[id] {
  scroll-margin-top: var(--header-offset);
}

/* On mobile (topbar hidden), only nav height applies */
@media (max-width: 640px) {
  :root { --header-offset: 5.5rem; }
}

/* ============================================
   Nav logo company name
   ============================================ */
.nav__logo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
}
.nav__logo-name {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.nav__logo-name--main {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: 0.04em;
}
.nav__logo-name--sub {
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-gold);
}

/* ============================================
   Footer logo company name
   ============================================ */
.footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
  text-decoration: none;
}
.footer__logo-name {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.footer__logo-name--main {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-white);
  letter-spacing: 0.03em;
}
.footer__logo-name--sub {
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-gold);
}

/* Bump up heading sizes slightly for Cormorant (it runs smaller than Playfair) */
h1 { font-size: clamp(2.5rem, 5.5vw, 4.25rem); }
h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.65rem); }

/* Nav logo name — update to Cormorant */
.nav__logo-name--main {
  font-family: var(--font-heading);
  font-size: 1.35rem;
}
.nav__logo-name--sub {
  font-family: var(--font-body);
}

/* ============================================
   Lucide icon sizing
   ============================================ */
.practice-areas__icon i,
.practice-areas__icon svg {
  width: 2rem;
  height: 2rem;
  stroke: var(--color-gold);
  stroke-width: 1.5;
}
.why-choose-us__icon i,
.why-choose-us__icon svg {
  width: 2rem;
  height: 2rem;
  stroke: var(--color-gold);
  stroke-width: 1.5;
}
.industries__icon i,
.industries__icon svg {
  width: 1.35rem;
  height: 1.35rem;
  stroke: var(--color-gold);
  stroke-width: 1.5;
}

/* ============================================
   About — subsections (practice areas, why us, team inside about)
   ============================================ */
.about__subsection {
  margin-top: 5rem;
  padding-top: 4rem;
  border-top: 1px solid var(--color-border);
}
.about__sub-intro {
  text-align: center;
  color: var(--color-charcoal);
  max-width: 600px;
  margin: 0 auto 2.5rem;
}

/* Industries dark band inside about */
.about__industries-band {
  background: var(--color-navy);
  padding: 4rem 0;
  margin-top: 5rem;
}
.about__industries-heading {
  color: var(--color-white) !important;
  margin-bottom: 2.5rem;
}
.about__industries-heading::after {
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
}

/* Remove bottom padding from about section since subsections handle spacing */
.about.section {
  padding-bottom: 0;
}
.about .container:last-child {
  padding-bottom: var(--section-padding-y);
}

/* Testimonials band inside about section */
.about__testimonials-band {
  background: var(--color-navy);
  padding: 5rem 0;
  margin-top: 5rem;
}
.about__testimonials-heading {
  color: var(--color-white) !important;
  margin-bottom: 2.5rem;
}
.about__testimonials-heading::after {
  background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light));
}
