/* ============================================================
   Master CMS — Studio structural family
   Bold, editorial agency look: dark header and footer, oversized
   tight headlines, a tilted highlight on *accent* words, generous
   white space and big rounded cards. Loaded after site.css only
   when the active theme's family is "studio". Colours still come
   from the theme / Brand Colours variables:
     --color-primary   buttons, highlight blocks, accents
     --color-dark      header, footer, dark sections, text
     --color-highlight accent text on dark backgrounds
   ============================================================ */

.theme-studio {
  --studio-surface: #F3F3F0;
  --studio-muted: #4A4B50;
  --studio-wrap: 1240px;
  --studio-gutter: max(1.5rem, calc((100% - var(--studio-wrap)) / 2));
}

.theme-studio body { font-size: 17px; line-height: 1.6; color: var(--color-dark); background: var(--color-background); -webkit-font-smoothing: antialiased; }
.theme-studio h1, .theme-studio h2, .theme-studio h3 { font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.theme-studio h1 { font-size: clamp(2.6rem, 6vw, 4.8rem); letter-spacing: -.04em; }
.theme-studio h2 { font-size: clamp(2.1rem, 4vw, 3.3rem); }
.theme-studio h3 { letter-spacing: -.02em; }
.theme-studio ::selection { background: var(--color-primary); color: #fff; }

/* The classic decorations are switched off in this family */
.theme-studio .bg-circle, .theme-studio .dotted-ring { display: none; }
.theme-studio [data-ghost]::before { display: none; }
.theme-studio .block-banner::after { display: none; }

/* *Accent* words: a tilted highlight block, everywhere */
.theme-studio .accent-word {
  font-style: normal; font-weight: inherit; color: #fff; text-decoration: none;
  display: inline-block; background: var(--color-primary);
  padding: 0 .12em; border-radius: .12em; transform: rotate(-2deg);
}

/* ---- Header (dark) ---- */
.theme-studio .site-header {
  background: var(--color-dark); color: #fff; box-shadow: none;
  padding: 1.1rem var(--studio-gutter);
}
.theme-studio .logo { color: #fff; font-size: 1.6rem; letter-spacing: -.03em; }
.theme-studio .logo img { height: 40px; }
.theme-studio .main-nav { gap: 2rem; margin-left: auto; }
.theme-studio .main-nav a { color: #fff; font-weight: 500; font-size: .95rem; }
.theme-studio .main-nav a:hover, .theme-studio .main-nav a:focus-visible { color: var(--color-highlight); }
.theme-studio .nav-parent-link::after { content: ''; display: inline-block; width: .38em; height: .38em; margin-left: .45em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-.2em) rotate(45deg); }
.theme-studio .mega-menu {
  background: #1B1C21; border: 1px solid rgba(255,255,255,.08); border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0,0,0,.35); padding: .6rem; min-width: 260px; top: calc(100% + .6rem);
}
.theme-studio .nav-item-has-children::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: .8rem; } /* hover bridge */
.theme-studio .mega-menu-item { color: #fff; padding: .7rem .9rem; border-radius: 12px; font-weight: 500; }
.theme-studio .mega-menu-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.theme-studio .site-header > .header-cta { background: #fff; color: var(--color-dark); margin-left: 2rem; padding: .75rem 1.3rem; font-size: .95rem; }
.theme-studio .site-header > .header-cta:hover { background: var(--color-primary); color: #fff; transform: none; box-shadow: none; }
.theme-studio .nav-toggle span { background: #fff; }

/* ---- Buttons ---- */
.theme-studio .btn { border-radius: 999px; font-weight: 600; padding: 1rem 1.7rem; transition: background .2s, color .2s, border-color .2s, transform .25s var(--motion-easing); }
.theme-studio .btn-primary { background: var(--color-primary); color: #fff; }
.theme-studio .btn-primary:hover { background: var(--color-dark); color: #fff; box-shadow: none; transform: translateY(-2px); }
.theme-studio .btn-secondary { background: transparent; color: var(--color-dark); border: 1.5px solid var(--color-dark); }
.theme-studio .btn-secondary:hover { background: var(--color-dark); color: #fff; }
.theme-studio .btn-ghost { border-color: #fff; }
.theme-studio .btn-ghost:hover { background: #fff; color: var(--color-dark); }

/* ---- Blocks: one comfortable width, generous rhythm ---- */
.theme-studio .block { padding: 4.5rem var(--studio-gutter); }
.theme-studio .block.block-ticker { padding: 0; }
.theme-studio .block.block-ticker.is-slanted { padding: 2.5rem 0; }
.theme-studio .block-text, .theme-studio .block-image-text, .theme-studio .block-twin-text,
.theme-studio .block-image-image, .theme-studio .block-faqs, .theme-studio .block-contact-form,
.theme-studio .block-gallery, .theme-studio .block-video-embed, .theme-studio .block-pricing-table,
.theme-studio .block-testimonial {
  max-width: none; margin: 0;
}
.theme-studio .eyebrow { color: var(--color-primary); font-size: .85rem; letter-spacing: .1em; font-weight: 700; margin-bottom: .75rem; }
.theme-studio .block-text { font-size: 1.1rem; }
.theme-studio .block-text > * { max-width: 760px; }
.theme-studio .block-text h2, .theme-studio .block-text h3 { margin-top: 1.5em; }
.theme-studio .block-text a { color: var(--color-primary); }

/* Banner — Split (standard) layout: light, text beside media */
.theme-studio .block-banner:not(.block-banner-bold):not(.block-banner-full-bg):not(.page-title-banner) {
  background: var(--color-background); color: var(--color-dark); gap: 4rem; padding-top: 6rem; padding-bottom: 5rem;
}
.theme-studio .block-banner:not(.block-banner-bold):not(.block-banner-full-bg):not(.page-title-banner) h1 { color: var(--color-dark); font-size: clamp(2.8rem, 6vw, 5rem); line-height: 1; }
.theme-studio .block-banner:not(.block-banner-bold):not(.block-banner-full-bg):not(.page-title-banner) p { font-size: 1.25rem; color: var(--studio-muted); max-width: 34rem; }
.theme-studio .block-banner:not(.block-banner-bold):not(.page-title-banner) .btn-primary { background: var(--color-primary); color: #fff; }
.theme-studio .block-banner .eyebrow-on-banner { background: var(--studio-surface); color: var(--studio-muted); padding: .45rem .9rem; border-radius: 999px; font-size: .85rem; font-weight: 600; text-transform: none; letter-spacing: 0; display: inline-block; margin-bottom: 1.5rem; }
.theme-studio .banner-media img, .theme-studio .banner-media .banner-video { border-radius: 28px; aspect-ratio: 4 / 3.4; object-fit: cover; }
.theme-studio .block-banner-full-bg .eyebrow-on-banner { background: rgba(255,255,255,.15); color: #fff; }

/* Banner — Bold: tighter alignment with the header */
.theme-studio .block-banner.block-banner-bold { padding: 5rem var(--studio-gutter) 4.5rem; }
.theme-studio .block-banner-bold h1 { font-size: clamp(3rem, 9.5vw, 9rem); line-height: .93; letter-spacing: -.045em; }
.theme-studio .block-banner-bold.bold-compact h1 { font-size: clamp(2.6rem, 7vw, 6.5rem); }
.theme-studio .block-banner-bold .accent-word { color: #fff; }

/* Standard title banner on Blog / Projects / Services pages */
.theme-studio .page-title-banner {
  background: var(--color-dark); color: #fff; padding: 4.5rem var(--studio-gutter) 4rem;
  display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 1.5rem;
}
.theme-studio .page-title-banner h1 { color: #fff; font-size: clamp(3rem, 8vw, 7rem); line-height: .93; letter-spacing: -.05em; }
.theme-studio .breadcrumb-pill { background: transparent; color: rgba(255,255,255,.65); padding: 0; font-weight: 500; }
.theme-studio .breadcrumb-pill span { color: var(--color-highlight); font-weight: 600; }

/* Hero slider */
.theme-studio .block-hero-slider { background: var(--color-dark); }
.theme-studio .block-hero-slider::before { display: none; }
.theme-studio .hero-slide { padding: 5rem var(--studio-gutter); }
.theme-studio .hero-slide h1 { font-size: clamp(2.8rem, 7vw, 6rem); }
.theme-studio .hero-slide .banner-media img { border-radius: 28px; }
.theme-studio .hero-slide .btn-primary { background: var(--color-primary); color: #fff; }

/* Image + Text */
.theme-studio .block-image-text { gap: 4rem; }
.theme-studio .block-image-text img, .theme-studio .block-image-image img { border-radius: 28px; box-shadow: none; aspect-ratio: 5 / 4; object-fit: cover; }
.theme-studio .block-image-text h2 { font-size: clamp(2rem, 3.6vw, 3rem); }
.theme-studio .block-image-text .block-copy { color: var(--studio-muted); font-size: 1.1rem; }
.theme-studio .block-image-text .block-copy h2 { color: var(--color-dark); }

/* Twin text */
.theme-studio .block-twin-text { gap: 4rem; }
.theme-studio .block-twin-text h3 { font-size: 1.6rem; }

/* Feature grid — rounded cards instead of divider lines */
.theme-studio .feature-grid-heading { text-align: left; max-width: none; margin: 0 0 2.5rem; }
.theme-studio .feature-grid { border: 0; gap: 1rem; max-width: none; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.theme-studio .feature-item { border: 0; background: var(--studio-surface); border-radius: 24px; padding: 2rem; gap: .75rem; }
.theme-studio .feature-item:first-child { background: var(--color-primary); color: #fff; }
.theme-studio .feature-item:first-child .feature-icon { background: rgba(255,255,255,.18); color: #fff; }
.theme-studio .feature-item:first-child p { opacity: .9; }
.theme-studio .feature-icon { width: 3.25rem; height: 3.25rem; border-radius: 14px; background: var(--color-dark); color: #fff; display: flex; align-items: center; justify-content: center; margin-bottom: .5rem; }
.theme-studio .feature-icon svg { width: 24px; height: 24px; }
.theme-studio .feature-item h3 { font-size: 1.45rem; }
.theme-studio .feature-item p { opacity: .78; font-size: 1rem; }
.theme-studio .feature-readmore { color: inherit; }
.theme-studio .feature-readmore svg { background: transparent; border-color: currentColor; }

/* Stats band */
.theme-studio .block-stats-band { background: var(--color-dark); gap: 2rem 5rem; justify-content: space-between; }
.theme-studio .stat { align-items: flex-start; gap: .25rem; }
.theme-studio .stat-badge { width: auto; height: auto; background: none; box-shadow: none; border-radius: 0; }
.theme-studio .stat-value { font-size: clamp(2.8rem, 6vw, 4.5rem); letter-spacing: -.04em; color: #fff; line-height: 1; }
.theme-studio .stat-label { color: var(--color-highlight); opacity: 1; font-weight: 600; }

/* Testimonial */
.theme-studio .testimonial-card { background: var(--studio-surface); box-shadow: none; border-radius: 28px; padding: clamp(2rem, 5vw, 4rem); text-align: left; }
.theme-studio .testimonial-card::before { display: none; }
.theme-studio .testimonial-card { border-left: 0; }
.theme-studio .block-testimonial blockquote { font-family: var(--font-heading); font-style: normal; font-weight: 700; font-size: clamp(1.5rem, 3vw, 2.3rem); line-height: 1.22; letter-spacing: -.02em; }
.theme-studio .block-testimonial cite { flex-direction: row; gap: .5rem; flex-wrap: wrap; color: var(--color-dark); font-size: 1rem; }
.theme-studio .block-testimonial cite span { opacity: .65; }
.theme-studio .block-testimonial cite span::before { content: '· '; }

/* CTA band: accent panel, heading left, button right */
.theme-studio .block-cta-scroller, .theme-studio .block-single-cta { background: none; padding-top: 4rem; padding-bottom: 5rem; text-align: left; }
.theme-studio .block-cta-scroller:not(.cta-photo-band) {
  display: flex; justify-content: space-between; align-items: center; gap: 2rem; flex-wrap: wrap;
  background: var(--color-primary); color: #fff; border-radius: 32px;
  margin: 2rem var(--studio-gutter) 5rem; padding: clamp(2rem, 6vw, 4.5rem);
}
.theme-studio .block-cta-scroller:not(.cta-photo-band) h2 { color: #fff; margin: 0; max-width: 18ch; font-size: clamp(2.2rem, 4.5vw, 3.8rem); line-height: 1; }
.theme-studio .block-cta-scroller .btn.btn-primary { background: #fff; color: var(--color-dark); padding: 1.1rem 2rem; font-size: 1.05rem; }
.theme-studio .block-cta-scroller .btn.btn-primary:hover { background: var(--color-dark); color: #fff; }
.theme-studio .cta-photo-band { margin: 2rem var(--studio-gutter) 5rem; border-radius: 32px; }
.theme-studio .block-single-cta { text-align: center; padding-top: 2rem; padding-bottom: 3rem; }
.theme-studio .block-single-cta .btn.btn-primary { background: var(--color-primary); color: #fff; }

/* FAQs */
.theme-studio .block-faqs .faq-heading { text-align: left; }
.theme-studio .faq-list { max-width: 900px; gap: 0; border-top: 1px solid var(--color-line); }
.theme-studio .block-faqs details.faq-item { border: 0; border-bottom: 1px solid var(--color-line); border-radius: 0; background: none; }
.theme-studio .block-faqs details.faq-item[open] { box-shadow: none; }
.theme-studio .block-faqs summary { padding: 1.5rem 0; font-size: 1.2rem; }
.theme-studio .faq-answer { padding: 0 0 1.5rem; font-size: 1.05rem; max-width: 760px; }
.theme-studio .faq-chevron { background: var(--studio-surface); }
.theme-studio .faq-chevron::before { border-color: var(--color-dark); }
.theme-studio details[open] .faq-chevron { background: var(--color-primary); }
.theme-studio details[open] .faq-chevron::before { border-color: #fff; }

/* Contact form block */
.theme-studio .block-contact-form:not(.contact-split) form { max-width: 720px; background: var(--studio-surface); padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 28px; }
.theme-studio .block-contact-form input:not([type=checkbox]):not([type=hidden]), .theme-studio .block-contact-form textarea { border: 1.5px solid #D6D5D0; border-radius: 14px; background: #fff; min-height: 50px; }
.theme-studio .block-contact-form input:focus, .theme-studio .block-contact-form textarea:focus { outline: none; border-color: var(--color-dark); }

/* Team grid — portrait cards */
.theme-studio .block-team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 1.5rem; justify-content: stretch; }
.theme-studio .team-member { width: auto; align-items: flex-start; text-align: left; border-radius: 0; overflow: visible; }
.theme-studio .team-member img { width: 100%; height: auto; aspect-ratio: 4 / 5; border-radius: 22px; box-shadow: none; margin-bottom: 1rem; }
.theme-studio .team-hover-icon { display: none; }
.theme-studio .team-name { font-family: var(--font-heading); font-size: 1.35rem; letter-spacing: -.02em; }
.theme-studio .team-role { color: var(--studio-muted); opacity: 1; }

/* Pricing table */
.theme-studio .pricing-col { border-radius: 26px; box-shadow: none; border: 1.5px solid var(--color-line); text-align: left; }
.theme-studio .pricing-col:nth-child(2) { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }
.theme-studio .pricing-col:nth-child(2) li { border-color: rgba(255,255,255,.15); }
.theme-studio .pricing-col .price { color: inherit; font-family: var(--font-heading); font-size: 2.6rem; letter-spacing: -.03em; }

/* Gallery / logo strip */
.theme-studio .gallery-item img { border-radius: 20px; box-shadow: none; }
.theme-studio .block-logo-strip { opacity: .6; padding-top: 3rem; padding-bottom: 3rem; }

/* Services holder (standard listing) */
.theme-studio .section-heading-center { text-align: left; max-width: none; margin: 0 0 2rem; }
.theme-studio .block-services-listing { max-width: none; margin: 0; }
.theme-studio .service-card { box-shadow: none; background: var(--studio-surface); border-radius: 26px; padding: 2.25rem; }
.theme-studio .service-card h3 { font-size: 1.8rem; }
.theme-studio .numbered-badge { position: static; display: inline-block; background: none; padding: 0; color: var(--color-primary); font-size: .95rem; margin-bottom: 1rem; }

/* Projects & Blog listings (standard templates) */
.theme-studio .block-projects-listing, .theme-studio .block-blog-listing { max-width: none; margin: 0; }
.theme-studio .project-card, .theme-studio .blog-card { box-shadow: none; background: none; border-radius: 0; overflow: visible; }
.theme-studio .project-card img, .theme-studio .blog-card img { height: auto; aspect-ratio: 16 / 10; border-radius: 22px; }
.theme-studio .project-card h3, .theme-studio .blog-card h3, .theme-studio .project-card p, .theme-studio .blog-card p,
.theme-studio .project-card .project-client, .theme-studio .blog-card-meta { padding-left: 0; padding-right: 0; }
.theme-studio .project-card h3, .theme-studio .blog-card h3 { font-size: 1.5rem; }
.theme-studio .card-corner-badge { left: .85rem; right: auto; color: var(--color-dark); }
.theme-studio .sidebar-box { background: var(--studio-surface); border: 0; border-radius: 22px; }
.theme-studio .sidebar-search button { background: var(--color-dark); }
.theme-studio .block-post-detail, .theme-studio .block-project-detail { max-width: none; }
.theme-studio .post-body, .theme-studio .block-project-detail > * { font-size: 1.1rem; }
.theme-studio .post-hero-image, .theme-studio .project-hero-image { border-radius: 26px; }

/* ---- Footer (dark, columns) ---- */
.theme-studio .site-footer-studio { background: var(--color-dark); color: #C9CAD0; padding: 0 var(--studio-gutter) 2rem; border: 0; font-size: .95rem; }
.sf-newsletter { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem 2rem; flex-wrap: wrap; padding: 3.5rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.sf-eyebrow { display: block; color: var(--color-highlight); font-weight: 700; font-size: .85rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .4rem; }
.sf-newsletter h3 { color: #fff; margin: 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.site-footer-studio .newsletter-form input[type=email] { background: #1B1C21; color: #fff; border: 1.5px solid #34353C; min-height: 50px; padding: .8rem 1.3rem; }
.site-footer-studio .newsletter-form input[type=email]::placeholder { color: #8A8B92; }
.sf-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(var(--sf-cols, 3), minmax(0, 1fr)); gap: 2.5rem; padding: 4rem 0 3rem; }
.sf-brand { display: flex; flex-direction: column; gap: 1rem; max-width: 22rem; }
.sf-logo { color: #fff; text-decoration: none; font-family: var(--font-heading); font-weight: 800; font-size: 1.8rem; letter-spacing: -.03em; }
.sf-logo img { height: 40px; display: block; }
.sf-tagline p { margin: 0; }
.sf-social { display: flex; gap: 1rem; flex-wrap: wrap; }
.sf-social a, .sf-col a { color: #C9CAD0; text-decoration: none; }
.sf-social a:hover, .sf-col a:hover { color: #fff; }
.sf-col { display: flex; flex-direction: column; gap: .7rem; }
.sf-heading { color: #fff; font-weight: 700; margin-bottom: .3rem; }
.sf-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 1.5rem; font-size: .85rem; color: #A3A4AB; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; }
.sf-bottom a { color: #A3A4AB; }
@media (max-width: 860px) { .sf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sf-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .sf-grid { grid-template-columns: 1fr; } }

.theme-studio .back-to-top { background: var(--color-dark); }

/* ---- Mobile ---- */
@media (max-width: 900px) {
  .theme-studio .site-header { position: sticky; }
  .theme-studio .main-nav { background: var(--color-dark); box-shadow: 0 20px 40px rgba(0,0,0,.3); border-top: 1px solid rgba(255,255,255,.08); }
  .theme-studio .main-nav a { padding: 1rem var(--studio-gutter); }
  .theme-studio .mega-menu { background: transparent; border: 0; box-shadow: none; padding-left: 1rem; }
  .theme-studio .main-nav .header-cta-mobile { background: #fff; color: var(--color-dark); margin: 1rem var(--studio-gutter); }
}
@media (max-width: 720px) {
  .theme-studio .block { padding: 3.75rem 1.25rem; }
  .theme-studio .block-banner:not(.block-banner-bold):not(.block-banner-full-bg):not(.page-title-banner) { padding-top: 3rem; gap: 2rem; text-align: left; }
  .theme-studio .block-cta-scroller:not(.cta-photo-band) { margin: 1rem 1.25rem 3rem; border-radius: 24px; }
  .theme-studio .page-title-banner { padding: 3rem 1.25rem; }
  .theme-studio .block-image-text { gap: 2rem; }
}

/* Image + Text: give the image and text equal room */
.theme-studio .block-image-text > .block-media, .theme-studio .block-image-text > .block-copy { flex: 1 1 0; min-width: 0; }

/* ============================================================
   Phase 1c — Studio page templates: blog listing (bs-), blog post
   (ps-), work listing (ws-), case study (cs-) and contact (cf-).
   ============================================================ */

/* ---- Shared: filter pills, empty state ---- */
.bs-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.bs-pill { text-decoration: none; color: var(--color-dark); border: 1.5px solid var(--color-line); padding: .6rem 1.1rem; border-radius: 999px; font-size: .95rem; font-weight: 500; transition: border-color .2s, background .2s, color .2s; }
.bs-pill:hover { border-color: var(--color-dark); }
.bs-pill.is-active { background: var(--color-dark); border-color: var(--color-dark); color: #fff; font-weight: 600; }
.bs-empty { padding: 2rem 0; font-size: 1.1rem; }
.bs-arrow { width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--color-dark); color: #fff; display: inline-flex; align-items: center; justify-content: center; transition: background .2s, transform .3s var(--motion-easing); }
.bs-arrow-light { background: #fff; color: var(--color-dark); width: 3.25rem; height: 3.25rem; }

/* ---- Blog listing ---- */
.theme-studio .blog-studio { padding-top: 3.5rem; }
.bs-featured { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); text-decoration: none; color: inherit; background: #fff; border-radius: 30px; overflow: hidden; box-shadow: 0 30px 70px rgba(14,15,18,.14); margin-bottom: 3.5rem; }
.bs-featured-media { position: relative; display: block; min-height: 380px; background: var(--studio-surface); }
.bs-featured-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--motion-easing); }
.bs-featured:hover .bs-featured-media img { transform: scale(1.04); }
.bs-flag { position: absolute; top: 1.25rem; left: 1.25rem; background: var(--color-primary); color: #fff; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: .4rem .75rem; border-radius: 999px; }
.bs-featured-body { padding: clamp(1.75rem, 4vw, 3.25rem); display: flex; flex-direction: column; justify-content: center; gap: 1.1rem; }
.bs-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.bs-chip { display: inline-block; font-size: .8rem; font-weight: 600; padding: .3rem .7rem; border-radius: 999px; }
.bs-featured-title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(2rem, 3.6vw, 3.2rem); line-height: 1.02; letter-spacing: -.035em; }
.bs-featured-excerpt { color: var(--studio-muted); font-size: 1.12rem; }
.bs-featured-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: .5rem; }
.bs-read { display: inline-flex; align-items: center; gap: .75rem; font-weight: 600; }
.bs-featured:hover .bs-arrow, .bs-card:hover .bs-arrow { background: var(--color-primary); transform: translateX(3px); }
.bs-date { font-size: .87rem; color: var(--studio-muted); }

.bs-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem 2rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.bs-search { display: flex; align-items: center; gap: .5rem; border: 1.5px solid var(--color-line); border-radius: 999px; padding: .3rem .3rem .3rem 1rem; min-width: min(100%, 320px); }
.bs-search svg { color: var(--studio-muted); flex-shrink: 0; }
.bs-search input { flex: 1; min-width: 0; border: 0; outline: none; font: inherit; background: transparent; padding: .45rem 0; }
.bs-search .btn { padding: .6rem 1.1rem; font-size: .9rem; }
.bs-search:focus-within { border-color: var(--color-dark); }
.bs-status { margin: -1rem 0 2rem; color: var(--studio-muted); }
.bs-status a { color: var(--color-primary); }

.bs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 3rem 1.6rem; }
.bs-card { display: flex; flex-direction: column; gap: .8rem; text-decoration: none; color: inherit; }
.bs-card-media { position: relative; display: block; aspect-ratio: 3 / 2; border-radius: 20px; overflow: hidden; background: var(--studio-surface); }
.bs-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--motion-easing); }
.bs-card:hover .bs-card-media img { transform: scale(1.04); }
.bs-chip-on-image { position: absolute; top: .9rem; left: .9rem; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.bs-card-title { font-family: var(--font-heading); font-weight: 800; font-size: 1.55rem; line-height: 1.12; letter-spacing: -.02em; }
.bs-card:hover .bs-card-title { color: var(--color-primary); }
.bs-card-excerpt { color: var(--studio-muted); }

.bs-spotlight { grid-column: 1 / -1; position: relative; overflow: hidden; display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; text-decoration: none; background: var(--color-primary); color: #fff; border-radius: 30px; padding: clamp(2rem, 5vw, 4rem); }
.bs-spotlight-mark { position: absolute; right: 2.5rem; top: -4rem; font-family: var(--font-heading); font-weight: 800; font-size: 22rem; line-height: 1; opacity: .12; pointer-events: none; }
.bs-spotlight-text { position: relative; display: flex; flex-direction: column; gap: 1rem; max-width: 52rem; }
.bs-spotlight-label { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bs-spotlight-title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(2.4rem, 5.5vw, 5rem); line-height: .98; letter-spacing: -.045em; }
.bs-spotlight .bs-read { position: relative; font-size: 1.05rem; }
.bs-spotlight:hover .bs-arrow-light { transform: translateX(4px); }

.bs-newsletter { grid-column: 1 / -1; background: var(--color-dark); color: #fff; border-radius: 30px; padding: clamp(1.75rem, 4vw, 3rem); display: flex; justify-content: space-between; align-items: center; gap: 1.5rem 2rem; flex-wrap: wrap; }
.bs-newsletter-title { display: block; font-family: var(--font-heading); font-weight: 800; font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.03em; line-height: 1.05; }
.bs-newsletter-text { display: block; color: #C9CAD0; margin-top: .5rem; }
.bs-newsletter-form { display: flex; gap: .6rem; flex-wrap: wrap; }
.bs-newsletter-form input[type=email] { font: inherit; color: #fff; background: #1B1C21; border: 1.5px solid #34353C; border-radius: 999px; padding: .85rem 1.25rem; min-width: min(100%, 300px); }
.bs-newsletter-form input[type=email]::placeholder { color: #8A8B92; }

.bs-pagination { display: flex; justify-content: center; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: 4rem; }
.bs-page { min-width: 2.9rem; height: 2.9rem; padding: 0 .9rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1.5px solid var(--color-line); text-decoration: none; color: var(--color-dark); font-weight: 600; }
.bs-page:hover { border-color: var(--color-dark); }
.bs-page.is-active { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }
.bs-page-gap { color: var(--studio-muted); padding: 0 .25rem; }
@media (max-width: 760px) { .bs-featured { grid-template-columns: 1fr; } .bs-featured-media { min-height: 230px; } .bs-search { width: 100%; } }

/* ---- Blog post ---- */
.ps-progress { position: fixed; top: 0; left: 0; right: 0; height: 4px; z-index: 300; pointer-events: none; }
.ps-progress span { display: block; height: 100%; width: 0; background: var(--color-primary); transition: width .1s linear; }
.ps-hero, .cs-hero { background: var(--color-dark); color: #fff; padding: 3rem var(--studio-gutter) 12rem; }
.ps-hero-inner { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.6rem; }
.ps-back { color: #A3A4AB; text-decoration: none; font-size: .93rem; }
.ps-back:hover { color: #fff; }
.ps-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ps-chip { text-decoration: none; font-size: .82rem; font-weight: 600; padding: .35rem .8rem; border-radius: 999px; }
.ps-hero h1 { color: #fff; margin: 0; font-size: clamp(2.8rem, 7vw, 6.4rem); line-height: .96; letter-spacing: -.05em; }
.ps-standfirst { margin: 0; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.45; color: #D6D7DC; max-width: 48rem; }
.ps-meta { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.4rem; }
.ps-byline { display: flex; align-items: center; gap: .85rem; }
.ps-avatar { width: 2.85rem; height: 2.85rem; border-radius: 50%; background: var(--color-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-family: var(--font-heading); flex-shrink: 0; }
.ps-author { display: block; font-weight: 600; }
.ps-when { display: block; font-size: .88rem; color: #A3A4AB; }
.ps-share { display: flex; align-items: center; gap: .5rem; color: #A3A4AB; font-size: .9rem; }
.ps-share a, .ps-share button { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1.5px solid #34353C; background: transparent; color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.ps-share a:hover, .ps-share button:hover, .ps-copy.is-copied { border-color: var(--color-primary); color: var(--color-highlight); }
.ps-image { max-width: 1240px; margin: -9rem auto 0; padding: 0 var(--studio-gutter); position: relative; }
.ps-image img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: 28px; display: block; box-shadow: 0 30px 70px rgba(14,15,18,.16); }
.ps-image-none { height: 0; margin-top: -8rem; }
.ps-main { max-width: 1000px; margin: 0 auto; padding: 4.5rem 1.5rem 2rem; display: flex; flex-direction: column; gap: 3.5rem; }
.ps-summary { display: grid; gap: 1rem; }
.ps-summary.has-both { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.ps-inshort, .ps-toc { border-radius: 22px; padding: 1.75rem 1.9rem; }
.ps-inshort { background: var(--studio-surface); }
.ps-inshort ul { margin: .75rem 0 0; padding-left: 1.2rem; display: flex; flex-direction: column; gap: .4rem; }
.ps-toc { background: var(--color-dark); color: #fff; display: flex; flex-direction: column; }
.ps-box-title { font-family: var(--font-heading); font-weight: 800; font-size: 1.35rem; letter-spacing: -.02em; }
.ps-toc .ps-box-title { margin-bottom: .5rem; }
.ps-toc a { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid rgba(255,255,255,.12); color: #fff; text-decoration: none; font-weight: 500; }
.ps-toc a:last-child { border-bottom: 0; }
.ps-toc a:hover { color: var(--color-highlight); }
.ps-toc-num { color: var(--color-highlight); font-weight: 700; }
.ps-body { width: 100%; max-width: 740px; margin: 0 auto; font-size: 1.18rem; line-height: 1.78; color: #2A2B30; }
.ps-body > :first-child { margin-top: 0; }
.ps-body h2 { font-size: clamp(1.8rem, 3vw, 2.3rem); color: var(--color-dark); margin: 2.4rem 0 .8rem; scroll-margin-top: 6rem; }
.ps-body h3 { font-size: 1.45rem; color: var(--color-dark); margin: 2rem 0 .6rem; }
.ps-body p { margin: 0 0 1.25rem; }
.ps-body a { color: var(--color-primary); }
.ps-body ul, .ps-body ol { padding-left: 1.3rem; margin: 0 0 1.25rem; }
.ps-body li { margin-bottom: .35rem; }
.ps-body img { max-width: 100%; height: auto; border-radius: 18px; margin: 1rem 0; }
.ps-body blockquote { margin: 2rem 0; padding: 0; border: 0; background: none; font-family: var(--font-heading); font-weight: 700; font-style: normal; font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.18; letter-spacing: -.025em; color: var(--color-dark); }
.ps-body blockquote::before { content: '\201C'; display: block; font-size: 4.5rem; line-height: .6; color: var(--color-primary); margin-bottom: .5rem; }
.ps-cta { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; flex-wrap: wrap; text-decoration: none; background: var(--color-primary); color: #fff !important; border-radius: 22px; padding: 1.7rem 1.9rem; margin: 2rem 0; }
.ps-cta-text { display: flex; flex-direction: column; gap: .25rem; line-height: 1.4; }
.ps-cta-heading { font-family: var(--font-heading); font-weight: 800; font-size: 1.45rem; letter-spacing: -.02em; }
.ps-cta-sub { font-size: 1rem; opacity: .92; }
.ps-cta-btn { background: #fff; color: var(--color-dark); border-radius: 999px; padding: .75rem 1.25rem; font-weight: 600; font-size: .95rem; }
.ps-after { max-width: 740px; width: 100%; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); padding: 1.25rem 0; font-size: .95rem; }
.ps-filed { color: var(--studio-muted); }
.ps-filed a { color: var(--color-dark); font-weight: 600; }
.ps-copy-text { background: none; border: 0; font: inherit; font-weight: 600; color: var(--color-dark); cursor: pointer; text-decoration: underline; padding: 0; }
.ps-authorbox { max-width: 740px; width: 100%; margin: -1.5rem auto 0; display: flex; align-items: center; gap: 1.1rem; }
.ps-avatar-lg { width: 4rem; height: 4rem; font-size: 1.4rem; }
.ps-author-name { display: block; font-weight: 700; }
.ps-author-bio { display: block; color: var(--studio-muted); }
.ps-related { background: var(--studio-surface); margin-top: 3rem; }
.ps-related-inner { padding: 5rem var(--studio-gutter); }
.ps-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1.5rem; }
.ps-rel-card { background: #fff; border-radius: 22px; overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; }
.ps-rel-media { display: block; aspect-ratio: 16 / 9; background: #E9E8E4; }
.ps-rel-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ps-rel-body { padding: 1.3rem 1.4rem 1.5rem; display: flex; flex-direction: column; gap: .4rem; }
.ps-rel-cat { font-size: .82rem; font-weight: 700; }
.ps-rel-title { font-family: var(--font-heading); font-weight: 800; font-size: 1.3rem; line-height: 1.18; letter-spacing: -.015em; }
.ps-rel-card:hover .ps-rel-title { color: var(--color-primary); }
@media (max-width: 720px) {
  .ps-hero, .cs-hero { padding: 2.25rem 1.25rem 7rem; }
  .ps-image { margin-top: -5rem; padding: 0 1.25rem; }
  .ps-image img { aspect-ratio: 16 / 10; border-radius: 20px; }
  .ps-main { padding-top: 3rem; gap: 2.5rem; }
  .ps-body { font-size: 1.08rem; }
}

/* ---- Work listing ---- */
.theme-studio .work-studio { padding-top: 3rem; }
.ws-filters { margin-bottom: 2.5rem; }
.ws-lead { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--color-dark); color: #fff; border-radius: 30px; overflow: hidden; text-decoration: none; margin-bottom: 3rem; }
.ws-lead-media { position: relative; display: block; min-height: 420px; background: #1B1C21; }
.ws-lead-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--motion-easing); }
.ws-lead:hover .ws-lead-media img { transform: scale(1.04); }
.ws-lead-body { padding: clamp(1.75rem, 4vw, 3.25rem); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; }
.ws-lead-top { display: flex; flex-direction: column; gap: 1rem; }
.ws-kicker { font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--color-highlight); }
.ws-lead-title { font-family: var(--font-heading); font-weight: 800; font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: .95; letter-spacing: -.045em; }
.ws-lead-excerpt { color: #C9CAD0; font-size: 1.1rem; }
.ws-lead-foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ws-tags { display: flex; flex-wrap: wrap; gap: .4rem; }
.ws-tag { border: 1px solid #34353C; border-radius: 999px; padding: .35rem .75rem; font-size: .82rem; }
.ws-go { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--color-primary); display: inline-flex; align-items: center; justify-content: center; transition: transform .3s var(--motion-easing); }
.ws-lead:hover .ws-go { transform: rotate(45deg); }
.ws-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: 2.75rem 1.5rem; }
.ws-card { display: flex; flex-direction: column; gap: 1rem; text-decoration: none; color: inherit; }
.ws-card-media { display: block; aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; background: var(--studio-surface); }
.ws-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--motion-easing); }
.ws-card:hover .ws-card-media img { transform: scale(1.04); }
.ws-card-body { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ws-card-title { font-family: var(--font-heading); font-weight: 800; font-size: 1.75rem; letter-spacing: -.025em; }
.ws-card-tag { color: var(--studio-muted); font-size: .92rem; text-align: right; }
@media (max-width: 800px) { .ws-lead { grid-template-columns: 1fr; } .ws-lead-media { min-height: 240px; } }

/* ---- Case study ---- */
.cs-hero-inner { max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 1.75rem; }
.cs-hero h1 { color: #fff; margin: 0; font-size: clamp(3.6rem, 12vw, 12rem); line-height: .86; letter-spacing: -.06em; }
.cs-lede { margin: 0; font-size: clamp(1.25rem, 2.3vw, 1.85rem); line-height: 1.35; color: #D6D7DC; max-width: 54rem; }
.cs-facts { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); padding-top: 1.5rem; }
.cs-facts dt { font-size: .8rem; color: #A3A4AB; text-transform: uppercase; letter-spacing: .08em; font-weight: 600; }
.cs-facts dd { margin: .35rem 0 0; font-weight: 600; }
.cs-facts a { color: #fff; }
.cs-story { max-width: 1240px; margin: 0 auto; padding: 5.5rem var(--studio-gutter) 2rem; display: grid; gap: 3.5rem; }
.cs-story.has-both { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.cs-col { display: flex; flex-direction: column; }
.cs-rich { font-size: 1.12rem; line-height: 1.7; color: #2A2B30; }
.cs-rich h2, .cs-rich h3 { color: var(--color-dark); }
.cs-rich p { margin: 0 0 1rem; }
.cs-delivered ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; }
.cs-delivered li { background: var(--studio-surface); border-radius: 16px; padding: 1rem 1.2rem 1rem 3rem; font-weight: 600; position: relative; }
.cs-delivered li::before { content: ''; position: absolute; left: 1.2rem; top: 1.2rem; width: .55rem; height: .95rem; border-right: 2.5px solid var(--color-primary); border-bottom: 2.5px solid var(--color-primary); transform: rotate(45deg); }
.cs-results { margin: 2.5rem var(--studio-gutter) 0; background: var(--color-dark); color: #fff; border-radius: 30px; padding: clamp(2rem, 5vw, 3.5rem); }
.cs-results .eyebrow { color: var(--color-highlight); }
.cs-results .cs-rich { color: #D6D7DC; font-size: 1.2rem; }
.cs-next-wrap { padding: 5rem var(--studio-gutter) 5.5rem; }
.cs-next { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; text-decoration: none; background: var(--color-dark); color: #fff; border-radius: 32px; padding: clamp(1.75rem, 5vw, 3.5rem); }
.cs-next-label { display: block; color: #A3A4AB; font-size: .85rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.cs-next-title { display: block; font-family: var(--font-heading); font-weight: 800; font-size: clamp(2.4rem, 6vw, 5.2rem); line-height: .95; letter-spacing: -.045em; margin-top: .4rem; }
.cs-next-go { width: 4.5rem; height: 4.5rem; flex-shrink: 0; border-radius: 50%; background: var(--color-primary); display: inline-flex; align-items: center; justify-content: center; transition: transform .3s var(--motion-easing); }
.cs-next:hover .cs-next-go { transform: translateX(6px); }

/* ---- Contact (split layout) ---- */
.theme-studio .contact-split { background: var(--color-dark); color: #fff; padding-top: 4.5rem; padding-bottom: 6rem; padding-left: var(--studio-gutter); padding-right: var(--studio-gutter); }
.theme-studio .contact-split .bold-orb { display: block; left: -180px; right: auto; top: auto; bottom: -260px; width: 620px; height: 620px; }
.theme-studio .contact-split .bold-eyebrow { color: var(--color-highlight); }
.theme-studio .contact-split .cf-info h1 { color: #fff; font-size: clamp(3.4rem, 8vw, 7rem); line-height: .92; letter-spacing: -.05em; }
.theme-studio .contact-split .cf-intro { color: #C9CAD0; opacity: 1; }
.theme-studio .contact-split .cf-card { border-color: #2E2F35; color: #fff; }
.theme-studio .contact-split .cf-card:hover { border-color: var(--color-highlight); }
.theme-studio .contact-split .cf-card-icon { background: #1B1C21; color: var(--color-highlight); }
.theme-studio .contact-split .cf-card-label { color: #A3A4AB; opacity: 1; }
.theme-studio .contact-split .cf-social a { border-color: #34353C; color: #fff; }
.theme-studio .contact-split .cf-social a:hover { border-color: var(--color-highlight); color: var(--color-highlight); }
.theme-studio .contact-split .cf-form { border-radius: 28px; box-shadow: 0 30px 70px rgba(0,0,0,.3); }
.theme-studio .cf-field input, .theme-studio .cf-field textarea { border: 1.5px solid #D6D5D0; border-radius: 12px; min-height: 48px; }
.theme-studio .cf-field input:focus, .theme-studio .cf-field textarea:focus { outline: none; border-color: var(--color-dark); }
.theme-studio .cf-chip span { border-color: #D6D5D0; }
.theme-studio .cf-submit { align-self: stretch; text-align: center; font-size: 1.05rem; padding: 1.05rem 1.5rem; }
.theme-studio .block-contact-form:not(.contact-split) .cf-form { max-width: 720px; }
