/* ==========================================================================
   FBARON — "Ground Up" design layer
   Loads AFTER the theme (yuipians/creative.css) and overrides it.
   Concept: engineered, earthy, calm. Deep forest-ink + warm concrete paper,
   one signal-orange accent (used only for action + focus).
   ========================================================================== */

:root{
  --ink:#0B1A11;          /* deepest green-black: hero, projects, footer */
  --forest:#1E4A12;       /* deepened brand green (was #367c1a) */
  --brand:#367c1a;        /* original brand green, kept as a quiet accent */
  --signal:#F05A28;       /* the ONE accent: CTAs, focus, active */
  --paper:#F5F2EA;        /* warm concrete */
  --stone:#E4DFD3;        /* hairlines on paper */
  --text:#18221B;
  --muted:#5E6A61;
  --on-ink:#EDEBE3;
  --on-ink-muted:rgba(237,235,227,.62);
  --hair-ink:rgba(237,235,227,.14);

  --serif:"Fraunces","Georgia",serif;
  --sans:"Manrope","Helvetica Neue",Arial,sans-serif;

  --ease:cubic-bezier(.2,.7,.2,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --gutter:clamp(20px,4vw,56px);
  --section:clamp(72px,10vw,140px);
}

/* ---------- Base ---------- */
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{
  font-family:var(--sans)!important;
  color:var(--text);
  background:var(--paper)!important;
  font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5{font-family:var(--serif)!important;font-weight:400;letter-spacing:-.015em}
a{transition:color .25s var(--ease)}
img{max-width:100%}
::selection{background:var(--signal);color:#fff}

:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}

.container{max-width:1240px;padding-left:var(--gutter);padding-right:var(--gutter)}

/* scroll progress */
.fb-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--signal);
  transform-origin:0 50%;transform:scaleX(0);z-index:2000;pointer-events:none}

/* ---------- Utility bar ---------- */
#section-index-contact{background:var(--ink)!important;padding:0!important}
#section-index-contact ul{margin:0;padding:9px 0;display:flex;gap:28px;justify-content:flex-end}
#section-index-contact li{float:none!important;margin:0!important;color:var(--on-ink-muted);
  font-size:11.5px!important;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
#section-index-contact .ico-def,#section-index-contact .fa{display:none}
#section-index-contact li a{color:inherit;text-decoration:none}
#section-index-contact li a:hover{color:#fff}

/* ---------- Navigation ---------- */
#mainnav-wrapper{
  position:sticky!important;top:0;z-index:1500;
  background:rgba(245,242,234,.92)!important;
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease);
}
#mainnav-wrapper.fb-scrolled{border-bottom-color:var(--stone);box-shadow:0 8px 30px -18px rgba(11,26,17,.35)}
#mainnav-wrapper.navbar-shrink{background:rgba(245,242,234,.96)!important}   /* kills the stray orange state */
#mainnav-wrapper .container{max-width:1240px}
.img-logo{width:auto!important;height:54px!important;transition:height .35s var(--ease)}
#mainnav-wrapper.fb-scrolled .img-logo{height:42px!important}

#navbar-nav-wrapper a,
#menu-main-menu a.nav-link{
  position:relative;font-size:11.5px!important;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text)!important;padding:10px 14px!important;
  background:none!important;border-radius:0!important;white-space:nowrap;
}
#menu-main-menu a.nav-link::after{
  content:"";position:absolute;left:14px;right:14px;bottom:4px;height:1px;background:var(--signal);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .45s var(--ease);
}
#menu-main-menu a.nav-link:hover::after,
#menu-main-menu .active>a.nav-link::after{transform:scaleX(1)}
#navbar-nav-wrapper .active{background:none!important}

/* Services dropdown (built by JS from the three flat items) */
.fb-has-sub{position:relative}
.fb-sub{
  list-style:none;margin:0;padding:10px 0;position:absolute;top:100%;left:0;min-width:260px;
  background:var(--ink);box-shadow:0 24px 50px -20px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.fb-has-sub:hover .fb-sub,.fb-has-sub:focus-within .fb-sub{opacity:1;visibility:visible;transform:none}
.fb-sub a.nav-link{color:var(--on-ink)!important;display:block;padding:12px 22px!important}
.fb-sub a.nav-link::after{left:22px;right:22px;bottom:8px}
.fb-has-sub>a.nav-link .fb-caret{display:inline-block;margin-left:7px;width:5px;height:5px;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}

/* CTA in the nav */
.fb-nav-cta a.nav-link{
  margin-left:10px;background:var(--ink)!important;color:var(--on-ink)!important;
  padding:11px 20px!important;transition:background .3s var(--ease),transform .3s var(--ease)!important;
}
.fb-nav-cta a.nav-link::after{display:none}
.fb-nav-cta a.nav-link:hover{background:var(--signal)!important;color:#fff!important}

@media (max-width:991px){
  #navbar-nav-wrapper{padding:12px 0 20px}
  #menu-main-menu a.nav-link{padding:14px 4px!important;border-bottom:1px solid var(--stone)}
  .fb-sub{position:static;opacity:1;visibility:visible;transform:none;background:none;box-shadow:none;padding:0 0 0 14px}
  .fb-sub a.nav-link{color:var(--text)!important}
  .fb-nav-cta a.nav-link{margin:14px 0 0;text-align:center}
  #section-index-contact{display:none!important}
}

/* ---------- Hero ---------- */
#carousel-wrapper{height:clamp(560px,calc(100vh - 110px),860px)!important;background:var(--ink);position:relative;overflow:hidden}
#carousel-wrapper .carousel-inner,#carousel-wrapper .carousel-item{height:100%}
.img-coursel{height:100%!important;object-fit:cover;object-position:center 60%}
#carousel-wrapper .carousel-item.active .img-coursel{animation:fb-kenburns 14s var(--ease-io) both}
@keyframes fb-kenburns{from{transform:scale(1.0)}to{transform:scale(1.08)}}

/* cinematic scrim: legibility without the old green box */
#carousel-wrapper::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(11,26,17,.88) 0%,rgba(11,26,17,.55) 38%,rgba(11,26,17,.05) 72%),
    linear-gradient(0deg,rgba(11,26,17,.75) 0%,rgba(11,26,17,0) 38%);
}
.i-c-caption{z-index:3;top:0!important;bottom:0!important;left:0!important;right:0!important;
  display:flex;align-items:center;justify-content:flex-start;text-align:left;padding:0 var(--gutter)}
.i-c-caption h1{
  width:auto!important;max-width:1240px;margin:0 auto!important;padding:0!important;
  background:none!important;border-radius:0!important;
  font-size:clamp(56px,10vw,150px)!important;line-height:.92;font-weight:300!important;
  letter-spacing:-.04em;color:var(--on-ink);font-variation-settings:"opsz" 144;
  text-shadow:none;transform:translateY(40px) translateX(0);opacity:0;
}
.i-c-caption{max-width:1240px;margin:0 auto}
.carousel-item.active .i-c-caption h1{animation:fb-rise 1.1s var(--ease) .15s forwards}
@keyframes fb-rise{to{transform:none;opacity:1}}
.i-c-caption h1::after{content:".";color:var(--signal)}
.carousel-caption{position:absolute}

.carousel-indicators{z-index:4;left:auto;right:var(--gutter);bottom:34px;margin:0;justify-content:flex-end}
.carousel-indicators li{width:44px;height:2px;border:0;background:rgba(237,235,227,.35);margin-left:8px;position:relative;overflow:hidden;opacity:1}
.carousel-indicators li::after{content:"";position:absolute;inset:0;background:var(--signal);transform:scaleX(0);transform-origin:0 50%}
.carousel-indicators li.active::after{animation:fb-slide-timer 5s linear forwards}
@keyframes fb-slide-timer{to{transform:scaleX(1)}}

/* injected hero overlay: eyebrow + lede + CTAs */
.fb-hero-overlay{position:absolute;z-index:5;left:0;right:0;bottom:clamp(36px,7vh,80px);pointer-events:none}
.fb-hero-overlay .inner{max-width:1240px;margin:0 auto;padding:0 var(--gutter);display:flex;gap:40px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap}
.fb-hero-lede{max-width:430px;color:var(--on-ink-muted);font-size:15px;line-height:1.7;margin:0}
.fb-hero-lede strong{color:var(--on-ink);font-weight:600}
.fb-hero-actions{display:flex;gap:14px;pointer-events:auto;flex-wrap:wrap}
.fb-eyebrow-hero{position:absolute;z-index:5;top:clamp(28px,6vh,64px);left:0;right:0;pointer-events:none}
.fb-eyebrow-hero span{display:block;max-width:1240px;margin:0 auto;padding:0 var(--gutter);
  font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:var(--on-ink-muted)}

/* ---------- Buttons (one system) ---------- */
.fb-btn,.link-index-1,.link-index-2{
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:16px 26px!important;border-radius:0!important;
  font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none!important;border:1px solid currentColor!important;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)!important;
}
.fb-btn .arr,.link-index-2::after{
  content:"";width:18px;height:1px;background:currentColor;position:relative;transition:width .35s var(--ease)}
.link-index-2::after{content:"";display:inline-block}
.fb-btn:hover .arr,.link-index-2:hover::after{width:30px}
.fb-btn--solid{background:var(--signal);border-color:var(--signal)!important;color:#fff!important}
.fb-btn--solid:hover{background:#fff;border-color:#fff!important;color:var(--ink)!important}
.fb-btn--ghost{color:var(--on-ink)!important}
.fb-btn--ghost:hover{background:var(--on-ink);color:var(--ink)!important}
.link-index-2{color:var(--on-ink)!important}
.link-index-2:hover{background:var(--on-ink);color:var(--ink)!important}

/* ---------- Section headings: numbered, editorial ---------- */
body{counter-reset:fbsec}
.title-con{padding:0 0 clamp(36px,5vw,72px)!important;text-align:left!important}
.title-con h1{
  counter-increment:fbsec;position:relative;margin:0!important;
  font-size:clamp(36px,5.2vw,68px)!important;line-height:1.02;font-weight:300!important;
  letter-spacing:-.03em;text-transform:none!important;color:var(--text)!important;
  padding-top:34px;text-transform:capitalize!important;
}
.title-con h1::before{
  content:"0" counter(fbsec);position:absolute;top:0;left:0;font-family:var(--sans);
  font-size:11.5px;font-weight:700;letter-spacing:.24em;color:var(--signal);
}
.title-con h1::after{content:"";display:block;width:56px;height:1px;background:currentColor;opacity:.35;margin-top:26px}
#section-index-project .title-con h1,#section-index-about .title-con h1{color:var(--on-ink)!important}

/* generic section rhythm */
section{padding-top:var(--section);padding-bottom:var(--section)}
section#section-index-contact{padding:0}
#section-index-services,#section-index-client,#section-index-team,#section-index-gmap{background:var(--paper)}

/* ---------- Services ---------- */
#section-index-services{padding-bottom:var(--section)!important}
#section-index-services .row.sr-i-box{margin:0 -12px}
#section-index-services .col-md-4{padding:0 12px;margin-bottom:24px}
.i-serv-con{
  min-height:0!important;background:transparent!important;text-align:left;position:relative;
}
.i-serv-con img{height:auto!important;aspect-ratio:4/5;width:100%;object-fit:cover;margin:0 0 22px!important;
  filter:saturate(.85) contrast(1.02);transition:transform 1.1s var(--ease),filter .6s var(--ease)!important}
.i-link:hover .i-serv-con img{transform:scale(1.05)!important;filter:saturate(1.05)}
.f-wrapp{overflow:hidden}
.i-serv-con .fb-imgwrap{overflow:hidden;display:block;margin-bottom:22px}
.i-serv-con .fb-imgwrap img{margin:0!important}
.i-serv-con h3{
  font-size:clamp(24px,2.4vw,32px)!important;font-weight:400!important;text-transform:none!important;
  letter-spacing:-.02em;color:var(--text)!important;margin:0 0 10px!important;
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
}
.i-serv-con h3::before{content:attr(data-n);font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.2em;color:var(--signal);order:2}
.i-serv-con p{color:var(--muted);font-size:15px;margin:0;max-width:34ch}
.i-link{text-decoration:none!important;display:block}
.i-link .i-serv-con::after{
  content:"";display:block;margin-top:22px;height:1px;background:var(--stone);
  background-image:linear-gradient(var(--signal),var(--signal));background-repeat:no-repeat;background-size:0 100%;
  transition:background-size .7s var(--ease);
}
.i-link:hover .i-serv-con::after{background-size:100% 100%}

/* ---------- About band ---------- */
#section-index-about{background:var(--ink)!important;position:relative;overflow:hidden}
#section-index-about::before{ /* blueprint grid, very faint */
  content:"";position:absolute;inset:0;opacity:.07;pointer-events:none;
  background-image:linear-gradient(var(--on-ink) 1px,transparent 1px),linear-gradient(90deg,var(--on-ink) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 60%);mask-image:linear-gradient(90deg,transparent,#000 60%);
}
#section-index-about .container{position:relative;text-align:left!important}
#section-index-about .title-con h1{color:var(--on-ink)!important}
#section-index-about h4{
  font-family:var(--serif)!important;font-size:clamp(20px,2.2vw,30px)!important;line-height:1.5;font-weight:300;
  max-width:62ch;color:var(--on-ink-muted)!important;letter-spacing:-.01em;
}
#section-index-about h4 br,#section-index-about .col-md-12>br{display:none}
#section-index-about .link-index-2{margin-top:40px}

/* ---------- Clients: hairline logo wall ---------- */
#section-index-client .row{margin:0;border-top:1px solid var(--stone);border-left:1px solid var(--stone)}
#section-index-client .row:first-child{border:0}
#section-index-client .row .col-md-3{padding:0;background:#fff;border-right:1px solid var(--stone);border-bottom:1px solid var(--stone)}
.i-client-link{display:block;position:relative;cursor:default!important}
.i-clent-con{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:3/2}
.i-clent-con img{width:100%;max-width:200px;margin:0!important;mix-blend-mode:multiply;
  filter:grayscale(1) contrast(1.1);opacity:.62;transition:filter .5s var(--ease),opacity .5s var(--ease),transform .6s var(--ease)}
.i-client-link:hover .i-clent-con img{filter:none;opacity:1;transform:scale(1.04)}
.i-clent-con h5{
  position:absolute;left:0;right:0;bottom:12px;margin:0;font-family:var(--sans)!important;font-size:10.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);opacity:0;transform:translateY(6px);
  transition:opacity .4s var(--ease),transform .4s var(--ease)
}
.i-client-link:hover h5{opacity:1;transform:none}

/* ---------- Projects: image-led tiles on ink ---------- */
#section-index-project{background:var(--ink)!important}
#section-index-project .row{margin:0 -10px}
#section-index-project .col-md-4{padding:0 10px}
.i-proj-link{display:block;margin-bottom:20px}
.i-proj-con{
  position:relative;height:auto!important;padding:0!important;margin:0!important;border-radius:0!important;
  background:#000!important;aspect-ratio:4/3;overflow:hidden;
}
.i-proj-con img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;margin:0!important;
  opacity:.82;transition:transform 1.2s var(--ease),opacity .6s var(--ease)!important}
.i-proj-con::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,26,17,.92) 0%,rgba(11,26,17,0) 62%);z-index:1}
.i-proj-link:hover .i-proj-con img{transform:scale(1.07)!important;opacity:1}
.i-proj-con h5{
  position:absolute;z-index:2;left:22px;right:22px;bottom:20px;margin:0;text-align:left;
  font-family:var(--serif)!important;font-size:clamp(18px,1.6vw,22px);line-height:1.2;font-weight:400;
  color:var(--on-ink);text-transform:capitalize;transform:translateY(0);transition:transform .5s var(--ease)
}
.i-proj-link:hover .i-proj-con h5{transform:translateY(-6px)}
.i-proj-con h5::before{content:"";display:block;width:24px;height:1px;background:var(--signal);margin-bottom:12px;transition:width .5s var(--ease)}
.i-proj-link:hover .i-proj-con h5::before{width:56px}
#section-index-project .col-md-12.text-center{text-align:left!important;padding-top:28px}

/* ---------- Team ---------- */
#section-index-team .row{margin:0 -12px}
#section-index-team .col-md-3{padding:0 12px}
.i-team-con{height:auto!important;padding:0!important;text-align:left!important;display:flex;flex-direction:column}
.i-team-con img,.img-circle{
  width:100%!important;height:auto!important;aspect-ratio:4/5;object-fit:cover;border-radius:0!important;margin:0 0 18px!important;
  filter:grayscale(1) contrast(1.05);transition:filter .6s var(--ease),transform 1s var(--ease)!important}
.btn-team-data:hover .i-team-con img{filter:none;transform:scale(1.04)!important}
.i-team-con p{order:1;margin:0;font-family:var(--serif);font-size:20px;line-height:1.25;text-transform:capitalize;color:var(--text)}
.i-team-con h5{order:2;margin:6px 0 0;font-family:var(--sans)!important;font-size:11px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted)!important}
.btn-team-data{cursor:pointer!important;display:block;margin-bottom:28px}

/* team modal */
.modal-backdrop.show{opacity:.7;background:var(--ink)}
.modal-content{border:0;border-radius:0;background:var(--paper);padding:12px}
.modal-header{border:0}
.modal .close{font-weight:300;font-size:32px}

/* ---------- Contact ---------- */
#section-index-gmap{background:var(--paper)}
#section-index-gmap .row:last-child{align-items:stretch}
.i-gmap-con{height:100%;min-height:420px}
.i-gmap-con iframe{width:100%;height:100%;min-height:420px;border:0;filter:grayscale(.85) contrast(1.05) sepia(.12);transition:filter .6s var(--ease)}
.i-gmap-con:hover iframe{filter:none}
.i-sidebar-list ul{list-style:none;margin:0;padding:0 0 0 clamp(0px,3vw,48px)}
.i-sidebar-list .list-heading{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--signal);margin-top:26px;text-transform:uppercase}
.i-sidebar-list .list-heading:first-child{margin-top:0}
.i-sidebar-list .list-contact-item{font-family:var(--serif);font-size:clamp(20px,2vw,26px);line-height:1.3;
  padding-bottom:22px;border-bottom:1px solid var(--stone);margin-top:6px;color:var(--text)}
.i-sidebar-list .list-contact-item a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.i-sidebar-list .list-contact-item a:hover{background-size:100% 1px}

#section-index-gmap{padding-bottom:32px}

/* ---------- Footer ---------- */
#footer-wrapper{background:var(--ink)!important;color:var(--on-ink-muted);padding:56px 0 48px!important}
#footer-wrapper p{margin:0;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
#footer-wrapper .container{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
#footer-wrapper .row,#footer-wrapper .col-lg-12{display:contents}
#footer-wrapper a{color:var(--on-ink);text-decoration:none;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
#footer-wrapper a:hover{color:var(--signal)}

/* ---------- Reveal (replaces ScrollReveal's abrupt fades) ---------- */
.fb-reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0)*70ms)}
.fb-reveal.fb-in{opacity:1;transform:none}
.sr-i-box{visibility:visible!important}

/* ---------- Responsive ---------- */
#mainnav-wrapper>.container{padding-left:var(--gutter)!important;padding-right:var(--gutter)!important}
@media (max-width:767px){
  .i-c-caption{align-items:flex-start;padding-top:26%}
  .i-c-caption h1{font-size:clamp(52px,17vw,96px)!important}
  #carousel-wrapper::before{background:linear-gradient(0deg,rgba(11,26,17,.92) 0%,rgba(11,26,17,.55) 45%,rgba(11,26,17,.25) 100%)}
  .fb-hero-lede{display:none}
  .fb-hero-actions .fb-btn{padding:14px 20px!important}
  .fb-hero-overlay .inner{flex-direction:column;align-items:flex-start;gap:22px}
  .carousel-indicators{display:none}
  #section-index-client .row .col-md-3{width:50%;float:left}
  .i-clent-con{aspect-ratio:4/3}
  .i-serv-con img{aspect-ratio:4/3}
  .i-sidebar-list ul{padding:36px 0 0}
  .btn-team-data{width:100%}
  #section-index-team .col-md-3{flex:0 0 50%;max-width:50%}
}

/* ---------- Motion safety ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .fb-reveal{opacity:1;transform:none}
  .i-c-caption h1{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* Petty Cash app link: kept in the menu, visually secondary to the main nav */
.fb-staff-link a.nav-link{color:var(--muted)!important}
.fb-staff-link a.nav-link:hover{color:var(--text)!important}

/* FIX: dropdown text was dark-on-dark. The generic "#navbar-nav-wrapper a" rule (id specificity)
   was beating ".fb-sub a". Match its specificity and go one step higher. */
#navbar-nav-wrapper #menu-main-menu .fb-sub a.nav-link{color:var(--on-ink)!important}
#navbar-nav-wrapper #menu-main-menu .fb-sub a.nav-link:hover{color:#fff!important;background:rgba(237,235,227,.06)!important}
@media (max-width:991px){
  #navbar-nav-wrapper #menu-main-menu .fb-sub a.nav-link{color:var(--text)!important}
}
