:root{
  --rcel-radius:16px;
  --rcel-accent:#1aa7ec;
  --rcel-text:#0b1a3a;
  --rcel-muted:#6b7a99;
  --rcel-ease:cubic-bezier(.22,.61,.36,1);
}

/* Grid */
.rcel-grid{
  display:grid;
  gap:22px;
  width:100%;
  /* Ensure grid doesn't block scrolling */
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}

/* Card */
.reveal-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--rcel-radius);
  background:#fff;
  box-shadow:0 12px 30px rgba(2,10,40,.12);
  transform:translateY(0);
  transition:transform .45s var(--rcel-ease), box-shadow .45s var(--rcel-ease), filter .45s var(--rcel-ease);
  will-change:transform;
  -webkit-tap-highlight-color: transparent;
}
.reveal-card:hover{ 
  transform:translateY(-6px); 
  box-shadow:0 18px 40px rgba(2,10,40,.22); 
  filter:saturate(1.05); 
}

/* Image + Zoom */
.reveal-card__img{
  position:relative;
  overflow:hidden;
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}
.reveal-card__img img{
  width:100%;
  height: var(--rcel-img-h, 220px);
  object-fit:cover; 
  display:block;
  transform:scale(1) translateZ(0);
  transition:transform .9s var(--rcel-ease);
}
.reveal-card:hover .reveal-card__img img{ transform:scale(1.12); }

/* Overlay uses pickers and covers full image */
.reveal-card .overlay{
  position:absolute; 
  inset:0;
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
  background: linear-gradient(to bottom, var(--rcel-overlay1, rgba(7,21,64,0.0)) 0%, var(--rcel-overlay2, rgba(7,21,64,0.85)) 100%);
  opacity:.65; 
  pointer-events:none; 
  transition: opacity .5s var(--rcel-ease);
}
.reveal-card:hover .overlay{ opacity:.9; }

/* Shine sweep */
.reveal-card::after{
  content:""; 
  position:absolute; 
  inset:0;
  background: linear-gradient(110deg, rgba(255,255,255,0) 40%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 60%);
  transform: translateX(-120%);
  transition: transform 1s var(--rcel-ease);
  pointer-events:none;
}
.reveal-card:hover::after{ transform: translateX(120%); }

/* Content block */
.reveal-card__content{
  position:relative;
  padding: var(--rcel-pad-t,22px) var(--rcel-pad-r,22px) var(--rcel-pad-b,34px) var(--rcel-pad-l,22px);
  color:var(--rcel-text);
  transition: transform .55s var(--rcel-ease);
}
.reveal-card:hover .reveal-card__content{ transform: translateY(-6px); }

.reveal-card__title{ 
  margin:8px 0 10px; 
  line-height:1.3; 
  font-size:clamp(18px,1.8vw,22px);
  font-weight:600;
}

.reveal-card__excerpt{
  margin:0 0 20px; 
  color:var(--rcel-muted); 
  font-size:clamp(13px,1vw,14px);
  line-height:1.6;
  display:block !important;
  overflow:hidden; 
  text-overflow:ellipsis;
  display:-webkit-box; 
  -webkit-line-clamp:2; 
  -webkit-box-orient:vertical;
}

/* Extra content reveal - overlay, no layout shift */
.reveal-card{ --rcel-more-gutter: 64px; }

.reveal-card .reveal-card__content{
  position: relative;
  padding-bottom: calc(var(--rcel-pad-b,34px) + var(--rcel-more-gutter)) !important;
}

.reveal-card .reveal-card__more{
  position: absolute;
  left:  var(--rcel-pad-l,22px);
  right: var(--rcel-pad-r,22px);
  bottom: var(--rcel-pad-b,34px);
  z-index: 3;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .25s var(--rcel-ease), transform .25s var(--rcel-ease);
  padding-top: 6px;
  background: linear-gradient(to top, rgba(255,255,255,.98) 60%, rgba(255,255,255,.85) 85%, rgba(255,255,255,0) 100%);
  border-bottom-left-radius: var(--rcel-radius);
  border-bottom-right-radius: var(--rcel-radius);
}

.reveal-card:hover .reveal-card__more{
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

/* Stagger for children */
.reveal-card__more > *{ 
  opacity:0; 
  transform: translateY(6px); 
  transition: opacity .3s var(--rcel-ease), transform .3s var(--rcel-ease); 
}
.reveal-card:hover .reveal-card__more > *{ 
  opacity:1; 
  transform:none; 
}
.reveal-card:hover .reveal-card__more > *:nth-child(2){ transition-delay:.06s; }
.reveal-card:hover .reveal-card__more > *:nth-child(3){ transition-delay:.12s; }

.reveal-card__more p{
  margin:0 0 12px;
  font-size:clamp(13px,0.95vw,14px);
  line-height:1.6;
  color:var(--rcel-text);
}

/* Read more link */
.reveal-card__link{
  display:inline-flex; 
  align-items:center; 
  gap:8px;
  color:var(--rcel-accent); 
  font-weight:600; 
  font-size:clamp(13px,0.95vw,14px);
  text-decoration:none;
  transition: all .3s var(--rcel-ease);
}
.reveal-card__link .rcel-arrow{ 
  transition: transform .3s var(--rcel-ease); 
  display:inline-block;
}
.reveal-card__link:hover .rcel-arrow{ transform: translateX(4px); }

/* Make sure excerpt stays visible */
.reveal-card:hover .reveal-card__excerpt{
  opacity: 1 !important;
  max-height: none !important;
  margin: 0 0 20px !important;
}

/* On-scroll entrance */
.reveal-in{ 
  opacity:0; 
  transform:translateY(16px); 
}
.is-visible{ 
  opacity:1; 
  transform:none; 
  transition:.7s var(--rcel-ease); 
}

/* Ensure visibility inside Elementor editor preview even before JS runs */
body.elementor-editor-active .reveal-in,
html.elementor-html .reveal-in { 
  opacity:1 !important; 
  transform:none !important; 
}

/* ==================== TABLET OPTIMIZATIONS (768px - 1024px) ==================== */
@media (min-width: 768px) and (max-width: 1024px){
  .rcel-grid{
    gap:16px;
  }
  
  .reveal-card{
    box-shadow:0 8px 24px rgba(2,10,40,.1);
  }
  
  .reveal-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 32px rgba(2,10,40,.18);
  }
  
  .reveal-card__img img{
    height: var(--rcel-img-h, 200px);
  }
  
  .reveal-card__content{
    padding: var(--rcel-pad-t,18px) var(--rcel-pad-r,18px) var(--rcel-pad-b,28px) var(--rcel-pad-l,18px);
  }
  
  .reveal-card__title{
    font-size:clamp(17px,2vw,20px);
    margin:6px 0 8px;
  }
  
  .reveal-card__excerpt{
    font-size:13px;
    margin-bottom:16px !important;
  }
  
  .reveal-card{ --rcel-more-gutter: 56px; }
  
  .reveal-card__more p,
  .reveal-card__link{
    font-size:13px;
  }
}

/* ==================== MOBILE OPTIMIZATIONS (max-width: 767px) ==================== */
@media (max-width: 767px){
  .rcel-grid{
    gap:16px;
  }
  
  .reveal-card{
    box-shadow:0 6px 20px rgba(2,10,40,.08);
    border-radius:12px;
  }
  
  /* Reduced hover lift on mobile */
  .reveal-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 28px rgba(2,10,40,.15);
  }
  
  /* Optimize image for mobile */
  .reveal-card__img img{
    height: var(--rcel-img-h, 180px);
  }
  
  /* Less zoom on mobile */
  .reveal-card:hover .reveal-card__img img{ 
    transform:scale(1.08); 
  }
  
  /* Tighter mobile padding */
  .reveal-card__content{
    padding: var(--rcel-pad-t,16px) var(--rcel-pad-r,16px) var(--rcel-pad-b,24px) var(--rcel-pad-l,16px);
  }
  
  /* Smaller title on mobile */
  .reveal-card__title{
    font-size:clamp(16px,4.5vw,18px);
    margin:6px 0 8px;
    line-height:1.25;
  }
  
  /* Compact excerpt */
  .reveal-card__excerpt{
    font-size:13px;
    line-height:1.5;
    margin-bottom:14px !important;
    -webkit-line-clamp:3;
  }
  
  /* Reduce more content gutter */
  .reveal-card{ --rcel-more-gutter: 52px; }
  
  .reveal-card__more p{
    font-size:13px;
    margin-bottom:10px;
  }
  
  .reveal-card__link{
    font-size:13px;
    gap:6px;
  }
  
  /* Tap-to-reveal enhancement for touch devices */
  .reveal-card.is-tapped .reveal-card__more{
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }
  
  .reveal-card.is-tapped .reveal-card__img img{
    transform:scale(1.08);
  }
  
  .reveal-card.is-tapped .overlay{
    opacity:.9;
  }
  
  .reveal-card.is-tapped .reveal-card__content{
    transform:translateY(-4px);
  }
  
  /* Active state during touch (before determining tap vs scroll) */
  .reveal-card:active:not(.is-tapped){
    transform:scale(0.98);
    transition:transform 0.1s ease;
  }
  
  /* Disable shine effect on mobile for better performance */
  .reveal-card::after{
    display:none;
  }
}

/* ==================== EXTRA SMALL MOBILE (max-width: 480px) ==================== */
@media (max-width: 480px){
  .reveal-card__img img{
    height: var(--rcel-img-h, 160px);
  }
  
  .reveal-card__title{
    font-size:16px;
    margin:5px 0 7px;
  }
  
  .reveal-card__excerpt{
    font-size:12px;
    margin-bottom:12px !important;
  }
  
  .reveal-card__more p,
  .reveal-card__link{
    font-size:12px;
  }
  
  .reveal-card{ --rcel-more-gutter: 48px; }
}

/* ==================== LANDSCAPE MOBILE (max-height: 500px) ==================== */
@media (max-height: 500px) and (orientation: landscape){
  .reveal-card__img img{
    height: var(--rcel-img-h, 140px);
  }
  
  .reveal-card__content{
    padding: var(--rcel-pad-t,12px) var(--rcel-pad-r,16px) var(--rcel-pad-b,20px) var(--rcel-pad-l,16px);
  }
  
  .reveal-card{ --rcel-more-gutter: 44px; }
}

/* ==================== TOUCH DEVICE OPTIMIZATIONS ==================== */
@media (hover: none) and (pointer: coarse){
  /* Ensure smooth scrolling on mobile */
  html{
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
  }
  
  /* Better touch targets */
  .reveal-card__link{
    padding:8px 12px;
    margin:-8px -12px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
  }
  
  /* Allow scrolling - no interference */
  .reveal-card{
    touch-action: pan-y pan-x;
  }
  
  /* Show content immediately on touch devices when tapped */
  .reveal-card.is-tapped .reveal-card__more > *{
    opacity:1 !important;
    transform:none !important;
    transition-delay:0s !important;
  }
  
  /* Smoother animations on touch */
  .reveal-card,
  .reveal-card__img img,
  .reveal-card__content,
  .reveal-card__more{
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
  }
}

/* ==================== HIGH DPI SCREENS ==================== */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi){
  .reveal-card{
    box-shadow:0 12px 30px rgba(2,10,40,.14);
  }
}

/* ==================== REDUCED MOTION ==================== */
@media (prefers-reduced-motion: reduce){
  .reveal-card,
  .reveal-card__img img,
  .reveal-card::after,
  .reveal-card__content,
  .reveal-card__more,
  .reveal-card__more > *,
  .reveal-card__link .rcel-arrow,
  .reveal-in{
    transition:none !important;
    animation:none !important;
  }
  
  .reveal-in{
    opacity:1 !important;
    transform:none !important;
  }
}

/* ==================== DARK MODE SUPPORT ==================== */
@media (prefers-color-scheme: dark){
  .reveal-card{
    box-shadow:0 12px 30px rgba(0,0,0,.3);
  }
  
  .reveal-card:hover{
    box-shadow:0 18px 40px rgba(0,0,0,.4);
  }
}

/* ==================== PRINT STYLES ==================== */
@media print{
  .reveal-card{
    box-shadow:none;
    border:1px solid #ddd;
    page-break-inside:avoid;
  }
  
  .reveal-card::after,
  .reveal-card__more{
    display:none;
  }
  
  .reveal-card__excerpt{
    -webkit-line-clamp:unset;
    max-height:none;
  }
}
