:root {
  --ink: #111111;
  --paper: #f6f6f3;
  --white: #ffffff;
  --muted: #666663;
  --line: #d9d9d4;
  --pink: #ed0a8c;
  --pink-dark: #c90876;
  --display: "Manrope", Arial, sans-serif;
  --body: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .8rem 1rem; background: var(--pink); color: #fff; }
.skip-link:focus { top: 1rem; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(246,246,243,.94); border-bottom: 1px solid rgba(17,17,17,.12); backdrop-filter: blur(14px); }
.header-inner { max-width: 1440px; height: 88px; margin: auto; padding: 0 4.5vw; display: flex; align-items: center; gap: 3rem; }
.brand img { width: 194px; height: auto; }
.desktop-nav { margin-left: auto; display: flex; gap: 2.1rem; font-size: .92rem; font-weight: 600; }
.desktop-nav a { position: relative; padding: .3rem 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--pink); transition: right .25s ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { right: 0; }
.header-call { padding-left: 2rem; border-left: 1px solid var(--line); display: grid; line-height: 1.2; }
.header-call span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.header-call strong { margin-top: .25rem; font-family: var(--display); font-size: 1rem; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; background: var(--ink); padding: 13px 11px; }
.menu-toggle span { display: block; height: 2px; background: #fff; margin: 5px 0; transition: transform .2s; }
.mobile-menu { padding: 0 5vw 1.5rem; background: var(--paper); }
.mobile-menu a { display: block; padding: .8rem 0; border-bottom: 1px solid var(--line); font-weight: 600; }

.hero { min-height: calc(100vh - 88px); max-width: 1440px; margin: auto; padding: 5.5vw 4.5vw 4vw; display: grid; grid-template-columns: 1.08fr .92fr; gap: 5vw; align-items: center; }
.eyebrow { margin: 0 0 1.6rem; display: flex; align-items: center; gap: .7rem; font-size: .77rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.eyebrow span { width: 34px; height: 2px; background: var(--pink); }
h1, h2, h3 { font-family: var(--display); }
h1 { max-width: 760px; margin: 0; font-size: clamp(3.3rem, 5.6vw, 6.4rem); line-height: .98; letter-spacing: -.06em; font-weight: 700; }
h1 em, h2 em { color: var(--pink); font-style: normal; }
.hero-lead { max-width: 610px; margin: 2rem 0 0; color: #4f4f4d; font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.hero-actions { margin-top: 2.2rem; display: flex; align-items: center; gap: 2rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 1.4rem; padding: 1rem 1.35rem; font-weight: 700; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #fff; background: var(--pink); }
.button-primary:hover { background: var(--pink-dark); }
.text-link { font-weight: 700; border-bottom: 1px solid var(--ink); padding-bottom: .2rem; }
.hero-proof { margin-top: 3.8rem; padding-top: 1.8rem; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem; }
.hero-proof div { display: grid; }
.hero-proof strong { font-family: var(--display); font-size: 1.25rem; }
.hero-proof span { color: var(--muted); font-size: .82rem; }
.hero-visual { position: relative; min-height: 620px; overflow: hidden; background: #ddd; }
.hero-visual::before { content: ""; position: absolute; z-index: 2; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.45), transparent 46%); }
.hero-visual img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; filter: grayscale(1) contrast(1.08); transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.hero-visual:hover img { transform: scale(1.025); }
.hero-visual::after { content: ""; position: absolute; z-index: 3; right: -44px; top: -48px; width: 170px; height: 250px; background: var(--pink); clip-path: polygon(50% 0, 100% 100%, 0 100%); transform: rotate(15deg); }
.hero-note { position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; padding: 2rem; color: white; display: flex; gap: 1.2rem; align-items: flex-start; }
.hero-note span { color: var(--pink); font: 700 .8rem var(--display); }
.hero-note p { margin: 0; }
.hero-note strong { font-family: var(--display); font-size: 1.12rem; }

.principles { color: #fff; background: var(--ink); min-height: 110px; padding: 1.5rem 4.5vw; display: flex; align-items: center; gap: 4rem; }
.principles > p { color: #969692; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; }
.principles ul { max-width: 1100px; margin: 0; padding: 0; flex: 1; display: flex; justify-content: space-between; gap: 2rem; list-style: none; font: 600 clamp(1rem,1.7vw,1.35rem) var(--display); }
.principles li:not(:last-child)::after { content: "•"; color: var(--pink); margin-left: clamp(2rem,5vw,6rem); }

.section { padding: 8rem 5vw; }
.services { max-width: 1440px; margin: auto; }
.section-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 5vw; align-items: end; }
.section-heading h2, .about h2, .contact h2 { max-width: 800px; margin: 0; font-size: clamp(2.7rem, 4.5vw, 5.4rem); line-height: 1; letter-spacing: -.055em; }
.section-heading > p { max-width: 480px; margin: 0 0 .7rem; color: var(--muted); font-size: 1.08rem; }
.service-grid { margin-top: 4rem; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { min-height: 330px; padding: 2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; transition: color .25s, background .25s; }
.service-card:hover { color: #fff; background: var(--ink); }
.service-card.featured { color: #fff; background: var(--pink); }
.service-number { font-size: .78rem; opacity: .65; }
.service-card h3 { margin: 0 0 1rem; font-size: clamp(1.5rem,2.2vw,2.2rem); letter-spacing: -.035em; }
.service-card p { margin: 0; color: var(--muted); }
.service-card:hover p, .service-card.featured p { color: rgba(255,255,255,.72); }
.service-arrow { align-self: flex-end; font-size: 1.4rem; }

.guide { max-width: 1440px; margin: auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem,8vw,9rem); align-items: center; }
.guide-image { position: relative; padding-bottom: 2rem; }
.guide-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; filter: grayscale(.15); }
.guide-download { position: absolute; left: 2rem; right: 2rem; bottom: 0; }
.guide-copy h2 { margin: 0; font-size: clamp(2.7rem,4.5vw,5.2rem); line-height: 1; letter-spacing: -.055em; }
.guide-copy > p:not(.eyebrow) { max-width: 680px; margin: 2rem 0 0; color: var(--muted); font-size: 1.08rem; }
.guide-copy .guide-authors { padding-top: 1.5rem; border-top: 1px solid var(--line); font-size: .92rem; }

.about { background: var(--ink); color: #fff; display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem,8vw,9rem); align-items: center; }
.about-image { position: relative; max-width: 580px; }
.about-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: grayscale(1); }
.about-image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.15); }
.about-image span { position: absolute; z-index: 2; right: -2rem; bottom: 2rem; padding: 1rem 1.3rem; background: var(--pink); font: 700 .82rem var(--display); letter-spacing: .07em; text-transform: uppercase; }
.eyebrow.light { color: #ddd; }
.about-copy > p:not(.eyebrow) { max-width: 690px; margin: 2rem 0 0; color: #aaa; font-size: 1.12rem; }
.about-list { margin-top: 3rem; border-top: 1px solid #363636; }
.about-list div { padding: 1.3rem 0; border-bottom: 1px solid #363636; display: flex; gap: 1.5rem; }
.about-list span { color: var(--pink); font-size: .8rem; }
.about-list p { margin: 0; color: #b8b8b8; }
.about-list strong { color: #fff; }

.testimonial { max-width: 1200px; margin: auto; text-align: center; }
.quote-mark { color: var(--pink); height: 5rem; font: 700 8rem/1 var(--display); }
blockquote { margin: 1rem auto 2rem; font: 600 clamp(2rem,4vw,4rem)/1.16 var(--display); letter-spacing: -.045em; }
.testimonial p { color: var(--muted); text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; }

.contact { color: #fff; background: var(--pink); display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.contact .eyebrow span { background: #fff; }
.contact h2 em { color: var(--ink); }
.contact-intro > p:last-child { max-width: 560px; color: rgba(255,255,255,.82); font-size: 1.08rem; }
.contact-panel { border-top: 1px solid rgba(255,255,255,.4); }
.contact-panel a { padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.4); display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: 1.2rem; }
.contact-panel a:hover b { transform: translate(3px,-3px); }
.contact-panel span { font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; opacity: .75; }
.contact-panel strong { font: 600 1.15rem/1.4 var(--display); }
.contact-panel b { font-size: 1.3rem; transition: transform .2s; }

footer { min-height: 150px; padding: 2rem 5vw; color: #aaa; background: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 2rem; font-size: .82rem; }
.footer-brand img { width: 175px; }
.footer-collab { max-width: 430px; }
.footer-collab > span { display: block; margin-bottom: .5rem; color: #777; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.footer-collab > div { display: flex; flex-wrap: wrap; gap: .3rem .8rem; }
.footer-collab a { color: #ddd; font-size: .8rem; }
.footer-collab a:hover { color: var(--pink); }

@media (max-width: 980px) {
  .header-inner { height: 76px; }
  .desktop-nav, .header-call { display: none; }
  .menu-toggle { display: block; margin-left: auto; }
  .hero { min-height: auto; grid-template-columns: 1fr; padding-top: 4rem; }
  .hero-copy { padding-bottom: 1.5rem; }
  .hero-visual, .hero-visual img { min-height: 520px; }
  .section-heading, .guide, .about, .contact { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .about-image { max-width: 100%; }
  .about-image img { aspect-ratio: 16/10; }
}

@media (max-width: 640px) {
  .header-inner { padding: 0 1.25rem; }
  .brand img { width: 165px; }
  .hero { padding: 3.2rem 1.25rem 1.25rem; gap: 2.6rem; }
  h1 { font-size: clamp(2.9rem,14vw,4.4rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.3rem; }
  .hero-proof { grid-template-columns: 1fr 1fr; }
  .hero-proof div:last-child { grid-column: 1/-1; }
  .hero-visual, .hero-visual img { min-height: 430px; }
  .principles { display: block; padding: 2rem 1.25rem; }
  .principles ul { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .principles li::after { display: none; }
  .section { padding: 5.5rem 1.25rem; }
  .service-grid { grid-template-columns: 1fr; margin-top: 3rem; }
  .service-card { min-height: 280px; }
  .guide-download { left: 1rem; right: 1rem; }
  .about-image span { right: 1rem; }
  .contact-panel a { grid-template-columns: 82px 1fr auto; }
  footer { align-items: flex-start; flex-direction: column; }
  footer p { margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* Blog */
.blog-hero { color: #fff; background: var(--ink); padding: 7rem 5vw 6rem; }
.blog-hero-inner, .blog-content { max-width: 1440px; margin: 0 auto; }
.blog-hero h1 { max-width: 880px; margin: 0; font-size: clamp(3.5rem, 7vw, 7rem); }
.blog-hero h1 em { color: var(--pink); }
.blog-hero .eyebrow { color: #bbb; }
.blog-lead { max-width: 620px; margin: 2rem 0 0; color: #aaa; font-size: 1.1rem; }
.blog-content { padding: 5rem 5vw 8rem; }
.blog-toolbar { margin-bottom: 3rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.blog-toolbar p { margin: 0; color: var(--muted); font-size: .9rem; }
.blog-toolbar p strong { color: var(--ink); }
.blog-toolbar a { font-weight: 700; border-bottom: 1px solid var(--ink); }
.post-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
.post-card { min-height: 340px; padding: 2rem; border: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; transition: color .25s, background .25s, transform .25s; }
.post-card:hover { color: #fff; background: var(--ink); transform: translateY(-4px); }
.post-card.featured { color: #fff; background: var(--pink); border-color: var(--pink); }
.post-meta { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .1em; }
.post-card:hover .post-meta, .post-card.featured .post-meta { color: rgba(255,255,255,.7); }
.post-card h2 { max-width: 630px; margin: 2rem 0 1rem; font: 600 clamp(1.65rem,3vw,3rem)/1.08 var(--display); letter-spacing: -.045em; }
.post-card p { max-width: 560px; margin: 0; color: var(--muted); font-size: .98rem; }
.post-card:hover p, .post-card.featured p { color: rgba(255,255,255,.72); }
.post-arrow { align-self: flex-end; color: var(--pink); font-size: 1.5rem; }
.post-card.featured .post-arrow { color: #fff; }
.blog-source { margin-top: 5rem; padding: 2rem; color: #fff; background: var(--ink); display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.blog-source p { max-width: 620px; margin: 0; color: #aaa; }
.blog-source .button { flex: 0 0 auto; }
.blog-page footer .footer-brand { cursor: pointer; }

@media (max-width: 640px) {
  .blog-hero { padding: 4.5rem 1.25rem 4rem; }
  .blog-content { padding: 3.5rem 1.25rem 5rem; }
  .blog-toolbar, .blog-source { align-items: flex-start; flex-direction: column; }
  .post-grid { grid-template-columns: 1fr; }
  .post-card { min-height: 290px; }
}
