/* ===========================================================================
   CORE — v2.3  : service cards, scroll reveal, project detail, contact. LAST.
   ========================================================================= */

/* ---- Service cards: image + white title strip (TB style, no description) -- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc-card{display:block;background:#fff;border-radius:6px;overflow:hidden;box-shadow:var(--shadow-sm);
  text-decoration:none;transition:box-shadow .25s ease,transform .25s ease}
.svc-card:hover{box-shadow:var(--shadow);transform:translateY(-4px)}
.svc-img{aspect-ratio:16/10;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.svc-card:hover .svc-img img{transform:scale(1.06)}
.svc-name{padding:18px 16px;text-align:center;font-family:var(--ff-head);font-weight:500;color:var(--navy);font-size:1.08rem;line-height:1.3}
.svc-card:hover .svc-name{color:var(--red)}
@media (max-width:860px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}

/* ---- Scroll reveal: elements rise into place ----------------------------- */
.reveal{opacity:0;transform:translateY(48px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---- Project detail page (TB layout) ------------------------------------- */
.pd-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start}
.pd-left h1{color:var(--navy);font-weight:700;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.15;margin:0 0 20px}
.pd-left .prose p{color:var(--text)}
.pd-item{margin-top:26px}
.pd-item .ln{display:block;width:46px;height:3px;background:var(--red);margin-bottom:12px}
.pd-item .lbl{font-family:var(--ff-head);font-weight:600;color:var(--navy);font-size:1.05rem}
.pd-item .val{color:var(--text);margin-top:3px}
.pd-share{display:flex;gap:12px;margin-top:32px}
.pd-share a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;
  font-family:var(--ff-head);font-weight:600;font-size:.8rem;transition:.2s}
.pd-share a:hover{background:var(--red);color:#fff}
.pd-right img{width:100%;border-radius:8px;box-shadow:var(--shadow-sm);display:block}
.pd-right img + img{margin-top:16px}
.related-title{color:var(--navy);font-weight:700;margin:0 0 26px;font-size:clamp(1.4rem,2.4vw,1.9rem)}
@media (max-width:860px){.pd-grid{grid-template-columns:1fr;gap:30px}}

/* ---- Contact page (closer to TB) ----------------------------------------- */
.contact-info-title{color:var(--navy);font-weight:600;font-size:clamp(1.5rem,2.4vw,1.9rem);margin:0 0 18px}
.contact-socials{display:flex;gap:12px;margin:0 0 20px}
.contact-socials a{width:40px;height:40px;border-radius:50%;border:1px solid var(--navy);color:var(--navy);
  display:grid;place-items:center;font-family:var(--ff-head);font-weight:600;font-size:.8rem;transition:.2s}
.contact-socials a:hover{background:var(--red);border-color:var(--red);color:#fff}
.contact-email{color:var(--red);font-weight:600;font-family:var(--ff-head);margin:0 0 18px;display:inline-block}
.contact-block{margin-bottom:16px;color:var(--text)}
.contact-block .place{font-weight:700;color:var(--navy)}
.contact-block .callat{color:var(--navy);font-weight:600;text-decoration:underline}
