/* Final front-end experience pass: restored loader, cleaner hero microcopy, richer forms/blog/publication layouts. */
:root{
  --final-primary:#8f96ff;
  --final-primary-strong:#5964e8;
  --final-primary-deep:#343a96;
  --final-soft:#f2f4ff;
  --final-mist:#fafaff;
  --final-cream:#fffdf6;
  --final-ink:#15172c;
  --final-text:#35384f;
  --final-muted:#697089;
  --final-border:rgba(143,150,255,.18);
  --final-border-strong:rgba(143,150,255,.34);
  --final-surface:rgba(255,255,255,.88);
  --final-shadow:0 24px 72px rgba(42,48,120,.12);
  --final-shadow-soft:0 16px 44px rgba(42,48,120,.09);
  --final-radius:30px;
}

/* Restore the calmer branded loading animation style */
body.portfolio-page .site-loader{
  background:
    radial-gradient(circle at 50% 46%, rgba(143,150,255,.18), transparent 14rem),
    radial-gradient(circle at 30% 15%, rgba(255,255,255,.94), transparent 20rem),
    linear-gradient(135deg,#fffdf8 0%,#ffffff 44%,#f0f2ff 100%) !important;
  overflow:hidden;
}
body.portfolio-page .site-loader::before,
body.portfolio-page .site-loader::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  border-radius:50%;
  border:1px solid rgba(143,150,255,.14);
  box-shadow:inset 0 0 40px rgba(143,150,255,.06);
  animation:loaderRipple 2.3s ease-in-out infinite;
}
body.portfolio-page .site-loader::after{
  width:350px;
  height:350px;
  opacity:.65;
  animation-delay:.42s;
}
body.portfolio-page .site-loader__ring{
  width:178px !important;
  height:178px !important;
  border:2px solid rgba(143,150,255,.14) !important;
  border-top-color:var(--final-primary) !important;
  border-right-color:rgba(143,150,255,.38) !important;
  box-shadow:inset 0 0 34px rgba(143,150,255,.09),0 24px 70px rgba(28,34,100,.14) !important;
}
body.portfolio-page .site-loader__logo{
  width:min(250px,68vw) !important;
  animation:loaderLogoFloat 1.8s ease-in-out infinite;
}
@keyframes loaderRipple{0%,100%{transform:scale(.92);opacity:.42}50%{transform:scale(1.05);opacity:.9}}
@keyframes loaderLogoFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.012)}}

/* Remove artificial eyebrow/status shapes but keep animation and emphasis */
body.portfolio-page .hero__availability,
body.portfolio-page .hero__eyebrow,
body.portfolio-page .page-hero__eyebrow,
body.portfolio-page .mini-label,
body.portfolio-page .timeline-eyebrow{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  padding:0 !important;
  width:auto;
  color:var(--final-primary-strong) !important;
  letter-spacing:.085em;
  text-transform:uppercase;
  font-weight:850;
}
body.portfolio-page .hero__availability{
  display:inline-flex;
  align-items:center;
  gap:.62rem;
  font-size:.86rem;
  margin-bottom:1.2rem;
  animation:availabilityFloat 3.4s ease-in-out infinite;
}
body.portfolio-page .hero__availability .pulse-dot,
body.portfolio-page .pulse-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--final-primary) !important;
  box-shadow:0 0 0 0 rgba(143,150,255,.44);
  animation:pulsePeriwinkle 1.8s ease-in-out infinite;
}
@keyframes availabilityFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes pulsePeriwinkle{0%{box-shadow:0 0 0 0 rgba(143,150,255,.42)}70%{box-shadow:0 0 0 10px rgba(143,150,255,0)}100%{box-shadow:0 0 0 0 rgba(143,150,255,0)}}

/* Shared editorial page refinements */
body.portfolio-page .editorial-page-hero,
body.portfolio-page .compact-page-hero .page-hero__inner{
  position:relative;
  margin-top:7rem;
  padding:clamp(2.2rem,4vw,4rem) clamp(1.2rem,3vw,2.4rem);
  border-radius:38px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.94),rgba(247,248,255,.9)),
    radial-gradient(circle at 80% 12%,rgba(143,150,255,.18),transparent 22rem);
  border:1px solid rgba(143,150,255,.16);
  box-shadow:var(--final-shadow-soft);
  overflow:hidden;
}
body.portfolio-page .editorial-page-hero::before,
body.portfolio-page .compact-page-hero .page-hero__inner::before{
  content:"";
  position:absolute;
  inset:auto -4rem -7rem auto;
  width:18rem;
  height:18rem;
  border-radius:50%;
  background:radial-gradient(circle,rgba(143,150,255,.18),transparent 64%);
  pointer-events:none;
}
body.portfolio-page .editorial-page-hero h1,
body.portfolio-page .compact-page-hero h1{
  max-width:880px;
  font-size:clamp(2.1rem,4vw,4.1rem);
  line-height:1.02;
  letter-spacing:-.055em;
  color:var(--final-ink);
  margin:.75rem 0 1rem;
  text-wrap:balance;
}
body.portfolio-page .editorial-page-hero p,
body.portfolio-page .compact-page-hero p{
  max-width:820px;
  color:var(--final-muted);
  font-size:1.06rem;
  line-height:1.75;
}
body.portfolio-page .editorial-overview{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  margin-top:1.4rem;
}
body.portfolio-page .editorial-overview__card{
  padding:1.35rem;
  border-radius:26px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(143,150,255,.14);
  box-shadow:0 16px 44px rgba(42,48,120,.075);
}
body.portfolio-page .editorial-overview__card span{
  color:var(--final-primary-strong);
  font-weight:900;
  font-size:.78rem;
}
body.portfolio-page .editorial-overview__card h3{
  color:var(--final-ink);
  font-size:1.05rem;
  margin:.45rem 0;
}
body.portfolio-page .editorial-overview__card p{color:var(--final-muted);line-height:1.6;margin:0;}
body.portfolio-page .editorial-filter{
  margin-top:1.2rem;
  display:flex;
  flex-wrap:wrap;
  gap:.55rem;
  align-items:center;
}
body.portfolio-page .editorial-filter span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:.44rem .8rem;
  border-radius:999px;
  background:rgba(143,150,255,.08);
  color:var(--final-primary-deep);
  border:1px solid rgba(143,150,255,.13);
  font-size:.8rem;
  font-weight:800;
}

/* Blog page: more magazine-like and stronger media handling */
body.portfolio-page .editorial-feature,
body.portfolio-page .publication-feature{
  display:grid;
  grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr);
  gap:0;
  overflow:hidden;
  border-radius:34px;
  background:var(--final-surface);
  border:1px solid var(--final-border);
  box-shadow:var(--final-shadow);
  backdrop-filter:blur(18px);
}
body.portfolio-page .editorial-feature__image,
body.portfolio-page .publication-feature__cover{
  position:relative;
  min-height:360px;
  background:linear-gradient(135deg,#f5f6ff,#ffffff);
  overflow:hidden;
  display:block;
}
body.portfolio-page .editorial-feature__image img,
body.portfolio-page .publication-feature__cover img,
body.portfolio-page .editorial-card__media img,
body.portfolio-page .refined-publication-card__cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s cubic-bezier(.22,1,.36,1),filter .55s ease;
}
body.portfolio-page .editorial-feature:hover .editorial-feature__image img,
body.portfolio-page .publication-feature:hover .publication-feature__cover img,
body.portfolio-page .editorial-card:hover .editorial-card__media img,
body.portfolio-page .refined-publication-card:hover .refined-publication-card__cover img{
  transform:scale(1.045);
  filter:saturate(1.06) contrast(1.02);
}
body.portfolio-page .editorial-feature__body,
body.portfolio-page .publication-feature__body{
  padding:clamp(1.6rem,3vw,2.7rem);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
body.portfolio-page .editorial-feature__body h3,
body.portfolio-page .publication-feature__body h3{
  font-size:clamp(1.55rem,2.3vw,2.4rem);
  line-height:1.08;
  letter-spacing:-.035em;
  color:var(--final-ink);
  margin:.7rem 0 .85rem;
}
body.portfolio-page .editorial-feature__body p,
body.portfolio-page .publication-feature__body p{
  color:var(--final-muted);
  line-height:1.78;
  font-size:1.02rem;
}
body.portfolio-page .editorial-meta,
body.portfolio-page .card-engagement-summary{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:1rem 0;
}
body.portfolio-page .editorial-meta span,
body.portfolio-page .card-engagement-summary span{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.4rem .72rem;
  border-radius:999px;
  background:rgba(143,150,255,.08);
  color:var(--final-primary-deep);
  font-size:.78rem;
  font-weight:800;
}
body.portfolio-page .editorial-grid,
body.portfolio-page .refined-publication-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
  align-items:stretch;
}
body.portfolio-page .editorial-card,
body.portfolio-page .refined-publication-card{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(143,150,255,.14);
  box-shadow:0 16px 44px rgba(42,48,120,.075);
}
body.portfolio-page .editorial-card::before,
body.portfolio-page .refined-publication-card::before,
body.portfolio-page .custom-form-card::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--final-primary),rgba(143,150,255,0));
  opacity:.9;
}
body.portfolio-page .editorial-card__media,
body.portfolio-page .refined-publication-card__cover{
  position:relative;
  display:block;
  height:220px;
  overflow:hidden;
  background:linear-gradient(135deg,#f6f7ff,#ffffff);
}
body.portfolio-page .editorial-card__body,
body.portfolio-page .refined-publication-card__body{
  padding:1.35rem;
}
body.portfolio-page .editorial-card__topline{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.7rem;}
body.portfolio-page .editorial-card__topline small{color:var(--final-muted);font-weight:800;}
body.portfolio-page .blog__title{font-size:1.25rem;line-height:1.22;margin:.5rem 0;}
body.portfolio-page .blog__title a,
body.portfolio-page .refined-publication-card h3 a{text-decoration:none;color:var(--final-ink) !important;}
body.portfolio-page .blog__excerpt,
body.portfolio-page .refined-publication-card p{color:var(--final-muted);line-height:1.68;}
body.portfolio-page .blog-video-preview,
body.portfolio-page .blog-video-embed{
  background:#11152d;
  border-radius:0;
}
body.portfolio-page .blog-video-preview iframe,
body.portfolio-page .blog-video-embed iframe{
  filter:saturate(1.05);
}
body.portfolio-page .blog-card-open-overlay{
  border-radius:999px !important;
  background:rgba(21,23,44,.76) !important;
  color:#fff !important;
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.18);
}

/* Publications: library layout with less crowding */
body.portfolio-page .publication-actions,
body.portfolio-page .card-actions,
body.portfolio-page .editorial-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;}
body.portfolio-page .refined-publication-card__body small,
body.portfolio-page .publication-feature__body small{color:var(--final-muted);font-weight:700;}
body.portfolio-page .publication-feature__cover::after,
body.portfolio-page .editorial-feature__image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(16,18,42,.12));
  pointer-events:none;
}

/* Unified contact and appointment forms */
body.portfolio-page .unified-contact-section{
  position:relative;
  padding-top:4rem;
}
body.portfolio-page .contact-switch{
  justify-content:flex-start;
  border-radius:28px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(143,150,255,.14);
  box-shadow:0 15px 42px rgba(42,48,120,.08);
  margin-bottom:1.1rem;
}
body.portfolio-page .contact-switch__button,
body.portfolio-page .contact-switch__link{
  color:var(--final-primary-deep) !important;
  background:rgba(143,150,255,.08) !important;
  border:1px solid rgba(143,150,255,.12) !important;
  box-shadow:none !important;
}
body.portfolio-page .contact-switch__button.active,
body.portfolio-page .contact-switch__button:hover,
body.portfolio-page .contact-switch__link:hover{
  color:#fff !important;
  background:var(--final-primary) !important;
  box-shadow:0 14px 30px rgba(143,150,255,.24) !important;
}
body.portfolio-page .unified-contact__layout{
  grid-template-columns:minmax(280px,.72fr) minmax(340px,1.28fr);
  gap:1.3rem;
}
body.portfolio-page .contact-panel,
body.portfolio-page .contact__form,
body.portfolio-page .form-side-note,
body.portfolio-page .custom-form-public{
  border-radius:32px !important;
  border:1px solid rgba(143,150,255,.15) !important;
  background:rgba(255,255,255,.9) !important;
  box-shadow:0 18px 54px rgba(42,48,120,.09) !important;
}
body.portfolio-page .contact-panel{padding:1.65rem !important;}
body.portfolio-page .contact-panel h3,
body.portfolio-page .contact__form h3,
body.portfolio-page .form-side-note h3{color:var(--final-ink);letter-spacing:-.025em;}
body.portfolio-page .contact-panel p{color:var(--final-muted);line-height:1.68;}
body.portfolio-page .contact__form{display:grid;gap:1rem;padding:1.45rem !important;}
body.portfolio-page .form-two-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
body.portfolio-page .contact__input,
body.portfolio-page .custom-form-field input,
body.portfolio-page .custom-form-field select,
body.portfolio-page .custom-form-field textarea{
  min-height:52px;
  border-radius:18px !important;
  border:1px solid rgba(143,150,255,.16) !important;
  background:#fff !important;
  color:var(--final-text) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
  transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}
body.portfolio-page .contact__input:focus,
body.portfolio-page .custom-form-field input:focus,
body.portfolio-page .custom-form-field select:focus,
body.portfolio-page .custom-form-field textarea:focus{
  border-color:var(--final-primary) !important;
  box-shadow:0 0 0 4px rgba(143,150,255,.12) !important;
  outline:0;
}
body.portfolio-page .contact-tab-panel.active{animation:contactPanelIn .24s ease both;}

/* Forms library and detail pages */
body.portfolio-page .forms-library__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.2rem;
  align-items:stretch;
}
body.portfolio-page .custom-form-card{
  position:relative;
  padding:1.45rem;
  min-height:285px;
  border-radius:30px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(143,150,255,.14);
  box-shadow:0 16px 45px rgba(42,48,120,.08);
  overflow:hidden;
}
body.portfolio-page .custom-form-card::after{
  content:"";
  position:absolute;
  right:-4rem;
  bottom:-5rem;
  width:12rem;
  height:12rem;
  border-radius:50%;
  background:radial-gradient(circle,rgba(143,150,255,.11),transparent 65%);
  pointer-events:none;
}
body.portfolio-page .custom-form-card h2{
  color:var(--final-ink) !important;
  font-size:1.35rem;
  line-height:1.2;
  letter-spacing:-.03em;
}
body.portfolio-page .custom-form-card p{color:var(--final-muted) !important;line-height:1.65;}
body.portfolio-page .custom-form-card__meta span{
  background:rgba(143,150,255,.08) !important;
  border-color:rgba(143,150,255,.16) !important;
  color:var(--final-primary-deep) !important;
}
body.portfolio-page .custom-form-shell{
  grid-template-columns:minmax(340px,1.25fr) minmax(260px,.75fr);
  gap:1.25rem;
}
body.portfolio-page .custom-form-public{
  padding:1.55rem !important;
  gap:1.05rem;
}
body.portfolio-page .custom-form-field label{color:var(--final-ink) !important;}
body.portfolio-page .custom-form-field small{color:var(--final-muted) !important;}
body.portfolio-page .option-stack,
body.portfolio-page .single-check{
  border-radius:18px;
  background:rgba(143,150,255,.045) !important;
  border:1px solid rgba(143,150,255,.13) !important;
}
body.portfolio-page .empty-state{border-radius:30px;padding:2.4rem;text-align:center;}

/* Neutralize remaining artificial pill shapes on labels, while preserving text emphasis */
body.portfolio-page .content-chip,
body.portfolio-page .blog-media-badge,
body.portfolio-page .project-card__body > span,
body.portfolio-page .publication-card span,
body.portfolio-page .refined-publication-card__body > span,
body.portfolio-page .academy-mini-card span,
body.portfolio-page .client-card__sector{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
  color:var(--final-primary-strong) !important;
  font-size:.74rem;
  letter-spacing:.085em;
  font-weight:900;
  text-transform:uppercase;
}
body.portfolio-page .content-chip i,
body.portfolio-page .blog-media-badge i{color:var(--final-primary-strong) !important;}

/* Better responsive rhythm */
@media (max-width:1100px){
  body.portfolio-page .editorial-grid,
  body.portfolio-page .refined-publication-grid,
  body.portfolio-page .forms-library__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body.portfolio-page .editorial-feature,
  body.portfolio-page .publication-feature{grid-template-columns:1fr;}
  body.portfolio-page .editorial-feature__image,
  body.portfolio-page .publication-feature__cover{min-height:290px;}
}
@media (max-width:860px){
  body.portfolio-page .editorial-overview,
  body.portfolio-page .editorial-grid,
  body.portfolio-page .refined-publication-grid,
  body.portfolio-page .forms-library__grid{grid-template-columns:1fr;}
  body.portfolio-page .unified-contact__layout,
  body.portfolio-page .custom-form-shell{grid-template-columns:1fr;}
  body.portfolio-page .form-two-cols{grid-template-columns:1fr;}
  body.portfolio-page .contact-switch{justify-content:stretch;}
  body.portfolio-page .contact-switch__button,
  body.portfolio-page .contact-switch__link{width:100%;}
  body.portfolio-page .editorial-page-hero,
  body.portfolio-page .compact-page-hero .page-hero__inner{margin-top:6rem;border-radius:28px;}
  body.portfolio-page .editorial-card__media,
  body.portfolio-page .refined-publication-card__cover{height:210px;}
}
@media (max-width:560px){
  body.portfolio-page .site-loader__ring{width:144px !important;height:144px !important;}
  body.portfolio-page .site-loader__logo{width:min(220px,70vw) !important;}
  body.portfolio-page .editorial-feature__body,
  body.portfolio-page .publication-feature__body,
  body.portfolio-page .editorial-card__body,
  body.portfolio-page .refined-publication-card__body,
  body.portfolio-page .custom-form-card{padding:1.15rem;}
}
