/* =========================================================================
   Sapient India — main.css
   Ported 1:1 from the signed-off Figma Make export (dt-sapient01.figma.site)
   Structure mirrors the exact markup/utility values captured from the live
   site (colors, spacing, radii, breakpoints) so visual output matches.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

/* ---------- Design tokens (captured from the Figma export CSS) ---------- */
:root{
  --navy:            #00003B;
  --navy-light:      #1E3A8A;
  --navy-darker:     #0F172A;
  --navy-deep:       #1a1a6e;
  --red:             #EA1725;
  --red-dark:        #990F18;
  --blue-soft:       #869EC9;
  --blue-mid:        #5972BA;
  --grad-blue-from:  #C0CBEB;
  --grad-blue-to:    #ECEFF7;
  --bg-tint:         #f2f5f9;
  --border-hair:     #e8e8e8;
  --text-body:       #000000;

  --font-sans: 'Manrope', ui-sans-serif, system-ui, sans-serif;

  --radius-sm: .25rem;
  --radius-md: .625rem;
  --radius-lg: 1rem;
  --radius-xl: 1.5rem;
  --radius-2xl: 2rem;

  --container-max: 1160px;

  --ease: cubic-bezier(.4,0,.2,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
body{
  font-family:var(--font-sans);
  color:var(--text-body);
  background:#fff;
  line-height:1.5;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul{ list-style:none; }
h1,h2,h3,h4{ font-weight:inherit; line-height:1.2; }

.container{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:1rem;
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Scroll-triggered fade/slide-in (matches animate-in / slide-in-from utilities) */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* ============================= Buttons =================================== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  width:100%;
  max-width:100%;
  padding:.75rem 2rem;
  border-radius:999px;
  font-weight:500;
  font-size:14px;
  letter-spacing:.025em;
  text-transform:uppercase;
  color:#fff;
  background:var(--red);
  transition:background-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
  white-space:nowrap;
}
.btn svg{ width:1em; height:1em; transition:transform .3s var(--ease); }
.btn:hover{
  background:#b91c1c;
  transform:scale(1.05);
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
}
.btn:hover svg{ transform:translateX(4px); }
@media (min-width:768px){ .btn{ width:max-content; } }

/* ============================== Header ==================================== */
.site-header{
  position:relative;
  width:100%;
  z-index:100;
  background:#fff;
  transition:all .3s var(--ease);
}

.site-header__bg{ position:absolute; inset:0; z-index:0; display:flex; }
.site-header__bg span{ width:50%; }
.site-header__bg span:first-child{ background:#fff; }
.site-header__bg span:last-child{ background:var(--navy); }

.site-header__inner{
  position:relative;
  z-index:10;
  max-width:var(--container-max);
  margin-inline:auto;
  width:100%;
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  min-height:80px;
}

.site-header__logo{
  width:50%;
  display:flex;
  align-items:center;
  padding:1rem;
}
.site-header__logo img{ height:2rem; max-width:100%; object-fit:contain; }
@media (min-width:768px){ .site-header__logo img{ height:3rem; } }

.site-header__right{
  width:50%;
  color:#fff;
  background:var(--navy);
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem;
  padding:1rem;
}
@media (min-width:768px){ .site-header__right{ gap:1.5rem; } }

/* Very narrow screens (folds, small phones): size the two header columns
   by their content so the contact icons never spill over the logo. The
   right column carries its own navy background, so the white/navy split
   always follows the actual content boundary. */
@media (max-width:479px){
  .site-header__logo{ width:auto; flex:1 1 auto; min-width:0; padding:.75rem .5rem .75rem 1rem; }
  .site-header__right{ width:auto; flex:0 0 auto; gap:.5rem; padding:.75rem 1rem .75rem .75rem; }
}

.site-header__contact{ display:flex; align-items:center; gap:.5rem; }
.site-header__contact .icon-circle{
  background:var(--blue-soft);
  border-radius:999px;
  padding:.5rem;
  display:flex; align-items:center; justify-content:center;
  width:2.25rem; height:2.25rem;
  flex-shrink:0;
}
.site-header__contact .icon-circle svg{ width:18px; height:18px; color:var(--navy); }
.site-header__contact-text{ display:none; flex-direction:column; font-size:.875rem; line-height:1.3; }
.site-header__contact-text span:first-child{ color:var(--blue-soft); font-size:.75rem; font-weight:700; }
.site-header__contact-text span:last-child{ font-weight:600; }
@media (min-width:1280px){ .site-header__contact-text{ display:flex; } }

.site-header__menu{ position:relative; margin-left:.5rem; flex-shrink:0; }
@media (min-width:768px){ .site-header__menu{ margin-left:1rem; } }

.site-header__toggle{
  display:block;
  padding:.5rem;
  color:#fff;
  flex-shrink:0;
}
.site-header__toggle svg{ width:28px; height:28px; min-width:28px; }

/* --------- Dropdown nav (anchored to the hamburger, all breakpoints) ----- */
.site-nav{
  position:absolute;
  right:0;
  top:100%;
  margin-top:1rem;
  width:16rem;
  background:#fff;
  color:#000;
  border:1px solid #f3f4f6;
  border-radius:.375rem;
  box-shadow:0 25px 50px -12px rgba(0,0,0,.25);
  overflow:hidden;
  display:none;
  flex-direction:column;
  z-index:50;
  animation:menuIn .18s var(--ease) both;
}
.site-nav.is-open{ display:flex; }
@keyframes menuIn{ from{opacity:0; transform:translateY(-8px) scale(.97);} to{opacity:1; transform:none;} }

.site-nav__link{
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.5rem;
  font-weight:500;
  border-bottom:1px solid #f3f4f6;
  transition:background-color .2s var(--ease);
}
.site-nav__link:hover{ background:var(--bg-tint); }
.site-nav__link.is-current{ background:var(--navy); color:#fff; }
.site-nav__link.is-current .dot{ width:.5rem; height:.5rem; border-radius:999px; background:var(--red); flex-shrink:0; }
.site-nav__link.is-quote{ color:var(--red); }

/* Same current-page highlight when a wp-admin–assigned menu is used */
.site-nav .current-menu-item > a,
.site-nav .current_page_item > a{ background:var(--navy); color:#fff; }
.site-nav .current-menu-item > a::after,
.site-nav .current_page_item > a::after{
  content:""; width:.5rem; height:.5rem;
  border-radius:999px; background:var(--red); flex-shrink:0;
}

.site-nav__services{ border-bottom:1px solid #f3f4f6; }
.site-nav__services-toggle{
  width:100%; text-align:left;
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.5rem; font-weight:500;
  transition:background-color .2s var(--ease);
}
.site-nav__services-toggle:hover{ background:var(--bg-tint); }
.site-nav__services-toggle .caret{ font-size:.75rem; transition:transform .2s var(--ease); }
.site-nav__services.is-open .caret{ transform:rotate(180deg); }

.site-nav__submenu{
  max-height:0;
  overflow-y:auto;
  background:var(--bg-tint);
  transition:max-height .25s var(--ease);
}
.site-nav__services.is-open .site-nav__submenu{ max-height:15rem; border-top:1px solid #f3f4f6; }
.site-nav__submenu a{
  display:flex; align-items:center; justify-content:space-between;
  padding:.5rem 2rem;
  font-size:.875rem;
  white-space:nowrap;
  transition:color .2s var(--ease);
}
.site-nav__submenu a:hover{ color:var(--red); }

/* ============================== Hero ===================================== */
.hero{
  position:relative;
  width:100%;
  min-height:500px;
  display:flex;
  align-items:center;
  background:#111827;
  /* On phones the hero grows with its content: top padding keeps the
     heading clear of the header, bottom padding keeps the text clear of
     the overlapping floating card. */
  padding-block:2.5rem 10rem;
}
@media (min-width:640px){ .hero{ height:500px; min-height:0; padding-block:0; } }
@media (min-width:1024px){ .hero{ height:800px; } }

.hero__bg{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
}

.hero__inner{
  position:relative; z-index:10;
  max-width:var(--container-max);
  margin-inline:auto;
  width:100%;
  padding-inline:1rem;
}

.hero__content{ max-width:340px; color:var(--navy); }
@media (min-width:768px){ .hero__content{ max-width:36rem; } }
@media (min-width:1024px){ .hero__content{ max-width:42rem; } }

.hero__title{
  font-size:2.25rem;
  font-weight:800;
  line-height:1.25;
  margin-bottom:1rem;
}
@media (min-width:1024px){ .hero__title{ font-size:60px; } }

.hero__text{
  font-size:18px;
  font-weight:400;
  color:var(--navy);
  margin-bottom:2rem;
}

/* -------- Floating "Host Your Website" card (hangs off hero bottom) ------ */
.floating-card{
  position:absolute;
  bottom:-7rem;
  left:50%;
  transform:translateX(-50%);
  width:91.6667%;
  max-width:var(--container-max);
  background:var(--navy);
  background-size:cover;
  background-position:center;
  color:#fff;
  border-radius:2rem;
  box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
  padding:2rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  z-index:20;
}
.floating-card h2{
  font-size:1.5rem;
  font-weight:800;
  line-height:2rem;
}
.floating-card .md-break{ display:none; }
@media (min-width:768px){
  .floating-card h2{ font-size:1.875rem; line-height:2.25rem; }
  .floating-card .md-break{ display:block; }
}
@media (min-width:1024px){ .floating-card h2{ font-size:60px; line-height:72px; } }

/* ============================ Feature rows ================================
   "Exceptional Web Design / Responsive Design / Reliable Hosting /
   Ecommerce Solutions" — alternating image/text rows                      */
.features{
  max-width:var(--container-max);
  margin-inline:auto;
  padding:12.5rem 1rem 4rem;
}
.features__row{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:3rem;
  margin-bottom:4rem;
}
.features__row:last-child{ margin-bottom:0; }
.features__sep{ border:0; border-top:1px solid var(--border-hair); margin:0 0 4rem; }
.features__row--reverse{ flex-direction:column-reverse; }

@media (min-width:768px){
  .features__row{ flex-direction:row; }
  .features__row--reverse{ flex-direction:row-reverse; }
}

.features__media{ width:100%; }
.features__media img{ width:100%; max-width:28rem; margin-inline:auto; }
.features__text{ width:100%; }
.features__text > * + *{ margin-top:1.5rem; }

@media (min-width:768px){
  .features__media{ width:33.3333%; }
  .features__text{ width:66.6667%; }
}

.features__title{ font-size:1.875rem; font-weight:700; color:var(--navy); }
.features__desc{ font-size:18px; color:#000; line-height:1.625; }

/* ============================ Support / CTA section ======================= */
.support{
  position:relative;
  min-height:600px;
  display:flex;
  align-items:center;
  padding-block:5rem;
  color:#fff;
  background-color:#0F172A;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.support__photo{
  display:none;
  position:absolute;
  left:0; top:0; bottom:0;
  width:45%;
  z-index:10;
}
@media (min-width:768px){ .support__photo{ display:block; } }
@media (min-width:1024px){ .support__photo{ width:40%; } }
.support__photo img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:right;
}

.support__inner{
  position:relative; z-index:10;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:1rem;
  width:100%;
  display:flex;
  justify-content:flex-end;
}
.support__content{ width:100%; }
@media (min-width:768px){ .support__content{ width:50%; } }
@media (min-width:1024px){ .support__content{ width:58.3333%; } }
.support__content > * + *{ margin-top:1.5rem; }

.support__title{ font-size:2.25rem; line-height:2.5rem; font-weight:700; }
.support__desc p{ font-size:18px; font-weight:400; line-height:1.625; }
.support__desc p + p{ margin-top:1.5rem; }
.support__note{ font-size:18px; font-weight:500; }
.support .btn{ margin-top:1.5rem; }

/* ============================== Packages ================================== */
.packages{ padding-block:5rem; background:#fff; }
.packages__head{ margin-bottom:4rem; text-align:center; }
.packages__head h2{ font-size:2.25rem; line-height:2.5rem; font-weight:700; color:var(--navy); margin-bottom:1.5rem; }
.packages__head p{ font-size:18px; color:#000; font-weight:400; line-height:1.5; margin-bottom:1rem; }
.packages__head p + p{ margin-bottom:0; font-weight:700; }

.packages__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:2rem;
}
@media (min-width:768px){ .packages__grid{ grid-template-columns:repeat(3,1fr); } }

.packages__grid--last{
  margin-bottom:0;
  max-width:56rem;
  margin-inline:auto;
}
@media (min-width:768px){ .packages__grid--last{ grid-template-columns:repeat(2,1fr); } }

.plan{
  display:flex;
  flex-direction:column;
  height:100%;
  border:1px solid #f3f4f6;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.plan:hover{ transform:scale(1.05); box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }

.plan__head{ color:#fff; text-align:center; padding:1.5rem; }
.plan__head h3{ font-size:1.5rem; line-height:2rem; font-weight:700; }
.plan__head .price{ font-size:1.125rem; line-height:1.75rem; font-weight:400; color:rgba(255,255,255,.8); margin-top:.25rem; }

.plan--basic .plan__head{ background:linear-gradient(90deg,var(--navy-light),var(--navy-darker)); }
.plan--standard .plan__head{ background:linear-gradient(90deg,var(--red),var(--red-dark)); }
.plan--premium .plan__head{ background:linear-gradient(90deg,var(--navy),var(--navy-light)); }
.plan--ecommerce .plan__head{ background:linear-gradient(90deg,var(--navy),var(--red)); }
.plan--bespoke .plan__head{ background:linear-gradient(90deg,var(--navy-light),var(--navy-darker)); }

.plan__list{ padding:2rem; flex:1; }
.plan__list li{
  display:flex; align-items:flex-start;
  margin-bottom:1rem;
  font-size:16px;
  font-weight:400;
  color:#000;
}
.plan__list li:last-child{ margin-bottom:0; }
.plan__list li svg{ width:18px; height:18px; flex-shrink:0; margin-right:.75rem; margin-top:2px; }
.plan__list li.is-yes svg{ color:#22c55e; }
.plan__list li.is-no{ color:#9ca3af; }
.plan__list li.is-no svg{ color:var(--red); }

.plan__foot{ padding:0 2rem 2rem; }
.plan__foot .btn{ width:100%; }

/* =========================== NeoBookAndPay ================================= */
.neobook{
  padding-block:5rem;
  background:linear-gradient(90deg,var(--grad-blue-from),var(--grad-blue-to));
}
.neobook__head{ margin-bottom:4rem; text-align:center; }
.neobook__head h2{ font-size:2.25rem; line-height:2.5rem; font-weight:700; color:var(--navy); margin-bottom:1.5rem; }
.neobook__head p{ font-size:18px; color:#000; font-weight:400; line-height:1.5; }

.neobook__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:3rem;
}
@media (min-width:768px){ .neobook__grid{ grid-template-columns:repeat(3,1fr); } }

.neobook__card{
  background:#fff;
  border-radius:14px;
  padding:2rem 1.5rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.neobook__card:hover{ transform:scale(1.05); box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1); }
.neobook__card img{ width:48px; height:48px; margin:0 auto 1.5rem; }
.neobook__card h3{ font-size:18px; line-height:1.5; font-weight:700; color:var(--navy); margin-bottom:.75rem; }
.neobook__card p{ font-size:18px; color:#000; font-weight:400; line-height:1.5; }

.neobook__cta{ text-align:center; }
.neobook__cta .btn{ width:auto; display:inline-flex; }

/* ================================ Footer =================================== */
/* Mega link grid on the footer-bg2 background image */
.footer-links{
  padding-block:4rem;
  background-size:100%;
  background-repeat:no-repeat;
}
.footer-links__inner{
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:1rem;
}
.footer-links__grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
}
@media (min-width:640px){ .footer-links__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .footer-links__grid{ grid-template-columns:repeat(4,1fr); } }

.footer-links__col h4{ font-size:16px; line-height:1.5; font-weight:700; color:#000; margin-bottom:1.5rem; }
.footer-links__col ul li a{
  display:flex; align-items:center;
  font-size:15px;
  font-weight:500;
  color:var(--navy);
  transition:opacity .15s var(--ease), color .15s var(--ease);
}
.footer-links__col ul li a .arrow{
  margin-right:.75rem;
  color:var(--red);
  font-weight:700;
  font-size:1.125rem;
  line-height:1.5556;
}
.footer-links__col ul li a:hover{ opacity:.8; }

/* Two-tone bottom bar: copyright (blue) / social icons (navy) */
.site-footer-bar{ position:relative; }
.site-footer-bar__bg{
  position:absolute; inset:0;
  display:flex;
  flex-direction:column-reverse;
}
@media (min-width:1024px){ .site-footer-bar__bg{ flex-direction:row; } }
.site-footer-bar__bg span{ width:100%; }
@media (min-width:1024px){ .site-footer-bar__bg span{ width:50%; } }
.site-footer-bar__bg span:first-child{ background:var(--blue-mid); }
.site-footer-bar__bg span:last-child{ background:var(--navy); }

.site-footer-bar__inner{
  position:relative; z-index:10;
  max-width:var(--container-max);
  margin-inline:auto;
  display:flex;
  flex-direction:column-reverse;
  align-items:stretch;
  justify-content:space-between;
}
@media (min-width:1024px){ .site-footer-bar__inner{ flex-direction:row; } }

.site-footer-bar__copy{
  width:100%;
  background:var(--blue-mid);
  color:#fff;
  font-size:16px;
  padding:1.5rem 1rem;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
@media (min-width:1024px){
  .site-footer-bar__copy{ width:50%; padding-right:2rem; justify-content:flex-start; text-align:left; }
}

.site-footer-bar__social{
  width:100%;
  background:var(--navy);
  display:flex;
  align-items:center;
  gap:1rem;
  justify-content:center;
  padding:1.5rem 1rem;
}
@media (min-width:1024px){
  .site-footer-bar__social{ width:50%; padding-left:2rem; justify-content:flex-end; }
}
.site-footer-bar__social .label{
  color:var(--blue-soft);
  font-size:.875rem;
  font-weight:700;
  display:none;
}
@media (min-width:640px){ .site-footer-bar__social .label{ display:block; } }
.site-footer-bar__social a{
  width:2.5rem; height:2.5rem;
  border-radius:999px;
  background:rgba(134,158,201,.2);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  transition:background-color .3s var(--ease);
}
.site-footer-bar__social a:hover{ background:var(--red); }
.site-footer-bar__social svg{ width:20px; height:20px; }

/* ========================= Inner-page banner =============================== */
/* Full-width banner image + floating navy title card (About, etc.) */
.page-banner{
  display:none;
  position:relative;
  width:100%;
  height:500px;
  background-color:#111827;
  background-size:cover;
  background-position:center;
}
@media (min-width:640px){ .page-banner{ display:flex; align-items:center; } }

.page-title-card{
  position:relative;
  z-index:20;
  width:91.6667%;
  max-width:var(--container-max);
  margin:1rem auto .5rem;
  background-color:var(--navy);
  background-size:cover;
  background-position:center;
  color:#fff;
  border-radius:2rem;
  box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
  padding:2rem;
  text-align:center;
}
@media (min-width:640px){ .page-title-card{ margin:-5.5rem auto 2rem; } }

.page-title-card h1{
  font-size:1.875rem;
  font-weight:800;
  line-height:1.25;
  margin-bottom:1rem;
}
@media (min-width:768px){ .page-title-card h1{ font-size:2.25rem; } }
@media (min-width:1024px){ .page-title-card h1{ font-size:3rem; } }

.page-title-card p{
  font-size:18px;
  font-weight:400;
  color:rgba(255,255,255,.8);
  line-height:1.625;
  margin-inline:auto;
}

/* ============================== About page ================================= */
.about{
  max-width:var(--container-max);
  margin-inline:auto;
  padding:1.5rem 1rem 4rem;
}
@media (min-width:640px){ .about{ padding-block:4rem; } }

.about-h2{ font-size:1.875rem; line-height:2.25rem; font-weight:700; color:var(--navy); }
.about-h2.mb-8{ margin-bottom:2rem; }

/* Centered section headings */
.about-head{ text-align:center; margin-bottom:3rem; }
.about-head h2{
  font-size:1.875rem; line-height:2.25rem;
  font-weight:700; color:var(--navy);
  margin-bottom:1rem;
}
@media (min-width:768px){ .about-head h2{ font-size:2.25rem; line-height:2.5rem; } }
.about-head p{ font-size:1.125rem; color:#374151; max-width:48rem; margin-inline:auto; }

/* Welcome + vision/mission */
.about-welcome{
  display:grid;
  grid-template-columns:1fr;
  gap:3rem;
  align-items:center;
  margin-bottom:4rem;
}
@media (min-width:768px){ .about-welcome{ grid-template-columns:repeat(2,1fr); } }
.about-welcome .about-h2{ margin-bottom:1.5rem; }
.about-welcome__text{ font-size:18px; color:#374151; line-height:1.625; margin-bottom:1rem; }
.about-vision{
  background:var(--bg-tint);
  padding:1.5rem;
  border-radius:10px;
  border-left:4px solid var(--red);
  margin-top:1.5rem;
}
.about-vision h3{ font-size:1.25rem; line-height:1.75rem; font-weight:700; color:var(--navy); margin-bottom:.5rem; }
.about-vision p{ color:#374151; margin-bottom:1rem; }
.about-vision p.last{ margin-bottom:0; }
.about-welcome__img{
  width:100%;
  object-fit:cover;
  border-radius:14px;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
}

/* Journey timeline cards */
.about-journey{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:5rem;
}
@media (min-width:640px){ .about-journey{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .about-journey{ grid-template-columns:repeat(4,1fr); } }
.about-journey__card{
  background:#fff;
  padding:1.5rem;
  border-radius:14px;
  border:1px solid #f3f4f6;
  transition:box-shadow .3s var(--ease);
}
.about-journey__card:hover{ box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1); }
.about-journey__card .year{ font-size:2.25rem; line-height:2.5rem; font-weight:900; color:var(--red); margin-bottom:.5rem; }
.about-journey__card h3{ font-size:1.25rem; line-height:1.75rem; font-weight:700; color:var(--navy); margin-bottom:.75rem; }
.about-journey__card p{ color:#4b5563; }

/* Why choose cards */
.about-why{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:5rem;
}
@media (min-width:768px){ .about-why{ grid-template-columns:repeat(3,1fr); } }
.about-why__card{
  background:var(--bg-tint);
  padding:2rem;
  border-radius:14px;
  text-align:center;
  transition:box-shadow .3s var(--ease);
}
.about-why__card:hover{ box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); }
.about-why__card .icon-box{
  width:4rem; height:4rem;
  background:rgba(234,23,37,.1);
  border-radius:18px;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 1.25rem;
}
.about-why__card .icon-box svg{ width:32px; height:32px; color:var(--red); }
.about-why__card h4{ font-size:1.25rem; line-height:1.75rem; font-weight:700; color:var(--navy); margin-bottom:1rem; }
.about-why__card p{ color:#374151; }

/* Expertise chips */
.about-chips{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
  margin-bottom:5rem;
  text-align:center;
}
@media (min-width:640px){ .about-chips{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:768px){ .about-chips{ grid-template-columns:repeat(4,1fr); } }
.about-chip{
  background:var(--navy);
  color:#fff;
  padding:1rem .5rem;
  border-radius:10px;
  font-weight:500;
  line-height:1.25;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  cursor:pointer;
  transition:background-color .3s var(--ease);
}
.about-chip:hover{ background:var(--red); }
.about-chip svg{ width:20px; height:20px; }

/* Process steps */
.about-process{ margin-bottom:5rem; }
.about-step{
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  align-items:flex-start;
  background:#fff;
  padding:1.5rem;
  border-radius:14px;
  border:1px solid #f3f4f6;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
  transition:box-shadow .3s var(--ease);
}
@media (min-width:768px){ .about-step{ flex-direction:row; } }
.about-step + .about-step{ margin-top:1.5rem; }
.about-step:hover{ box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); }
.about-step .badge{
  background:var(--red);
  color:#fff;
  font-weight:700;
  padding:.5rem 1rem;
  border-radius:10px;
  flex-shrink:0;
}
.about-step h4{ font-size:1.25rem; line-height:1.75rem; font-weight:700; color:var(--navy); margin-bottom:.5rem; }
.about-step p{ color:#374151; margin-bottom:.5rem; }
.about-step p.note{ color:#4b5563; font-size:.875rem; font-style:italic; margin-bottom:0; }

/* Differentiator cards */
.about-diff{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:5rem;
}
@media (min-width:640px){ .about-diff{ grid-template-columns:repeat(2,1fr); } }
.about-diff__card{
  border:1px solid #e5e7eb;
  padding:1.5rem;
  border-radius:10px;
  display:flex;
  gap:1rem;
  transition:box-shadow .3s var(--ease);
}
.about-diff__card:hover{ box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); }
.about-diff__card .icon-box{
  width:3rem; height:3rem;
  background:rgba(234,23,37,.1);
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.about-diff__card .icon-box svg{ width:22px; height:22px; color:var(--red); }
.about-diff__card h4{ font-size:1.125rem; line-height:1.75rem; font-weight:700; color:var(--red); margin-bottom:.5rem; }
.about-diff__card p{ color:#374151; }

/* Core principles */
.about-principles{
  display:grid;
  grid-template-columns:1fr;
  gap:3rem;
  align-items:center;
  margin-bottom:5rem;
}
@media (min-width:768px){ .about-principles{ grid-template-columns:repeat(2,1fr); } }
.about-principles img{
  width:100%;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
}
.about-principle{ display:flex; gap:1rem; }
.about-principle + .about-principle{ margin-top:1.5rem; }
.about-principle .icon-box{
  width:2.5rem; height:2.5rem;
  background:var(--navy);
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.about-principle .icon-box svg{ width:18px; height:18px; color:#fff; }
.about-principle h4{ font-size:1.125rem; line-height:1.75rem; font-weight:700; color:var(--navy); margin-bottom:.25rem; }
.about-principle p{ color:#374151; font-size:.875rem; }

/* Commitment band */
.about-commit{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:5rem;
  background:var(--navy);
  color:#fff;
  padding:2.5rem;
  border-radius:18px;
}
@media (min-width:768px){ .about-commit{ grid-template-columns:repeat(3,1fr); } }
.about-commit__card .icon-box{
  width:3rem; height:3rem;
  background:rgba(234,23,37,.2);
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1rem;
}
.about-commit__card .icon-box svg{ width:22px; height:22px; color:var(--red); }
.about-commit__card h4{ font-size:1.25rem; line-height:1.75rem; font-weight:700; color:var(--red); margin-bottom:1rem; }
.about-commit__card p{ color:#d1d5db; }

/* Testimonials */
.about-testimonials{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  margin-bottom:4rem;
}
@media (min-width:768px){ .about-testimonials{ grid-template-columns:repeat(2,1fr); } }
.about-testimonial{
  background:#fff;
  padding:2rem;
  border-radius:14px;
  border:1px solid #f3f4f6;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
  transition:box-shadow .3s var(--ease);
}
.about-testimonial:hover{ box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1); }
.about-testimonial .stars{ display:flex; align-items:center; gap:.25rem; margin-bottom:1rem; }
.about-testimonial .stars svg{ width:16px; height:16px; color:#facc15; fill:#facc15; }
.about-testimonial .quote{ color:#374151; font-style:italic; margin-bottom:1.5rem; }
.about-testimonial .name{ font-weight:700; color:var(--navy); }
.about-testimonial .role{ font-size:.875rem; color:#6b7280; }

/* Speak to a specialist CTA */
.about-cta{
  text-align:center;
  background:var(--bg-tint);
  padding:3rem;
  border-radius:18px;
}
.about-cta h2{ font-size:1.875rem; line-height:2.25rem; font-weight:700; color:var(--navy); margin-bottom:1.5rem; }
.about-cta a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:#fff;
  font-weight:700;
  font-size:1.125rem;
  padding:1rem 2.5rem;
  border-radius:999px;
  transition:background-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);
}
.about-cta a:hover{
  background:#b91c1c;
  transform:scale(1.05);
  box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
}

/* ===================== Inner-page centered intro =========================== */
.page-intro{ text-align:center; margin-bottom:4rem; }
.page-intro p{
  font-size:18px;
  color:#374151;
  line-height:1.625;
  margin-bottom:1.5rem;
}
.page-intro p.note{
  color:#000;
  font-weight:700;
  line-height:1.5;
  margin-bottom:2rem;
}
.page-intro a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:#fff;
  font-weight:700;
  font-size:1.125rem;
  padding:1rem 2.5rem;
  border-radius:999px;
  transition:background-color .3s var(--ease);
}
.page-intro a:hover{ background:#b91c1c; }

/* ============================ Portfolio page =============================== */
.portfolio-intro{ text-align:center; margin-bottom:4rem; }
.portfolio-intro p{
  font-size:18px;
  color:#374151;
  line-height:1.625;
  margin-bottom:2rem;
}
.portfolio-intro a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--red);
  color:#fff;
  font-weight:700;
  font-size:1.125rem;
  padding:1rem 2.5rem;
  border-radius:999px;
  transition:background-color .3s var(--ease);
}
.portfolio-intro a:hover{ background:#b91c1c; }

.portfolio-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
}
@media (min-width:768px){ .portfolio-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .portfolio-grid{ grid-template-columns:repeat(3,1fr); } }

.portfolio-card{
  background:#fff;
  border-radius:14px;
  border:1px solid #f3f4f6;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
  overflow:hidden;
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.portfolio-card:hover{
  transform:translateY(-8px);
  box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);
}
.portfolio-card__media{
  height:16rem;
  overflow:hidden;
  border-bottom:1px solid #f3f4f6;
}
.portfolio-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top;
  transition:transform .5s var(--ease);
}
.portfolio-card:hover .portfolio-card__media img{ transform:scale(1.05); }

.portfolio-card__body{ padding:1.5rem; }
.portfolio-card__body h3{
  font-size:18px;
  line-height:1.5;
  font-weight:700;
  color:var(--navy);
  margin-bottom:1rem;
}
.portfolio-card__rows .row{ display:flex; font-size:.875rem; line-height:1.43; }
.portfolio-card__rows .row + .row{ margin-top:.5rem; }
.portfolio-card__rows .label{ font-weight:700; color:#111827; width:50%; }
.portfolio-card__rows .value{ color:#4b5563; width:50%; }

/* ============================ Small helpers ================================ */
.visually-hidden-mobile{ display:none; }
@media (min-width:768px){ .visually-hidden-mobile{ display:block; } }
