/* TR InnovaTech — fluid typography, spacing & responsive system */

:root{
  --text-xs:clamp(0.72rem,0.68rem + 0.18vw,0.78rem);
  --text-sm:clamp(0.84rem,0.8rem + 0.2vw,0.92rem);
  --text-base:clamp(0.95rem,0.9rem + 0.28vw,1.0625rem);
  --text-md:clamp(1.02rem,0.96rem + 0.35vw,1.125rem);
  --text-lg:clamp(1.15rem,1.05rem + 0.5vw,1.3rem);
  --text-xl:clamp(1.4rem,1.2rem + 0.9vw,1.75rem);
  --text-2xl:clamp(1.65rem,1.35rem + 1.4vw,2.2rem);
  --text-3xl:clamp(2rem,1.55rem + 2.2vw,3rem);
  --leading-tight:1.15;
  --leading-normal:1.65;
  --leading-relaxed:1.78;
  --page-px:clamp(1rem,2.5vw,1.5rem);
  --section-py:clamp(3.75rem,5.5vw,5.5rem);
  --content-readable:65ch;
}

html{
  font-size:100%;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

body{
  font-size:var(--text-base);
  line-height:var(--leading-normal);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* Readable body copy */
p,.s-sub,.hero-sub,.page-hero-lead,.svc-hero-lead,.contact-card p,
.svc-overview-text p,.svc-feat p,.svc-proc p,.svc-audience p,
.insight-card p,.ai-cap p,.proc-step-card p,.cs-card p{
  font-size:var(--text-sm);
  line-height:var(--leading-relaxed);
}

/* Section headings */
.s-h,.page-hero h1,.svc-hero h1,.hero h1,.cta-band .s-h,.svc-cta-inner .s-h{
  font-size:var(--text-2xl);
  line-height:var(--leading-tight);
}

.s-sub,.page-hero-lead,.svc-hero-lead,.hero-sub,.cta-band .s-sub{
  font-size:var(--text-md);
  max-width:var(--content-readable);
}

.s-label,.ai-live,.svc-tag,.insight-meta{
  font-size:var(--text-xs);
}

/* Card & component titles */
.svc-feat h3,.svc-proc h3,.svc-audience h3,.ai-cap h3,
.contact-card h3,.proc-step-card h3,.cs-card h3,.insight-card h3{
  font-size:var(--text-sm);
  line-height:var(--leading-tight);
}

/* Buttons & nav — legible minimums */
.btn,.svc-btn,.svc-cta-btn,.hdr-cta,.foot-cta-btn{
  font-size:var(--text-sm);
}

.hdr-nav a,.nav-dd-trigger{
  font-size:clamp(0.8rem,0.75rem + 0.15vw,0.875rem);
}

/* Forms — prevent iOS zoom */
input,select,textarea,.cf-field input,.cf-field select,.cf-field textarea,
#chatInput,.chat-input-field{
  font-size:max(16px,var(--text-sm));
}

/* Section spacing */
.section,.cta-band,.page-hero,.svc-hero{
  padding-top:var(--section-py);
  padding-bottom:var(--section-py);
  padding-left:var(--page-px);
  padding-right:var(--page-px);
}

/* Touch-friendly targets */
@media(hover:none) and (pointer:coarse){
  .btn,.svc-btn,.hdr-cta,.chip,.chat-intro-chip,.mob-nav a,.nav-dd-item{
    min-height:44px;
  }
  .hdr-mob{
    min-width:44px;min-height:44px;
    display:flex;align-items:center;justify-content:center;
  }
}

/* Tablet refinements */
@media(max-width:1100px){
  .hdr{height:64px}
  .logo-img{height:38px}
}

@media(max-width:768px){
  .s-head{margin-bottom:2.25rem}
  .page-hero-grid,.svc-hero-grid,.hero-inner{
    gap:2rem;
  }
  .page-hero h1,.svc-hero h1,.hero h1{
    font-size:clamp(1.85rem,7vw,2.35rem);
  }
  .page-hero-btns,.svc-hero-btns,.hero-btns,.cta-band-btns,.svc-cta-btns{
    flex-direction:column;
    align-items:stretch;
  }
  .page-hero-btns .btn,.svc-hero-btns .svc-btn,.hero-btns .btn-glow,
  .hero-btns .btn-outline,.cta-band-btns .btn,.svc-cta-btns .svc-cta-btn{
    width:100%;
    justify-content:center;
  }
  .foot-cta-btn{width:100%;justify-content:center}
  .contact-form-card{padding:1.5rem}
  .cs-card-body{padding:1.35rem}
}

@media(max-width:480px){
  :root{--section-py:clamp(3rem,8vw,4rem)}
  .cs-metrics{grid-template-columns:1fr 1fr}
  .svc-res-grid .svc-res{padding:1.25rem .75rem}
  .svc-res-num{font-size:clamp(1.45rem,6vw,1.75rem)}
}

/* Safe area for notched devices */
@supports(padding:max(0px)){
  header{padding-left:max(var(--page-px),env(safe-area-inset-left));padding-right:max(var(--page-px),env(safe-area-inset-right))}
  footer{padding-left:max(var(--page-px),env(safe-area-inset-left));padding-right:max(var(--page-px),env(safe-area-inset-right));padding-bottom:max(2rem,env(safe-area-inset-bottom))}
  .chat-fab-wrap{right:max(1rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom))}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
