/* DataPet — real.css. Loaded by /realisations and the case studies. */
.also{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}
.also a{display:inline-flex;gap:10px;padding:.55em 1.1em;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:500}
.also a:hover{border-color:var(--ink)}
.related-offers{padding:8px 0 48px}
.related-offers h2{font-size:1.4rem;font-weight:700}
.related-offers .also{margin-top:14px}
.aside-offers{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:6px}
.aside-offers a{font-weight:600}
/* Cases */
.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:52px}
.case{border:1px solid var(--line);border-radius:var(--r-xl);padding:32px;display:flex;flex-direction:column}
.case .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.case h3{font-size:1.7rem;margin-bottom:10px}
.case p{color:var(--ink-2)}
.case a{margin-top:20px;font-weight:600;text-underline-offset:5px}
@media (max-width:820px){
.case-grid{grid-template-columns:1fr}
}
.other-sites{padding-top:0}
.site-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;margin-top:36px}
.site-list li{border:1px solid var(--line);border-radius:var(--r-xl);padding:20px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.site-list a{font-weight:700;font-size:1.15rem;text-underline-offset:5px}
.site-sector{color:var(--ink-2)}
.site-tech{margin-top:8px;padding:.2em .75em;border-radius:999px;background:var(--mint-pale);font-size:.9rem;font-weight:600}
@media (max-width:980px){
.site-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
.site-list{grid-template-columns:1fr}
}
.updated{margin-top:10px;font-size:.9rem;color:var(--ink-2)}
.page-content{padding:0 0 88px}
.prose{max-width:760px}
.prose>*+*{margin-top:1em}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:1.6em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.35em}
.prose a{color:var(--coral-ink);text-underline-offset:3px}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-bottom:18px}
.tags li{padding:.2em .75em;border-radius:999px;background:var(--mint-pale);font-size:.9rem;font-weight:600}
ul.also{list-style:none}
.h3{font-size:clamp(1.4rem,2.4vw,1.8rem);letter-spacing:-.02em}
/* Split hero with a visual */
.page-hero-split .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.page-hero-split .h1{max-width:18ch}
@media (max-width:980px){
.page-hero-split .wrap{grid-template-columns:1fr;gap:40px}
}
/* Prose lists with check marks */
.prose ul{list-style:none;padding-left:0}
.prose ul li{position:relative;padding-left:30px}
.prose ul li::before{content:"";position:absolute;left:0;top:.35em;width:18px;height:18px;border-radius:50%;background:var(--mint-pale) center/11px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237B4FC9' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
/* Case cards with screenshots */
.case-visual{padding:0;overflow:hidden}
.case-visual .case-body{padding:26px 30px 30px;display:flex;flex-direction:column;flex:1}
.case-visual .case-body a{margin-top:auto;padding-top:18px}
.browser{background:var(--bg-2);border-bottom:1px solid var(--line);padding:12px 14px 0}
.browser-bar{display:flex;gap:6px;margin-bottom:10px}
.browser-bar span{width:10px;height:10px;border-radius:50%;background:var(--line)}
.browser img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border-radius:10px 10px 0 0;transition:transform .5s}
.case-visual:hover .browser img{transform:scale(1.03)}
@media (prefers-reduced-motion:no-preference){
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i,0) * 90ms)}
.js [data-reveal].is-visible{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
.case-visual:hover .browser img{transform:none}
}
/* Case study hero screenshot */
.case-hero-shot{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -30px rgba(53,27,93,.35)}
.case-hero-shot .browser{border-bottom:0}
/* Mobile safety: grid children must be allowed to shrink */
.page-hero-split .wrap>*{min-width:0}
/* Long texts: prose + sticky contact card on the right (desktop only) */
.page-content .with-aside{display:grid;grid-template-columns:minmax(0,760px) 300px;justify-content:space-between;gap:56px;align-items:start}
.contact-card{position:sticky;top:96px;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:24px;box-shadow:0 24px 48px -32px rgba(53,27,93,.45);display:grid;gap:14px}
.contact-card .btn{width:100%}
.cc-meta{display:flex;gap:8px;align-items:flex-start;font-size:.92rem;color:var(--ink-2);line-height:1.35}
.cc-meta .icon{color:var(--mint);margin-top:.1em}
@media (max-width:1080px){
.page-content .with-aside{grid-template-columns:1fr}
.contact-card{display:none}
}
/* Side cards (about, legal, case studies) */
.aside-title{font:700 1.2rem "Outfit",sans-serif;color:var(--ink)}
.aside-title-sub{margin-top:6px;padding-top:14px;border-top:1px solid var(--line);font-size:1.05rem}
.aside-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-underline-offset:4px;justify-self:start}
.aside-facts{display:grid;gap:10px}
.aside-facts div{display:grid;gap:2px}
.aside-facts dt{font-size:.82rem;font-weight:600;color:var(--ink-2)}
.aside-facts dd{font-weight:600;color:var(--ink);line-height:1.35}
