/* ============================================================
   People Care Global Solutions - design system
   1. Tokens          6. Sections & cards
   2. Base            7. Gallery / FAQ / forms
   3. Buttons         8. Footer & floating UI
   4. Header & nav    9. Motion
   5. Hero           10. Responsive
   ============================================================ */

/* ---------------- 1. Tokens ---------------- */
:root {
  /* brand */
  --pc-blue:        #123A8C;
  --pc-blue-dark:   #0B2F73;
  --pc-blue-deep:   #071F4E;
  --pc-blue-soft:   #EEF3FC;
  --pc-blue-line:   #D6E1F5;
  --pc-green:       #16833B;
  --pc-green-dark:  #106830;
  --pc-green-soft:  #EAF6EE;
  --pc-orange:      #F47B20;
  --pc-orange-soft: #FEF1E6;
  --pc-red:         #C62828;
  --pc-red-soft:    #FBECEC;

  /* surface */
  --pc-bg:      #FFFFFF;
  --pc-bg-alt:  #F8FAFC;
  --pc-bg-deep: #F2F6FC;
  --pc-border:  #E4EAF3;

  /* text */
  --pc-text:    #0F172A;
  --pc-text-2:  #334155;
  --pc-muted:   #5A6779;
  --pc-light:   #FFFFFF;

  /* type */
  --pc-font:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  --pc-font-h:  'Manrope', 'Inter', -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;

  /* 8px spacing scale */
  --s-1: 8px;  --s-2: 16px; --s-3: 24px; --s-4: 32px;
  --s-5: 40px; --s-6: 48px; --s-7: 64px; --s-8: 80px;
  --s-9: 96px; --s-10: 120px;

  /* radii + shadow */
  --r-sm: 8px;  --r-md: 14px; --r-lg: 20px; --r-xl: 28px; --r-pill: 999px;
  --sh-1: 0 2px 8px rgba(11, 47, 115, .06);
  --sh-2: 0 8px 28px rgba(11, 47, 115, .08);
  --sh-3: 0 18px 48px rgba(11, 47, 115, .12);
  --sh-4: 0 28px 70px rgba(7, 31, 78, .18);

  --ease: cubic-bezier(.22, .61, .36, 1);
  --dur:  .38s;

  --pc-header-h: 84px;
}

/* ---------------- 2. Base ---------------- */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  overflow-x: hidden;
  max-width: 100%;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--pc-header-h) + 16px); }

body {
  margin: 0;
  font-family: var(--pc-font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--pc-text-2);
  background: var(--pc-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--pc-font-h);
  color: var(--pc-text);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.02em;
  margin: 0 0 var(--s-2);
}

h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.5rem); }
h2 { font-size: clamp(1.7rem, 1.2rem + 1.9vw, 2.65rem); }
h3 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); }
h4 { font-size: 1.125rem; font-weight: 700; }

p { margin: 0 0 var(--s-2); }
p:last-child { margin-bottom: 0; }

a { color: var(--pc-blue); text-decoration: none; transition: color var(--dur) var(--ease); }
a:hover { color: var(--pc-blue-dark); }

img, picture, svg, video { max-width: 100%; height: auto; display: block; }
picture { display: block; }

ul { margin: 0; padding: 0; list-style: none; }

:focus-visible {
  outline: 3px solid var(--pc-orange);
  outline-offset: 3px;
  border-radius: 4px;
}

.pc-skip {
  position: absolute; left: -9999px; top: 0; z-index: 2000;
  background: var(--pc-blue-dark); color: #fff;
  padding: 12px 20px; border-radius: 0 0 var(--r-sm) 0; font-weight: 600;
}
.pc-skip:focus { left: 0; color: #fff; }

.pc-icon { flex: 0 0 auto; display: inline-flex; vertical-align: -.18em; }

/* section rhythm */
.pc-section       { padding: clamp(56px, 7vw, 104px) 0; position: relative; }
.pc-section--tight{ padding: clamp(40px, 5vw, 72px) 0; }
.pc-section--alt  { background: var(--pc-bg-alt); }
.pc-section--soft { background: linear-gradient(180deg, #fff 0%, var(--pc-bg-deep) 100%); }

.pc-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--pc-blue); margin-bottom: var(--s-2);
}
.pc-eyebrow::before {
  content: ''; width: 28px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--pc-orange), var(--pc-green));
}
.pc-eyebrow--light { color: rgba(255, 255, 255, .82); }
.pc-eyebrow--green { color: var(--pc-green); }
.pc-eyebrow--red   { color: var(--pc-red); }

.pc-lead { font-size: clamp(1rem, .97rem + .2vw, 1.1rem); color: var(--pc-muted); }

.pc-head { max-width: 760px; margin-bottom: var(--s-6); }
.pc-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.pc-head p { color: var(--pc-muted); margin-top: var(--s-2); }
.pc-dark .pc-head p, .pc-cta .pc-head p { color: rgba(255, 255, 255, .74); }

.pc-grad {
  background: linear-gradient(100deg, var(--pc-blue) 0%, var(--pc-green) 60%, var(--pc-orange) 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ---------------- 3. Buttons ---------------- */
.pc-btn {
  --btn-bg: var(--pc-blue);
  --btn-fg: #fff;
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border: 1px solid transparent; border-radius: var(--r-pill);
  font-family: var(--pc-font); font-size: .95rem; font-weight: 600; line-height: 1;
  background: var(--btn-bg); color: var(--btn-fg);
  cursor: pointer; text-align: center; white-space: nowrap;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
              background-color var(--dur) var(--ease), color var(--dur) var(--ease),
              border-color var(--dur) var(--ease);
}
.pc-btn:hover { color: var(--btn-fg); transform: translateY(-2px); }
.pc-btn .pc-icon { transition: transform var(--dur) var(--ease); }
.pc-btn:hover .pc-icon { transform: translateX(4px); }

.pc-btn--primary {
  background: linear-gradient(100deg, var(--pc-blue) 0%, var(--pc-blue-dark) 100%);
  box-shadow: 0 8px 22px rgba(18, 58, 140, .26);
}
.pc-btn--primary:hover { box-shadow: 0 14px 32px rgba(18, 58, 140, .34); }

.pc-btn--green {
  background: linear-gradient(100deg, var(--pc-green) 0%, var(--pc-green-dark) 100%);
  box-shadow: 0 8px 22px rgba(22, 131, 59, .24);
}
.pc-btn--orange { background: var(--pc-orange); box-shadow: 0 8px 22px rgba(244, 123, 32, .28); }
.pc-btn--red    { background: var(--pc-red);    box-shadow: 0 8px 22px rgba(198, 40, 40, .22); }

.pc-btn--ghost {
  background: transparent; color: var(--pc-blue-dark); border-color: var(--pc-blue-line);
}
.pc-btn--ghost:hover { background: var(--pc-blue-soft); color: var(--pc-blue-dark); border-color: var(--pc-blue); }

.pc-btn--white { background: #fff; color: var(--pc-blue-dark); box-shadow: 0 12px 30px rgba(0, 0, 0, .18); }
.pc-btn--white:hover { color: var(--pc-blue-dark); }

.pc-btn--outline-light {
  background: rgba(255, 255, 255, .07); color: #fff; border-color: rgba(255, 255, 255, .38);
  backdrop-filter: blur(4px);
}
.pc-btn--outline-light:hover { background: rgba(255, 255, 255, .16); color: #fff; border-color: #fff; }

.pc-btn--sm { padding: 10px 18px; font-size: .875rem; }
.pc-btn--lg { padding: 17px 34px; font-size: 1rem; }

/* ripple */
.pc-ripple {
  position: absolute; border-radius: 50%; transform: scale(0);
  background: rgba(255, 255, 255, .38); pointer-events: none;
  animation: pcRipple .6s var(--ease) forwards;
}
@keyframes pcRipple { to { transform: scale(2.6); opacity: 0; } }

/* animated text link */
.pc-link {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; color: var(--pc-blue-dark); position: relative;
}
.pc-link::after {
  content: ''; position: absolute; left: 0; bottom: -3px; height: 2px; width: 100%;
  background: currentColor; transform: scaleX(0); transform-origin: right;
  transition: transform var(--dur) var(--ease);
}
.pc-link:hover::after { transform: scaleX(1); transform-origin: left; }
.pc-link .pc-icon { transition: transform var(--dur) var(--ease); }
.pc-link:hover .pc-icon { transform: translateX(4px); }

/* ---------------- 4. Header & navigation ---------------- */
.pc-topbar {
  background: var(--pc-blue-deep);
  color: rgba(255, 255, 255, .72);
  font-size: .82rem;
  padding: 9px 0;
}
.pc-topbar__tag { letter-spacing: .04em; }
.pc-topbar__list { display: flex; align-items: center; gap: var(--s-3); }
.pc-topbar__list a {
  display: inline-flex; align-items: center; gap: 7px;
  color: rgba(255, 255, 255, .78);
}
.pc-topbar__list a:hover { color: #fff; }
.pc-topbar__list li:last-child { display: flex; gap: 12px; }

.pc-header {
  position: sticky; top: 0; z-index: 1030;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid transparent;
  transition: box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease),
              background-color var(--dur) var(--ease);
}
.pc-header.is-stuck {
  box-shadow: 0 6px 24px rgba(11, 47, 115, .09);
  border-bottom-color: var(--pc-border);
  background: rgba(255, 255, 255, .98);
}
.pc-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);
  min-height: var(--pc-header-h);
  transition: min-height var(--dur) var(--ease);
}
.pc-header.is-stuck .pc-header__inner { min-height: 68px; }

/* The logo keeps its size whatever the menu does. Without flex:0 0 auto the
   header row squeezes the link, and the global img max-width:100% then scales
   the artwork down - which reads as a shrunken logo, not a tight menu. */
.pc-logo { flex: 0 0 auto; }
.pc-logo img { width: auto; height: 64px; transition: height var(--dur) var(--ease); }
.pc-header.is-stuck .pc-logo img { height: 52px; }
.pc-logo--sm img { height: 46px; }

/* The nav is what gives way instead, tightening on narrower desktops. The
   "Talk to an Expert" button is hidden wherever this nav is on screen, which
   is what buys the row its room - see header.php. */
.pc-nav { min-width: 0; }
.pc-nav__list { display: flex; align-items: center; gap: 2px; }
.pc-nav__item { position: relative; }
.pc-nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 11px; border-radius: var(--r-sm);
  font-size: .92rem; font-weight: 600; color: var(--pc-text); white-space: nowrap;
  transition: color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.pc-nav__link::after {
  content: ''; position: absolute; left: 11px; right: 11px; bottom: 2px; height: 2px;
  border-radius: 2px; background: linear-gradient(90deg, var(--pc-blue), var(--pc-green));
  transform: scaleX(0); transform-origin: right;
  transition: transform var(--dur) var(--ease);
}
.pc-nav__link:hover, .pc-nav__link.is-active { color: var(--pc-blue-dark); }
.pc-nav__link:hover::after, .pc-nav__link.is-active::after { transform: scaleX(1); transform-origin: left; }

.pc-nav__caret {
  width: 7px; height: 7px; margin-left: 2px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform var(--dur) var(--ease);
}
.pc-nav__item:hover .pc-nav__caret { transform: rotate(-135deg) translateY(-2px); }

.pc-dropdown {
  position: absolute; top: calc(100% + 10px); left: 0; min-width: 268px;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md);
  box-shadow: var(--sh-3); padding: 10px;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.pc-nav__item.has-children:hover > .pc-dropdown,
.pc-nav__item.has-children:focus-within > .pc-dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.pc-dropdown::before {
  content: ''; position: absolute; top: -10px; left: 0; right: 0; height: 10px;
}
.pc-dropdown a {
  display: block; padding: 9px 14px; border-radius: var(--r-sm);
  font-size: .89rem; font-weight: 500; color: var(--pc-text-2);
}
.pc-dropdown a:hover, .pc-dropdown a.is-active {
  background: var(--pc-blue-soft); color: var(--pc-blue-dark);
  transform: translateX(3px);
}
.pc-dropdown a { transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease); }
.pc-nav__item:nth-last-child(-n+3) .pc-dropdown { left: auto; right: 0; }

.pc-header__actions { display: flex; align-items: center; gap: 12px; }

.pc-iconbtn {
  width: 44px; height: 44px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--pc-border); color: var(--pc-text);
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.pc-iconbtn--whatsapp { background: var(--pc-green-soft); color: var(--pc-green); border-color: rgba(22, 131, 59, .18); }
.pc-iconbtn--whatsapp:hover { background: var(--pc-green); color: #fff; transform: translateY(-2px); }

.pc-burger {
  width: 46px; height: 46px; border: 1px solid var(--pc-border); border-radius: var(--r-sm);
  background: #fff; display: inline-flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 5px; padding: 0;
}
.pc-burger span {
  width: 20px; height: 2px; border-radius: 2px; background: var(--pc-blue-dark);
  transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease);
}

/* mobile off-canvas */
.pc-offcanvas { width: min(360px, 88vw); border: 0; }
.pc-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--pc-border); padding: 16px 20px;
  display: flex; align-items: center; justify-content: space-between;
}
.pc-offcanvas__close {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--pc-border);
  background: #fff; color: var(--pc-text); display: inline-flex;
  align-items: center; justify-content: center;
}
.pc-offcanvas .offcanvas-body { padding: 8px 20px 32px; }

.pc-mnav__item { border-bottom: 1px solid var(--pc-border); }
.pc-mnav__row { display: flex; align-items: center; justify-content: space-between; }
.pc-mnav__link {
  display: block; flex: 1; padding: 14px 0;
  font-family: var(--pc-font-h); font-weight: 700; font-size: 1rem; color: var(--pc-text);
}
.pc-mnav__link.is-active { color: var(--pc-blue); }
.pc-mnav__toggle {
  width: 34px; height: 34px; border: 1px solid var(--pc-border); border-radius: var(--r-sm);
  background: var(--pc-bg-alt); position: relative; flex: 0 0 auto;
}
.pc-mnav__toggle::before, .pc-mnav__toggle::after {
  content: ''; position: absolute; inset: 0; margin: auto;
  background: var(--pc-blue-dark); border-radius: 2px;
  transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.pc-mnav__toggle::before { width: 12px; height: 2px; }
.pc-mnav__toggle::after  { width: 2px; height: 12px; }
.pc-mnav__toggle:not(.collapsed)::after { transform: scaleY(0); }

.pc-mnav__sub { padding: 0 0 12px 4px; }
.pc-mnav__sub a {
  display: block; padding: 9px 12px; border-left: 2px solid var(--pc-border);
  font-size: .9rem; color: var(--pc-muted);
}
.pc-mnav__sub a:hover, .pc-mnav__sub a.is-active {
  border-left-color: var(--pc-orange); color: var(--pc-blue-dark); background: var(--pc-bg-alt);
}

.pc-mnav__cta { margin-top: var(--s-4); }
.pc-mnav__contact { margin-top: var(--s-3); display: grid; gap: 12px; }
.pc-mnav__contact a {
  display: flex; align-items: center; gap: 10px;
  font-size: .9rem; color: var(--pc-text-2); word-break: break-word;
}

/* ---------------- 5. Hero ---------------- */
.pc-hero {
  position: relative; overflow: hidden;
  padding: clamp(48px, 6vw, 96px) 0 clamp(64px, 7vw, 104px);
  background:
    radial-gradient(900px 480px at 88% -8%, rgba(22, 131, 59, .09), transparent 62%),
    radial-gradient(760px 420px at 4% 8%, rgba(18, 58, 140, .09), transparent 60%),
    linear-gradient(180deg, #fff 0%, var(--pc-bg-alt) 100%);
}
.pc-hero__blob {
  position: absolute; border-radius: 50%; filter: blur(60px); opacity: .34; pointer-events: none;
}
.pc-hero__blob--a { width: 380px; height: 380px; top: -120px; right: -80px; background: rgba(244, 123, 32, .3); }
.pc-hero__blob--b { width: 320px; height: 320px; bottom: -140px; left: -100px; background: rgba(18, 58, 140, .26); }

.pc-hero__copy { position: relative; z-index: 2; }
.pc-hero__title { margin-bottom: var(--s-3); }
.pc-hero__title .pc-reveal { display: block; overflow: hidden; }
.pc-hero__title .pc-reveal > span {
  display: block; transform: translateY(105%);
  animation: pcRise .9s var(--ease) forwards;
}
.pc-hero__title .pc-reveal:nth-child(1) > span { animation-delay: .05s; }
.pc-hero__title .pc-reveal:nth-child(2) > span { animation-delay: .17s; }
.pc-hero__title .pc-reveal:nth-child(3) > span { animation-delay: .29s; }
@keyframes pcRise { to { transform: translateY(0); } }

.pc-hero__text { font-size: clamp(1rem, .96rem + .3vw, 1.1rem); color: var(--pc-muted); max-width: 560px; }
.pc-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--s-4); }
.pc-hero__meta {
  display: flex; flex-wrap: wrap; gap: var(--s-3);
  margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--pc-border);
  font-size: .87rem; font-weight: 500; color: var(--pc-muted);
}
.pc-hero__meta li { display: flex; align-items: center; gap: 8px; }
.pc-hero__meta .pc-icon { color: var(--pc-green); }

.pc-hero__media { position: relative; padding-bottom: 40px; }
.pc-hero__frame {
  position: relative; border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-4);
}
.pc-hero__frame::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(18, 58, 140, .16) 0%, transparent 45%, rgba(7, 31, 78, .3) 100%);
}
.pc-hero__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.pc-hero__inset {
  position: absolute; right: -12px; bottom: 0; width: 42%; max-width: 220px;
  border-radius: var(--r-lg); overflow: hidden;
  border: 5px solid #fff; box-shadow: var(--sh-3);
}
.pc-hero__inset-img img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }

.pc-hero__badge {
  position: absolute; left: -8px; top: 12%;
  display: flex; align-items: center; gap: 12px;
  background: rgba(255, 255, 255, .96); backdrop-filter: blur(6px);
  border: 1px solid var(--pc-border); border-radius: var(--r-md);
  padding: 12px 16px; box-shadow: var(--sh-2); max-width: 230px;
}
.pc-hero__badge-icon {
  width: 42px; height: 42px; border-radius: 12px; flex: 0 0 auto;
  display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, var(--pc-blue), var(--pc-green));
}
.pc-hero__badge-text { font-size: .78rem; line-height: 1.45; color: var(--pc-muted); }
.pc-hero__badge-text strong {
  display: block; font-family: var(--pc-font-h); font-size: .9rem; color: var(--pc-text);
}

/* ---------------- Trust strip ---------------- */
.pc-trust { margin-top: -48px; position: relative; z-index: 5; }
.pc-trust__card {
  background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--r-lg); box-shadow: var(--sh-2); overflow: hidden;
}
.pc-trust__item {
  display: flex; align-items: center; gap: 14px; height: 100%;
  padding: 26px 24px; border-right: 1px solid var(--pc-border);
  color: var(--pc-text); position: relative; overflow: hidden;
  transition: background-color var(--dur) var(--ease);
}
.pc-trust__item::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--pc-blue); transform: scaleY(0); transform-origin: bottom;
  transition: transform var(--dur) var(--ease);
}
.pc-trust__item:hover { background: var(--pc-bg-alt); color: var(--pc-text); }
.pc-trust__item:hover::before { transform: scaleY(1); transform-origin: top; }
.pc-trust__item--education::before { background: var(--pc-orange); }
.pc-trust__item--manpower::before  { background: var(--pc-blue); }
.pc-trust__item--insurance::before { background: var(--pc-green); }
.col-lg-4:last-child .pc-trust__item { border-right: 0; }

.pc-trust__icon {
  width: 52px; height: 52px; border-radius: 14px; flex: 0 0 auto;
  display: grid; place-items: center;
  transition: transform var(--dur) var(--ease);
}
.pc-trust__item:hover .pc-trust__icon { transform: translateY(-3px) rotate(-4deg); }
.pc-trust__item--education .pc-trust__icon { background: var(--pc-orange-soft); color: var(--pc-orange); }
.pc-trust__item--manpower  .pc-trust__icon { background: var(--pc-blue-soft);   color: var(--pc-blue); }
.pc-trust__item--insurance .pc-trust__icon { background: var(--pc-green-soft);  color: var(--pc-green); }

.pc-trust__body { flex: 1; line-height: 1.45; }
.pc-trust__body strong { display: block; font-family: var(--pc-font-h); font-size: 1.05rem; }
.pc-trust__body span { font-size: .84rem; color: var(--pc-muted); }
.pc-trust__arrow { color: var(--pc-muted); transition: transform var(--dur) var(--ease), color var(--dur) var(--ease); }
.pc-trust__item:hover .pc-trust__arrow { transform: translateX(4px); color: var(--pc-blue); }

/* ---------------- 6. Sections & cards ---------------- */
/* editorial split */
.pc-split__media { position: relative; }
.pc-split__img {
  border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-3);
}
.pc-split__img img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; transition: transform 1.1s var(--ease); }
.pc-split__media:hover .pc-split__img img { transform: scale(1.05); }
.pc-split__accent {
  position: absolute; width: 160px; height: 160px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--pc-blue) 0%, var(--pc-green) 100%);
  opacity: .1; z-index: -1;
}
.pc-split__accent--tl { top: -22px; left: -22px; }
.pc-split__accent--br { bottom: -22px; right: -22px; }

.pc-split__stat {
  position: absolute; right: 20px; bottom: -26px;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md);
  box-shadow: var(--sh-2); padding: 16px 20px; display: flex; align-items: center; gap: 12px;
}
.pc-split__stat .pc-icon { color: var(--pc-green); }
.pc-split__stat strong { display: block; font-family: var(--pc-font-h); color: var(--pc-text); }
.pc-split__stat span { font-size: .8rem; color: var(--pc-muted); }

/* checklist */
.pc-checks { display: grid; gap: 12px; margin: var(--s-3) 0; }
.pc-checks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pc-checks li { display: flex; align-items: flex-start; gap: 10px; font-size: .93rem; }
.pc-checks .pc-icon {
  color: var(--pc-green); background: var(--pc-green-soft);
  border-radius: 50%; padding: 3px; margin-top: 2px;
}

/* vertical / service cards */
.pc-vcard {
  position: relative; height: 100%; overflow: hidden;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-lg);
  padding: var(--s-4) var(--s-3) var(--s-3);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-vcard::before {
  content: ''; position: absolute; inset: 0 0 auto 0; height: 4px;
  background: var(--pc-blue); transform: scaleX(0); transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
.pc-vcard:hover { transform: translateY(-8px); box-shadow: var(--sh-3); border-color: transparent; }
.pc-vcard:hover::before { transform: scaleX(1); }
.pc-vcard--education::before { background: linear-gradient(90deg, var(--pc-blue), var(--pc-orange)); }
.pc-vcard--manpower::before  { background: linear-gradient(90deg, var(--pc-blue), var(--pc-green)); }
.pc-vcard--insurance::before { background: linear-gradient(90deg, var(--pc-blue), var(--pc-red)); }
.pc-vcard--loan::before      { background: linear-gradient(90deg, var(--pc-green), var(--pc-orange)); }

.pc-vcard__icon {
  width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center;
  margin-bottom: var(--s-3); transition: transform var(--dur) var(--ease);
}
.pc-vcard:hover .pc-vcard__icon { transform: translateY(-4px) rotate(-5deg); }
.pc-vcard--education .pc-vcard__icon { background: var(--pc-orange-soft); color: var(--pc-orange); }
.pc-vcard--manpower  .pc-vcard__icon { background: var(--pc-blue-soft);   color: var(--pc-blue); }
.pc-vcard--insurance .pc-vcard__icon { background: var(--pc-red-soft);    color: var(--pc-red); }
.pc-vcard--loan      .pc-vcard__icon { background: var(--pc-green-soft); color: var(--pc-green); }
.pc-vcard h3 { margin-bottom: 10px; }
.pc-vcard p { color: var(--pc-muted); font-size: .93rem; margin-bottom: var(--s-3); }

/* icon feature card (compact) */
.pc-fcard {
  height: 100%; background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--r-md); padding: var(--s-3);
  display: flex; flex-direction: column; gap: 12px;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-fcard:hover { transform: translateY(-6px); box-shadow: var(--sh-2); border-color: var(--pc-blue-line); }
.pc-fcard__icon {
  width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center;
  background: var(--pc-blue-soft); color: var(--pc-blue);
}
.pc-fcard h3 { font-size: 1.05rem; margin: 0; }
.pc-fcard p { font-size: .88rem; color: var(--pc-muted); margin: 0; }
.pc-fcard--green .pc-fcard__icon { background: var(--pc-green-soft); color: var(--pc-green); }
.pc-fcard--orange .pc-fcard__icon { background: var(--pc-orange-soft); color: var(--pc-orange); }
.pc-fcard--red .pc-fcard__icon { background: var(--pc-red-soft); color: var(--pc-red); }

/* image service card */
.pc-scard {
  height: 100%; background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--r-lg); overflow: hidden; display: flex; flex-direction: column;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-scard:hover { transform: translateY(-8px); box-shadow: var(--sh-3); border-color: transparent; }
.pc-scard__media { position: relative; overflow: hidden; }
.pc-scard__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1s var(--ease); }
.pc-scard:hover .pc-scard__media img { transform: scale(1.07); }
.pc-scard__media::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(7, 31, 78, .55) 100%);
  opacity: .7; transition: opacity var(--dur) var(--ease);
}
.pc-scard:hover .pc-scard__media::after { opacity: 1; }
.pc-scard__tag {
  position: absolute; left: 14px; top: 14px; z-index: 2;
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(255, 255, 255, .94); color: var(--pc-blue-dark);
  border-radius: var(--r-pill); padding: 7px 13px;
  font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.pc-scard__body { padding: var(--s-3); display: flex; flex-direction: column; flex: 1; }
.pc-scard__body h3 { font-size: 1.12rem; margin-bottom: 8px; }
.pc-scard__body p { font-size: .9rem; color: var(--pc-muted); flex: 1; margin-bottom: var(--s-2); }

/* country card */
.pc-country {
  position: relative; display: block; height: 100%; overflow: hidden;
  border-radius: var(--r-lg); background: var(--pc-blue-deep);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-country:hover { transform: translateY(-6px); box-shadow: var(--sh-3); }
.pc-country__img img {
  width: 100%; aspect-ratio: 3 / 4; object-fit: cover;
  opacity: .82; transition: transform 1.1s var(--ease), opacity var(--dur) var(--ease);
}
.pc-country:hover .pc-country__img img { transform: scale(1.08); opacity: .68; }
.pc-country__overlay {
  position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
  padding: var(--s-3) 20px 20px; color: #fff;
  background: linear-gradient(180deg, rgba(7, 31, 78, .08) 30%, rgba(7, 31, 78, .82) 100%);
}
.pc-country__flag {
  display: inline-block; width: 38px; margin-bottom: 10px;
  border-radius: 4px; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, .35);
  background: rgba(255, 255, 255, .2);
}
.pc-country__flag img { width: 100%; height: auto; display: block; }
.pc-country__name { font-family: var(--pc-font-h); font-weight: 700; font-size: 1.08rem; color: #fff; }
.pc-country__cta {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 6px; font-size: .8rem; font-weight: 600; color: rgba(255, 255, 255, .82);
  opacity: 0; transform: translateY(6px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-country:hover .pc-country__cta { opacity: 1; transform: translateY(0); }
.pc-country--sm .pc-country__img img { aspect-ratio: 4 / 3; }

/* process timeline */
.pc-steps { position: relative; display: grid; gap: var(--s-3); }
.pc-steps--h { grid-template-columns: repeat(auto-fit, minmax(158px, 1fr)); }
.pc-step {
  position: relative; background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--r-md); padding: var(--s-3);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-step:hover { transform: translateY(-6px); box-shadow: var(--sh-2); }
.pc-step__no {
  font-family: var(--pc-font-h); font-size: 2rem; font-weight: 800; line-height: 1;
  color: transparent; -webkit-text-stroke: 1.5px var(--pc-blue-line);
  margin-bottom: 12px; transition: -webkit-text-stroke-color var(--dur) var(--ease);
}
.pc-step:hover .pc-step__no { -webkit-text-stroke-color: var(--pc-orange); }
.pc-step h3 { font-size: 1rem; margin-bottom: 6px; }
.pc-step p { font-size: .86rem; color: var(--pc-muted); margin: 0; }
.pc-step__icon {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: var(--pc-blue-soft); color: var(--pc-blue); margin-bottom: 14px;
}

/* dark section */
.pc-dark {
  position: relative; overflow: hidden; color: rgba(255, 255, 255, .78);
  background: linear-gradient(150deg, var(--pc-blue-dark) 0%, var(--pc-blue-deep) 100%);
}
.pc-dark h1, .pc-dark h2, .pc-dark h3, .pc-dark h4 { color: #fff; }

/* White cards sitting inside a dark section keep their own dark heading colour.
   (.pc-wcard is the translucent card built for dark backgrounds - excluded.) */
.pc-dark .pc-step h3,
.pc-dark .pc-fcard h3,
.pc-dark .pc-scard h3,
.pc-dark .pc-vcard h3,
.pc-dark .pc-quote h3,
.pc-dark .pc-contact-card h2,
.pc-dark .pc-contact-card h3 { color: var(--pc-text); }
.pc-dark__bg { position: absolute; inset: 0; opacity: .12; }
.pc-dark__bg img { width: 100%; height: 100%; object-fit: cover; }
.pc-dark .container { position: relative; z-index: 2; }

.pc-wcard {
  height: 100%; padding: var(--s-3);
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--r-md); backdrop-filter: blur(4px);
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-wcard:hover { transform: translateY(-6px); background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .26); }
.pc-wcard__icon {
  width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
  background: rgba(255, 255, 255, .1); color: #fff; margin-bottom: var(--s-2);
}
.pc-wcard h3 { font-size: 1.05rem; margin-bottom: 8px; }
.pc-wcard p { font-size: .88rem; color: rgba(255, 255, 255, .72); margin: 0; }

/* trust pill row */
.pc-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pc-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: var(--r-pill);
  background: #fff; border: 1px solid var(--pc-border);
  font-size: .85rem; font-weight: 600; color: var(--pc-text-2);
  transition: transform var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-pill:hover { transform: translateY(-2px); border-color: var(--pc-green); }
.pc-pill .pc-icon { color: var(--pc-green); }
.pc-dark .pc-pill {
  background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .16); color: #fff;
}

/* testimonials */
.pc-quote {
  height: 100%; background: #fff; border: 1px solid var(--pc-border);
  border-radius: var(--r-lg); padding: var(--s-3);
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; gap: 14px;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-quote:hover { transform: translateY(-6px); box-shadow: var(--sh-3); border-color: transparent; }

.pc-quote__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pc-quote__tag {
  display: inline-flex; align-items: center;
  padding: 5px 11px; border-radius: var(--r-pill);
  background: var(--pc-blue-soft); color: var(--pc-blue-dark);
  font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  white-space: nowrap;
}

.pc-quote__text {
  position: relative; z-index: 1;
  font-size: .93rem; line-height: 1.75; color: var(--pc-text-2); flex: 1; margin: 0;
}
.pc-quote__text::before { content: '\201C'; }
.pc-quote__text::after  { content: '\201D'; }
/* keep carousel cards a uniform height */
.pc-quote--clamp .pc-quote__text {
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical;
  overflow: hidden;
}

.pc-quote__who {
  display: flex; align-items: flex-start; gap: 12px;
  padding-top: 14px; border-top: 1px solid var(--pc-border);
}
.pc-quote__id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pc-quote__avatar {
  width: 46px; height: 46px; border-radius: 50%; flex: 0 0 auto;
  display: grid; place-items: center; color: #fff;
  font-family: var(--pc-font-h); font-weight: 700; font-size: .92rem; letter-spacing: .02em;
  background: linear-gradient(135deg, var(--pc-blue), var(--pc-blue-dark));
}
.pc-quote__avatar--lg { width: 58px; height: 58px; font-size: 1.1rem; }

/* deterministic avatar tints */
.pc-tint-a { background: linear-gradient(135deg, #1B4FB0, var(--pc-blue-dark)); }
.pc-tint-b { background: linear-gradient(135deg, #1E9A4B, var(--pc-green-dark)); }
.pc-tint-c { background: linear-gradient(135deg, #F49A45, #D9660E); }
.pc-tint-d { background: linear-gradient(135deg, #4C6FD0, #23408A); }
.pc-tint-e { background: linear-gradient(135deg, #14867E, #0C5C56); }
.pc-tint-f { background: linear-gradient(135deg, #B0455E, #862F44); }

.pc-quote__name {
  font-family: var(--pc-font-h); font-weight: 700; color: var(--pc-text);
  font-size: .96rem; line-height: 1.3;
}
.pc-quote__role { font-size: .8rem; color: var(--pc-text-2); line-height: 1.4; }
.pc-quote__meta {
  display: flex; align-items: center; gap: 5px; flex-wrap: wrap;
  font-size: .78rem; color: var(--pc-muted); margin-top: 2px;
}
.pc-quote__meta .pc-icon { color: var(--pc-green); }
.pc-quote__dot { opacity: .5; }

.pc-quote__stars { display: flex; gap: 2px; }
.pc-quote__stars .is-on  { color: var(--pc-orange); display: inline-flex; }
.pc-quote__stars .is-off { color: var(--pc-border); display: inline-flex; }

/* featured testimonial */
.pc-feature {
  position: relative; overflow: hidden;
  background: linear-gradient(150deg, var(--pc-blue-dark) 0%, var(--pc-blue-deep) 100%);
  border-radius: var(--r-xl); padding: var(--s-5) var(--s-4);
  color: rgba(255, 255, 255, .86); box-shadow: var(--sh-4);
}
.pc-feature::after {
  content: ''; position: absolute; right: -80px; top: -80px;
  width: 260px; height: 260px; border-radius: 50%;
  background: rgba(255, 255, 255, .05);
}
.pc-feature__mark {
  position: absolute; left: 22px; top: 14px;
  color: rgba(255, 255, 255, .1); pointer-events: none;
}
.pc-feature__body { position: relative; z-index: 1; }
.pc-feature__text {
  font-family: var(--pc-font-h); font-weight: 600;
  font-size: clamp(1.05rem, .98rem + .5vw, 1.35rem); line-height: 1.6;
  color: #fff; margin: var(--s-2) 0 var(--s-4);
}
.pc-feature__text::before { content: '\201C'; }
.pc-feature__text::after  { content: '\201D'; }
.pc-feature .pc-quote__who { border-top-color: rgba(255, 255, 255, .16); }
.pc-feature .pc-quote__name { color: #fff; }
.pc-feature .pc-quote__role { color: rgba(255, 255, 255, .78); }
.pc-feature .pc-quote__meta { color: rgba(255, 255, 255, .6); }
.pc-feature .pc-quote__meta .pc-icon { color: var(--pc-orange); }
.pc-feature .pc-quote__stars .is-off { color: rgba(255, 255, 255, .25); }

.pc-filters__empty {
  text-align: center; color: var(--pc-muted); font-size: .92rem;
  padding: var(--s-5) 0 0; margin: 0;
}

.pc-notice {
  display: flex; gap: 12px; align-items: flex-start;
  background: var(--pc-orange-soft); border: 1px dashed rgba(244, 123, 32, .45);
  border-radius: var(--r-md); padding: 16px 20px; font-size: .88rem; color: #8a4a12;
}
.pc-notice .pc-icon { color: var(--pc-orange); flex: 0 0 auto; margin-top: 2px; }

/* ---------------- Page head ---------------- */
.pc-pagehead {
  position: relative; overflow: hidden; color: #fff;
  padding: clamp(56px, 7vw, 104px) 0 clamp(48px, 6vw, 88px);
  background: var(--pc-blue-deep);
}
.pc-pagehead__bg { position: absolute; inset: 0; }
.pc-pagehead__bg img { width: 100%; height: 100%; object-fit: cover; }
.pc-pagehead__bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(110deg, rgba(7, 31, 78, .94) 0%, rgba(11, 47, 115, .84) 48%, rgba(22, 131, 59, .58) 100%);
}
.pc-pagehead__inner { position: relative; z-index: 2; max-width: 820px; }
.pc-pagehead__title { color: #fff; margin-bottom: var(--s-2); }
.pc-pagehead__text { color: rgba(255, 255, 255, .82); font-size: 1.02rem; max-width: 640px; }

.pc-crumbs { margin-top: var(--s-3); }
.pc-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: .84rem; }
.pc-crumbs li { display: flex; align-items: center; gap: 8px; color: rgba(255, 255, 255, .62); }
.pc-crumbs li + li::before { content: '/'; color: rgba(255, 255, 255, .38); }
.pc-crumbs a { color: rgba(255, 255, 255, .82); }
.pc-crumbs a:hover { color: #fff; }

/* ---------------- 7. Gallery / FAQ / forms ---------------- */
.pc-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: var(--s-5); }
.pc-filter {
  padding: 9px 20px; border-radius: var(--r-pill);
  border: 1px solid var(--pc-border); background: #fff;
  font-family: var(--pc-font); font-size: .87rem; font-weight: 600; color: var(--pc-text-2);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease),
              border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-filter:hover { transform: translateY(-2px); border-color: var(--pc-blue); }
.pc-filter.is-active {
  background: linear-gradient(100deg, var(--pc-blue), var(--pc-blue-dark));
  border-color: transparent; color: #fff;
}

.pc-gal { column-count: 4; column-gap: var(--s-2); }
.pc-gal__item {
  position: relative; display: block; overflow: hidden; width: 100%;
  margin: 0 0 var(--s-2); break-inside: avoid; -webkit-column-break-inside: avoid;
  border-radius: var(--r-md); background: var(--pc-bg-alt);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-gal__item:hover { transform: translateY(-4px); box-shadow: var(--sh-2); }
.pc-gal__item img { width: 100%; height: auto; transition: transform .9s var(--ease); }
.pc-gal__item:hover img { transform: scale(1.06); }
.pc-gal__item.is-hidden,
.is-hidden { display: none !important; }
.pc-gal__cap {
  position: absolute; inset: auto 0 0 0; padding: 34px 16px 14px; color: #fff;
  background: linear-gradient(180deg, transparent, rgba(7, 31, 78, .88));
  font-size: .84rem; font-weight: 600;
  opacity: 0; transform: translateY(10px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-gal__item:hover .pc-gal__cap { opacity: 1; transform: translateY(0); }
.pc-gal__zoom {
  position: absolute; right: 12px; top: 12px;
  width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255, 255, 255, .92); color: var(--pc-blue-dark);
  opacity: 0; transform: scale(.7);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-gal__item:hover .pc-gal__zoom { opacity: 1; transform: scale(1); }

/* FAQ */
.pc-faq { display: grid; gap: 12px; }
.pc-faq__item { background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md); overflow: hidden; }
.pc-faq__item.is-open { border-color: var(--pc-blue-line); box-shadow: var(--sh-1); }
.pc-faq__q {
  width: 100%; text-align: left; background: none; border: 0;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 22px;
  font-family: var(--pc-font-h); font-weight: 700; font-size: 1rem; color: var(--pc-text);
  cursor: pointer;
}
.pc-faq__sign { position: relative; width: 22px; height: 22px; flex: 0 0 auto; }
.pc-faq__sign::before, .pc-faq__sign::after {
  content: ''; position: absolute; inset: 0; margin: auto;
  background: var(--pc-blue); border-radius: 2px;
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.pc-faq__sign::before { width: 14px; height: 2px; }
.pc-faq__sign::after  { width: 2px; height: 14px; }
.pc-faq__item.is-open .pc-faq__sign::after { transform: scaleY(0); }
.pc-faq__item.is-open .pc-faq__sign::before { background: var(--pc-orange); }
.pc-faq__a { max-height: 0; overflow: hidden; transition: max-height .42s var(--ease); }
.pc-faq__a > div { padding: 0 22px 20px; font-size: .93rem; color: var(--pc-muted); }

/* forms */
.pc-form { display: grid; gap: var(--s-2); }
.pc-field label {
  display: block; font-size: .82rem; font-weight: 600; color: var(--pc-text);
  margin-bottom: 7px; letter-spacing: .01em;
}
.pc-field label .req { color: var(--pc-red); }
.pc-input, .pc-select, .pc-textarea {
  width: 100%; padding: 13px 16px;
  font-family: var(--pc-font); font-size: .94rem; color: var(--pc-text);
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-sm);
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-input:focus, .pc-select:focus, .pc-textarea:focus {
  outline: none; border-color: var(--pc-blue);
  box-shadow: 0 0 0 4px rgba(18, 58, 140, .1);
}
.pc-textarea { min-height: 132px; resize: vertical; }
.pc-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath fill='%235A6779' d='M1.4 0 7 5.6 12.6 0 14 1.4 7 8.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 16px center; padding-right: 42px;
}
.pc-field.has-error .pc-input,
.pc-field.has-error .pc-select,
.pc-field.has-error .pc-textarea { border-color: var(--pc-red); }
.pc-error { display: block; margin-top: 6px; font-size: .8rem; color: var(--pc-red); }
.pc-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }

.pc-alert {
  display: flex; gap: 12px; align-items: flex-start;
  border-radius: var(--r-md); padding: 16px 20px; font-size: .92rem; margin-bottom: var(--s-3);
}
.pc-alert--ok  { background: var(--pc-green-soft); color: #0d5827; border: 1px solid rgba(22, 131, 59, .28); }
.pc-alert--err { background: var(--pc-red-soft);   color: #8e1f1f; border: 1px solid rgba(198, 40, 40, .26); }
.pc-alert .pc-icon { flex: 0 0 auto; margin-top: 2px; }

.pc-contact-card {
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-lg);
  padding: var(--s-4); box-shadow: var(--sh-1); height: 100%;
}
.pc-contact-list { display: grid; gap: var(--s-3); }
.pc-contact-list li { display: flex; gap: 14px; align-items: flex-start; }
.pc-contact-list .pc-ci {
  width: 44px; height: 44px; border-radius: 13px; flex: 0 0 auto; display: grid; place-items: center;
  background: var(--pc-blue-soft); color: var(--pc-blue);
}
.pc-contact-list strong {
  display: block; font-family: var(--pc-font-h); font-size: .82rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--pc-muted); margin-bottom: 3px;
}
.pc-contact-list a { color: var(--pc-text); font-weight: 500; }
.pc-contact-list a:hover { color: var(--pc-blue); }
/* Small qualifier beside a number, e.g. which of the two is the landline. */
.pc-ci__note { display: block; font-size: .78rem; color: var(--pc-muted); margin-top: 2px; }

.pc-map {
  border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--pc-border);
  box-shadow: var(--sh-1); line-height: 0;
}
.pc-map iframe { width: 100%; height: 420px; border: 0; }

/* prose (legal pages) */
.pc-prose { max-width: 820px; }
.pc-prose h2 { font-size: clamp(1.35rem, 1.2rem + .6vw, 1.7rem); margin-top: var(--s-5); }
.pc-prose h2:first-child { margin-top: 0; }
.pc-prose h3 { margin-top: var(--s-4); }
.pc-prose ul { list-style: disc; padding-left: 22px; margin: 0 0 var(--s-2); }
.pc-prose li { margin-bottom: 8px; }

/* ---------------- 8. Footer & floating UI ---------------- */
.pc-footer {
  background: var(--pc-blue-deep); color: rgba(255, 255, 255, .68);
  padding: clamp(56px, 6vw, 88px) 0 0; font-size: .9rem;
}
.pc-footer__top { padding-bottom: var(--s-6); }
.pc-footer__brand {
  display: inline-block; background: #fff; border-radius: var(--r-md);
  padding: 12px 18px; margin-bottom: var(--s-3);
}
.pc-footer__brand img { height: 46px; width: auto; }
.pc-footer__about { color: rgba(255, 255, 255, .64); margin-bottom: var(--s-3); }

.pc-footer__contact { display: grid; gap: 14px; }
.pc-footer__contact li { display: flex; gap: 12px; align-items: flex-start; }
.pc-footer__contact .pc-icon { color: var(--pc-orange); flex: 0 0 auto; margin-top: 3px; }
.pc-footer__contact a, .pc-footer__contact span { color: rgba(255, 255, 255, .74); }
.pc-footer__contact a:hover { color: #fff; }
.pc-sep { opacity: .4; }

.pc-footer__social { display: flex; gap: 10px; margin-top: var(--s-3); }
.pc-footer__social a {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); color: #fff;
  transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
.pc-footer__social a:hover { background: var(--pc-orange); transform: translateY(-3px); }

.pc-footer__title {
  font-size: .82rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #fff; margin-bottom: var(--s-2); padding-bottom: 10px; position: relative;
}
.pc-footer__title::after {
  content: ''; position: absolute; left: 0; bottom: 0; width: 26px; height: 2px;
  background: linear-gradient(90deg, var(--pc-orange), var(--pc-green)); border-radius: 2px;
}
.pc-footer__links { display: grid; gap: 9px; }
.pc-footer__links a {
  color: rgba(255, 255, 255, .66); font-size: .875rem;
  display: inline-block; transition: color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-footer__links a:hover { color: #fff; transform: translateX(4px); }

.pc-footer__locations {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: var(--s-3) 0; font-size: .8rem; color: rgba(255, 255, 255, .5); line-height: 1.9;
}
.pc-footer__locations span { color: rgba(255, 255, 255, .72); font-weight: 600; }

.pc-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  padding: var(--s-3) 0 calc(var(--s-3) + env(safe-area-inset-bottom));
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between;
  font-size: .84rem;
}
.pc-footer__bottom p { margin: 0; color: rgba(255, 255, 255, .56); }
.pc-footer__credit a { color: #fff; font-weight: 600; }
.pc-footer__credit a:hover { color: var(--pc-orange); }

/* CTA band */
.pc-cta {
  position: relative; overflow: hidden; color: #fff;
  padding: clamp(64px, 7vw, 104px) 0; background: var(--pc-blue-deep);
}
.pc-cta__bg { position: absolute; inset: 0; }
.pc-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.pc-cta__bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(120deg, rgba(7, 31, 78, .96) 0%, rgba(11, 47, 115, .92) 55%, rgba(13, 88, 47, .86) 100%);
}
.pc-cta .container { position: relative; z-index: 2; }
.pc-cta__title { color: #fff; margin-bottom: var(--s-2); }
.pc-cta__text { color: rgba(255, 255, 255, .8); max-width: 640px; margin: 0 auto var(--s-4); }
.pc-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* floating whatsapp */
.pc-float-wa {
  position: fixed; right: 22px; bottom: 24px; z-index: 1040;
  display: flex; align-items: center; gap: 0;
  height: 58px; padding: 0 16px; border-radius: var(--r-pill);
  background: #25D366; color: #fff; box-shadow: 0 12px 30px rgba(37, 211, 102, .38);
  overflow: hidden; transition: gap var(--dur) var(--ease), padding var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-float-wa:hover { color: #fff; gap: 10px; padding-right: 22px; transform: translateY(-3px); }
.pc-float-wa__label {
  max-width: 0; opacity: 0; white-space: nowrap; font-weight: 600; font-size: .9rem;
  transition: max-width var(--dur) var(--ease), opacity var(--dur) var(--ease);
}
.pc-float-wa:hover .pc-float-wa__label { max-width: 130px; opacity: 1; }
.pc-float-wa::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); animation: pcPulse 2.6s infinite;
}
@keyframes pcPulse { 70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); } 100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); } }

.pc-totop {
  position: fixed; right: 24px; bottom: 94px; z-index: 1039;
  width: 44px; height: 44px; border-radius: 50%; border: 0;
  background: var(--pc-blue-dark); color: #fff; cursor: pointer;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);
}
.pc-totop::before {
  content: ''; position: absolute; inset: 0; margin: auto;
  width: 10px; height: 10px; border-left: 2px solid #fff; border-top: 2px solid #fff;
  transform: rotate(45deg) translate(2px, 2px);
}
.pc-totop.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.pc-totop:hover { background: var(--pc-blue); }

/* mobile sticky bar */
.pc-mobilebar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
  display: grid; grid-template-columns: repeat(3, 1fr);
  background: #fff; border-top: 1px solid var(--pc-border);
  box-shadow: 0 -6px 22px rgba(11, 47, 115, .1);
  padding-bottom: env(safe-area-inset-bottom);
}
.pc-mobilebar a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  padding: 10px 4px; font-size: .72rem; font-weight: 600; color: var(--pc-text);
  border-right: 1px solid var(--pc-border);
}
.pc-mobilebar a:last-child { border-right: 0; }
.pc-mobilebar__wa { color: var(--pc-green); }

/* ---------------- 9. Motion ---------------- */
.pc-float-slow { animation: pcFloat 6s ease-in-out infinite; }
@keyframes pcFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

.wow { visibility: hidden; }
.animated { visibility: visible; }

/* swiper */
.pc-swiper { padding-bottom: 56px !important; }
.pc-swiper .swiper-slide { height: auto; }
.pc-swiper .swiper-pagination-bullet { background: var(--pc-blue-line); opacity: 1; width: 9px; height: 9px; }
.pc-swiper .swiper-pagination-bullet-active { background: var(--pc-blue); width: 26px; border-radius: var(--r-pill); }
.pc-swiper-nav { display: flex; gap: 10px; }
.pc-swiper-btn {
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--pc-border); background: #fff; color: var(--pc-blue-dark);
  display: grid; place-items: center; cursor: pointer;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-swiper-btn:hover { background: var(--pc-blue); color: #fff; transform: translateY(-2px); }
.pc-swiper-btn--prev .pc-icon { transform: rotate(180deg); }
.pc-swiper-btn.swiper-button-disabled { opacity: .4; cursor: default; }

/* ---------------- 10. Responsive ---------------- */
/* Nine top-level items plus a logo and two buttons is a wide row, so the menu
   tightens as the viewport narrows - width comes out of the menu, never out of
   the logo. */
@media (max-width: 1399.98px) {
  .pc-header__inner { min-height: 76px; gap: var(--s-2); }
  .pc-logo img { height: 58px; }
}

/* Phones: the logo row shares space with the WhatsApp and menu buttons. */
@media (max-width: 575.98px) {
  .pc-logo img { height: 50px; }
  .pc-header.is-stuck .pc-logo img { height: 46px; }
}

/* The one tight band: full menu on screen, but the narrower xl container. */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .pc-nav__link { padding: 10px 7px; font-size: .85rem; }
  /* Full menu + CTA in the 1140 container leaves only ~12px spare even at
     52px, so the logo keeps that height in this band. The artwork still reads
     larger than before: logo-header.png was re-cut on 5 Oct 2026 with its
     transparent padding trimmed off. */
  .pc-logo img { height: 52px; }
  .pc-nav__link::after { left: 7px; right: 7px; }
}

@media (max-width: 991.98px) {
  :root { --pc-header-h: 72px; }
  body { padding-bottom: 62px; }           /* room for the mobile bar */
  .pc-hero { padding-bottom: clamp(56px, 8vw, 80px); }
  .pc-hero__media { margin-top: var(--s-4); max-width: 560px; margin-inline: auto; }
  .pc-hero__badge { display: none; }
  .pc-trust { margin-top: -32px; }
  .pc-trust__item { border-right: 0; border-bottom: 1px solid var(--pc-border); }
  .col-lg-4:last-child .pc-trust__item { border-bottom: 0; }
  .pc-gal { column-count: 3; }
  .pc-split__stat { right: 12px; }
  .pc-footer__top { text-align: left; }
}

@media (max-width: 767.98px) {
  .pc-checks--2 { grid-template-columns: 1fr; }
  .pc-gal { column-count: 2; }
  .pc-hero__actions .pc-btn { flex: 1 1 100%; justify-content: center; }
  .pc-hero__inset { width: 46%; right: -4px; }
  .pc-cta__actions .pc-btn { flex: 1 1 100%; justify-content: center; }
  .pc-map iframe { height: 320px; }
  .pc-footer__bottom { justify-content: center; text-align: center; }
}

@media (max-width: 575.98px) {
  .pc-gal { column-count: 1; }
  .pc-filters { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; }
  .pc-filter { flex: 0 0 auto; }
  .pc-contact-card { padding: var(--s-3); }
  .pc-quote { padding: var(--s-3); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .wow { visibility: visible !important; }
  .pc-hero__title .pc-reveal > span { transform: none; }
}

@media print {
  .pc-header, .pc-topbar, .pc-footer, .pc-mobilebar, .pc-float-wa, .pc-totop, .pc-cta { display: none !important; }
}

/* WOW.js + animate.css v4 handshake */
.animate__animated { visibility: visible; }

/* ============================================================
   Institution directory - "Top Colleges and Universities in Tamil Nadu"
   Used on the education hub, every education service page and
   top-colleges-tamil-nadu/.
   ============================================================ */

.pc-clg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: var(--s-2);
}

.pc-clg {
  position: relative;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 14px;
  padding: var(--s-3) var(--s-2) 56px;
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
              border-color var(--dur) var(--ease);
}
.pc-clg:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-2);
  border-color: var(--pc-blue-line);
}

/* Logo tile - real logo, or a wordmark while none has been supplied. */
.pc-clg__logo {
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 auto; width: 84px; height: 84px; padding: 8px;
  border-radius: var(--r-md);
  overflow: hidden;
}
/* Real logo tiles get the plate; wordmarks keep the .pc-tint-* gradient,
   which is defined earlier in this file and would otherwise be overridden.
   The plate is wider than the square wordmark tile because most institution
   lockups are horizontal - at 84px wide they shrink to an unreadable strip. */
.pc-clg__logo:not(.pc-clg__logo--mark) {
  width: 140px;
  background: var(--pc-bg-alt);
  border: 1px solid var(--pc-border);
}
.pc-clg__logo img {
  width: 100%; height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply; /* flattens white logo backgrounds onto the tile */
}
.pc-clg__logo--mark {
  color: #fff;
  font-family: var(--pc-font-h);
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.15;
  padding: 6px;
}
.pc-clg__logo--mark > span {
  display: block;
  font-size: clamp(.55rem, calc(6.2rem / var(--mark-len, 5)), .95rem);
  overflow-wrap: anywhere;
  hyphens: auto;
}

.pc-clg__body { display: flex; flex-direction: column; gap: 6px; }

.pc-clg__name {
  margin: 0;
  font-size: .95rem; line-height: 1.35; font-weight: 700;
  color: var(--pc-text);
}

.pc-clg__meta {
  display: flex; align-items: flex-start; justify-content: center; gap: 5px;
  margin: 0;
  font-size: .78rem; line-height: 1.4; color: var(--pc-muted);
}
.pc-clg__meta .pc-icon { flex: 0 0 auto; margin-top: 2px; color: var(--pc-blue); }

.pc-clg__type {
  position: absolute; left: 50%; bottom: var(--s-2); transform: translateX(-50%);
  max-width: calc(100% - var(--s-3));
  padding: 5px 12px;
  border-radius: var(--r-pill);
  background: var(--pc-blue-soft);
  color: var(--pc-blue-dark);
  font-size: .69rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Footer: non-affiliation note plus the two calls to action. */
.pc-clg-foot {
  display: flex; flex-direction: column; gap: var(--s-3);
  align-items: center;
  margin-top: var(--s-5);
}
.pc-clg-note {
  display: flex; gap: 10px; align-items: flex-start;
  max-width: 780px; margin: 0;
  font-size: .8rem; line-height: 1.6; color: var(--pc-muted); text-align: left;
}
.pc-clg-note .pc-icon { flex: 0 0 auto; margin-top: 3px; color: var(--pc-muted); opacity: .7; }

.pc-clg-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* District tally cards on the directory page. */
.pc-dcard {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
}
.pc-dcard__no {
  flex: 0 0 auto; min-width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--r-sm);
  background: linear-gradient(140deg, var(--pc-blue), var(--pc-blue-dark));
  color: #fff; font-family: var(--pc-font-h); font-weight: 800; font-size: 1.05rem;
}
.pc-dcard__name {
  display: flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: .92rem; color: var(--pc-text);
}
.pc-dcard__name .pc-icon { color: var(--pc-blue); flex: 0 0 auto; }

/* Institution count badge on the discipline cards. */
.pc-fcard__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 22px; padding: 0 7px; margin-left: 6px;
  border-radius: var(--r-pill);
  background: var(--pc-blue-soft); color: var(--pc-blue-dark);
  font-size: .72rem; font-weight: 700; vertical-align: middle;
}

/* ---------------- Programme detail blocks ---------------- */

/* Quick-reference strip: course, duration, medium, entrance. */
.pc-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--s-2);
  margin-bottom: var(--s-5);
}
.pc-fact {
  display: flex; flex-direction: column; gap: 6px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid var(--pc-border);
  border-left: 3px solid var(--pc-blue);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-1);
}
.pc-fact__label {
  font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--pc-muted);
}
.pc-fact__value { font-size: .95rem; font-weight: 600; line-height: 1.45; color: var(--pc-text); }

/* Programme chips. */
.pc-block { margin-top: var(--s-4); }
.pc-block__title {
  display: flex; align-items: center; gap: 10px;
  margin: 0 0 var(--s-3);
  font-size: 1.1rem;
}
.pc-block__title .pc-icon { color: var(--pc-blue); }

.pc-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.pc-chips--grid { justify-content: center; }
.pc-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 16px;
  border-radius: var(--r-pill);
  background: #fff;
  border: 1px solid var(--pc-border);
  font-size: .85rem; font-weight: 500; color: var(--pc-text-2);
  transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pc-chip:hover { border-color: var(--pc-blue); transform: translateY(-2px); }
.pc-chip .pc-icon { color: var(--pc-green); flex: 0 0 auto; }
.pc-section--alt .pc-chip { background: #fff; }

/* Eligibility cards. */
.pc-elig {
  position: relative; height: 100%;
  padding: var(--s-3) var(--s-3) var(--s-3);
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-md);
  box-shadow: var(--sh-1);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-elig:hover { transform: translateY(-4px); box-shadow: var(--sh-2); }
.pc-elig__no {
  display: block; margin-bottom: 10px;
  font-family: var(--pc-font-h); font-size: 1.5rem; font-weight: 800;
  color: var(--pc-blue-line);
}
.pc-elig h3 { margin: 0 0 8px; font-size: 1.02rem; }
.pc-elig p { margin: 0; font-size: .875rem; line-height: 1.65; color: var(--pc-muted); }

/* Small print used under checklists and catalogues. */
.pc-fineprint {
  margin: var(--s-2) 0 0;
  font-size: .78rem; line-height: 1.6; color: var(--pc-muted);
}
.pc-fineprint--center { text-align: center; max-width: 760px; margin-inline: auto; margin-top: var(--s-4); }

@media (max-width: 991.98px) {
  .pc-clg-grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
}

@media (max-width: 575.98px) {
  .pc-clg-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
  .pc-clg { padding: var(--s-2) 12px 50px; }
  .pc-clg__logo { width: 66px; height: 66px; }
  .pc-clg__logo:not(.pc-clg__logo--mark) { width: 116px; }
  .pc-clg__name { font-size: .86rem; }
  .pc-clg-actions .pc-btn { flex: 1 1 100%; justify-content: center; }
  .pc-chips--grid { justify-content: flex-start; }
}

/* ============================================================
   Insurance partners - Niva Bupa and SBI Life
   Used on the insurance hub, the two partner landing pages
   and the home page insurance block.
   ============================================================ */

/* The wide two-up card that leads the insurance hub. */
.pc-partner {
  position: relative;
  display: flex; flex-direction: column;
  height: 100%;
  padding: var(--s-4) var(--s-3) var(--s-3);
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
  overflow: hidden;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-partner::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 4px;
  background: linear-gradient(90deg, var(--pc-red), var(--pc-orange));
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--dur) var(--ease);
}
.pc-partner:hover { transform: translateY(-6px); box-shadow: var(--sh-3); border-color: transparent; }
.pc-partner:hover::before { transform: scaleX(1); }

.pc-partner__kind {
  position: absolute; top: var(--s-3); right: var(--s-3);
  padding: 5px 12px;
  font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--pc-red); background: var(--pc-red-soft);
  border-radius: var(--r-pill);
}
.pc-partner__icon {
  display: grid; place-items: center;
  width: 52px; height: 52px; margin-bottom: var(--s-2);
  color: var(--pc-red); background: var(--pc-red-soft);
  border-radius: var(--r-md);
  transition: transform var(--dur) var(--ease);
}
.pc-partner:hover .pc-partner__icon { transform: rotate(-6deg) scale(1.06); }
.pc-partner__name {
  font-family: var(--pc-font-h); font-size: 1.55rem; font-weight: 800; line-height: 1.2;
  color: var(--pc-text);
}
.pc-partner__tag {
  margin-top: 4px;
  font-size: .84rem; font-weight: 600; letter-spacing: .01em;
  color: var(--pc-red);
}
.pc-partner__text {
  margin-top: var(--s-2);
  font-size: .94rem; line-height: 1.7; color: var(--pc-muted);
}
.pc-partner__plans {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: var(--s-3) 0 var(--s-3);
}
.pc-partner__plans .pc-chip { font-size: .78rem; padding: 6px 12px; }
.pc-partner .pc-link { margin-top: auto; }
.pc-chip--more { color: var(--pc-muted); border-style: dashed; }

/* Office / NAP card on a partner landing page. */
.pc-office {
  height: 100%;
  padding: var(--s-4) var(--s-3);
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
}
.pc-office h3 { margin: 0; font-size: 1.15rem; }
.pc-office__role {
  margin: 4px 0 var(--s-3);
  font-size: .82rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
  color: var(--pc-red);
}
.pc-office__addr { margin: 0; font-style: normal; line-height: 1.7; }
.pc-office .pc-contact-list { margin-bottom: var(--s-3); }
.pc-office .pc-hero__actions { margin-top: 0; }

/* Service-area block sitting under the map. */
.pc-area {
  margin-top: var(--s-3);
  padding: var(--s-3);
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-lg);
}
.pc-area h3 { margin: 0 0 8px; font-size: 1.05rem; }
.pc-area p { font-size: .9rem; line-height: 1.7; color: var(--pc-muted); }
.pc-area .pc-chips { margin-top: var(--s-2); }
.pc-area .pc-chip { font-size: .78rem; padding: 6px 12px; }
.pc-area .pc-chip .pc-icon { color: var(--pc-red); }

/* Campaign-material strip - the masonry gallery, capped shorter. */
.pc-gal--strip { column-count: 4; column-gap: var(--s-2); }

@media (max-width: 991.98px) {
  .pc-gal--strip { column-count: 3; }
  .pc-partner__kind { position: static; align-self: flex-start; margin-bottom: var(--s-2); }
}

@media (max-width: 767.98px) {
  .pc-gal--strip { column-count: 2; }
  .pc-partner { padding: var(--s-3); }
  .pc-partner__name { font-size: 1.35rem; }
  .pc-office .pc-hero__actions .pc-btn { flex: 1 1 100%; justify-content: center; }
}

@media (max-width: 575.98px) {
  .pc-gal--strip { column-count: 1; }
}

/* Compact partner tiles in the home page insurance block. */
.pc-hpartner {
  display: flex; flex-direction: column; gap: 2px;
  height: 100%;
  padding: var(--s-2) var(--s-3);
  background: var(--pc-red-soft);
  border: 1px solid transparent;
  border-radius: var(--r-md);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.pc-hpartner:hover { transform: translateY(-3px); box-shadow: var(--sh-2); border-color: var(--pc-red); }
.pc-hpartner__icon { color: var(--pc-red); margin-bottom: 4px; }
.pc-hpartner__name {
  font-family: var(--pc-font-h); font-size: 1.05rem; font-weight: 800; color: var(--pc-text);
}
.pc-hpartner__kind { font-size: .74rem; letter-spacing: .03em; text-transform: uppercase; color: var(--pc-muted); }

/* Cards whose picture is flat artwork, not a photograph. See is_flat_art().
   The photo treatments - gradient scrim, white tag pill, hover zoom - all
   work against a diagram on a white ground, so they come off. */
.pc-scard__media--art::after { display: none; }
.pc-scard__media--art { background: #fff; }
.pc-scard:hover .pc-scard__media--art img { transform: none; }
.pc-scard__media--art .pc-scard__tag {
  background: var(--pc-blue); color: #fff;
}

/* ============================================================
   Home page insurer panels - the three flagship insurers, each
   led by a hook rather than a product name.
   ============================================================ */
.pc-ihooks {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3);
  margin-top: var(--s-7);
}
.pc-ihook {
  position: relative;
  display: flex; flex-direction: column;
  padding: var(--s-4);
  background: #fff;
  border: 1px solid var(--pc-border);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-1);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-ihook::before {
  content: ""; position: absolute; inset: 0 0 auto; height: 4px;
  border-radius: var(--r-lg) var(--r-lg) 0 0;
  background: linear-gradient(90deg, var(--pc-red), var(--pc-orange));
}
.pc-ihook:hover { transform: translateY(-4px); box-shadow: var(--sh-3); }

.pc-ihook__head { display: flex; align-items: center; gap: 12px; margin-bottom: var(--s-3); }
.pc-ihook__icon {
  display: grid; place-items: center; flex: 0 0 auto;
  width: 44px; height: 44px;
  color: var(--pc-red); background: var(--pc-red-soft); border-radius: var(--r-md);
}
.pc-ihook__names { display: flex; flex-direction: column; line-height: 1.3; }
.pc-ihook__names strong { font-family: var(--pc-font-h); font-size: 1.1rem; color: var(--pc-text); }
.pc-ihook__names span {
  font-size: .72rem; font-weight: 600; letter-spacing: .05em;
  text-transform: uppercase; color: var(--pc-muted);
}

/* The hook itself carries the section's weight, so it is set as a heading. */
.pc-ihook__hook {
  margin: 0 0 var(--s-2);
  font-size: 1.3rem; line-height: 1.35; letter-spacing: -.01em;
  color: var(--pc-blue-dark);
}
.pc-ihook__body { font-size: .94rem; line-height: 1.75; color: var(--pc-muted); }

.pc-ihook__list { list-style: none; margin: var(--s-2) 0 var(--s-3); padding: 0; display: grid; gap: 9px; }
.pc-ihook__list li { display: flex; align-items: flex-start; gap: 9px; font-size: .9rem; }
.pc-ihook__list .pc-icon { flex: 0 0 auto; margin-top: 3px; color: var(--pc-green); }

.pc-ihook__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }

@media (max-width: 991.98px) {
  .pc-ihooks { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .pc-ihook { padding: var(--s-3); }
  .pc-ihook__hook { font-size: 1.15rem; }
  .pc-ihook__actions .pc-btn { flex: 1 1 100%; justify-content: center; }
}

/* Insurer logos. The artwork is never recoloured or stretched - a fixed-height
   box, object-fit:contain, and the SVG keeps its own proportions. The two marks
   have very different aspect ratios (Niva Bupa is nearly square, SBI Life is a
   wide logotype), so the box is sized by height alone. */
.pc-ilogo {
  display: inline-flex; align-items: center; justify-content: flex-start;
  height: 46px; margin-bottom: 2px;
}
/* Both source SVGs carry a viewBox but no width/height, so their intrinsic
   size is indeterminate - height:auto collapses them to nothing. The box needs
   a definite height; max-width then caps the wide SBI Life logotype and
   object-fit:contain letterboxes it rather than squashing it. */
.pc-ilogo img {
  height: 100%; width: auto; max-width: 150px;
  object-fit: contain; object-position: left center;
}
/* United India's official lockup is a wide emblem + two-line wordmark +
   tagline (455x70). Capped at 150px its type becomes unreadable, so it gets
   more width. The emblem runs into the tagline row, so it cannot be cropped. */
.pc-ilogo img[src*="united-india-insurance"] { max-width: 300px; }
/* On the hub card the kind badge sits top-right over the logo row. */
.pc-partner .pc-ilogo img[src*="united-india-insurance"] { max-width: 200px; }

/* Fallback for an insurer whose artwork has not arrived yet. */
.pc-ilogo--icon {
  display: grid; place-items: center;
  width: 44px; height: 44px;
  color: var(--pc-red); background: var(--pc-red-soft); border-radius: var(--r-md);
}

/* In the hook panel the logo replaces the icon tile, so the row needs no gap
   rule of its own - the logo carries its own left alignment. */
.pc-ihook__head { align-items: center; gap: 14px; }
.pc-ihook__head .pc-ilogo { flex: 0 0 auto; }

/* On the hub card the logo sits above the name, where the icon tile was. */
.pc-partner .pc-ilogo { margin-bottom: var(--s-2); }
.pc-partner:hover .pc-ilogo--icon { transform: rotate(-6deg) scale(1.06); }

@media (max-width: 575.98px) {
  .pc-ilogo { height: 34px; }
  .pc-ilogo img { max-width: 150px; }
}

/* ================================================================
 | MBBS abroad university profiles (study-abroad/mbbs-abroad-colleges/)
 * ---------------------------------------------------------------- */

/* "Why trust this page" list beside the intro. */
.pc-assure { display: grid; gap: var(--s-2); }
.pc-assure__item {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 20px 22px;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md);
  box-shadow: var(--sh-1);
}
.pc-assure__icon {
  display: grid; place-items: center; flex: 0 0 auto;
  width: 46px; height: 46px; border-radius: 12px;
  color: var(--pc-green); background: var(--pc-green-soft);
}
.pc-assure__item h3 { font-size: 1rem; margin: 0 0 4px; }
.pc-assure__item p { font-size: .88rem; color: var(--pc-muted); margin: 0; }

.pc-filter { display: inline-flex; align-items: center; gap: 8px; }
.pc-filter__flag { border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }

/* One profile = photo left, facts right; alternates side on desktop. */
.pc-unis { display: grid; gap: var(--s-5); }
.pc-uni {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-lg);
  box-shadow: var(--sh-2); overflow: hidden;
  scroll-margin-top: calc(var(--pc-header-h) + 16px);
}
.pc-uni:nth-child(even) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.pc-uni:nth-child(even) .pc-uni__media { order: 2; }

.pc-uni__media { position: relative; margin: 0; min-height: 100%; background: var(--pc-blue-deep); }
.pc-uni__media picture, .pc-uni__img { display: block; width: 100%; height: 100%; }
.pc-uni__img { object-fit: cover; aspect-ratio: 3 / 2; min-height: 100%; }
.pc-uni__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(7, 31, 78, .35) 0%, rgba(7, 31, 78, 0) 30%, rgba(7, 31, 78, 0) 62%, rgba(7, 31, 78, .78) 100%);
}
.pc-uni__flag {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px 6px 8px; border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .95); color: var(--pc-text);
  font-size: .8rem; font-weight: 700; box-shadow: var(--sh-1);
}
.pc-uni__flag img { border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.pc-uni__no {
  position: absolute; top: 12px; right: 18px; z-index: 2;
  font-family: var(--pc-font-h); font-size: 2.4rem; font-weight: 800; line-height: 1;
  color: rgba(255, 255, 255, .9); text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}
.pc-uni__caption {
  position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 2;
  display: flex; align-items: center; gap: 6px;
  font-size: .78rem; color: rgba(255, 255, 255, .92);
}
.pc-uni__caption .pc-icon { flex: 0 0 auto; }

.pc-uni__body { padding: var(--s-5); display: flex; flex-direction: column; }
.pc-uni__meta {
  font-size: .74rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  color: var(--pc-green);
}
.pc-uni__title { font-size: 1.45rem; margin: 6px 0 10px; }
.pc-uni__summary { color: var(--pc-text-2); font-size: .95rem; margin-bottom: var(--s-3); }

.pc-uni__facts {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
  margin: 0 0 var(--s-1);
}
.pc-uni__facts div {
  padding: 12px 14px; background: var(--pc-blue-soft);
  border-left: 3px solid var(--pc-blue); border-radius: var(--r-sm);
}
.pc-uni__facts dt {
  font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--pc-muted); margin-bottom: 3px;
}
.pc-uni__facts dd { margin: 0; font-size: .9rem; font-weight: 600; line-height: 1.4; color: var(--pc-text); }

.pc-uni .pc-checks { margin: var(--s-3) 0 var(--s-2); gap: 10px; }
.pc-uni .pc-checks li { font-size: .9rem; }

.pc-uni__address {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: .86rem; color: var(--pc-muted); margin: 0 0 var(--s-3);
}
.pc-uni__address .pc-icon { color: var(--pc-orange); flex: 0 0 auto; margin-top: 2px; }

.pc-uni__actions {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px;
  margin-top: auto; padding-top: var(--s-3); border-top: 1px solid var(--pc-border);
}
.pc-uni__link {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: .86rem; font-weight: 600; color: var(--pc-blue); text-decoration: none;
}
.pc-uni__link:hover { color: var(--pc-blue-dark); text-decoration: underline; }

.pc-unis__notice { margin-top: var(--s-5); }
.pc-unis__source {
  max-width: 760px; margin: var(--s-4) auto 0; text-align: center;
  font-size: .82rem; color: var(--pc-muted);
}

@media (max-width: 991.98px) {
  .pc-uni, .pc-uni:nth-child(even) { grid-template-columns: minmax(0, 1fr); }
  .pc-uni:nth-child(even) .pc-uni__media { order: 0; }
  .pc-uni__img { min-height: 0; }
  .pc-uni__body { padding: var(--s-4); }
}
@media (max-width: 575.98px) {
  .pc-uni__body { padding: var(--s-3); }
  .pc-uni__title { font-size: 1.22rem; }
  .pc-uni__no { font-size: 1.8rem; }
  .pc-uni__facts div { padding: 10px 12px; }
  .pc-uni__actions .pc-btn { width: 100%; justify-content: center; }
}

/* Teaser cards linking to the MBBS abroad profiles. */
.pc-unicard {
  display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md);
  overflow: hidden; color: var(--pc-text); text-decoration: none; box-shadow: var(--sh-1);
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.pc-unicard:hover { transform: translateY(-6px); box-shadow: var(--sh-3); color: var(--pc-text); }
.pc-unicard__media { display: block; overflow: hidden; }
.pc-unicard__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1s var(--ease); }
.pc-unicard:hover .pc-unicard__media img { transform: scale(1.06); }
.pc-unicard__body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.pc-unicard__where { display: inline-flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 600; color: var(--pc-muted); }
.pc-unicard__where img { border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.pc-unicard strong { font-family: var(--pc-font-h); font-size: 1rem; line-height: 1.35; flex: 1; }
.pc-unicard__more { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; font-weight: 700; color: var(--pc-blue); }

.pc-credits { margin-top: var(--s-3); font-size: .8rem; color: var(--pc-muted); }
.pc-credits summary { cursor: pointer; font-weight: 600; width: max-content; }
.pc-credits ul { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.pc-credits a { color: var(--pc-blue); }

/* ================================================================
 | Featured admission block (featured_admission())
 * ---------------------------------------------------------------- */
.pc-admit {
  position: relative; overflow: hidden;
  padding: var(--s-6);
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-xl);
  box-shadow: var(--sh-3);
}
.pc-admit::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 6px;
  background: linear-gradient(90deg, var(--pc-blue), var(--pc-green), var(--pc-orange));
}
.pc-admit__head { display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3); }
.pc-admit__logo {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 150px; height: 96px; padding: 10px;
  background: #fff; border: 1px solid var(--pc-border); border-radius: var(--r-md);
}
.pc-admit__logo img { display: block; width: auto; height: auto; max-width: 130px; max-height: 76px; object-fit: contain; }
.pc-admit__badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 12px; border-radius: var(--r-pill);
  background: var(--pc-orange-soft); color: #b4560d;
  font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
}
.pc-admit__title { font-size: clamp(1.35rem, 2.4vw, 1.9rem); margin: 10px 0 4px; }
.pc-admit__meta { margin: 0; font-size: .9rem; color: var(--pc-muted); }
.pc-admit__meta em { font-style: normal; font-weight: 600; color: var(--pc-blue); }
.pc-admit__intro { max-width: 860px; color: var(--pc-text-2); margin-bottom: var(--s-4); }

.pc-admit__prog {
  height: 100%; padding: 20px 22px;
  background: var(--pc-blue-soft); border: 1px solid var(--pc-blue-line); border-radius: var(--r-md);
}
.pc-admit__prog h3 { display: flex; align-items: center; gap: 10px; font-size: 1.15rem; margin: 0 0 12px; }
.pc-admit__prog h3 span {
  display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px;
  background: var(--pc-blue); color: #fff;
}
.pc-admit__prog ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.pc-admit__prog li {
  padding: 5px 12px; border-radius: var(--r-pill);
  background: #fff; border: 1px solid var(--pc-blue-line);
  font-size: .84rem; font-weight: 600; color: var(--pc-text-2);
}
.pc-admit__points { margin: var(--s-4) 0; }
.pc-admit__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.pc-admit__note { margin: var(--s-3) 0 0; font-size: .8rem; color: var(--pc-muted); }

@media (max-width: 767.98px) {
  .pc-admit { padding: var(--s-4) var(--s-3); }
  .pc-admit__head { flex-direction: column; align-items: flex-start; }
  .pc-admit__logo { width: 130px; height: 80px; }
  .pc-admit__logo img { max-width: 110px; max-height: 60px; }
  .pc-admit .pc-checks--2 { grid-template-columns: 1fr; }
  .pc-admit__actions .pc-btn { width: 100%; justify-content: center; }
}
