/* Panda Studios v3 editorial system (services + service pages) */
.ps { --ivory:#f4f1ea; --ivory-2:#ebe6db; --ink:#141413; --muted:#5f5d57; --line:rgba(20,20,19,.12); --red:#ff0000; color:var(--ink); }
.ps a { text-decoration:none; }
.ps-wrap { max-width:1240px; margin:0 auto; padding:0 40px; }
.ps-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:28px; }
.ps-eyebrow::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--red); }
.ps-lead { font-size:19px; line-height:1.65; color:var(--muted); max-width:560px; }
.ps-lead strong { color:var(--ink); font-weight:500; }

/* hero */
.ps-hero { background:var(--ivory); padding:200px 0 120px; }
.ps-crumbs { display:flex; gap:12px; list-style:none; padding:0; margin:0 0 56px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.ps-crumbs a { color:var(--ink); }
.ps-crumbs li + li::before { content:"/"; margin-right:12px; color:var(--muted); }
.ps-crumbs li:last-child a { color:var(--muted); }
.ps-hero h1 { font-size:clamp(31px,4.5vw,64px) !important; line-height:1.02; margin:0 0 48px; max-width:1050px; color:var(--ink); }
.ps-hero h1 .ps-red { color:var(--red); }
.ps-hero-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:80px; align-items:end; }
.ps-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
.ps-btn { display:inline-flex; align-items:center; gap:10px; padding:16px 26px; border-radius:999px; font-size:14px; font-weight:500; letter-spacing:.04em; transition:background .25s, color .25s, transform .25s; }
.ps-btn-dark { background:var(--ink); color:#fff !important; }
.ps-btn-dark:hover { background:var(--red); transform:translateY(-2px); }
.ps-btn-line { border:1px solid var(--ink); color:var(--ink) !important; }
.ps-btn-line:hover { background:var(--ink); color:#fff !important; }

/* the gap */
.ps-gap { background:#fff; border-radius:24px; padding:36px; box-shadow:0 1px 0 var(--line); }
.ps-gap-title { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:26px; }
.ps-bar { margin-bottom:22px; }
.ps-bar-label { display:flex; justify-content:space-between; font-size:14px; margin-bottom:10px; }
.ps-bar-track { position:relative; height:14px; border-radius:99px; background:var(--ivory-2); overflow:hidden; }
.ps-bar-fill { position:absolute; inset:0 auto 0 0; border-radius:99px; background:var(--ink); }
.ps-bar-gap { position:absolute; top:0; bottom:0; background:repeating-linear-gradient(135deg,var(--red) 0 6px,rgba(255,0,0,.35) 6px 12px); }
.ps-gap-note { font-size:15px; line-height:1.6; color:var(--muted); margin:6px 0 0; }
.ps-gap-note strong { color:var(--red); font-weight:500; }

/* services grid */
.ps-services { background:#fff; padding:130px 0 110px; }
.ps-head { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:70px; }
.ps-head h2 { font-size:clamp(26px,3.1vw,42px); line-height:1.05; margin:0; }
.ps-head h2 .ps-thin { font-weight:300 !important; }
.ps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ps-card { position:relative; display:flex; flex-direction:column; min-height:440px; padding:34px 32px 30px; border-radius:24px; background:var(--ivory); color:var(--ink) !important; transition:background .35s, color .35s, transform .35s; overflow:hidden; }
.ps-card:hover { background:var(--ink); color:#fff !important; transform:translateY(-4px); }
.ps-card-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:56px; }
.ps-num { font-size:13px; letter-spacing:.12em; color:var(--muted); transition:color .35s; }
.ps-icon { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:#fff; font-size:26px; color:var(--ink); transition:background .35s, color .35s; }
.ps-card h3 { font-size:30px; line-height:1.1; margin:0 0 16px; color:inherit; }
.ps-card p { font-size:15.5px; line-height:1.6; color:var(--muted); margin:0 0 22px; transition:color .35s; }
.ps-tags { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 30px; }
.ps-tags li { font-size:12.5px; padding:6px 12px; border-radius:99px; border:1px solid var(--line); color:var(--ink); transition:border-color .35s, color .35s; }
.ps-more { margin-top:auto; display:flex; align-items:center; justify-content:space-between; padding-top:20px; border-top:1px solid var(--line); font-size:14px; font-weight:500; transition:border-color .35s; }
.ps-arrow { width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--ink); color:#fff; font-size:16px; transition:background .35s, transform .35s; }
.ps-card:hover .ps-num, .ps-card:hover p { color:rgba(255,255,255,.66); }
.ps-card:hover .ps-icon { background:var(--red); color:#fff; }
.ps-card:hover .ps-tags li { border-color:rgba(255,255,255,.22); color:#fff; }
.ps-card:hover .ps-more { border-color:rgba(255,255,255,.18); }
.ps-card:hover .ps-arrow { background:var(--red); transform:rotate(-45deg); }
.ps-also { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:20px; margin-top:20px; padding:26px 32px; border-radius:24px; border:1px dashed rgba(20,20,19,.25); }
.ps-also p { margin:0; font-size:15.5px; color:var(--muted); }
.ps-also strong { color:var(--ink); font-weight:500; }
.ps-also a { color:var(--ink); font-weight:500; font-size:14px; border-bottom:1px solid var(--red); padding-bottom:2px; }

/* who */
.ps-who { background:var(--ivory); padding:130px 0; }
.ps-who-list { display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); }
.ps-who-item { padding:30px 24px 0 0; }
.ps-who-item + .ps-who-item { padding-left:24px; border-left:1px solid var(--line); }
.ps-who-item h4 { font-family:'New Spirit',Georgia,serif; font-weight:500; font-size:21px; line-height:1.2; margin:0 0 12px; }
.ps-who-item p { font-size:14.5px; line-height:1.6; color:var(--muted); margin:0; }

/* process */
.ps-process { background:#fff; padding:130px 0 120px; }
.ps-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; counter-reset:step; }
.ps-step { position:relative; padding:30px 0 0; border-top:2px solid var(--ink); }
.ps-step:first-child { border-top-color:var(--red); }
.ps-step-n { font-size:13px; letter-spacing:.12em; color:var(--muted); margin-bottom:22px; display:block; }
.ps-step h4 { font-family:'New Spirit',Georgia,serif; font-weight:500; font-size:24px; margin:0 0 12px; }
.ps-step p { font-size:15px; line-height:1.6; color:var(--muted); margin:0; }
.ps-free { display:inline-block; margin-left:8px; font-family:'Outfit',sans-serif; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--red); padding:3px 8px; border-radius:99px; vertical-align:middle; }

@media (max-width:1100px) {
  .ps-grid { grid-template-columns:repeat(2,1fr); }
  .ps-who-list { grid-template-columns:repeat(2,1fr); }
  .ps-who-item, .ps-who-item + .ps-who-item { padding:28px 20px 28px 0; border-left:0; border-bottom:1px solid var(--line); }
  .ps-steps { grid-template-columns:repeat(2,1fr); row-gap:44px; }
}
@media (max-width:860px) {
  .ps-hero-grid, .ps-head { grid-template-columns:1fr; gap:44px; }
}
@media (max-width:640px) {
  .ps-wrap { padding:0 20px; }
  .ps-hero { padding:150px 0 80px; }
  .ps-hero h1 { margin-bottom:32px; font-size:30px !important; line-height:1.1; }
  .ps-lead { font-size:17px; }
  .ps-gap { padding:26px 22px; }
  .ps-services, .ps-who, .ps-process { padding:90px 0; }
  .ps-head { margin-bottom:44px; }
  .ps-grid, .ps-who-list, .ps-steps { grid-template-columns:1fr; }
  .ps-card { min-height:0; padding:28px 24px 24px; }
  .ps-card-top { margin-bottom:36px; }
  .ps-card h3 { font-size:27px; }
  .ps-also { padding:22px 24px; }
}

/* ── Service page ─────────────────────────────────────────── */
.ps-sv-hero .ps-hero-grid { align-items:start; }
.ps-glance { background:#fff; border-radius:24px; padding:30px 32px; }
.ps-glance-row { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:16px 0; border-top:1px solid var(--line); font-size:15px; line-height:1.55; }
.ps-glance-row:first-of-type { border-top:0; padding-top:4px; }
.ps-glance-row span:first-child { font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding-top:3px; }

.ps-why { background:#fff; padding:120px 0; }
.ps-why-grid { display:grid; grid-template-columns:1fr 2.2fr; gap:80px; align-items:start; }
.ps-why-grid .ps-eyebrow { margin:8px 0 0; }
.ps-why-text { font-family:'New Spirit',Georgia,serif; font-weight:400; font-size:clamp(21px,2vw,28px); line-height:1.45; margin:0; }
.ps-why-text::first-letter { color:var(--red); }

.ps-phases { background:var(--ivory); padding:120px 0; }
.ps-phase-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.ps-phase { background:#fff; border-radius:24px; padding:34px 34px 14px; }
.ps-phase-top { display:flex; align-items:baseline; gap:16px; margin-bottom:22px; }
.ps-phase h3 { font-size:24px; line-height:1.2; margin:0; }
.ps-phase-item { padding:16px 0; border-top:1px solid var(--line); }
.ps-phase-item strong { display:block; font-weight:500; font-size:15.5px; margin-bottom:4px; }
.ps-phase-item p { margin:0; font-size:14.5px; line-height:1.6; color:var(--muted); }

.ps-get { background:var(--ink); color:#fff; padding:120px 0; }
.ps-get .ps-head h2, .ps-get .ps-head h2 span { color:#fff; }
.ps-get .ps-lead { color:rgba(255,255,255,.62); }
.ps-get-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ps-get-item { padding-top:26px; border-top:1px solid rgba(255,255,255,.18); }
.ps-get-item .ps-num { color:var(--red); display:block; margin-bottom:20px; }
.ps-get-item h4 { font-family:'New Spirit',Georgia,serif; font-weight:500; font-size:21px; line-height:1.25; color:#fff; margin:0 0 12px; }
.ps-get-item p { font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.62); margin:0; }
.ps-get-cta { margin-top:56px; }
.ps-get .ps-btn-line { border-color:rgba(255,255,255,.4); color:#fff !important; }
.ps-get .ps-btn-line:hover { background:#fff; color:var(--ink) !important; }

.ps-process + .ps-services { padding-top:20px; }
.ps-faq-list { border-bottom:1px solid var(--line); }
.ps-faq-list details { border-top:1px solid var(--line); }
.ps-faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:26px 0; font-family:'New Spirit',Georgia,serif; font-weight:500; font-size:clamp(18px,1.6vw,21px); line-height:1.35; }
.ps-faq-list summary::-webkit-details-marker { display:none; }
.ps-faq-list summary::after { content:"+"; flex:0 0 36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--ivory); font-family:'Outfit',sans-serif; font-size:20px; transition:transform .3s, background .3s, color .3s; }
.ps-faq-list details[open] summary::after { transform:rotate(45deg); background:var(--red); color:#fff; }
.ps-faq-list details p { margin:0; padding:0 60px 28px 0; font-size:16px; line-height:1.7; color:var(--muted); }

.ps-related { background:var(--ivory); padding:120px 0; }
.ps-related .ps-card { background:#fff; min-height:340px; }
.ps-related .ps-card:hover { background:var(--ink); }

@media (max-width:1100px) {
  .ps-get-grid { grid-template-columns:repeat(2,1fr); row-gap:44px; }
}
@media (max-width:860px) {
  .ps-why-grid { grid-template-columns:1fr; gap:24px; }
  .ps-phase-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .ps-why, .ps-phases, .ps-get, .ps-related { padding:90px 0; }
  .ps-glance { padding:22px 22px; }
  .ps-glance-row { grid-template-columns:1fr; gap:4px; }
  .ps-phase { padding:26px 22px 8px; }
  .ps-get-grid { grid-template-columns:1fr; }
  .ps-faq-list details p { padding-right:0; }
}
