/* navbar-bootstrap.css - styles for sticky navbar that pushes content down */

:root{
  --psni-sky: #66b3ff;
  --psni-sky-600: #4fa8f7;
  --psni-white: #ffffff;
  --psni-ink: #071022;
  --psni-muted: #6b7280;
  --psni-radius: 16px;
  --psni-transition: 360ms cubic-bezier(.18,.9,.32,1);

  /* Section spacing controls (increase these to add even more space) */
  --svc-vertical-padding: 5.5rem;    /* top & bottom padding of section */
  --svc-hero-gap: 3.5rem;            /* gap between hero text and logo */
  --svc-carousel-padding: 3rem;      /* padding inside carousel area */
  --svc-card-gap: 2rem;              /* gap between cards */
  --svc-card-minwidth: 380px;        /* comfortable card minimum width */
}

/* sticky/fixed visual (we use position:fixed so we absolutely control overlap; spacer handles layout) */
.psni-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1040;            /* above normal page content but below modals */
  background: linear-gradient(180deg, var(--psni-white), #fbfeff);
  border-bottom: 1px solid rgba(7,16,34,0.05);
  box-shadow: 0 6px 18px rgba(7,16,34,0.06);
  transition: box-shadow var(--psni-transition), transform var(--psni-transition);
}

/* base layout inside nav */
.psni-sticky .container { display:flex; align-items:center; gap:.75rem; }

/* Brand */
.psni-logo { height:46px; width:auto; border-radius:8px; object-fit:cover; background:var(--psni-white); padding:3px; box-shadow:0 6px 18px rgba(7,16,34,.04); }
.psni-brand-text { font-weight:700; color:var(--psni-ink); white-space:nowrap; font-size:.98rem; }

/* toggler style */
.navbar-light .navbar-toggler { border: 1px solid rgba(7,16,34,0.06); padding:.36rem .45rem; border-radius:8px; }
.navbar-light .navbar-toggler:focus { outline: 3px solid color-mix(in srgb, var(--psni-sky) 35%, transparent); outline-offset:3px; box-shadow:0 6px 18px rgba(102,179,255,.08); }
.navbar-light .navbar-toggler-icon { filter: invert(23%) sepia(71%) saturate(496%) hue-rotate(177deg) brightness(94%) contrast(89%); }

/* nav links */
.nav-link { color: var(--psni-ink); font-weight:600; padding:.45rem .8rem; border-radius:8px; transition: background var(--psni-transition), transform var(--psni-transition); }
.nav-link:hover, .nav-link:focus { background: color-mix(in srgb, var(--psni-sky) 12%, var(--psni-white)); transform: translateY(-2px); }
.nav-link.active { background: linear-gradient(90deg, var(--psni-sky-600), var(--psni-sky)); color:var(--psni-white) !important; box-shadow:0 8px 30px rgba(102,179,255,.12); }

/* collapse (mobile) - remains in-flow inside nav element */
.collapse.navbar-collapse { transition: height var(--psni-transition) ease; }

/* SPACER: blank element right under nav that will match the nav+menu height when open */
#psni-spacer { width:100%; height:0px; transition: height var(--psni-transition) ease; }

/* small screens: hide brand text to save space */
@media (max-width: 991.98px) {
  .psni-brand-text { display:none; }
  .nav-link { padding:.7rem 1rem; font-size:1rem; }
}

/* accessibility */
.nav-link:focus { outline:none; box-shadow: 0 6px 18px rgba(102,179,255,0.08), 0 0 0 3px color-mix(in srgb, var(--psni-sky) 28%, transparent); border-radius:8px; }

/* reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; }
}




/* services.css (spacious version)
*/


/* Spacious section container */
.services-section {
  padding-top: var(--svc-vertical-padding);
  padding-bottom: var(--svc-vertical-padding);
  width: 100%;
  box-sizing: border-box;
  margin-bottom: -70px;
}

/* Hero area: generous spacing and relaxed line length */
.services-hero { 
  justify-content: space-between; 
  gap: var(--svc-hero-gap); 
  align-items: center;
  margin-bottom: 2.25rem;
  min-height: 6.25rem;
}
.services-hero-text { flex:1 1 66%; min-width:0; }

/* Heading: larger, airy */
.display-heading {
  font-size: clamp(1.3rem, 1.8vw, 2.25rem);
  font-weight: 800;
  color: var(--psni-ink);
  margin: 0 0 1rem 0;
  line-height: 1.06;
  letter-spacing: -0.01em;
  max-width: 68ch; /* keeps lines readable and airy */
}

/* Subtext: separated into a comfortable paragraph */
.lead-sub {
  margin: 0;
  color: var(--psni-muted);
  font-weight: 600;
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  max-width: 72ch;
  line-height: 1.5;
  opacity: .95;
}

/* Decorative square logo - much larger on desktop */
.services-logo {
  width: 200px;
  height: 200px;
  flex: 0 0 auto;
  display:flex; align-items:center; justify-content:center;
  transform: translateY(0);
  margin: 0;
}
.services-logo img {
  width: 100%; height: 100%; object-fit: contain;
  border-radius: 14px;
  box-shadow: 0 22px 48px rgba(7,16,34,0.12);
  background: var(--psni-white);
  padding: 8px;
  border: 1px solid rgba(7,16,34,0.04);
}

/* Carousel wrap: lots of internal padding */
.services-carousel-wrap {
  margin-top: 1.75rem;
  position: relative;
  padding: var(--svc-carousel-padding) 0;
}

/* Carousel surface */
.services-carousel {
  overflow: hidden;
  width: 100%;
  border-radius: var(--psni-radius);
  background: linear-gradient(180deg, rgba(102,179,255,0.02), rgba(255,255,255,0.01));
  padding: .6rem 0;
}

/* Track */
.carousel-track {
  display:flex;
  gap: var(--svc-card-gap);
  transition: transform var(--psni-transition);
  will-change: transform;
  padding: .8rem 1.2rem;
}

/* Card: wider and roomier */
.service-card {
  background: linear-gradient(180deg, var(--psni-white), #fbfeff);
  min-width: var(--svc-card-minwidth);
  flex: 0 0 calc((100% / 3) - (var(--svc-card-gap) * 0.66)); /* JS will refine widths but this gives a roomy fallback */
  border-radius: 14px;
  padding: 1.5rem;
  box-shadow: 0 18px 48px rgba(7,16,34,0.10);
  border: 1px solid rgba(7,16,34,0.045);
  display:flex; flex-direction:column; gap: .75rem;
  transition: transform 260ms ease, box-shadow 300ms ease;
}
.service-card h3 {
  margin: 0;
  font-size: 1.15rem;
  color: var(--psni-ink);
  font-weight: 800;
}
.service-card p {
  margin: 0;
  color: var(--psni-muted);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.55;
}

/* Card hover/focus boost */
.service-card:hover, .service-card:focus {
  transform: translateY(-10px);
  box-shadow: 0 34px 80px rgba(7,16,34,0.18);
  outline: none;
}

/* Controls: larger buttons, more breathing room */
.services-controls {
  margin-top: 1.6rem;
  display:flex;
  gap: 1rem;
  align-items:center;
  justify-content:center;
}
.svc-btn {
  background: var(--psni-white);
  border: 1px solid rgba(7,16,34,0.06);
  height: 48px; width: 48px; border-radius: 12px;
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; font-weight:800; font-size:1.05rem;
  box-shadow: 0 12px 32px rgba(7,16,34,0.06);
  transition: transform var(--psni-transition), box-shadow var(--psni-transition);
}
.svc-btn:hover, .svc-btn:focus { transform: translateY(-4px); box-shadow: 0 22px 50px rgba(7,16,34,0.12); outline:none; }

/* Dots scaled up a little */
.svc-dots { display:flex; gap:.6rem; align-items:center; }
.svc-dot {
  width:12px; height:12px; border-radius:50%; background:rgba(7,16,34,0.08); cursor:pointer; border: none;
}
.svc-dot.active { background: linear-gradient(90deg, var(--psni-sky-600), var(--psni-sky)); box-shadow: 0 8px 26px rgba(102,179,255,0.14); }

/* RESPONSIVE ADJUSTMENTS */
@media (max-width: 1199.98px) {
  :root { --svc-card-minwidth: 360px; }
  .services-logo { width: 170px; height:170px; }
}

@media (max-width: 991.98px) {
  :root { --svc-card-minwidth: 320px; --svc-hero-gap: 2.5rem; --svc-carousel-padding: 2.25rem; }
  .services-logo { width: 140px; height:140px; }
  .display-heading { max-width: 64ch; }
  .services-hero { align-items:flex-start; }
  .services-section { padding-top: 4rem; padding-bottom: 4rem; }
  .carousel-track { padding-left: 1rem; padding-right: 1rem; }
  .svc-btn { height:44px; width:44px; }
}

@media (max-width: 575.98px) {
  :root { --svc-card-minwidth: 280px; --svc-card-gap: 1.25rem; --svc-carousel-padding: 1.6rem; }
  .services-hero { flex-direction: column; gap: 1.2rem; align-items: flex-start; }
  .services-logo { width: 96px; height:96px; order: 2; }
  .services-hero-text { order: 1; }
  .display-heading { font-size: 1.05rem; max-width: 56ch; }
  .service-card { padding: 1.1rem; border-radius: 12px; }
  .services-section { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .services-controls { justify-content:space-between; gap: .75rem; }
}

/* Accessibility focus */
.service-card:focus { box-shadow: 0 26px 64px rgba(7,16,34,0.14), 0 0 0 4px color-mix(in srgb, var(--psni-sky) 28%, transparent); }

/* Respect reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .carousel-track, .service-card { transition: none !important; }
}






/* products.css
   Products showcase for Pacesetters Phonics and Diction Institute
   Uses the same theme variables as your site (e.g., --psni-sky, --psni-ink).
*/

/* Section base */
.psni-products { padding-top:3.5rem; padding-bottom:3.5rem; position:relative; }
.psni-products-header { margin-bottom:2rem; display:flex; flex-direction:column; gap:.6rem; }
.psni-section-title { font-size:clamp(1.25rem, 2.6vw, 1.75rem); font-weight:800; color:var(--psni-ink); margin:0; }
.psni-section-sub { margin:0; color:var(--psni-muted); font-weight:600; }

/* Products body: track acts like a wide scrolling strip on mobile, grid on desktop */
.psni-products-body { margin-top:1rem; overflow:visible; }
.psni-products-track {
  display:flex;
  gap:var(--prod-gap);
  align-items:stretch;
  padding:1rem;
  scroll-snap-type: x mandatory;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  /* hide native scrollbar lightly */
  scrollbar-width: thin;
  scrollbar-color: rgba(7,16,34,0.12) transparent;
}

/* CARD */
.psni-product-card {
  background: linear-gradient(180deg, var(--psni-white), #fbfeff);
  min-width: 260px;
  flex: 0 0 320px;                 /* default mobile card width; JS will adjust for desktop grid */
  border-radius: var(--psni-radius);
  box-shadow: 0 12px 36px rgba(7,16,34,0.08);
  border: 1px solid rgba(7,16,34,0.04);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition: transform var(--psni-transition), box-shadow var(--psni-transition);
  scroll-snap-align: start;
  position:relative;
}

/* slight 3D tilt effect on hover */
.psni-product-card:focus, .psni-product-card:hover {
  transform: translateY(-8px) rotateX(0.5deg);
  box-shadow: 0 28px 70px rgba(7,16,34,0.14);
  outline: none;
}

/* PRODUCT MEDIA */
.psni-product-media { width:100%; height:200px; display:block; background:linear-gradient(180deg, rgba(102,179,255,0.03), rgba(255,255,255,0.01)); }
.psni-product-media img { width:100%; height:100%; object-fit:cover; display:block; }

/* PRODUCT BODY */
.psni-product-body { padding:1.15rem 1.25rem 1.5rem 1.25rem; display:flex; flex-direction:column; gap:.75rem; flex:1 1 auto; }
.psni-product-title { font-size:1.02rem; margin:0 0 .2rem 0; color:var(--psni-ink); font-weight:800; }
.psni-product-desc { margin:0; color:var(--psni-muted); font-weight:600; font-size:.95rem; line-height:1.45; }

/* META: price + contact */
.psni-product-meta { margin-top:auto; display:flex; align-items:center; gap: .75rem; justify-content:space-between; }
.psni-price {
  display:inline-flex; align-items:center; gap:.5rem;
  background: linear-gradient(90deg, var(--psni-sky-600), var(--psni-sky));
  color:var(--psni-white); font-weight:800; padding:.45rem .7rem; border-radius:10px;
  box-shadow: 0 8px 26px rgba(102,179,255,0.12);
  font-size:0.98rem;
}
.psni-btn-buy {
  background:transparent;
  border:1px solid rgba(7,16,34,0.06);
  padding:.45rem .6rem; border-radius:10px; cursor:pointer;
  font-weight:700; color:var(--psni-ink);
  transition: transform var(--psni-transition), box-shadow var(--psni-transition);
}
.psni-btn-buy:hover, .psni-btn-buy:focus { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(7,16,34,0.08); outline:none; }

/* CTA CARD */
.psni-cta-card {
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-width: 320px; flex: 0 0 360px; padding:2rem;
  background: linear-gradient(135deg, rgba(102,179,255,0.06), rgba(255,255,255,0.01));
  border-style:dashed;
}
.psni-cta-inner { max-width: 36ch; }
.psni-cta-inner h3 { margin:0 0 .6rem 0; font-size:1.1rem; color:var(--psni-ink); font-weight:800; }
.psni-cta-desc { margin:0 0 1rem 0; color:var(--psni-muted); font-weight:700; }

/* WhatsApp link */
.psni-whatsapp {
  display:inline-flex; align-items:center; gap:.6rem; text-decoration:none;
  padding:.6rem .9rem; border-radius:10px; background: linear-gradient(90deg, #25D366, #1DA851);
  color:#fff; font-weight:800;
  box-shadow: 0 10px 30px rgba(37,211,102,0.12);
}
.psni-whatsapp-icon { width:20px; height:20px; fill: #fff; }

/* FOOTER NOTE */
.psni-products-foot { margin-top:1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.psni-note { margin:0; color:var(--psni-muted); font-size:.95rem; font-weight:600; }

/* decorative yarns (visual accenting) */
.psni-yarns { display:flex; gap:.75rem; align-items:center; }
.yarn { display:inline-block; width:86px; height:8px; border-radius:20px; opacity:.14; transform: translateY(0); }
.yarn-1 { background: linear-gradient(90deg, var(--psni-sky-600), var(--psni-sky)); }
.yarn-2 { background: linear-gradient(90deg, rgba(102,179,255,0.7), rgba(163,163,163,0.4)); width:110px; opacity:.12; transform: translateY(6px); }
.yarn-3 { background: linear-gradient(90deg, #ffd166, #ff6b6b); width:70px; opacity:.1; transform: translateY(-6px); }

/* RESPONSIVE GRID for wider screens: show multiple columns and disable horizontal scroll */
@media (min-width: 1000px) {
  .psni-products-track {
    overflow-x: visible;
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
  .psni-product-card { flex:unset; min-width:unset; width:100%; }
  .psni-cta-card { grid-column: span 1; }
}

/* tablet */
@media (min-width: 700px) and (max-width: 999px) {
  .psni-products-track { display:grid; grid-template-columns: repeat(2, 1fr); gap:1.5rem; overflow:visible; }
  .psni-product-card { width:100%; flex:unset; }
}

/* small screens keep horizontal slider */
@media (max-width: 699px) {
  .psni-products-track { padding-left: 1rem; padding-right:1rem; }
  .psni-product-media { height:180px; }
  .psni-cta-card { padding:1.6rem; }
}

/* Visually-hidden helper for screen readers if needed */
.visually-hidden { position:absolute!important; height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .psni-product-card, .psni-products-track { transition: none !important; scroll-behavior: auto; }
}


/* footer.css — minimal, bold, responsive footer for Pacesetters
   Replace variables if already declared in global CSS; these are safe fallbacks.
*/


/* Container */
.psni-footer {
  background: linear-gradient(180deg, var(--psni-white), #fbfeff);
  color: var(--psni-ink);
  padding: 2.25rem 1rem;
  border-top: 1px solid rgba(7,16,34,0.04);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial;
}
.psni-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 2rem;
  align-items: start;
}

/* LEFT: map */
.psni-footer-heading {
  margin: 0 0 .75rem 0;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--psni-ink);
}
.psni-map-anchor {
  display:block;
  border-radius: var(--psni-radius);
  overflow:hidden;
  box-shadow: var(--psni-elev);
  border:1px solid rgba(7,16,34,0.04);
}
.psni-map-iframe {
  width:100%;
  height:300px;
  border:0;
  display:block;
  background:#eaf6ff;
  transition: transform .22s ease, box-shadow .22s ease;
}
.psni-map-anchor:hover .psni-map-iframe,
.psni-map-anchor:focus .psni-map-iframe {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px rgba(7,16,34,0.12);
}
.psni-map-caption { margin:.6rem 0 0 0; color:var(--psni-muted); font-weight:700; }

/* RIGHT: contacts */
.psni-footer-contacts { display:flex; flex-direction:column; gap:1rem; align-items:stretch; }
.psni-contact-row { display:flex; flex-direction:column; gap:1rem; }

/* Socials */
.psni-socials { display:flex; gap:.6rem; flex-wrap:wrap; }
.psni-social-btn {
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.6rem .8rem; border-radius:10px; background: linear-gradient(180deg, var(--psni-white), #fbfeff);
  border:1px solid rgba(7,16,34,0.04); text-decoration:none; color:var(--psni-ink);
  font-weight:800; box-shadow: 0 10px 28px rgba(7,16,34,0.04);
  transition: transform .22s ease, box-shadow .22s ease;
}
.psni-social-btn:hover, .psni-social-btn:focus { transform: translateY(-6px); box-shadow: 0 26px 60px rgba(7,16,34,0.12); outline:none; }
.psni-icon { width:20px; height:20px; flex-shrink:0; color: var(--psni-sky); }
.psni-social-label { font-weight:800; }

/* Communication line */
.psni-comm { display:flex; flex-direction:column; gap:.6rem; margin-top: .4rem; }
.psni-comm-item {
  display:inline-flex; align-items:center; gap:.6rem; padding:.55rem .7rem; border-radius:10px;
  background: linear-gradient(180deg, var(--psni-white), #fff); border:1px solid rgba(7,16,34,0.04);
  text-decoration:none; color:var(--psni-ink); font-weight:800;
  box-shadow: 0 8px 26px rgba(7,16,34,0.04);
  transition: transform .18s ease, box-shadow .18s ease;
}
.psni-comm-item:hover, .psni-comm-item:focus { transform: translateY(-5px); box-shadow: 0 22px 48px rgba(7,16,34,0.10); outline:none; }
.psni-comm-text { font-weight:800; color:var(--psni-ink); }

/* Legal row */
.psni-footer-legal { display:flex; flex-direction:column; gap:.6rem; margin-top:.4rem; }
.psni-copy { margin:0; color:var(--psni-muted); font-weight:700; }
.psni-legal-links { display:flex; gap:.65rem; }
.psni-legal { color:var(--psni-muted); text-decoration:none; font-weight:700; padding:.25rem .4rem; border-radius:6px; }
.psni-legal:hover, .psni-legal:focus { color:var(--psni-ink); text-decoration:underline; outline:none; }

/* RESPONSIVE: stack on small screens */
@media (max-width: 900px) {
  .psni-footer-inner { grid-template-columns: 1fr; }
  .psni-map-iframe { height: 240px; }
  .psni-footer { padding: 1.5rem 1rem; }
}

/* small screens */
@media (max-width: 480px) {
  .psni-map-iframe { height: 200px; }
  .psni-social-btn { padding:.5rem .6rem; font-size:.95rem; }
}

/* Accessibility */
.psni-map-anchor:focus, .psni-social-btn:focus, .psni-comm-item:focus, .psni-legal:focus {
  outline: 3px solid color-mix(in srgb, var(--psni-sky) 36%, transparent);
  outline-offset: 4px;
  border-radius: 8px;
}

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  .psni-map-iframe, .psni-social-btn, .psni-comm-item { transition: none !important; transform: none !important; }
}

/* ============================
   PDIE Section — styles.css
   External stylesheet (robust & responsive)
   ----------------------------
   Key changes: 
   - Single combined image per preview
   - Hero image uses object-fit: contain to always show whole image
   - Section margins added
   ============================ */

/* ---------- Root tokens ---------- */

/* ---------- Reset & base ---------- */
/* ---------- Section container & margins ---------- */
.pdie-section{
  margin: var(--section-vertical-margin) auto; /* explicit vertical margins */
  padding: 0 var(--gutter);
  max-width: var(--max-width);
  width: calc(100% - (var(--gutter) * 2));
}

/* inner wrapper */
.pdie-inner{display:grid;gap:18px;}

/* ---------- HERO: left text, right single image (contain) ---------- */
.pdie-hero{
  display:block; border-radius:var(--radius-lg); overflow:visible;
  background:linear-gradient(180deg,var(--white),var(--blue-50));
  padding:14px;
}

/* layout: responsive two-column area for hero */
.pdie-hero{display:grid;grid-template-columns:1fr 420px;gap:18px;align-items:center;padding:18px;border-radius:12px;box-shadow:var(--shadow-sm)}
.pdie-hero-text{
  padding:8px;
  padding-left: 40px;
}
.pdie-title{
  margin: 0 0 20px;
  font-weight:900;
  font-size:clamp(1.4rem,2.2vw,2.2rem);
  color:var(--blue-800);
  line-height:1.03
}
.pdie-sub{margin:0;color:var(--muted);font-size:0.96rem;max-width:58ch}

/* HERO media container — uses aspect-ratio so image can be fully visible */
.pdie-hero-media{
  width:100%;
  height:100%;
  min-height:160px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--white);
  padding:8px;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  /* make a flexible aspect area that still responds on very small screens */
  aspect-ratio: 16 / 9;
  max-height:320px;
}

/* critical: show full image (no crop) */
.pdie-hero-image{
  width:100%;
  height:100%;
  object-fit:contain;     /* show whole image */
  object-position:center center;
  display:block;
  transition: transform var(--transition), filter var(--transition);
  background:var(--white);
}

/* small hover polish on capable devices */
@media (hover:hover) and (pointer:fine){
  .pdie-hero-media:hover .pdie-hero-image{ transform: scale(1.02); filter: contrast(1.02) saturate(1.03); }
}

/* hero responsive */
@media (min-width:1400px){
  .pdie-hero{grid-template-columns:1fr 520px}
  .pdie-hero-media{aspect-ratio: 21 / 9; max-height:360px}
}
@media (min-width:1200px) and (max-width:1399px){
  .pdie-hero{grid-template-columns:1fr 480px}
  .pdie-hero-media{aspect-ratio: 16 / 9; max-height:320px}
}
@media (max-width:860px){
  .pdie-hero{grid-template-columns:1fr; padding:14px}
  .pdie-hero-media{order:2;margin-top:8px;aspect-ratio: 16 / 9;max-height:260px}
  .pdie-hero-text{order:1}
}

/* ---------- INTRO ---------- */
.pdie-intro-wrap{padding:0 4px}
.pdie-intro{margin:0;color:var(--muted);font-size:0.98rem}

/* ---------- GRID: single combined image per card ---------- */
.pdie-grid{display:grid;gap:14px;grid-template-columns:repeat(1,1fr);margin-top:6px}

/* Card */
.pdie-card{
  background:linear-gradient(180deg,var(--white),var(--blue-50));
  border-radius:12px;padding:12px;display:grid;align-items:start;box-shadow:var(--shadow-sm);
  transition: transform var(--transition), box-shadow var(--transition);
}
.pdie-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}

/* Thumb button wraps a frame that enforces an aspect ratio so the image can be fully shown */
.pdie-thumb{display:block;border:0;background:transparent;padding:0;border-radius:10px;cursor:pointer;width:100%;text-align:left}
.pdie-thumb-frame{
  width:100%;
  aspect-ratio: 16 / 9;           /* consistent visuals across grid */
  background:var(--white);
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:6px;
  box-shadow: 0 6px 18px rgba(10,20,40,0.03);
}

/* IMPORTANT: card image shows whole double-spread without cropping */
.pdie-card-img{
  width:100%;
  height:100%;
  object-fit:contain;    /* <— show entire combined image */
  object-position:center center;
  display:block;
  transition: transform var(--transition), box-shadow var(--transition);
  border-radius:6px;
  background:var(--white);
}

/* caption */
.pdie-caption{margin:10px 0 0;font-weight:800;color:var(--blue-600);text-align:center}

/* hover/focus states */
.pdie-thumb:hover .pdie-card-img, .pdie-thumb:focus .pdie-card-img{ transform: scale(1.02); }

/* grid breakpoints */
@media (min-width:1000px){
  .pdie-grid{grid-template-columns:repeat(3,1fr)}
  .pdie-thumb-frame{aspect-ratio: 16 / 9}
}
@media (min-width:640px) and (max-width:999px){
  .pdie-grid{grid-template-columns:repeat(2,1fr)}
  .pdie-thumb-frame{aspect-ratio: 16 / 9}
}
@media (max-width:639px){
  .pdie-grid{grid-template-columns:repeat(1,1fr)}
  .pdie-thumb-frame{aspect-ratio: 16 / 9}
}

/* ---------- CTA ---------- */
.pdie-cta{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:14px;border-radius:12px;
  background:linear-gradient(90deg,rgba(58,169,255,0.04),rgba(42,160,200,0.03));
  border:1px solid rgba(58,169,255,0.06); margin-top:8px;
}
.pdie-cta-text{margin:0;font-weight:800;color:var(--blue-600);font-size:1rem}
.pdie-whatsapp{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:linear-gradient(90deg,var(--blue-600),var(--blue-400));color:var(--white);text-decoration:none;font-weight:800;box-shadow:var(--shadow-md)}
.pdie-whatsapp svg{width:20px;height:20px;fill:currentColor}

/* ---------- LIGHTBOX ---------- */
.pdie-lightbox{
  position:fixed;inset:0;display:grid;place-items:center;background:rgba(2,12,28,0.6);
  opacity:0;visibility:hidden;z-index:2200;transition:opacity var(--transition);
}
.pdie-lightbox.open{opacity:1;visibility:visible}
.pdie-lightbox-inner{position:relative;max-width:92vw;max-height:92vh;background:transparent;padding:14px;display:grid;gap:12px;align-items:center;justify-items:center}
.pdie-lightbox-img{max-width:100%;max-height:86vh;border-radius:10px;box-shadow:var(--shadow-md)}
.pdie-lightbox-close{position:absolute;right:8px;top:8px;border:0;background:rgba(255,255,255,0.98);width:44px;height:44px;border-radius:10px;font-size:20px;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 18px rgba(16,24,40,0.08)}

/* ---------- Accessibility & polish ---------- */
.pdie-thumb:focus{outline:3px solid rgba(30,144,255,0.18);outline-offset:4px;border-radius:10px}
.pdie-lightbox-close:focus{outline:3px solid rgba(30,144,255,0.18)}
.pdie-caption, .pdie-intro, .pdie-sub { -webkit-font-smoothing:antialiased }

/* Avoid hero or cards from clipping in extreme device ratios */
.pdie-hero-media{min-width:160px}
.pdie-thumb-frame{min-height:96px}

/* reduced-motion */
@media (prefers-reduced-motion: reduce){
  *{transition:none!important}
}

/* Edge Case: large zoom and tiny viewports */
@media (min-resolution:2dppx) and (max-width:420px){
  .pdie-hero{grid-template-columns:1fr}
}

/* Print fallback */
@media print{
  .pdie-lightbox,.pdie-hero-media{display:none}
  .pdie-card{box-shadow:none}
}

/* Extra long CSS ends here; this file is intentionally thorough for robustness */
