/* =========================================================
   UPFINITY — HOME PAGE
   Loaded after theme.css
   ========================================================= */

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */
.hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(150deg, var(--violet-700) 0%, var(--violet-500) 58%, var(--blue-500) 130%);
  color:#fff;
  padding:76px 0 96px;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:var(--grad-mesh);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:70px;
  background:var(--surface-50);
  border-radius:60% 40% 0 0 / 100% 100% 0 0;
}
.hero .container{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:40px;
}
.hero-text{ max-width:560px; }
.hero-text h1{
  color:#fff;
  font-size:clamp(34px, 4.6vw, 54px);
  font-weight:700;
  letter-spacing:-.01em;
  margin-bottom:18px;
}
.hero-text p{
  font-size:18px;
  line-height:1.65;
  color:rgba(255,255,255,.88);
  max-width:480px;
}
.hero-cta-row{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-top:30px;
}
.hero .btn-about{ background:#fff; color:var(--violet-700); box-shadow:0 14px 34px -10px rgba(10,5,40,.45); }
.hero .btn-about::after{ border-color:var(--violet-700); }
.hero .btn-about:hover{ background:#fff; color:var(--violet-900); }

.hero-note{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-label);
  font-size:13.5px;
  color:rgba(255,255,255,.85);
}
.hero-note svg{ width:18px; height:18px; flex:none; }

.capability-strip{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:34px;
}
.capability-strip span{
  font-family:var(--font-label);
  font-size:12.5px;
  font-weight:500;
  letter-spacing:.02em;
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.24);
  padding:7px 14px;
  border-radius:var(--radius-pill);
  backdrop-filter:blur(6px);
}

.hero-art{ position:relative; }
.hero-art-frame{
  position:relative;
  max-width:440px;
  margin:0 auto;
}
.hero-art-frame img{
  position:relative;
  z-index:1;
  filter:drop-shadow(0 30px 50px rgba(10,5,45,.35));
}
.hero-glow{
  position:absolute;
  inset:-10%;
  background:radial-gradient(circle, rgba(255,255,255,.22), transparent 65%);
  filter:blur(6px);
  z-index:0;
}
.float-chip{
  position:absolute;
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  color:var(--ink-900);
  padding:11px 16px;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  font-family:var(--font-label);
  font-size:13px;
  font-weight:600;
  z-index:2;
  animation:float-y 5s ease-in-out infinite;
}
.float-chip .chip-ic{
  width:30px; height:30px;
  border-radius:9px;
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.float-chip svg{ width:16px; height:16px; }
.chip-a{ top:6%; left:-8%; }
.chip-a .chip-ic{ background:#e8f9f4; color:var(--teal-500); }
.chip-b{ bottom:-7%; right:-2%; animation-delay:1.2s; }
.chip-b .chip-ic{ background:#efe9fd; color:var(--violet-600); }
@keyframes float-y{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-12px); }
}
@media (prefers-reduced-motion: reduce){ .float-chip{ animation:none; } }

@media (max-width: 980px){
  .hero .container{ grid-template-columns:1fr; text-align:center; }
  .hero-text{ max-width:100%; margin:0 auto; }
  .hero-text p{ margin-left:auto; margin-right:auto; }
  .hero-cta-row{ justify-content:center; }
  .capability-strip{ justify-content:center; }
  .hero-art{ margin-top:44px; }
  .chip-a{ left:2%; }
  .chip-b{ right:0; }
}
@media (max-width:560px){
  .hero{ padding:56px 0 84px; }
  .float-chip{ font-size:11.5px; padding:9px 12px; }
  .float-chip .chip-ic{ width:26px; height:26px; }
}

/* ---------------------------------------------------------
   Generic section rhythm
   --------------------------------------------------------- */
.section{ padding:96px 0; }
.section-head{ max-width:640px; margin:0 auto 52px; text-align:center; }
.section-head h2{ font-size:clamp(28px,3.4vw,38px); }
.section-head p{ color:var(--ink-500); font-size:16.5px; line-height:1.7; }

/* ---------------------------------------------------------
   Services
   --------------------------------------------------------- */
#services{ position:relative; }
.features{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px;
}
.card{
  position:relative;
  background:var(--surface-0);
  padding:32px 28px;
  border-radius:var(--radius-lg);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
  text-align:left;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
}
.card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-md);
  border-color:transparent;
}
.card-icon{
  width:54px; height:54px;
  border-radius:16px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
  color:#fff;
}
.card-icon svg{ width:26px; height:26px; }
.card:nth-child(6n+1) .card-icon{ background:linear-gradient(135deg,var(--violet-700),var(--violet-500)); }
.card:nth-child(6n+2) .card-icon{ background:linear-gradient(135deg,var(--blue-500),#7fa3ec); }
.card:nth-child(6n+3) .card-icon{ background:linear-gradient(135deg,var(--teal-500),#59d9bc); }
.card:nth-child(6n+4) .card-icon{ background:linear-gradient(135deg,var(--violet-500),var(--blue-500)); }
.card:nth-child(6n+5) .card-icon{ background:linear-gradient(135deg,var(--amber-500),#f6c877); }
.card:nth-child(6n+6) .card-icon{ background:linear-gradient(135deg,var(--violet-900),var(--violet-600)); }

.card h3{
  font-size:19px;
  margin-bottom:10px;
  display:flex;
  align-items:center;
  gap:8px;
}
.card h3 i, .card h3 svg{ display:none; } /* legacy icon markup, superseded by .card-icon */
.card p{ color:var(--ink-500); font-size:14.5px; line-height:1.7; margin:0; }

@media (max-width:980px){
  .features{ grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){
  .features{ grid-template-columns:1fr; }
  .card{ padding:28px 24px; }
}

/* ---------------------------------------------------------
   Growth / quote panel  (was the plain flex "grow" section)
   --------------------------------------------------------- */
.growth-panel{ padding:20px 0 96px; }
.growth-card{
  position:relative;
  overflow:hidden;
  background:var(--ink-900);
  border-radius:var(--radius-lg);
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  align-items:center;
  gap:0;
  box-shadow:var(--shadow-lg);
}
.growth-card::before{
  content:"";
  position:absolute; inset:0;
  background:var(--grad-mesh);
  opacity:.7;
}
.growth-media{
  position:relative;
  z-index:1;
  padding:40px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.growth-media img{ max-width:100%; filter:drop-shadow(0 20px 40px rgba(0,0,0,.45)); }
.growth-copy{
  position:relative;
  z-index:1;
  padding:52px 56px 52px 12px;
  color:#fff;
}
.growth-copy .quote-mark{
  font-family:var(--font-display);
  font-size:64px;
  line-height:1;
  color:var(--teal-500);
  display:block;
  margin-bottom:6px;
}
.growth-copy h3{
  color:#fff;
  font-size:clamp(22px,2.6vw,28px);
  font-weight:600;
  line-height:1.4;
  margin-bottom:20px;
}
.growth-copy p{
  font-size:14.5px;
  line-height:1.9;
  color:#c6c2db;
  margin:0;
}

@media (max-width:900px){
  .growth-card{ grid-template-columns:1fr; }
  .growth-media{ padding:36px 36px 0; }
  .growth-copy{ padding:32px 36px 44px; text-align:left; }
}

/* ---------------------------------------------------------
   Process
   --------------------------------------------------------- */
#process{ background:var(--surface-100); }
.process-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:22px;
  counter-reset:step;
}
.process-step{
  position:relative;
  background:var(--surface-0);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:28px 22px 26px;
}
.process-step .step-num{
  font-family:var(--font-label);
  font-size:13px;
  font-weight:600;
  color:var(--violet-400);
  letter-spacing:.06em;
}
.process-step .step-icon{
  width:44px; height:44px;
  border-radius:12px;
  background:var(--surface-100);
  color:var(--violet-600);
  display:flex; align-items:center; justify-content:center;
  margin:14px 0 16px;
}
.process-step .step-icon svg{ width:22px; height:22px; }
.process-step h3{ font-size:16.5px; margin-bottom:8px; }
.process-step p{ font-size:13.8px; color:var(--ink-500); line-height:1.65; margin:0; }
@media (min-width:981px){
  .process-step:not(:last-child)::after{
    content:"";
    position:absolute;
    top:36px; right:-22px;
    width:22px; height:1.5px;
    background:repeating-linear-gradient(90deg, var(--violet-400) 0 6px, transparent 6px 10px);
  }
}
@media (max-width:980px){ .process-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .process-grid{ grid-template-columns:1fr; } }

/* ---------------------------------------------------------
   About
   --------------------------------------------------------- */
#about{ background:var(--surface-50); }
.about-container{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:64px;
  max-width:var(--container);
  margin:0 auto;
}
.about-text{ text-align:left; }
.about-text h2{ font-size:clamp(28px,3.2vw,36px); }
.about-text > p{ font-size:16px; line-height:1.75; color:var(--ink-500); max-width:480px; }

.about-list{
  list-style:none;
  padding:0;
  margin:24px 0 28px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.about-list li{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:15px;
  font-weight:500;
  color:var(--ink-700);
}
.about-list .li-check{
  width:24px; height:24px;
  border-radius:50%;
  background:#e8f9f4;
  color:var(--teal-500);
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.about-list .li-check svg{ width:13px; height:13px; }

.about-actions{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:14px; }
.about-email{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:14px;
  color:var(--ink-500);
}
.about-email svg{ width:17px; height:17px; color:var(--violet-500); }
.about-email strong{ color:var(--ink-900); font-weight:600; }

.about-image{ position:relative; }
.about-image-frame{
  position:relative;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.about-image-frame img{ width:100%; }
.about-badge{
  position:absolute;
  left:-24px;
  bottom:-22px;
  background:#fff;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg);
  padding:16px 20px;
  display:flex;
  align-items:center;
  gap:12px;
}
.about-badge .badge-ic{
  width:38px; height:38px;
  border-radius:11px;
  background:linear-gradient(135deg,var(--violet-700),var(--blue-500));
  color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.about-badge .badge-ic svg{ width:19px; height:19px; }
.about-badge strong{ display:block; font-size:14px; color:var(--ink-900); font-family:var(--font-label); }
.about-badge span{ display:block; font-size:12px; color:var(--ink-500); }

@media (max-width:980px){
  .about-container{ grid-template-columns:1fr; gap:48px; text-align:center; }
  .about-text{ text-align:center; }
  .about-text > p{ margin-left:auto; margin-right:auto; }
  .about-list{ align-items:center; }
  .about-actions{ justify-content:center; }
  .about-image{ max-width:440px; margin:0 auto; }
  .about-badge{ left:50%; transform:translateX(-50%); bottom:-20px; }
}
@media (max-width:560px){
  .section{ padding:72px 0; }
  .about-badge{ position:static; transform:none; margin:20px auto 0; width:max-content; }
}

/* ---------------------------------------------------------
   Why Choose Us
   --------------------------------------------------------- */
#why-us{ background:var(--surface-100); }
.why-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.why-card{
  background:var(--surface-0);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:30px 26px;
  box-shadow:var(--shadow-sm);
  transition:transform .3s ease, box-shadow .3s ease;
}
.why-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.why-icon{
  width:50px; height:50px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--violet-700),var(--blue-500));
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:18px;
}
.why-icon svg{ width:24px; height:24px; }
.why-card h3{ font-size:18.5px; margin-bottom:8px; }
.why-card p{ color:var(--ink-500); font-size:14.5px; line-height:1.7; margin:0; }

.why-card-featured{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:1fr 1.05fr;
  align-items:center;
  gap:36px;
  background:linear-gradient(120deg, var(--violet-900) 0%, var(--violet-700) 55%, var(--blue-500) 130%);
  border:none;
  color:#fff;
  overflow:hidden;
  position:relative;
}
.why-card-featured::before{
  content:"";
  position:absolute; inset:0;
  background:var(--grad-mesh);
  opacity:.8;
  pointer-events:none;
}
.why-card-featured:hover{ transform:none; }
.xray-copy{ position:relative; z-index:1; }
.xray-badge{
  display:inline-block;
  font-family:var(--font-label);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.3);
  padding:6px 14px;
  border-radius:var(--radius-pill);
  margin-bottom:16px;
}
.why-card-featured h3{ color:#fff; font-size:23px; margin-bottom:12px; }
.why-card-featured p{ color:rgba(255,255,255,.85); font-size:15px; line-height:1.7; margin-bottom:22px; }
.why-card-featured .btn-about{ background:#fff; color:var(--violet-700); box-shadow:none; }
.why-card-featured .btn-about::after{ border-color:var(--violet-700); }
.why-card-featured .btn-about:hover{ background:#fff; color:var(--violet-900); }

.xray-report{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.22);
  border-radius:var(--radius-md);
  padding:22px 24px;
  backdrop-filter:blur(6px);
}
.xray-report-head{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-label);
  font-size:13px;
  font-weight:600;
  letter-spacing:.1em;
  color:#fff;
  margin-bottom:16px;
}
.xray-report-dot{
  width:9px; height:9px;
  border-radius:50%;
  background:var(--teal-500);
  flex:none;
}
.xray-report-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.xray-col h4{
  color:#fff;
  font-size:13px;
  font-weight:600;
  margin-bottom:12px;
  line-height:1.4;
}
.xray-col ul{ list-style:none; padding:0; display:flex; flex-direction:column; gap:9px; }
.xray-col li{
  font-size:13px;
  line-height:1.4;
  color:rgba(255,255,255,.9);
  padding-left:20px;
  position:relative;
}
.xray-col-good li::before{
  content:"";
  position:absolute; left:0; top:5px;
  width:11px; height:11px;
  border-radius:50%;
  background:var(--teal-500);
}
.xray-col-opp li::before{
  content:"";
  position:absolute; left:0; top:5px;
  width:11px; height:11px;
  border-radius:50%;
  background:var(--amber-500);
}

@media (max-width:980px){
  .why-grid{ grid-template-columns:1fr 1fr; }
  .why-card-featured{ grid-column:1 / -1; grid-template-columns:1fr; }
}
@media (max-width:640px){
  .why-grid{ grid-template-columns:1fr; }
  .xray-report-cols{ grid-template-columns:1fr; }
}

/* ---------------------------------------------------------
   Pricing
   --------------------------------------------------------- */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px;
  align-items:stretch;
}
.price-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:var(--surface-0);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:34px 30px;
  box-shadow:var(--shadow-sm);
  transition:transform .3s ease, box-shadow .3s ease;
}
.price-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.price-card h3{ font-size:20px; margin-bottom:4px; }
.price-tagline{ color:var(--ink-500); font-size:13.8px; margin-bottom:20px; }
.price-amount{
  font-family:var(--font-display);
  font-weight:700;
  font-size:38px;
  color:var(--ink-900);
  margin-bottom:22px;
}
.price-currency{ font-size:22px; font-weight:600; vertical-align:2px; margin-right:2px; }
.price-period{ font-size:14.5px; font-weight:500; color:var(--ink-500); }
.price-amount-custom{ font-size:30px; }
.price-features{
  list-style:none;
  padding:0;
  margin:0 0 28px;
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
}
.price-features li{
  font-size:14.3px;
  line-height:1.5;
  color:var(--ink-700);
  padding-left:24px;
  position:relative;
}
.price-features li::before{
  content:"";
  position:absolute; left:0; top:6px;
  width:14px; height:14px;
  border-radius:50%;
  background:#e8f9f4;
  box-shadow:inset 0 0 0 2px var(--teal-500);
}
.price-cta{ width:100%; justify-content:center; }

.price-card-popular{
  border-color:transparent;
  box-shadow:var(--shadow-lg);
  transform:scale(1.03);
  z-index:1;
}
.price-card-popular:hover{ transform:scale(1.03) translateY(-6px); }
.price-badge{
  position:absolute;
  top:-13px;
  left:50%;
  transform:translateX(-50%);
  background:var(--grad-brand);
  color:#fff;
  font-family:var(--font-label);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:7px 18px;
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-md);
}
.price-note{
  text-align:center;
  max-width:720px;
  margin:36px auto 0;
  color:var(--ink-500);
  font-size:13.5px;
  line-height:1.7;
}

@media (max-width:980px){
  .pricing-grid{ grid-template-columns:1fr; max-width:440px; margin:0 auto; }
  .price-card-popular{ transform:none; order:-1; }
  .price-card-popular:hover{ transform:translateY(-6px); }
}

/* ---------------------------------------------------------
   Testimonials
   --------------------------------------------------------- */
#testimonials{ background:var(--surface-100); }
.testimonial-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:26px;
}
.testimonial-card{
  background:var(--surface-0);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:30px 28px;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  transition:transform .3s ease, box-shadow .3s ease;
}
.testimonial-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.testimonial-stars{ display:flex; gap:3px; color:var(--amber-500); margin-bottom:16px; }
.testimonial-stars svg{ width:16px; height:16px; }
.testimonial-quote{
  font-size:15px;
  line-height:1.75;
  color:var(--ink-700);
  flex:1;
  margin-bottom:24px;
}
.testimonial-person{ display:flex; align-items:center; gap:12px; }
.testimonial-avatar{
  width:44px; height:44px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--violet-700),var(--blue-500));
  color:#fff;
  font-family:var(--font-label);
  font-weight:600;
  font-size:14px;
  display:flex; align-items:center; justify-content:center;
  flex:none;
}
.testimonial-person strong{ display:block; font-size:14.5px; color:var(--ink-900); }
.testimonial-person > span > span{ display:block; font-size:12.8px; color:var(--ink-500); }

@media (max-width:980px){ .testimonial-grid{ grid-template-columns:1fr; max-width:520px; margin:0 auto; } }

/* ---------------------------------------------------------
   FAQ
   --------------------------------------------------------- */
.faq-list{
  max-width:780px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.faq-item{
  background:var(--surface-0);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:6px 26px;
  box-shadow:var(--shadow-sm);
  transition:border-color .25s ease;
}
.faq-item[open]{ border-color:var(--violet-400); }
.faq-item summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:20px 0;
  cursor:pointer;
  font-family:var(--font-display);
  font-weight:600;
  font-size:15.5px;
  color:var(--ink-900);
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-toggle{
  position:relative;
  width:22px; height:22px;
  border-radius:50%;
  background:var(--surface-100);
  flex:none;
  transition:background .25s ease, transform .3s ease;
}
.faq-toggle::before, .faq-toggle::after{
  content:"";
  position:absolute;
  top:50%; left:50%;
  background:var(--violet-600);
  transform:translate(-50%,-50%);
  transition:opacity .2s ease;
}
.faq-toggle::before{ width:10px; height:2px; }
.faq-toggle::after{ width:2px; height:10px; }
.faq-item[open] .faq-toggle{ background:var(--grad-brand); transform:rotate(180deg); }
.faq-item[open] .faq-toggle::before{ background:#fff; }
.faq-item[open] .faq-toggle::after{ opacity:0; }
.faq-answer{ padding:0 0 22px; }
.faq-answer p{ color:var(--ink-500); font-size:14.5px; line-height:1.75; margin:0; max-width:640px; }

@media (max-width:560px){
  .faq-item{ padding:4px 18px; }
  .faq-item summary{ font-size:14.5px; }
}
