/* HOMEPAGE REFINEMENTS (Top alignment, visible value numbers, uniform practice cards & titles) */

img{max-width:100%;height:auto;display:block;}
.nav-link,button,.btn,input[type=submit]{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.container{max-width:1200px;margin:0 auto;padding:0 20px;}

   /* ================= SECTION HERO ================= */

   .hero{padding:46px 0 0;position:relative;}
   .hero-background{
     position:relative;
     max-width:1200px;
     margin:0 auto;
     min-height:420px;
     height:58vh;
     max-height:520px;
     display:flex;
     flex-direction:column;
     align-items:center;
     justify-content:flex-start;
     border:1px solid rgba(184,160,111,.25);
     border-radius:24px;
     padding:70px 40px 150px; /* extra bottom space for absolutely-positioned tagline */
     background:rgba(15,47,53,.58);
     backdrop-filter:blur(4px);
     box-shadow:0 14px 50px -6px rgba(0,0,0,.55);
     overflow:hidden;
   }
   .hero-background::before{
     content:"";
     position:absolute;inset:0;
     background:url("../images/bangkok-city-sunrise-thailand.jpg") center/cover no-repeat;
     opacity:.38;
   }
   .hero-background::after{
     content:"";
     position:absolute;inset:0;
     background:linear-gradient(180deg,rgba(15,47,53,0) 0%,rgba(15,47,53,.68) 94%);
     pointer-events:none;
   }
   
   .hero-text{
     width:100%;
     display:flex;
     flex-direction:column;
     align-items:center;
     position:relative;
     color:#B8A06F;
     font-weight:300;
     z-index:5;
   }
   
   /* Wrap so tagline can position relative to brand width */
   .hero-brand-wrap{
     position:relative;
     display:inline-block;
     text-align:center;
   }
   
   /* Big brand word */
   .hero-brand{
     font-size:clamp(4rem,20vw,220px);
     line-height:.82;
     font-weight:700;
     letter-spacing:-.02em;
     margin:0;
     color:#B8A06F;
     text-shadow:0 10px 40px rgba(0,0,0,.55);
     white-space:nowrap;
   }

   .hero-logo img {
    max-width: 90%;   /* make it shrink within container */
    height: auto;     /* maintain aspect ratio */
    display: inline-block;
    filter: brightness(0) saturate(100%) invert(67%) sepia(35%) saturate(407%) hue-rotate(21deg) brightness(93%) contrast(89%);

  }
   
   /* Tagline aligned under right portion of 'Solvere' */
   .hero-tagline{
     --tag-align:60%; /* adjust: 55% a bit more left, 65% more right */
     position:absolute;
     top:100%;
     left:var(--tag-align);
     transform:translateX(-5%); /* small tweak so it does not look too far right */
     margin-top:14px;
     width:min(560px,70vw);
     text-align:left;
     display:flex;
     flex-direction:column;
     align-items:flex-start;
   }
   
   /* Primary line */
   .hero-primary{
     font-size:clamp(2.2rem,4.4vw,40px);
     font-weight:700;
     line-height:1.05;
     margin:0 0 4px;
     letter-spacing:-.015em;
     color:#B8A06F;
     text-shadow:0 3px 14px rgba(0,0,0,.55);
   }
   
   /* Secondary */
   .hero-line-small{
     font-size:clamp(1rem,1.15vw,19px);
     font-weight:500;
     line-height:1.28;
   }
   
   /* Copy */
   .hero-copy-small{
     font-size:clamp(.95rem,1.05vw,18px);
     line-height:1.34;
     max-width:520px;
   }
   
   /* CTA */
   .hero-cta{
     --accent:#C22E3A;
     margin-top:2px;
     color:#B8A06F;
     font-weight:600;
     text-decoration:none;
     display:inline-flex;
     align-items:center;
     gap:8px;
     padding:5px 0 9px;
     position:relative;
     z-index:10;
     opacity:1;
   }
   .hero-cta::before{
     content:'→';
     font-size:19px;
     line-height:1;
     color:var(--accent);
     transition:transform .35s;
   }
   .hero-cta::after{
     content:"";
     position:absolute;
     left:0;bottom:0;
     width:100%;height:4px;
     background:var(--accent);
     border-radius:2px;
     opacity:0;
     transition:opacity .3s;
   }
   .hero-cta:hover::after{opacity:1;}
   .hero-cta:hover::before{transform:translateX(6px);}
   
   /* Mobile: center tagline directly under brand */
   @media (max-width:820px){
     .hero-background{padding:60px 30px 80px;}
     .hero-tagline{
       position:static;
       transform:none;
       left:auto;
       margin-top:18px;
       width:100%;
       align-items:center;
       text-align:center;
     }
     .hero-primary{font-size:clamp(2rem,10vw,50px);}
     .hero-copy-small{max-width:640px;}
     .hero-cta{align-self:center;}
   }
   
   @media (max-width:500px){
     .hero-background{padding:54px 22px 70px;border-radius:20px;}
     .hero-brand{font-size:clamp(3.2rem,22vw,140px);}
     .hero-primary{font-size:clamp(1.9rem,11vw,42px);}
   }




/* ================= SECTION TITLES ================= */
.section-title{
  font-size:48px;
  font-weight:700;
  color:#B8A06F;
  line-height:1.15;
  margin:0 0 16px;
}
.accent-bar{
  width:120px;
  height:5px;
  background:#C22E3A;
  border-radius:3px;
  margin:0 0 26px;
}

/* ================= ABOUT ================= */
.about{padding:80px 0 60px;}
.about-content{display:flex;gap:70px;align-items:center;}
.about-image{flex:1;max-width:580px;}
.team-photo{
  width:100%;
  height:auto;
  object-fit:contain;
  background:#0F2F35;
  border-radius:26px;
  box-shadow:0 22px 60px -10px rgba(0,0,0,.6);
}
.about-text{flex:1;}
.about-text p{
  font-size:16px;
  line-height:1.68;
  text-align:left;
  opacity:.9;
  font-weight:300;
  margin:0 0 18px;
}
.about-text p:first-of-type{font-weight:600;font-size:20px;opacity:1;margin-top:4px;}
.about-text p:second-of-type{font-weight:600;font-size:20px;opacity:1;margin-top:4px;}
/* ================= VALUES ================= */
.values{padding:40px 0 30px;}
.values-header{margin-bottom:8px;}
.values-grid{
  --gap:30px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:var(--gap);
  margin-top:28px;
}
.value-card{
  position:relative;
  padding:30px 28px 92px;
  border:1px solid rgba(184,160,111,.25);
  border-radius:26px;
  background:
    linear-gradient(120deg,rgba(15,47,53,.72),rgba(24,61,69,.55) 55%,rgba(15,47,53,.72)),
    radial-gradient(circle at 25% 20%,rgba(194,46,58,0.22),transparent 70%);
  backdrop-filter:blur(2px);
  min-height:340px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  transition:transform .55s cubic-bezier(.19,.9,.32,1), box-shadow .6s, border-color .45s;
}
.value-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(145deg,rgba(194,46,58,0) 0%,rgba(194,46,58,0.18) 100%);
  opacity:0;
  transition:opacity .6s;
  mix-blend-mode:overlay;
}
.value-card:hover{
  transform:translateY(-10px);
  box-shadow:0 28px 60px -12px rgba(0,0,0,.65);
  border-color:#C22E3A;
}
.value-card:hover::after{opacity:.9;}
.value-title{
  font-size:24px;
  font-weight:700;
  margin:0 0 16px;
  padding-left:18px;
  position:relative;
  letter-spacing:.4px;
}
.value-title::before{
  content:'';
  position:absolute;
  left:0;top:6px;
  width:10px;height:70%;
  background:#C22E3A;
  border-radius:6px;
  box-shadow:0 0 0 2px rgba(194,46,58,.35);
}
.value-description{
  font-size:16px;
  line-height:1.55;
  font-weight:300;
  opacity:.93;
  margin:0;
  max-width:260px;
}
.value-number{
  position:absolute;
  bottom:18px;
  right:22px;
  font-size:64px;
  font-weight:700;
  letter-spacing:-2px;
  line-height:1;
  color:#C22E3A;
  text-shadow:0 6px 18px rgba(0,0,0,.6),0 0 10px rgba(194,46,58,.55);
  transition:transform .55s, text-shadow .55s;
}
.value-card:hover .value-number{
  transform:translateY(-6px) scale(1.05);
  text-shadow:0 10px 26px rgba(0,0,0,.65),0 0 16px rgba(194,46,58,.8);
}

/* ================= PRACTICE AREA ================= */
.practice{padding:90px 0 70px;}
.practice-description{
  font-size:18px;
  max-width:720px;
  line-height:1.62;
  opacity:.9;
  font-weight:300;
  margin:0 0 42px;
}
.practice-link-container{margin:0 0 40px;}
.practice-learn-more{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 26px 12px 22px;
  border:1px solid #C22E3A;
  border-radius:40px;
  text-decoration:none;
  font-weight:600;
  font-size:16px;
  letter-spacing:.5px;
  color:#B8A06F;
  position:relative;
  transition:background .4s, color .4s, transform .45s;
}
.practice-learn-more::before{
  content:'→';
  font-size:20px;
  color:#C22E3A;
  transform:translateY(1px);
  transition:transform .45s,color .45s;
}
.practice-learn-more:hover{
  background:#C22E3A;
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 10px 34px -8px rgba(194,46,58,.55);
}
.practice-learn-more:hover::before{color:#fff;transform:translate(6px,1px);}

.practice-grid{
  --card-h:460px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:36px;
  align-items:stretch;
}
.practice-card{
  position:relative;
  height:var(--card-h);
  border-radius:30px;
  overflow:hidden;
  background:#0F2F35;
  display:flex;
  align-items:stretch;
  box-shadow:0 16px 42px -10px rgba(0,0,0,.6);
  transition:transform .6s cubic-bezier(.19,.9,.32,1), box-shadow .55s;
}
.practice-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(15,47,53,.05) 0%,rgba(15,47,53,.78) 82%);
  z-index:1;
  pointer-events:none;
}
.practice-card:hover{
  transform:translateY(-12px);
  box-shadow:0 28px 64px -14px rgba(0,0,0,.7);
}
.practice-image{position:absolute;inset:0;}
.practice-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:brightness(.88);
  transition:filter .55s, transform .9s cubic-bezier(.19,.9,.32,1);
}
.practice-card:hover .practice-image img{filter:brightness(1);transform:scale(1.08);}
.practice-title{
  position:absolute;
  z-index:2;
  bottom:30px;
  left:50%;
  transform:translateX(-50%);
  font-size:28px;
  font-weight:600;
  color:#B8A06F;
  text-align:center;
  line-height:1.15;
  text-shadow:0 6px 22px rgba(0,0,0,.65);
  padding:10px 18px 12px;
  backdrop-filter:blur(3px);
  background:rgba(15,47,53,.45);
  border:1px solid rgba(184,160,111,.28);
  border-radius:18px;
  min-width:70%;
}
.practice-card:hover .practice-title{background:rgba(15,47,53,.65);border-color:#C22E3A;}

/* ================= CASES (HOME) ================= */
.cases-matters{padding:80px 0 90px;}
.cases-content{display:flex;gap:80px;align-items:flex-start;flex-wrap:wrap;}
.cases-text-wrapper{flex:1;min-width:320px;max-width:580px;}
.cases-text-wrapper p{
  font-size:18px;
  line-height:1.68;
  opacity:.9;
  font-weight:300;
  margin:0 0 36px;
  text-align:justify;
}
.cases-link-container{margin:0 0 10px;}
.cases-explore-more{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 28px 12px 24px;
  border:1px solid #C22E3A;
  border-radius:40px;
  text-decoration:none;
  font-weight:600;
  font-size:16px;
  letter-spacing:.5px;
  color:#B8A06F;
  transition:background .4s,color .4s,transform .45s;
  position:relative;
}
.cases-explore-more::before{
  content:'→';
  font-size:20px;
  color:#C22E3A;
  transform:translateY(1px);
  transition:transform .45s,color .45s;
}
.cases-explore-more:hover{
  background:#C22E3A;
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 10px 34px -8px rgba(194,46,58,.55);
}
.cases-explore-more:hover::before{color:#fff;transform:translate(6px,1px);}

.cases-image{
  flex:1;
  min-width:360px;
  height:460px;
  position:relative;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 16px 42px -10px rgba(0,0,0,.58);
  background:#0F2F35;
}
.cases-photo{
  width:100%;height:100%;object-fit:cover;border-radius:30px;
  filter:brightness(.9);
  transition:filter .5s, transform .9s cubic-bezier(.19,.9,.32,1);
}
.cases-image:hover .cases-photo{filter:brightness(1);transform:scale(1.06);}

/* ================= RESPONSIVE BREAKPOINTS ================= */
@media (max-width:1220px){
  .hero-background{padding:60px 60px 54px;}
}
@media (max-width:1060px){
  .about-content,.cases-content{flex-direction:column;gap:52px;}
  .hero-background{height:auto;min-height:420px;}
}
@media (max-width:900px){
  .practice-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;}
  .hero-background{padding:56px 50px 54px;}
  .hero-text .hero-heading{font-size:54px;}
}
@media (max-width:720px){
  .hero-background{padding:52px 40px 50px;}
  .section-title{font-size:40px;}
  .practice{padding:80px 0 60px;}
  .practice-title{font-size:24px;}
  .values-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));}
}
@media (max-width:560px){
  .hero{padding-top:40px;}
  .hero-background{padding:48px 28px 48px;border-radius:20px;}
  .practice-card{height:420px;}
  .practice-title{bottom:26px;font-size:22px;padding:8px 14px 10px;min-width:76%;}
  .cases-image{height:400px;}
  .value-card{padding:26px 24px 86px;}
  .value-number{font-size:58px;}
}
@media (max-width:440px){
  .section-title{font-size:34px;}
  .practice-title{font-size:20px;}
  .practice-card{height:380px;}
  .cases-image{height:360px;}
  .value-card{min-height:300px;}
}