/* CFD Vision homepage
 * Distinctive presentation layer for editable Gutenberg content.
 * Scoped to front-page classes only.
 */

.cfdv-main--front .cfdv-entry-content { overflow:hidden; }
.cfdv-main--front .cfdv-entry-content > * { max-width:none; }
.cfdv-home-inner { width:min(calc(100% - 48px),1200px); margin-inline:auto; }
.cfdv-home-section { padding:78px 0; }
.cfdv-home-kicker {
  margin:0 0 9px;
  color:#087f87;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.cfdv-home-title {
  margin:0 0 14px;
  color:#173153;
  font-size:clamp(2rem,3.5vw,3rem);
  line-height:1.08;
  letter-spacing:-.025em;
}
.cfdv-home-copy { max-width:780px; color:#5a6672; font-size:1rem; line-height:1.72; }
.cfdv-home-primary .wp-block-button__link,
.cfdv-home-secondary .wp-block-button__link {
  min-height:48px;
  border-radius:7px;
  padding:13px 22px;
  font-size:.9rem;
  font-weight:700;
  letter-spacing:0;
  text-transform:none;
}
.cfdv-home-primary .wp-block-button__link {
  background:#087f87;
  border-color:#087f87;
  color:#fff;
}
.cfdv-home-primary .wp-block-button__link:hover {
  background:#075f65;
  border-color:#075f65;
}
.cfdv-home-secondary .wp-block-button__link {
  background:rgba(0,0,0,.18);
  border-color:rgba(255,255,255,.82);
  color:#fff;
}
.cfdv-home-secondary .wp-block-button__link:hover {
  background:#fff;
  border-color:#fff;
  color:#173153;
}

/* Hero */
.cfdv-home-hero {
  position:relative;
  min-height:670px;
  padding:150px 0 92px;
  isolation:isolate;
}
.cfdv-home-hero .wp-block-cover__image-background {
  object-fit:cover;
  object-position:58% 47%;
}
.cfdv-home-hero .wp-block-cover__background {
  background:linear-gradient(90deg,rgba(2,26,53,.94) 0%,rgba(2,34,70,.83) 42%,rgba(2,37,76,.40) 70%,rgba(2,37,76,.18) 100%) !important;
  opacity:1 !important;
}
.cfdv-home-hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(circle at 75% 50%,rgba(34,196,215,.14),transparent 34%),
    linear-gradient(120deg,transparent 0 47%,rgba(255,255,255,.035) 48%,transparent 49% 100%);
}
.cfdv-home-hero .wp-block-cover__inner-container { position:relative; z-index:2; }
.cfdv-home-hero-content { max-width:760px; }
.cfdv-home-hero .cfdv-home-kicker { color:#6ee5ed; }
.cfdv-home-hero h1 {
  margin:0 0 22px;
  max-width:760px;
  color:#fff;
  font-size:clamp(2.65rem,5.3vw,4.7rem);
  line-height:1.02;
  letter-spacing:-.035em;
}
.cfdv-home-hero .cfdv-home-lead {
  max-width:760px;
  margin:0 0 28px;
  color:rgba(255,255,255,.94);
  font-size:clamp(1rem,1.25vw,1.12rem);
  line-height:1.72;
}
.cfdv-home-hero .wp-block-buttons { gap:12px; }

/* Three proof / capability highlights */
.cfdv-home-highlights {
  position:relative;
  z-index:5;
  background:#fff;
  border-bottom:1px solid #e6edf3;
  box-shadow:0 14px 34px rgba(22,48,78,.06);
}
.cfdv-home-highlights .cfdv-home-inner { padding:30px 0; }
.cfdv-home-highlight-grid { gap:0; margin:0; }
.cfdv-home-highlight {
  position:relative;
  padding:8px 30px 8px 78px;
}
.cfdv-home-highlight + .cfdv-home-highlight { border-left:1px solid #dce6ef; }
.cfdv-home-highlight h3 {
  margin:0 0 6px;
  color:#173153;
  font-size:1.05rem;
  line-height:1.25;
}
.cfdv-home-highlight p { margin:0; color:#66717c; font-size:.9rem; line-height:1.6; }
.cfdv-home-icon {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#edf8f9;
  color:#087f87;
}
.cfdv-home-highlight .cfdv-home-icon {
  position:absolute;
  left:20px;
  top:7px;
}
.cfdv-home-icon svg {
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Services */
.cfdv-home-services {
  background:linear-gradient(180deg,#f8fbfd 0%,#eef5f8 100%);
}
.cfdv-home-section-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:34px;
}
.cfdv-home-section-head .wp-block-buttons { flex:0 0 auto; }
.cfdv-home-service-row { gap:18px; margin:0 0 18px; }
.cfdv-home-service-card {
  height:100%;
  min-height:230px;
  padding:24px;
  border:1px solid #e0e9ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 7px 24px rgba(20,55,86,.05);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.cfdv-home-service-card:hover {
  transform:translateY(-4px);
  border-color:rgba(8,127,135,.32);
  box-shadow:0 16px 34px rgba(20,55,86,.10);
}
.cfdv-home-service-card .cfdv-home-icon { margin-bottom:18px; }
.cfdv-home-service-card h3 {
  margin:0 0 10px;
  color:#173153;
  font-size:1.06rem;
  line-height:1.25;
}
.cfdv-home-service-card p {
  margin:0;
  color:#65717d;
  font-size:.9rem;
  line-height:1.62;
}

/* Project slider */
.cfdv-home-projects { background:#fff; }
.cfdv-home-project-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:30px;
}
.cfdv-home-project-actions { display:flex; gap:9px; align-items:center; }
.cfdv-project-arrow {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border:1px solid #d9e4ec !important;
  border-radius:50% !important;
  background:#fff !important;
  color:#173153 !important;
  padding:0 !important;
  font-size:1.25rem !important;
  line-height:1 !important;
  min-height:43px !important;
  text-transform:none !important;
  cursor:pointer;
  box-shadow:none !important;
}
.cfdv-project-arrow:hover { background:#eef7f8 !important; border-color:#9dcbd0 !important; transform:none !important; }
.cfdv-project-arrow:disabled { opacity:.38; cursor:default; background:#fff !important; border-color:#d9e4ec !important; }
.cfdv-project-track {
  display:grid !important;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 54px)/4);
  grid-template-columns:none !important;
  gap:18px;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding:2px 2px 20px;
}
.cfdv-project-track::-webkit-scrollbar { display:none; }
.cfdv-project-card {
  min-width:0;
  overflow:hidden;
  scroll-snap-align:start;
  border:1px solid #dfe8ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(20,55,86,.06);
}
.cfdv-project-card .wp-block-image { margin:0; aspect-ratio:16/10; overflow:hidden; background:#eaf0f4; }
.cfdv-project-card .wp-block-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.cfdv-project-card:hover .wp-block-image img { transform:scale(1.035); }
.cfdv-project-card h3,
.cfdv-project-card p { margin-left:19px; margin-right:19px; }
.cfdv-project-card h3 {
  margin-top:17px;
  margin-bottom:7px;
  color:#173153;
  font-size:1.04rem;
  line-height:1.28;
}
.cfdv-project-card p {
  margin-top:0;
  margin-bottom:11px;
  color:#65717d;
  font-size:.86rem;
  line-height:1.55;
}
.cfdv-project-card .cfdv-project-link {
  margin-bottom:19px;
  color:#087f87;
  font-weight:700;
}
.cfdv-project-card .cfdv-project-link a { color:#087f87; text-decoration:none; }
.cfdv-project-dots { display:flex; justify-content:center; gap:7px; min-height:11px; margin-top:3px; }
.cfdv-project-dot {
  width:8px;
  height:8px;
  border:0;
  border-radius:50%;
  padding:0;
  min-height:0;
  background:#c9d5dd;
  cursor:pointer;
}
.cfdv-project-dot.is-active { background:#087f87; }

/* Impact cover */
.cfdv-home-impact {
  position:relative;
  min-height:500px;
  padding:82px 0;
  isolation:isolate;
}
.cfdv-home-impact .wp-block-cover__image-background { object-fit:cover; object-position:72% 50%; }
.cfdv-home-impact .wp-block-cover__background {
  background:linear-gradient(90deg,rgba(2,30,59,.96) 0%,rgba(2,43,83,.87) 48%,rgba(2,43,83,.50) 100%) !important;
  opacity:1 !important;
}
.cfdv-home-impact::after {
  content:"";
  position:absolute;
  z-index:1;
  inset:-15% -10%;
  pointer-events:none;
  opacity:.36;
  background:
    repeating-radial-gradient(ellipse at 76% 52%,
      transparent 0 17px,
      rgba(70,221,232,.22) 18px 19px,
      transparent 20px 34px);
  transform:rotate(-7deg) translateX(-4%);
  animation:cfdv-flow-lines 14s linear infinite;
}
@keyframes cfdv-flow-lines {
  0% { transform:rotate(-7deg) translateX(-4%); }
  50% { transform:rotate(-7deg) translateX(3%); }
  100% { transform:rotate(-7deg) translateX(-4%); }
}
.cfdv-home-impact .wp-block-cover__inner-container { position:relative; z-index:2; }
.cfdv-home-impact-copy { max-width:620px; }
.cfdv-home-impact .cfdv-home-kicker { color:#71e4eb; }
.cfdv-home-impact h2 { margin:0 0 15px; color:#fff; font-size:clamp(2.1rem,4vw,3.25rem); line-height:1.06; }
.cfdv-home-impact .cfdv-home-copy { color:rgba(255,255,255,.88); }
.cfdv-home-impact-grid { gap:18px; margin-top:36px; }
.cfdv-home-impact-card {
  padding:20px 18px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:rgba(5,31,59,.32);
  backdrop-filter:blur(3px);
}
.cfdv-home-impact-card h3 { margin:0 0 7px; color:#fff; font-size:1rem; }
.cfdv-home-impact-card p { margin:0; color:rgba(255,255,255,.78); font-size:.84rem; line-height:1.55; }
.cfdv-home-impact-card .cfdv-home-icon { margin-bottom:14px; background:rgba(26,190,203,.16); color:#71e4eb; }

/* Confidence */
.cfdv-home-confidence { background:linear-gradient(180deg,#f7fbfd,#edf5f8); }
.cfdv-confidence-layout { gap:42px; align-items:flex-start !important; }
.cfdv-confidence-intro { flex-basis:31% !important; }
.cfdv-confidence-steps { flex-basis:69% !important; gap:0; align-items:stretch !important; }
.cfdv-confidence-step {
  position:relative;
  height:100%;
  padding:0 22px 0 24px;
}
.cfdv-confidence-step + .cfdv-confidence-step { border-left:1px solid #d9e4ea; }
.cfdv-confidence-number {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  margin:0 0 14px;
  border:2px solid #087f87;
  border-radius:50%;
  color:#087f87;
  font-weight:800;
  line-height:1;
}
.cfdv-confidence-step h3 {
  margin:0 0 8px;
  color:#173153;
  font-size:.96rem;
  line-height:1.25;
}
.cfdv-confidence-step p { margin:0; color:#68737d; font-size:.82rem; line-height:1.55; }

/* FAQ */
.cfdv-home-faq { background:#fff; }
.cfdv-home-faq-grid { gap:18px; margin-top:28px; }
.cfdv-home-faq-card {
  height:100%;
  padding:24px;
  border:1px solid #dfe8ef;
  border-radius:12px;
  background:#fff;
  box-shadow:0 7px 22px rgba(20,55,86,.045);
}
.cfdv-home-faq-card h3 { margin:0 0 9px; color:#173153; font-size:1rem; line-height:1.3; }
.cfdv-home-faq-card p { margin:0; color:#65717d; font-size:.9rem; line-height:1.62; }

/* Final CTA */
.cfdv-home-cta {
  padding:42px 0;
  background:linear-gradient(90deg,#087f87 0%,#0798a4 58%,#0d7aa5 100%);
  color:#fff;
}
.cfdv-home-cta .wp-block-columns { align-items:center; margin:0; }
.cfdv-home-cta h2 { margin:0 0 6px; color:#fff; font-size:clamp(1.75rem,3vw,2.45rem); }
.cfdv-home-cta p { margin:0; color:rgba(255,255,255,.88); }
.cfdv-home-cta .cfdv-home-primary .wp-block-button__link { background:#fff; border-color:#fff; color:#173153; }

/* Responsive */
@media (max-width:1024px) {
  .cfdv-home-inner { width:min(calc(100% - 40px),1200px); }
  .cfdv-home-hero { min-height:600px; padding:125px 0 76px; }
  .cfdv-home-highlight { padding-left:68px; padding-right:20px; }
  .cfdv-home-highlight .cfdv-home-icon { left:14px; }
  .cfdv-home-service-row { flex-wrap:wrap !important; }
  .cfdv-home-service-row > .wp-block-column { flex-basis:calc(50% - 9px) !important; }
  .cfdv-project-track { grid-auto-columns:calc((100% - 18px)/2); }
  .cfdv-confidence-layout { display:block !important; }
  .cfdv-confidence-intro { margin-bottom:34px; }
  .cfdv-confidence-steps { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .cfdv-confidence-step { padding:0; }
  .cfdv-confidence-step + .cfdv-confidence-step { border-left:0; }
}

@media (max-width:760px) {
  .cfdv-home-section { padding:58px 0; }
  .cfdv-home-inner { width:calc(100% - 30px); }
  .cfdv-home-section-head,
  .cfdv-home-project-head { display:block; }
  .cfdv-home-section-head .wp-block-buttons,
  .cfdv-home-project-actions { margin-top:20px; }
  .cfdv-home-hero { min-height:650px; padding:120px 0 62px; }
  .cfdv-home-hero .wp-block-cover__image-background { object-position:68% center; }
  .cfdv-home-hero .wp-block-cover__background {
    background:linear-gradient(180deg,rgba(2,26,53,.90) 0%,rgba(2,31,63,.88) 62%,rgba(2,31,63,.80) 100%) !important;
  }
  .cfdv-home-hero h1 { font-size:clamp(2.15rem,10vw,3.1rem); }
  .cfdv-home-highlight-grid { display:block !important; }
  .cfdv-home-highlight { padding:22px 18px 22px 76px; }
  .cfdv-home-highlight + .cfdv-home-highlight { border-left:0; border-top:1px solid #dce6ef; }
  .cfdv-home-highlight .cfdv-home-icon { top:20px; left:15px; }
  .cfdv-home-service-row { display:block !important; }
  .cfdv-home-service-row > .wp-block-column + .wp-block-column { margin-top:15px; }
  .cfdv-home-service-card { min-height:0; }
  .cfdv-project-track { grid-auto-columns:86%; gap:14px; }
  .cfdv-project-arrow { display:none; }
  .cfdv-home-impact { padding:62px 0; }
  .cfdv-home-impact-grid { display:block !important; }
  .cfdv-home-impact-card + .cfdv-home-impact-card { margin-top:12px; }
  .cfdv-confidence-steps { grid-template-columns:1fr; }
  .cfdv-confidence-step { padding-bottom:24px; border-bottom:1px solid #d9e4ea; }
  .cfdv-confidence-step:last-child { border-bottom:0; }
  .cfdv-home-faq-grid { display:block !important; }
  .cfdv-home-faq-card + .cfdv-home-faq-card { margin-top:14px; }
  .cfdv-home-cta .wp-block-columns { display:block !important; }
  .cfdv-home-cta .wp-block-buttons { margin-top:22px; justify-content:flex-start !important; }
}

@media (prefers-reduced-motion: reduce) {
  .cfdv-home-impact::after { animation:none; }
  .cfdv-project-track { scroll-behavior:auto; }
}
