:root{
  --purple:#41063a;
  --purple-2:#5d0e53;
  --accent:#c4173a;
  --ink:#2b2b2b;
  --muted:#6a6a6a;
  --line:#e3e3e3;
  --gray:#f2f2f2;
  --gutter:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Open Sans",Lato,Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.55;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--purple-2)}
.wrap{max-width:1170px;margin:0 auto;padding:0 var(--gutter)}

/* header */
.site-header{background:#fff;border-bottom:3px solid var(--purple)}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.logo img{max-height:70px;width:auto}
.main-nav{display:flex;gap:6px;flex-wrap:wrap}
.main-nav a{padding:10px 14px;text-decoration:none;color:var(--purple);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.03em;border-radius:3px}
.main-nav a:hover,.main-nav a:focus{background:var(--purple);color:#fff}

/* hero */
.hero{background:var(--purple);color:#fff;text-align:center;padding:72px 0 64px}
.hero-kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.14em;font-size:13px;opacity:.8}
.hero h2{margin:0 0 12px;font-size:clamp(30px,6vw,56px);line-height:1.1;font-weight:900}
.hero-sub{margin:0 auto 28px;max-width:640px;font-size:18px;opacity:.92}

.btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;padding:12px 26px;border-radius:3px;letter-spacing:.04em;white-space:nowrap}
.btn:hover,.btn:focus{background:#a30f2e}
.btn-light{background:#fff;color:var(--purple)}
.btn-light:hover,.btn-light:focus{background:#f0e6ee}

.action-box{background:var(--purple-2);color:#fff}
.action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.action-row h3{margin:0;font-size:20px;font-weight:600;flex:1 1 420px}

/* blocks */
.vcard-block{text-align:center;padding-top:24px;padding-bottom:8px;color:var(--muted);font-size:15px}
.vcard-block strong{color:var(--ink)}

.process{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:32px;padding-bottom:32px}
.process-intro h3{margin:0 0 10px;font-size:22px;color:var(--purple)}
.process-intro p{margin:0 0 10px;font-size:15px}
.process-intro a{font-weight:700}
.step{text-align:center}
.step img{margin:0 auto 10px;max-height:90px;width:auto}
.step h3{margin:0 0 6px;color:var(--purple)}
.step p{margin:0;font-size:15px;color:var(--muted)}

.cta-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:28px}
.cta-box{display:block;border:2px solid var(--line);border-radius:4px;padding:22px;text-align:center;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.cta-box:hover,.cta-box:focus{border-color:var(--purple);transform:translateY(-2px)}
.cta-box.fill{background:var(--purple);border-color:var(--purple);color:#fff}
.cta-box img{margin:0 auto 8px;max-height:64px;width:auto}
.cta-box h3{margin:0;font-size:22px}
.cta-box h4{margin:4px 0 6px;font-size:14px;letter-spacing:.06em;font-weight:700;opacity:.85}
.cta-box p{margin:0;font-size:15px}

.titles{text-align:center;padding-top:10px;padding-bottom:10px}
.titles h1{margin:0 0 6px;font-size:clamp(24px,4vw,34px);color:var(--purple)}
.titles h2{margin:0;font-size:clamp(18px,3vw,24px);font-weight:700}

.band{display:flex;align-items:center;gap:14px;margin:24px 0 20px;font-size:18px;text-align:center;color:var(--purple)}
.band::before,.band::after{content:"";flex:1;height:2px;background:var(--line)}
.band span{padding:0 4px}
.band-left{margin:28px 0 18px;padding-bottom:8px;border-bottom:2px solid var(--purple);color:var(--purple);font-size:20px}

.features{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;padding-bottom:12px}
.feature{text-align:center}
.feature img{margin:0 auto 8px;max-height:64px;width:auto}
.feature h4{margin:0 0 4px;font-size:15px;letter-spacing:.04em;color:var(--purple)}
.feature p{margin:0;font-size:14px;color:var(--muted)}

.image-boxes{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-top:16px;padding-bottom:16px}
.image-boxes figure,.portfolio figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.image-boxes img,.portfolio img{width:100%;aspect-ratio:3/2;object-fit:cover}
.image-boxes figcaption,.portfolio figcaption{padding:12px 14px 16px;font-size:14px;color:var(--muted)}
.image-boxes h4,.portfolio h4{margin:0 0 4px;color:var(--ink);font-size:16px}

.feed{display:grid;grid-template-columns:minmax(0,580px) 1fr;gap:32px;align-items:center;padding-top:8px;padding-bottom:28px}
.feed-shots{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.feed-copy h3{margin:0 0 14px;color:var(--purple);font-size:22px}
.feed-copy ul{list-style:none;margin:0;padding:0}
.feed-copy li{margin:0 0 14px}
.feed-copy h4{margin:0;font-size:15px;letter-spacing:.04em}
.feed-copy span{color:var(--muted);font-size:15px}

.posts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 28px}
.posts article{border-left:4px solid var(--purple);padding:2px 0 2px 16px}
.posts .meta{margin:0 0 4px;color:var(--muted);font-size:13px}
.posts h4{margin:0 0 6px;font-size:18px;color:var(--purple)}
.posts p{margin:0 0 6px;font-size:15px}

.keywords{text-align:center;color:var(--muted);margin:28px auto;font-size:18px}
.gray{background:var(--gray);padding:12px 0 36px}
.portfolio{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}

/* footer */
.site-footer{background:var(--purple);color:#fff;padding:36px 0}
.footer-row{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;align-items:start}
.site-footer img{max-width:280px;margin-bottom:12px}
.site-footer p{margin:0 0 8px;font-size:14px;opacity:.92}
.site-footer a{color:#fff}
.contact-card{text-align:right}
.contact-card .phone{font-size:26px;font-weight:700;opacity:1}

/* responsive */
@media (max-width:960px){
  .process{grid-template-columns:1fr 1fr}
  .features,.image-boxes,.portfolio{grid-template-columns:repeat(2,1fr)}
  .feed{grid-template-columns:1fr}
}
@media (max-width:640px){
  .cta-boxes,.posts,.footer-row{grid-template-columns:1fr}
  .process{grid-template-columns:1fr}
  .features,.image-boxes,.portfolio{grid-template-columns:1fr}
  .contact-card{text-align:left}
  .hero{padding:48px 0 44px}
  .main-nav a{padding:8px 10px}
}
