
/* Main Services page is injected into the existing WordPress page content. */
body.rwsp-main-services-page .entry-header,
body.rwsp-main-services-page .page-header{
  display:none !important;
}
body.rwsp-main-services-page .site-content,
body.rwsp-main-services-page .content-area,
body.rwsp-main-services-page .site-main,
body.rwsp-main-services-page article.page,
body.rwsp-main-services-page .inside-article,
body.rwsp-main-services-page .entry-content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.rwsp-main-services-page .site-content{
  display:block !important;
}

/* ROHOVSKA Services Page */

:root{
  --rwsp-burgundy:#800000;
  --rwsp-black:#171717;
  --rwsp-gray:#6f6f6f;
  --rwsp-soft:#f5f3f1;
  --rwsp-line:#e6e0dd;
  --rwsp-white:#ffffff;
}

.rwsp,
.rwsp *{
  box-sizing:border-box;
}

.rwsp{
  background:#fff;
  color:var(--rwsp-black);
  overflow:hidden;
}

.rwsp-container{
  width:min(calc(100% - 64px),1280px);
  margin:0 auto;
}

.rwsp h1,
.rwsp h2,
.rwsp h3,
.rwsp p{
  margin-top:0;
}

.rwsp h1,
.rwsp h2,
.rwsp h3{
  font-family:"League Spartan",Arial,sans-serif;
  color:var(--rwsp-black);
}

.rwsp-eyebrow{
  display:block;
  margin-bottom:14px;
  color:var(--rwsp-burgundy);
  font-family:"League Spartan",Arial,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.15em;
  line-height:1;
  text-transform:uppercase;
}

.rwsp-script{
  width:max-content;
  max-width:100%;
  color:var(--rwsp-burgundy);
  font-family:"Oooh Baby",cursive;
  font-size:clamp(38px,4.2vw,66px);
  font-weight:400;
  line-height:.95;
  transform:rotate(-3deg);
  transform-origin:left center;
}

.rwsp-button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 24px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  text-decoration:none !important;
}

.rwsp-button--primary{
  background:var(--rwsp-burgundy);
  color:#fff !important;
}

.rwsp-button--primary:hover,
.rwsp-button--primary:focus{
  background:#650000;
  color:#fff !important;
}

.rwsp-text-link{
  color:var(--rwsp-black) !important;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:14px;
  font-weight:650;
  text-decoration:none !important;
  border-bottom:1px solid var(--rwsp-burgundy);
}

.rwsp-text-link:hover,
.rwsp-text-link:focus{
  color:var(--rwsp-burgundy) !important;
}

.rwsp-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:22px;
  margin-top:30px;
}

/* HERO */

.rwsp-hero{
  padding:70px 0 58px;
}

.rwsp-hero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
  gap:56px;
  align-items:end;
}

.rwsp-hero h1{
  max-width:870px;
  margin:0;
  font-size:clamp(64px,7vw,108px);
  font-weight:800;
  line-height:.84;
  letter-spacing:-.055em;
}

.rwsp-hero .rwsp-script{
  margin:20px 0 0 10%;
}

.rwsp-hero__copy p{
  margin-bottom:18px;
  color:#4f4f4f;
  font-family:Arial,sans-serif;
  font-size:16px;
  line-height:1.72;
}

.rwsp-hero__copy p:last-of-type{
  margin-bottom:0;
}

/* OVERVIEW */

.rwsp-overview{
  padding:52px 0 56px;
}

.rwsp-section-head{
  max-width:860px;
  margin-bottom:32px;
}

.rwsp-section-head h2{
  margin:0;
  font-size:clamp(46px,5vw,74px);
  font-weight:800;
  line-height:.9;
  letter-spacing:-.045em;
}

.rwsp-overview__intro{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  gap:72px;
  align-items:start;
}

.rwsp-overview__copy p,
.rwsp-section-copy{
  color:#555;
  font-family:Arial,sans-serif;
  font-size:17px;
  line-height:1.72;
}

.rwsp-overview__copy p{
  margin-bottom:18px;
}

.rwsp-overview__copy p:last-child{
  margin-bottom:0;
}

.rwsp-quote{
  margin:0;
  padding:30px 32px;
  border:1px solid var(--rwsp-burgundy);
  background:#fff;
}

.rwsp-quote p{
  margin:0 0 22px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:26px;
  font-weight:650;
  line-height:1.18;
  letter-spacing:-.02em;
}

.rwsp-quote cite{
  color:var(--rwsp-burgundy);
  font-family:Arial,sans-serif;
  font-size:11px;
  font-style:normal;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.rwsp-area-index{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin-top:40px;
  border-top:1px solid rgba(128,0,0,.18);
  border-left:1px solid var(--rwsp-line);
}

.rwsp-area-index__item{
  min-height:220px;
  display:flex;
  flex-direction:column;
  padding:28px 26px 26px;
  border-right:1px solid var(--rwsp-line);
  border-bottom:1px solid var(--rwsp-line);
  color:var(--rwsp-black) !important;
  text-decoration:none !important;
  transition:background .2s ease;
}

.rwsp-area-index__item:hover,
.rwsp-area-index__item:focus{
  background:var(--rwsp-soft);
}

.rwsp-area-index__number{
  margin-bottom:34px;
  color:var(--rwsp-burgundy);
  font-family:"Oooh Baby",cursive;
  font-size:34px;
}

.rwsp-area-index__item strong{
  margin-bottom:14px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:22px;
  line-height:1.05;
}

.rwsp-area-index__item > span:not(.rwsp-area-index__number){
  color:#666;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.55;
}

.rwsp-area-index__item small{
  margin-top:auto;
  padding-top:22px;
  color:#8a8a8a;
  font-family:Arial,sans-serif;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* AREA */

.rwsp-area{
  padding:56px 0 62px;
}

.rwsp-area:nth-of-type(even){
  background:#fff;
}

.rwsp-area__top{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.82fr);
  gap:44px;
  align-items:stretch;
}

.rwsp-area__heading{
  padding:18px 0 24px;
}

.rwsp-area__number{
  display:block;
  margin-bottom:20px;
  color:var(--rwsp-burgundy);
  font-family:"Oooh Baby",cursive;
  font-size:42px;
  line-height:1;
}

.rwsp-area__heading h2{
  max-width:760px;
  margin:0 0 26px;
  font-size:clamp(48px,5.3vw,78px);
  font-weight:800;
  line-height:.9;
  letter-spacing:-.045em;
}

.rwsp-area__intro{
  max-width:720px;
  margin:0;
  color:#535353;
  font-family:Arial,sans-serif;
  font-size:18px;
  line-height:1.68;
}

.rwsp-area__visual{
  min-height:0;
  aspect-ratio:5 / 4;
  max-height:520px;
  margin:0;
  overflow:hidden;
  border:3px solid var(--rwsp-burgundy);
  background:var(--rwsp-soft);
}

.rwsp-area__visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}

.rwsp-area__visual--fallback{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:30px;
  color:var(--rwsp-burgundy);
}

.rwsp-area__visual--fallback > span{
  font-family:"Oooh Baby",cursive;
  font-size:58px;
}

.rwsp-area__visual--fallback strong{
  max-width:330px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:36px;
  line-height:.95;
}

.rwsp-area__visual--fallback small{
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
}

.rwsp-area__detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);
  gap:44px;
  margin-top:36px;
}

.rwsp-area__detail h3,
.rwsp-situations h3,
.rwsp-area__detail h2,
.rwsp-situations h2{
  margin:0 0 22px;
  font-size:22px;
  font-weight:700;
}

.rwsp-area__detail p{
  margin-bottom:18px;
  color:#555;
  font-family:Arial,sans-serif;
  font-size:16px;
  line-height:1.72;
}

.rwsp-area__detail p:last-child{
  margin-bottom:0;
}

.rwsp-situations__list{
  border-top:1px solid var(--rwsp-black);
}

.rwsp-situations__list p{
  margin:0;
  padding:17px 0;
  border-bottom:1px solid var(--rwsp-line);
  color:#414141;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.55;
}

.rwsp-area-quote{
  max-width:960px;
  margin:38px 0 0 auto;
  padding:0 0 0 32px;
  border-left:3px solid var(--rwsp-burgundy);
}

.rwsp-area-quote p{
  margin:0;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:clamp(27px,3vw,42px);
  font-weight:650;
  line-height:1.12;
  letter-spacing:-.025em;
}

.rwsp-services-list{
  margin-top:40px;
}

.rwsp-services-list__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-bottom:16px;
  border-bottom:1px solid var(--rwsp-black);
  font-family:"League Spartan",Arial,sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.rwsp-services-list__head a{
  color:var(--rwsp-burgundy) !important;
  text-decoration:none !important;
}

.rwsp-service-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.rwsp-service-card{
  border-bottom:1px solid var(--rwsp-line);
}

.rwsp-service-card:nth-child(odd){
  border-right:1px solid var(--rwsp-line);
}

.rwsp-service-card__link{
  min-height:225px;
  display:flex;
  flex-direction:column;
  padding:30px 34px;
  color:var(--rwsp-black) !important;
  text-decoration:none !important;
  transition:background .2s ease;
}

.rwsp-service-card__link:hover,
.rwsp-service-card__link:focus{
  background:var(--rwsp-soft);
}

.rwsp-service-card__title{
  margin-bottom:18px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:25px;
  font-weight:700;
  line-height:1.05;
}

.rwsp-service-card__text{
  max-width:540px;
  color:#666;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.58;
}

.rwsp-service-card__cta{
  margin-top:auto;
  padding-top:26px;
  color:var(--rwsp-burgundy);
  font-family:"League Spartan",Arial,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.rwsp-empty{
  padding:30px 0;
  color:#777;
}

/* SCOPE */

.rwsp-scope{
  padding:56px 0 62px;
  background:var(--rwsp-soft);
}

.rwsp-section-head--narrow{
  max-width:930px;
}

.rwsp-section-head--narrow .rwsp-section-copy{
  max-width:850px;
  margin-top:28px;
}

.rwsp-scope-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:34px;
  border-top:1px solid #cfc8c4;
  border-left:1px solid #cfc8c4;
}

.rwsp-scope-grid article{
  min-height:260px;
  padding:30px;
  border-right:1px solid #cfc8c4;
  border-bottom:1px solid #cfc8c4;
}

.rwsp-scope-grid article > span{
  display:block;
  margin-bottom:44px;
  color:var(--rwsp-burgundy);
  font-family:"Oooh Baby",cursive;
  font-size:34px;
}

.rwsp-scope-grid h3{
  margin:0 0 16px;
  font-size:28px;
  font-weight:750;
}

.rwsp-scope-grid p{
  margin:0;
  color:#585858;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.65;
}

/* CASES */

.rwsp-cases{
  padding:56px 0 62px;
}

.rwsp-section-head--row{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(340px,.68fr);
  gap:44px;
  align-items:end;
}

.rwsp-section-head--row > p{
  margin:0;
  color:#555;
  font-family:Arial,sans-serif;
  font-size:16px;
  line-height:1.65;
}

.rwsp-cases-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.rwsp-case-card{
  min-width:0;
}

.rwsp-case-card__media{
  display:block;
  aspect-ratio:1.23/1;
  overflow:hidden;
  border:3px solid var(--rwsp-burgundy);
}

.rwsp-case-card__media img,
.rwsp-case-card__placeholder{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
  object-position:top center;
  background:var(--rwsp-soft);
}

.rwsp-case-card__body{
  padding:22px 2px 0;
}

.rwsp-case-card__body h3{
  margin:0 0 12px;
  font-size:23px;
  line-height:1.08;
}

.rwsp-case-card__body h3 a{
  color:var(--rwsp-black) !important;
  text-decoration:none !important;
}

.rwsp-case-card__body p{
  margin:0;
  color:#666;
  font-family:Arial,sans-serif;
  font-size:13px;
  line-height:1.55;
}

/* CTA */

.rwsp-cta{
  padding:54px 0 58px;
  border-top:1px solid rgba(128,0,0,.5);
  background:#fff;
}

.rwsp-cta__grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
  gap:48px;
  align-items:end;
}

.rwsp-cta h2{
  max-width:820px;
  margin:18px 0 0;
  font-size:clamp(54px,6vw,88px);
  font-weight:800;
  line-height:.86;
  letter-spacing:-.05em;
}

.rwsp-cta__copy p{
  margin:0;
  color:#555;
  font-family:Arial,sans-serif;
  font-size:16px;
  line-height:1.7;
}

/* SUBPAGES */

.rwsp-subhero{
  padding:58px 0 54px;
}

.rwsp-subhero__grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
  gap:48px;
  align-items:end;
}

.rwsp-subhero h1{
  max-width:850px;
  margin:0;
  font-size:clamp(56px,6vw,90px);
  font-weight:800;
  line-height:.88;
  letter-spacing:-.05em;
}

.rwsp-subhero__copy p{
  margin:0 0 24px;
  color:#555;
  font-family:Arial,sans-serif;
  font-size:17px;
  line-height:1.7;
}

.rwsp-subcontent{
  padding:56px 0 62px;
}

.rwsp-services-list--standalone{
  margin-top:70px;
}

.rwsp-service-single{
  padding:56px 0 62px;
}

.rwsp-service-single__grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.55fr);
  gap:48px;
  align-items:start;
}

.rwsp-service-single__content{
  color:#4f4f4f;
  font-family:Arial,sans-serif;
  font-size:17px;
  line-height:1.75;
}

.rwsp-service-single__content h2,
.rwsp-service-single__content h3{
  margin:36px 0 18px;
  font-family:"League Spartan",Arial,sans-serif;
  color:var(--rwsp-black);
}

.rwsp-service-single__content h2:first-child,
.rwsp-service-single__content h3:first-child{
  margin-top:0;
}

.rwsp-service-single__content h2{
  font-size:38px;
}

.rwsp-service-single__content h3{
  font-size:26px;
}

.rwsp-service-single__content p{
  margin-bottom:20px;
}

.rwsp-service-single__content ul,
.rwsp-service-single__content ol{
  padding-left:22px;
}

.rwsp-service-single__aside{
  position:sticky;
  top:30px;
  padding:28px;
  border:1px solid var(--rwsp-burgundy);
}

.rwsp-service-single__label{
  display:block;
  margin-bottom:12px;
  color:var(--rwsp-burgundy);
  font-family:Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.rwsp-service-single__aside strong{
  display:block;
  margin-bottom:20px;
  font-family:"League Spartan",Arial,sans-serif;
  font-size:28px;
  line-height:1.05;
}

.rwsp-service-single__aside p{
  margin-bottom:26px;
  color:#666;
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1.6;
}

/* RESPONSIVE */

@media (max-width:1020px){
  .rwsp-hero__grid,
  .rwsp-overview__intro,
  .rwsp-area__top,
  .rwsp-area__detail-grid,
  .rwsp-section-head--row,
  .rwsp-cta__grid,
  .rwsp-subhero__grid,
  .rwsp-service-single__grid{
    grid-template-columns:1fr;
    gap:42px;
  }

  .rwsp-area-index{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .rwsp-area__visual{
    min-height:0;
    aspect-ratio:5 / 4;
  }

  .rwsp-service-single__aside{
    position:static;
  }
}

@media (max-width:760px){
  .rwsp-container{
    width:calc(100% - 36px);
  }

  .rwsp-hero{
    padding:52px 0 58px;
  }

  .rwsp-hero__grid{
    gap:38px;
  }

  .rwsp-hero h1{
    font-size:clamp(48px,14vw,70px);
    line-height:.88;
  }

  .rwsp-hero .rwsp-script{
    margin-left:5%;
    font-size:40px;
  }

  .rwsp-overview,
  .rwsp-area,
  .rwsp-scope,
  .rwsp-cases,
  .rwsp-subcontent,
  .rwsp-service-single{
    padding:42px 0 48px;
  }

  .rwsp-section-head{
    margin-bottom:34px;
  }

  .rwsp-section-head h2,
  .rwsp-area__heading h2{
    font-size:clamp(39px,11.5vw,54px);
    line-height:.92;
  }

  .rwsp-overview__intro,
  .rwsp-area__top,
  .rwsp-area__detail-grid{
    gap:34px;
  }

  .rwsp-quote{
    padding:24px;
  }

  .rwsp-quote p{
    font-size:23px;
  }

  .rwsp-area-index{
    grid-template-columns:1fr 1fr;
    margin-top:28px;
  }

  .rwsp-area-index__item{
    min-height:200px;
    padding:22px 20px;
  }

  .rwsp-area-index__number{
    margin-bottom:25px;
  }

  .rwsp-area__visual{
    min-height:0;
    aspect-ratio:5 / 4;
  }

  .rwsp-area__detail-grid{
    margin-top:28px;
  }

  .rwsp-area-quote{
    margin-top:28px;
    padding-left:22px;
  }

  .rwsp-services-list{
    margin-top:34px;
  }

  .rwsp-service-grid{
    grid-template-columns:1fr;
  }

  .rwsp-service-card:nth-child(odd){
    border-right:0;
  }

  .rwsp-service-card__link{
    min-height:0;
    padding:25px 0;
  }

  .rwsp-scope-grid{
    grid-template-columns:1fr;
    margin-top:26px;
  }

  .rwsp-scope-grid article{
    min-height:0;
  }

  .rwsp-cases-grid{
    grid-template-columns:1fr;
    gap:34px;
  }

  .rwsp-cta{
    padding:42px 0 46px;
  }

  .rwsp-cta h2{
    font-size:clamp(46px,13vw,66px);
    line-height:.88;
  }

  .rwsp-subhero{
    padding:42px 0 46px;
  }

  .rwsp-subhero h1{
    font-size:clamp(44px,12vw,62px);
  }

  .rwsp-actions{
    gap:16px 20px;
  }
}

@media (max-width:430px){
  .rwsp-area-index{
    grid-template-columns:1fr;
  }

  .rwsp-area-index__item{
    min-height:170px;
  }

  .rwsp-area__visual{
    min-height:0;
    aspect-ratio:5 / 4;
  }

  .rwsp-button{
    width:100%;
  }

  .rwsp-actions{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v4.1 visual refinement */
.rwsp-overview, .rwsp-area, .rwsp-scope, .rwsp-cases, .rwsp-cta, .rwsp-subcontent, .rwsp-service-single{position:relative}
.rwsp-area + .rwsp-area .rwsp-area__top,
.rwsp-scope .rwsp-section-head,
.rwsp-cases .rwsp-section-head--row,
.rwsp-cta .rwsp-cta__grid{padding-top:0}
.rwsp-area + .rwsp-area{margin-top:0}
.rwsp-service-card__link{min-height:205px}
.rwsp-case-card__media{aspect-ratio:1.3/1}
@media (max-width:760px){
  .rwsp-service-card__link{min-height:0}
}

/* v4.2 compact editorial balance */
.rwsp-hero{padding:48px 0 44px;border:0!important}
.rwsp-hero__grid{grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);gap:44px}
.rwsp-hero .rwsp-script{margin-top:14px}
.rwsp-actions{margin-top:22px}

.rwsp-overview{padding:44px 0 48px;border:0!important}
.rwsp-section-head{margin-bottom:28px}
.rwsp-overview__intro{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:stretch}
.rwsp-overview__copy,.rwsp-quote{min-width:0}
.rwsp-quote{height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:28px 30px}

/* Grid blocks keep deliberate burgundy borders. */
.rwsp-area-index{margin-top:34px;border-top:1px solid rgba(128,0,0,.42);border-left:1px solid rgba(128,0,0,.42)}
.rwsp-area-index__item{min-height:205px;padding:24px 24px 22px;border-right:1px solid rgba(128,0,0,.42);border-bottom:1px solid rgba(128,0,0,.42)}
.rwsp-area-index__number{margin-bottom:24px}
.rwsp-area-index__item small{padding-top:16px}

.rwsp-area{padding:46px 0 50px;border:0!important}
.rwsp-area__top{grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:40px;align-items:center}
.rwsp-area__heading{padding:0}
.rwsp-area__heading h2{margin-bottom:20px}
.rwsp-area__visual{width:100%;max-width:420px;min-height:0;aspect-ratio:4/3;max-height:none;justify-self:end}
.rwsp-area__visual img{object-fit:cover;object-position:center center}
.rwsp-area__detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:28px;align-items:start}

/* Narrative lists use blocks instead of divider rules. */
.rwsp-situations__list{border:0;display:grid;gap:8px}
.rwsp-situations__list p{padding:14px 16px;border:0;background:var(--rwsp-soft)}
.rwsp-area-quote{margin-top:28px;padding-left:24px}
.rwsp-services-list{margin-top:32px}
.rwsp-services-list__head{padding-bottom:10px;border:0}

/* Service cards are a real grid, not loose separator lines. */
.rwsp-service-grid{border-top:1px solid rgba(128,0,0,.36);border-left:1px solid rgba(128,0,0,.36)}
.rwsp-service-card{border-right:1px solid rgba(128,0,0,.36)!important;border-bottom:1px solid rgba(128,0,0,.36)}
.rwsp-service-card__link{min-height:190px;padding:25px 28px}
.rwsp-service-card__title{margin-bottom:14px}
.rwsp-service-card__cta{padding-top:20px}

.rwsp-scope{padding:48px 0 52px;border:0!important}
.rwsp-section-head--narrow .rwsp-section-copy{margin-top:20px}
.rwsp-scope-grid{margin-top:28px;border-top:1px solid rgba(128,0,0,.42);border-left:1px solid rgba(128,0,0,.42)}
.rwsp-scope-grid article{min-height:230px;padding:26px;border-right:1px solid rgba(128,0,0,.42);border-bottom:1px solid rgba(128,0,0,.42)}
.rwsp-scope-grid article>span{margin-bottom:30px}

.rwsp-cases{padding:48px 0 52px;border:0!important}
.rwsp-section-head--row{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}

.rwsp-cta{padding:46px 0 50px;border:0!important}
.rwsp-cta__grid{gap:40px}
.rwsp-subhero{padding:48px 0 46px;border:0!important}
.rwsp-subhero__grid{gap:40px}
.rwsp-subcontent,.rwsp-service-single{padding:48px 0 52px;border:0!important}
.rwsp-service-single__grid{gap:40px}

@media (max-width:1020px){
  .rwsp-overview__intro,.rwsp-area__top,.rwsp-area__detail-grid,.rwsp-section-head--row{grid-template-columns:1fr;gap:28px}
  .rwsp-area__visual{width:min(100%,560px);max-width:560px;justify-self:start}
}
@media (max-width:760px){
  .rwsp-hero{padding:38px 0 36px}
  .rwsp-overview,.rwsp-area,.rwsp-scope,.rwsp-cases,.rwsp-cta,.rwsp-subcontent,.rwsp-service-single{padding:38px 0 42px}
  .rwsp-section-head{margin-bottom:24px}
  .rwsp-area-index{margin-top:28px}
  .rwsp-area-index__item{min-height:185px}
  .rwsp-area__detail-grid{margin-top:24px}
  .rwsp-area-quote{margin-top:24px}
  .rwsp-services-list{margin-top:28px}
  .rwsp-service-grid{grid-template-columns:1fr}
  .rwsp-service-card__link{min-height:0;padding:22px}
  .rwsp-scope-grid{margin-top:24px}
}


/* =========================================================
   v4.3 responsive alignment fixes
   ========================================================= */

/* Selected work: keep the whole block centered and crop case images from center. */
.rwsp-cases .rwsp-container{
  width:min(calc(100% - 64px),1180px);
  margin-left:auto;
  margin-right:auto;
}

.rwsp-cases-grid{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  justify-content:center;
  align-items:start;
}

.rwsp-case-card__media img{
  object-position:50% 50% !important;
}

/* Grid children must be allowed to shrink instead of forcing horizontal overflow. */
.rwsp-hero__main,
.rwsp-hero__copy,
.rwsp-cta__grid > *,
.rwsp-section-head--row > *,
.rwsp-case-card{
  min-width:0;
}

/* Category pages: remove the oversized empty gap between hero and content. */
.rwsp-subpage .rwsp-subhero{
  padding:42px 0 22px !important;
}

.rwsp-subpage .rwsp-subcontent{
  padding:22px 0 34px !important;
}

.rwsp-subpage .rwsp-cta{
  padding:34px 0 40px !important;
}

/*
 * v4.2 re-declared the desktop two-column hero and CTA after the old
 * responsive rules. Re-apply the intended single-column mobile layout
 * at the END of the stylesheet so it wins the cascade.
 */
@media (max-width:1020px){
  .rwsp-hero__grid,
  .rwsp-cta__grid{
    grid-template-columns:minmax(0,1fr) !important;
    gap:28px !important;
    width:100%;
  }

  .rwsp-hero__main,
  .rwsp-hero__copy,
  .rwsp-cta__grid > div,
  .rwsp-cta__copy{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .rwsp-cases .rwsp-container{
    width:min(calc(100% - 48px),760px);
  }
}

@media (max-width:760px){
  .rwsp-hero{
    padding:34px 0 32px !important;
  }

  .rwsp-hero__grid{
    gap:22px !important;
  }

  .rwsp-hero__main{
    display:block;
    width:100%;
  }

  .rwsp-hero h1{
    width:100%;
    max-width:100%;
    margin:0;
    font-size:clamp(42px,12.4vw,58px);
    line-height:.91;
    letter-spacing:-.045em;
    overflow-wrap:normal;
    word-break:normal;
  }

  .rwsp-hero .rwsp-eyebrow{
    margin-bottom:11px;
  }

  .rwsp-hero .rwsp-script,
  .rwsp-cta .rwsp-script{
    width:auto;
    max-width:100%;
    margin-left:0;
    margin-right:0;
    white-space:normal;
    font-size:36px;
    line-height:1.02;
    transform:rotate(-2deg);
  }

  .rwsp-hero__copy p,
  .rwsp-cta__copy p{
    width:100%;
    max-width:100%;
  }

  .rwsp-cta__grid{
    gap:22px !important;
  }

  .rwsp-cta h2{
    width:100%;
    max-width:100%;
    font-size:clamp(40px,11.5vw,56px);
    line-height:.9;
    overflow-wrap:normal;
    word-break:normal;
  }

  .rwsp-actions{
    width:100%;
    max-width:100%;
  }

  .rwsp-cases .rwsp-container{
    width:calc(100% - 36px);
    max-width:none;
    margin-left:auto;
    margin-right:auto;
  }

  .rwsp-cases-grid{
    width:100%;
  }

  .rwsp-case-card,
  .rwsp-case-card__media,
  .rwsp-case-card__body{
    width:100%;
    max-width:100%;
  }

  .rwsp-case-card__media{
    aspect-ratio:1.28 / 1;
  }

  .rwsp-subpage .rwsp-subhero{
    padding:32px 0 16px !important;
  }

  .rwsp-subpage .rwsp-subcontent{
    padding:16px 0 30px !important;
  }

  .rwsp-subpage .rwsp-cta{
    padding:30px 0 36px !important;
  }
}

@media (max-width:430px){
  .rwsp-hero .rwsp-script,
  .rwsp-cta .rwsp-script{
    font-size:32px;
  }

  .rwsp-hero h1{
    font-size:clamp(39px,11.8vw,50px);
  }
}


/* =========================================================
   v4.4 mobile gutters
   Force real side spacing on iPhone/Safari for the first and
   closing blocks instead of relying on width:calc(...).
   ========================================================= */

@media (max-width:760px){
  .rwsp{
    width:100%;
    max-width:100%;
  }

  .rwsp .rwsp-container{
    width:auto !important;
    max-width:none !important;
    margin-left:18px !important;
    margin-right:18px !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .rwsp-hero,
  .rwsp-cta,
  .rwsp-subhero,
  .rwsp-service-single{
    width:100%;
    max-width:100%;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .rwsp-hero__grid,
  .rwsp-cta__grid,
  .rwsp-subhero__grid,
  .rwsp-service-single__grid{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .rwsp-hero__main,
  .rwsp-hero__copy,
  .rwsp-cta__grid > *,
  .rwsp-subhero__grid > *,
  .rwsp-service-single__grid > *{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .rwsp-hero h1,
  .rwsp-cta h2,
  .rwsp-subhero h1{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .rwsp-hero .rwsp-script,
  .rwsp-cta .rwsp-script{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .rwsp-actions{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
}

@media (max-width:430px){
  .rwsp .rwsp-container{
    margin-left:18px !important;
    margin-right:18px !important;
  }

  .rwsp-hero{
    padding-top:32px !important;
    padding-bottom:30px !important;
  }

  .rwsp-hero h1{
    font-size:clamp(36px,10.7vw,47px) !important;
    line-height:.92 !important;
  }

  .rwsp-hero .rwsp-script{
    font-size:30px !important;
    line-height:1.04 !important;
  }

  .rwsp-cta{
    padding-top:32px !important;
    padding-bottom:36px !important;
  }

  .rwsp-cta h2{
    font-size:clamp(36px,10.5vw,48px) !important;
    line-height:.92 !important;
  }

  .rwsp-cta .rwsp-script{
    font-size:30px !important;
    line-height:1.04 !important;
  }

  .rwsp-cta__copy p{
    font-size:15px;
    line-height:1.65;
  }

  .rwsp-actions .rwsp-button{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box;
  }

  .rwsp-actions .rwsp-text-link{
    max-width:100%;
  }
}
