/* Contact and reading surfaces. Brand marks are static; links retain real targets. */
.studio-contact-card {
  --contact-colour:rgba(56,166,225,.18);
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 20px;
  align-items:center;
  gap:16px;
  min-width:0;
  min-height:100px;
  padding:20px;
  border:1px solid var(--ks-line);
  border-radius:20px;
  background:radial-gradient(ellipse at 0% 0%,var(--contact-colour),transparent 75%),var(--surface-quiet);
  box-shadow:var(--surface-edge);
  color:var(--ks-text);
  text-decoration:none;
  transition:border-color 180ms ease;
}
.studio-contact-card.contact-email { --contact-colour:rgba(173,117,150,.15); }
.studio-contact-card:hover { border-color:var(--visual-accent); }
.studio-contact-card:focus-visible { outline:2px solid var(--visual-accent); outline-offset:4px; }
.studio-contact-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:16px; background:var(--visual-tint); }
.studio-contact-icon .ui-icon { width:38px; height:38px; transform:none; }
.studio-contact-card.contact-telegram .studio-contact-icon { background:rgba(42,171,238,.08); }
.studio-contact-card.contact-email .studio-contact-icon { background:rgba(223,231,247,.055); }
[data-theme="light"] .studio-contact-card.contact-email .studio-contact-icon { background:#fff; }
.studio-contact-copy { display:grid; gap:8px; min-width:0; }
.studio-contact-copy strong { font-size:16px; line-height:1.45; letter-spacing:-.01em; overflow-wrap:anywhere; }
.studio-contact-address { display:block; font-size:13px; color:var(--ks-muted); font-weight:400; line-height:1.5; overflow-wrap:anywhere; }
.studio-contact-arrow { width:20px; height:20px; color:var(--visual-accent); }
[dir="rtl"] .studio-contact-arrow { transform:scaleX(-1); }
.studio-contact-cards { display:grid; gap:14px; }

/* A project invitation with a dedicated contact column. */
.services-content .services-final-cta {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
  padding:clamp(28px,4vw,56px);
  border-radius:30px;
  background:var(--surface-feature);
  text-align:start;
}
.services-cta-copy { min-width:0; }
.services-final-cta .services-cta-copy h2 { font-size:clamp(30px,3.4vw,48px); line-height:1.16; max-width:23ch; margin:0 0 22px; text-wrap:pretty; }
.services-final-cta .services-cta-copy > p { color:var(--ks-muted); font-size:17px; line-height:1.8; max-width:58ch; margin:0 0 26px; }
.services-final-cta .services-cta-copy > .services-eyebrow { color:var(--visual-accent); font-size:13px; font-weight:750; margin-block-end:20px; }
.services-final-cta .services-cta-copy > .services-eyebrow::before { content:""; display:inline-block; width:8px; height:8px; margin-inline-end:10px; border-radius:50%; background:currentColor; }
.services-final-cta .services-cta-copy > .services-button { min-height:52px; padding:16px 26px; font-size:16px; }
.services-final-cta .services-cta-copy .services-cta-disclaimer { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.7; max-width:58ch; margin:22px 0 0; }
.services-cta-disclaimer > .ui-icon { flex:none; width:20px; height:20px; margin-top:2px; color:var(--visual-accent); }
.services-cta-contacts { min-width:0; padding-inline-start:32px; border-inline-start:1px solid var(--ks-line); }
.services-cta-contacts > p { color:var(--ks-text); margin:0 0 20px; font-size:18px; font-weight:650; line-height:1.5; }
.services-cta-contacts .studio-contact-card { min-height:112px; }

/* FAQ answers use the foreground colour and a comfortable reading measure. */
.services-faq-section { max-width:1000px; }
.services-faq { display:grid; gap:12px; counter-reset:faq-item; }
.services-faq .services-disclosure {
  counter-increment:faq-item;
  min-width:0;
  border:1px solid var(--ks-line);
  border-radius:20px;
  background:var(--surface-quiet);
  box-shadow:var(--surface-edge);
}
.services-faq .services-disclosure summary {
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 34px;
  gap:18px;
  align-items:center;
  padding:22px 24px;
  min-height:84px;
  border-radius:20px;
  color:var(--ks-text);
  font-size:18px;
  font-weight:650;
  line-height:1.5;
}
.services-faq .services-disclosure summary::before {
  content:counter(faq-item,decimal-leading-zero);
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid var(--ks-line);
  border-radius:11px;
  color:var(--visual-accent);
  background:var(--visual-tint);
  font-size:12px;
  font-weight:750;
  font-variant-numeric:tabular-nums;
}
.services-faq .services-disclosure summary > span { min-width:0; overflow-wrap:anywhere; text-wrap:pretty; }
.services-faq .services-disclosure summary > .ui-icon {
  width:34px;
  height:34px;
  padding:8px;
  box-sizing:border-box;
  border:1px solid var(--ks-line);
  border-radius:50%;
  background:var(--visual-tint);
  color:var(--visual-accent);
  transform:none;
  transition:transform 180ms ease;
}
.services-faq .services-disclosure[open] { border-color:var(--visual-border); }
.services-faq .services-disclosure[open] summary > .ui-icon { transform:rotate(45deg); }
.services-faq .services-disclosure summary:focus-visible { outline:2px solid var(--visual-accent); outline-offset:3px; }
.services-faq .services-disclosure summary:hover { color:var(--visual-accent); }
.services-faq .services-disclosure-body {
  max-width:none;
  margin:0 24px 24px 78px;
  padding:24px 26px;
  border-inline-start:2px solid var(--visual-border);
  border-radius:0 16px 16px 0;
  background:var(--ks-bg);
  color:var(--ks-text);
  font-size:17px;
  line-height:1.85;
}
[dir="rtl"] .services-faq .services-disclosure-body { margin:0 78px 24px 24px; border-radius:16px 0 0 16px; }
.services-faq .services-disclosure-body p { max-width:68ch; margin:0; color:var(--ks-text); text-wrap:pretty; overflow-wrap:anywhere; }
.services-faq .services-disclosure-body p + p { margin-block-start:18px; }
.services-faq .services-disclosure-body .services-faq-links { font-size:14px; padding-block-start:16px; border-block-start:1px solid var(--ks-line); }
.services-faq-links a { text-underline-offset:4px; }

/* One shared footer: brand, navigation, and direct contacts. */
.footer {
  display:grid;
  grid-template-columns:minmax(170px,.75fr) minmax(0,1.4fr) 300px;
  gap:36px;
  align-items:start;
  margin-top:44px;
  padding:36px 0 12px!important;
  color:var(--ks-muted)!important;
}
.footer-brand { min-width:0; }
.footer-brand-link { display:inline-flex; align-items:center; gap:14px; color:var(--ks-text); text-decoration:none; }
.footer-brand-link img { width:48px; height:48px; object-fit:contain; flex:none; background:none; border:0; border-radius:0; box-shadow:none; }
.footer-brand-link strong { font-size:20px; line-height:1.3; letter-spacing:-.025em; }
.footer-brand > p { color:var(--ks-muted); font-size:12px; line-height:1.7; margin:14px 0 0; }
.footer .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 24px; margin:0; }
.footer .footer-links a { display:flex; align-items:center; min-width:0; min-height:44px; padding:6px 0; font-size:14px; line-height:1.5; color:var(--ks-muted); text-decoration:none; overflow-wrap:anywhere; }
.footer .footer-links a::after { display:none; }
.footer .footer-links a:hover { color:var(--ks-text); }
.footer a:focus-visible { outline:2px solid var(--visual-accent); outline-offset:4px; border-radius:8px; }
.footer-contacts { display:grid; gap:10px; min-width:0; }
.footer .studio-contact-card { grid-template-columns:36px minmax(0,1fr); gap:12px; padding:14px 16px; min-height:74px; border-radius:16px; }
.footer .studio-contact-icon { width:36px; height:36px; border-radius:12px; }
.footer .studio-contact-icon .ui-icon { width:28px; height:28px; }
.footer .studio-contact-copy { gap:3px; }
.footer .studio-contact-copy strong { font-size:14px; }
.footer .studio-contact-address { font-size:12px; }
@media (max-width:1100px) {
  .services-content .services-final-cta { grid-template-columns:minmax(0,1fr); gap:30px; }
  .services-final-cta .services-cta-copy h2 { max-width:24ch; }
  .services-cta-contacts { border-inline-start:0; border-block-start:1px solid var(--ks-line); padding-inline-start:0; padding-block-start:28px; }
  .services-cta-contacts .studio-contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .services-cta-contacts .studio-contact-card { grid-template-columns:44px minmax(0,1fr); gap:14px; }
  .services-cta-contacts .studio-contact-arrow { display:none; }
  .services-cta-contacts .studio-contact-icon { width:44px; height:44px; }
  .footer { grid-template-columns:minmax(0,1fr) 300px; gap:26px 32px; }
  .footer .footer-links { grid-column:1; grid-row:2; }
  .footer-contacts { grid-column:2; grid-row:1/3; }
}
@media (max-width:600px) {
  .services-content .services-final-cta { border-radius:24px; padding:26px; gap:26px; }
  .services-final-cta .services-cta-copy h2 { font-size:30px; line-height:1.2; }
  .services-final-cta .services-cta-copy > p { font-size:16px; }
  .services-cta-contacts > p { font-size:17px; }
  .services-cta-contacts .studio-contact-cards { grid-template-columns:minmax(0,1fr); }
  .services-cta-contacts .studio-contact-card { min-height:94px; padding:16px; }
  .studio-contact-copy strong { font-size:15px; }
  .services-faq { gap:10px; }
  .services-faq .services-disclosure { border-radius:16px; }
  .services-faq .services-disclosure summary { grid-template-columns:28px minmax(0,1fr) 28px; gap:12px; padding:18px 16px; font-size:16px; line-height:1.6; border-radius:16px; }
  .services-faq .services-disclosure summary::before { width:28px; height:28px; border-radius:9px; font-size:10px; }
  .services-faq .services-disclosure summary > .ui-icon { width:28px; height:28px; padding:6px; }
  html[dir] .services-faq .services-disclosure-body { margin:0 14px 16px; padding:18px; border-radius:12px; font-size:16px; line-height:1.85; }
  .services-faq .services-disclosure-body p + p { margin-block-start:16px; }
  .footer { grid-template-columns:minmax(0,1fr); padding-block:28px 12px!important; gap:24px; }
  .footer .footer-links { grid-column:auto; grid-row:auto; gap:4px 18px; }
  .footer-contacts { grid-column:auto; grid-row:auto; }
  .footer-brand-link strong { font-size:21px; }
  .footer .studio-contact-card { min-height:76px; }
}
@media (prefers-reduced-motion:reduce) {
  .studio-contact-card,.services-faq .services-disclosure summary > .ui-icon { transition:none; }
}
@media (forced-colors:active) {
  .studio-contact-card,.services-faq .services-disclosure,.services-faq .services-disclosure summary::before { border-color:CanvasText; }
  .services-faq .services-disclosure[open] { border-color:Highlight; }
  .services-faq .services-disclosure-body { background:Canvas; color:CanvasText; border-color:CanvasText; }
}
