/* ── Info Flip Cards ─────────────────────────────────────────── */
.ifc-wrap{box-sizing:border-box}
.ifc-wrap *{box-sizing:border-box}
.ifc-grid{display:grid;gap:24px}
.ifc-cols-2{grid-template-columns:repeat(2,1fr)}
.ifc-cols-3{grid-template-columns:repeat(3,1fr)}
.ifc-cols-4{grid-template-columns:repeat(4,1fr)}

/* The card is a <button>: hard-reset everything a theme could inject */
.ifc-grid .ifc-flip,
.ifc-grid .ifc-flip:hover,
.ifc-grid .ifc-flip:focus,
.ifc-grid .ifc-flip:active{
  -webkit-appearance:none;appearance:none;
  background:none;border:0;border-radius:var(--ifc-radius,16px);
  padding:0;margin:0;width:100%;min-width:0;display:block;
  font:inherit;line-height:inherit;letter-spacing:normal;
  text-align:left;text-transform:none;text-decoration:none;text-shadow:none;
  white-space:normal;color:inherit;box-shadow:none;
  cursor:pointer;perspective:1200px;position:relative;
  -webkit-tap-highlight-color:transparent;
}
.ifc-flip span{white-space:normal;overflow-wrap:break-word}

/* Grid-stack the two faces: card height always fits the taller face,
   nothing absolute, nothing can overflow or clip */
.ifc-inner{display:grid;width:100%;min-height:280px;
  transition:transform .6s cubic-bezier(.4,.1,.2,1);
  transform-style:preserve-3d;border-radius:var(--ifc-radius,16px)}
.ifc-flip.is-flipped .ifc-inner{transform:rotateY(180deg)}
@media(prefers-reduced-motion:reduce){.ifc-inner{transition:none}}

.ifc-front,.ifc-back{grid-area:1/1;width:100%;min-width:0;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:var(--ifc-radius,16px);
  display:flex;flex-direction:column;justify-content:center;padding:30px}
.ifc-front{background:var(--ifc-front-bg,#FFFFFF);border:1px solid var(--ifc-front-bc,#D7E4EC);border-top:4px solid var(--ifc-front-bar,#FFC43D);align-items:flex-start;box-shadow:0 10px 30px rgba(58,80,107,.08);transition:box-shadow .25s}
.ifc-flip:hover .ifc-front{box-shadow:0 16px 40px rgba(58,80,107,.14)}
.ifc-acr{font-family:'Playfair Display',Georgia,serif;font-weight:800;font-size:2.6rem;line-height:1;color:#3A506B;display:block}
.ifc-full{font-family:'Montserrat',Arial,sans-serif;font-weight:600;font-size:.95rem;margin-top:10px;line-height:1.4;color:#33485E;display:block}
.ifc-hint{font-family:'Montserrat',Arial,sans-serif;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-top:auto;padding-top:18px;color:#E8A91E;display:block}
.ifc-back{background:linear-gradient(160deg,var(--ifc-back-g1,#3A506B) 0%,var(--ifc-back-g2,#2B3D54) 100%);transform:rotateY(180deg);box-shadow:0 16px 40px rgba(58,80,107,.25)}
.ifc-back-title{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.08rem;margin-bottom:12px;line-height:1.3;display:block;color:#FFC43D}
.ifc-back-text{font-family:'Alegreya Sans',Arial,sans-serif;font-size:.92rem;line-height:1.55;display:block;color:rgba(237,250,253,.94)}
.ifc-flip:focus-visible{outline:3px solid #E8A91E;outline-offset:4px}

@media(max-width:980px){.ifc-cols-3,.ifc-cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
  .ifc-grid{grid-template-columns:1fr!important;gap:16px}
  .ifc-inner{min-height:240px}
  .ifc-acr{font-size:2.1rem}
  .ifc-back-text{font-size:.9rem}
}
