/* Organic Cart Studio Crafted Interactive Pro 10.3
   Final design layer only. It does not hide, replace, or rewrite indexable content. */

:root{
  --ocs-green-vivid:#22d47f;
  --ocs-green-vivid-dark:#087a49;
  --ocs-green-mint:#75ffbb;
  --ocs-green-line:rgba(34,212,127,.38);
  --ocs-ink:#06120c;
  --ocs-paper:#f3f0e8;
  --ocs-premium-ease:cubic-bezier(.22,1,.36,1);
}

::selection{background:var(--ocs-green-vivid);color:#03110a}

/* Stronger green title system. Inline legacy color declarations are intentionally overridden. */
body:not(.home) .svc-hero h1,
body:not(.home) .service-hero h1,
body:not(.home) .page-hero h1,
body:not(.home) .page-generic h1,
body:not(.home) .archive-hero h1,
body:not(.home) .blog-hero h1,
body:not(.home) .search-hero h1,
body:not(.home) .article-hero h1,
body:not(.home) .article-header h1,
body:not(.home) h1.entry-title{
  color:var(--ocs-green-mint)!important;
  text-shadow:0 0 34px rgba(34,212,127,.08);
}

body:not(.home) .svc-hero .hero-chip,
body:not(.home) .service-hero .eyebrow,
body:not(.home) .page-generic>.container>.eyebrow,
body:not(.home) .archive-hero .eyebrow,
body:not(.home) .article-hero .eyebrow{
  color:var(--ocs-green-mint)!important;
  border-color:rgba(117,255,187,.34)!important;
}

/* Make every micro-heading unmistakably brand green. */
.ocs-section-label,
.ocs-home-copy-head>span,
.eyebrow,
.hero-chip,
.svc-label,
.page-kicker,
.article-kicker,
.ocs-project-copy>span,
.ocs-project-media>small,
.ocs-benefit-grid article>span,
.ocs-home-proof-grid article>small,
.ocs-contact-notes>.ocs-section-label,
.ocs-home-blog-copy>.ocs-section-label{
  color:var(--ocs-green-vivid-dark)!important;
  font-weight:700;
  letter-spacing:.16em;
}

.ocs-crafted-hero .ocs-hero-kicker span,
.ocs-crafted-hero .ocs-hero-kicker b,
.ocs-work-section .ocs-section-label,
.ocs-service-section .ocs-section-label,
.ocs-process-section .ocs-section-label,
.ocs-proof-section .ocs-section-label,
.ocs-contact-section .ocs-section-label,
.svc-hero .hero-chip,
.card--feature .eyebrow{
  color:var(--ocs-green-mint)!important;
}

.ocs-section-label::before,
.ocs-home-copy-head>span::before,
.eyebrow::before{
  background:currentColor!important;
  opacity:1!important;
}

/* Premium composition and spacing */
.ocs-crafted-section{
  position:relative;
  isolation:isolate;
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
.ocs-crafted-section::before{
  content:"";
  position:absolute;
  inset:0 clamp(12px,3vw,42px);
  border-left:1px solid rgba(7,42,25,.09);
  border-right:1px solid rgba(7,42,25,.09);
  pointer-events:none;
  z-index:-1;
}
.ocs-crafted-section>.container{position:relative}
.ocs-section-head{
  position:relative;
  padding-top:clamp(18px,2.5vw,34px);
}
.ocs-section-head::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:clamp(72px,10vw,150px);
  height:3px;
  background:var(--ocs-green-vivid);
  transform-origin:left;
  transition:transform .9s var(--ocs-premium-ease);
}
.ocs-section-head h2,
.ocs-home-copy-head h2,
.ocs-home-blog-copy h2{
  text-wrap:balance;
  letter-spacing:-.035em;
}
.ocs-section-head p{max-width:68ch}

/* Hero: more deliberate typography and a richer but non-liquid right-side object. */
.ocs-crafted-hero__grid{align-items:center}
.ocs-crafted-hero__copy h1{max-width:11.4ch;text-wrap:balance}
.ocs-crafted-hero__copy h1 em{color:var(--ocs-green-mint)!important}
.ocs-hero-kicker{
  border-top:1px solid rgba(117,255,187,.34);
  padding-top:14px;
}
.ocs-hero-object__frame{
  border-color:rgba(117,255,187,.3)!important;
  box-shadow:24px 28px 0 rgba(34,212,127,.06),0 36px 90px -62px #000;
}
.ocs-object-message{
  position:absolute;
  right:clamp(18px,4vw,42px);
  bottom:clamp(22px,5vw,52px);
  width:min(250px,52%);
  padding:15px 17px;
  border:1px solid rgba(117,255,187,.28);
  background:#07160f;
  color:#eafff2;
  z-index:4;
  transform:rotate(-1.2deg);
}
.ocs-object-message small{display:block;color:var(--ocs-green-mint);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}
.ocs-object-message p{margin:8px 0 0;font-size:.78rem;line-height:1.5;color:#bdd0c5}

/* Dynamic journal now uses live WordPress posts while retaining the crafted layout. */
.ocs-home-blog-copy{
  margin-top:clamp(62px,8vw,110px);
  padding-top:clamp(28px,4vw,50px);
  border-top:1px solid rgba(7,42,25,.16);
  display:grid;
  grid-template-columns:minmax(170px,.42fr) minmax(0,1fr);
  gap:clamp(24px,5vw,76px);
  align-items:start;
}
.ocs-home-blog-copy h2{margin:0;max-width:18ch;font-size:clamp(2rem,4.2vw,4.5rem);line-height:.98}
.ocs-home-journal-empty{display:block;padding:24px 0;color:#486055}

/* Restore old contact copy in a premium information panel. */
.ocs-contact-notes{
  min-height:100%;
  padding:clamp(28px,4vw,52px);
  border:1px solid rgba(117,255,187,.24);
  background:#07150e;
  color:#effbf4;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ocs-contact-notes h3{margin:18px 0 8px;font-size:clamp(2rem,3.5vw,3.8rem);line-height:.98;color:#fff}
.ocs-contact-notes p{max-width:46ch;color:#b9cbbf;line-height:1.72}
.ocs-contact-notes strong,.ocs-contact-notes a{color:var(--ocs-green-mint)}
.ocs-contact-notes .muted{font-size:.86rem;color:#849a8d}

/* Cards and project work feel engineered rather than template-like. */
.ocs-project-card,
.ocs-benefit-grid article,
.ocs-home-proof-grid article,
.svc-row,
.pricing-card,
.card{
  position:relative;
  overflow:hidden;
}
.ocs-project-card::after,
.ocs-benefit-grid article::after,
.ocs-home-proof-grid article::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:3px;
  background:var(--ocs-green-vivid);
  transition:width .65s var(--ocs-premium-ease);
}
@media(hover:hover) and (pointer:fine){
  .ocs-project-card:hover::after,
  .ocs-benefit-grid article:hover::after,
  .ocs-home-proof-grid article:hover::after{width:100%}
  .ocs-project-card:hover{transform:translateY(-5px)}
  .ocs-project-card,.ocs-benefit-grid article,.ocs-home-proof-grid article{transition:transform .65s var(--ocs-premium-ease),border-color .45s ease,box-shadow .65s var(--ocs-premium-ease)}
  .ocs-benefit-grid article:hover,.ocs-home-proof-grid article:hover{transform:translateY(-4px);box-shadow:0 28px 70px -55px rgba(0,0,0,.5)}
}

/* Service rows: clearer scanning and premium active behavior. */
.ocs-service-index-row{position:relative}
.ocs-service-index-row::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:var(--ocs-green-vivid);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .45s var(--ocs-premium-ease);
}
.ocs-service-index-row:hover::before,.ocs-service-index-row.is-active::before{transform:scaleY(1)}
.ocs-service-index-row h3{transition:color .35s ease,transform .55s var(--ocs-premium-ease)}
.ocs-service-index-row:hover h3,.ocs-service-index-row.is-active h3{color:var(--ocs-green-vivid-dark);transform:translateX(7px)}

/* Process line: more visible and controlled. */
.ocs-process-map__line{background:rgba(34,212,127,.16)!important}
.ocs-process-map__line i{background:var(--ocs-green-vivid)!important;box-shadow:0 0 0 1px rgba(34,212,127,.16)}
.ocs-process-map__line b{background:var(--ocs-green-mint)!important;box-shadow:0 0 0 7px rgba(34,212,127,.14),0 0 26px rgba(34,212,127,.32)}
.ocs-process-steps li.is-active{border-color:var(--ocs-green-vivid)!important}

/* Better internal page polish without touching content. */
.svc-hero,.page-generic,.article-hero,.archive-hero{position:relative;overflow:hidden}
.svc-hero::after,.page-generic::after,.article-hero::after,.archive-hero::after{
  content:"";
  position:absolute;
  right:clamp(18px,6vw,92px);
  top:clamp(110px,16vw,210px);
  width:clamp(90px,12vw,180px);
  height:1px;
  background:var(--ocs-green-vivid);
  box-shadow:0 12px 0 rgba(34,212,127,.32),0 24px 0 rgba(34,212,127,.14);
  pointer-events:none;
}

/* Subtle progressive scroll choreography. */
@supports (animation-timeline:view()){
  .ocs-section-ghost{
    animation:ocs-v103-ghost linear both;
    animation-timeline:view();
    animation-range:entry 0% cover 100%;
  }
  .ocs-section-head::before{
    animation:ocs-v103-line linear both;
    animation-timeline:view();
    animation-range:entry 15% cover 42%;
  }
}
@keyframes ocs-v103-ghost{from{transform:translateY(55px);opacity:.02}to{transform:translateY(-35px);opacity:.09}}
@keyframes ocs-v103-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* View transitions are progressive enhancement only. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:ocs-v103-out .25s ease both}
::view-transition-new(root){animation:ocs-v103-in .5s var(--ocs-premium-ease) both}
@keyframes ocs-v103-out{to{opacity:0;transform:translateY(-4px)}}
@keyframes ocs-v103-in{from{opacity:0;transform:translateY(10px)}}

/* Responsive refinement */
@media(max-width:980px){
  .ocs-home-blog-copy{grid-template-columns:1fr;gap:16px}
  .ocs-home-blog-copy h2{max-width:24ch}
  .ocs-object-message{width:58%;right:16px;bottom:20px}
  .ocs-crafted-section::before{inset:0 12px}
}
@media(max-width:720px){
  body:not(.home) .svc-hero h1,
  body:not(.home) .page-generic h1,
  body:not(.home) .article-hero h1{font-size:clamp(2.55rem,12vw,4.4rem)!important}
  .ocs-crafted-hero__copy h1{max-width:12ch}
  .ocs-object-message{position:relative;right:auto;bottom:auto;width:auto;margin:16px;transform:none}
  .ocs-hero-object__map{padding-bottom:0}
  .ocs-contact-notes{padding:26px 20px}
  .ocs-home-blog-copy{margin-top:54px}
  .ocs-section-head p{max-width:none}
  .ocs-crafted-section::before{display:none}
}
@media(max-width:430px){
  .ocs-section-label,.eyebrow,.hero-chip{letter-spacing:.11em}
  .ocs-home-blog-copy h2{font-size:2.15rem}
  .ocs-contact-notes h3{font-size:2.25rem}
}

@media(prefers-reduced-motion:reduce){
  .ocs-section-ghost,.ocs-section-head::before{animation:none!important}
  .ocs-project-card,.ocs-benefit-grid article,.ocs-home-proof-grid article,.ocs-service-index-row h3{transition:none!important}
}

/* Five-column footer with graceful responsive collapse. */
.site-footer .footer-grid{grid-template-columns:minmax(240px,1.35fr) minmax(130px,.65fr) minmax(190px,.85fr) minmax(190px,1fr) minmax(170px,.8fr);gap:clamp(24px,3vw,54px)}
.site-footer .footer-email{margin-top:14px}.site-footer .footer-email a{color:var(--ocs-green-mint)}
.site-footer .footer-newsletter .muted{font-size:.82rem;line-height:1.6}
.site-footer .ocs-footer-cta{position:relative;overflow:hidden}
.site-footer .ocs-footer-cta::after{content:"";position:absolute;right:0;top:0;width:22%;height:100%;border-left:1px solid rgba(117,255,187,.17);background:repeating-linear-gradient(0deg,transparent 0 18px,rgba(117,255,187,.05) 18px 19px);pointer-events:none}
@media(max-width:1180px){.site-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.site-footer .footer-grid>.footer-col:first-child{grid-column:span 2}}
@media(max-width:760px){.site-footer .footer-grid{grid-template-columns:1fr 1fr}.site-footer .footer-grid>.footer-col:first-child{grid-column:1/-1}.site-footer .ocs-footer-cta::after{display:none}}
@media(max-width:480px){.site-footer .footer-grid{grid-template-columns:1fr}}
