/* =========================================================
   Five Star Plastics — design tokens & reset
   ========================================================= */
:root{
  --c-primary:#F5F3EE;
  --c-base:#FF9738;
  --c-ink:#04171A;
  --c-body:#5A6C70;
  --c-line:#E4E0D5;
  --c-white:#FFFFFF;
  --f-heading:'Syne', sans-serif;
  --f-body:'Manrope', sans-serif;
  --f-alt:'Roboto', sans-serif;
  --shadow-card:0 10px 40px rgba(4,23,26,.08);
  --shadow-btn:0 12px 30px rgba(255,151,56,.35);
  --ease-thm:cubic-bezier(.65,.05,.36,1);
  --container-max:1200px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--f-body);
  color:var(--c-body);
  background:var(--c-white);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit;}
input,textarea{font:inherit;}
h1,h2,h3,h4,h5,h6{font-family:var(--f-heading);color:var(--c-ink);margin:0;font-weight:700;}
p{margin:0;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);}
.skip-link{position:fixed;top:-100px;left:1rem;z-index:9999;background:var(--c-ink);color:#fff;padding:.75rem 1.25rem;border-radius:.5rem;transition:top .2s;}
.skip-link:focus{top:1rem;}

.container-thm{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:1rem;
}
@media(min-width:640px){.container-thm{padding-inline:1.5rem;}}
@media(min-width:1024px){.container-thm{padding-inline:15px;}}

.section{padding-block:5rem;}
@media(min-width:1024px){.section{padding-block:6rem;}}
.section--tight{padding-block:4rem;}
@media(min-width:1024px){.section--tight{padding-block:5rem;}}
.bg-primary{background:var(--c-primary);}
.bg-ink{background:var(--c-ink);}
.bg-white{background:var(--c-white);}

.section-tagline{
  display:inline-block;
  font-family:var(--f-heading);
  font-weight:700;
  font-size:.8125rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--c-base);
  margin-bottom:.75rem;
}
.section-title{
  font-size:1.75rem;
  line-height:1.15;
  margin-bottom:0;
}
@media(min-width:640px){.section-title{font-size:2.125rem;}}
@media(min-width:1024px){.section-title{font-size:2.5rem;}}
.text-balance{text-wrap:balance;}
.text-center{text-align:center;}

/* Buttons */
.btn,.btn-pill{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:9999px;
  background:var(--c-base);
  color:var(--c-ink);
  padding:1rem 2rem;
  font-family:var(--f-heading);
  font-size:.875rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  transition:transform .3s var(--ease-thm);
  white-space:nowrap;
}
.btn span{position:relative;z-index:1;}
.btn::before{
  content:"";
  position:absolute;inset:0;z-index:0;
  border-radius:9999px;
  background:var(--c-ink);
  transform-origin:left center;
  transform:scaleX(0);
  transition:transform .5s var(--ease-thm);
}
.btn:hover::before{transform:scaleX(1);}
.btn:hover{color:var(--c-primary);}
.btn:hover span{color:var(--c-primary);}
.btn:hover{box-shadow:var(--shadow-btn);}
.btn--outline{background:transparent;color:var(--c-ink);box-shadow:inset 0 0 0 1px rgba(4,23,26,.15);}
.btn-pill{padding:.5rem 1.25rem;font-size:.75rem;}
.btn-pill--outline{background:transparent;box-shadow:inset 0 0 0 1px rgba(4,23,26,.2);}
.btn-pill--outline:hover{background:var(--c-ink);color:#fff;}

.journey-num{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:9999px;background:var(--c-base);color:var(--c-ink);font-family:var(--f-heading);font-weight:700;margin-bottom:1rem;}
.icon-btn{
  display:flex;align-items:center;justify-content:center;
  width:2.5rem;height:2.5rem;border-radius:9999px;
  color:#fff;transition:background-color .2s;
}
.icon-btn:hover{background:rgba(255,255,255,.1);}
.icon-btn--fill{background:rgba(255,255,255,.1);}

/* =========================================================
   Reveal-on-scroll (JS toggles .is-visible)
   ========================================================= */
.fsp-anim [data-reveal]{opacity:0;transition:opacity .7s var(--ease-thm), transform .7s var(--ease-thm);}
.fsp-anim [data-reveal="up"]{transform:translateY(28px);}
.fsp-anim [data-reveal="down"]{transform:translateY(-28px);}
.fsp-anim [data-reveal="left"]{transform:translateX(-32px);}
.fsp-anim [data-reveal="right"]{transform:translateX(32px);}
.fsp-anim [data-reveal="zoom"]{transform:scale(.92);}
.fsp-anim [data-reveal="fade"]{transform:none;}
.fsp-anim [data-reveal].is-visible{opacity:1;transform:none;}
.fsp-anim [data-reveal-delay="1"]{transition-delay:.08s;}
.fsp-anim [data-reveal-delay="2"]{transition-delay:.16s;}
.fsp-anim [data-reveal-delay="3"]{transition-delay:.24s;}
.fsp-anim [data-reveal-delay="4"]{transition-delay:.32s;}
.fsp-anim [data-reveal-delay="5"]{transition-delay:.4s;}

/* =========================================================
   Header
   ========================================================= */
.site-header{position:fixed;inset-inline:0;top:0;z-index:50;}
.site-header__topbar{
  display:none;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:var(--c-ink);color:rgba(255,255,255,.8);
}
@media(min-width:1024px){.site-header__topbar{display:block;}}
.site-header__topbar-inner{display:flex;align-items:center;justify-content:space-between;padding-block:.625rem;font-size:.875rem;}
.site-header__topbar-phone{display:flex;align-items:center;gap:.5rem;color:var(--c-base);}
.site-header__topbar-phone strong{color:#fff;}
.site-header__topbar-actions{display:flex;align-items:center;gap:1.5rem;}
.site-header__catalogue{display:flex;align-items:center;gap:.5rem;}
.site-header__catalogue:hover{color:var(--c-base);}
.site-header__social{display:flex;align-items:center;gap:.75rem;}
.social-icon{color:#fff;opacity:.8;transition:opacity .2s,color .2s;}
.social-icon:hover{opacity:1;color:var(--c-base);}
.social-icon--circle{
  display:flex;align-items:center;justify-content:center;
  width:2.25rem;height:2.25rem;border-radius:9999px;
  border:1px solid rgba(255,255,255,.15);opacity:1;
}
.social-icon--circle:hover{border-color:var(--c-base);background:var(--c-base);color:var(--c-ink);}

.site-header__bar{
  backdrop-filter:blur(10px);
  background-color:rgba(4,23,26,0);
  transition:background-color .35s ease-out, box-shadow .35s ease-out;
}
@media(min-width:1024px){.site-header__bar{background-color:rgba(4,23,26,.25);}}
.site-header.is-scrolled .site-header__bar{
  background-color:rgba(4,23,26,.96);
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.site-header__bar-inner{display:flex;align-items:center;justify-content:space-between;height:84px;}
@media(min-width:1024px){.site-header__bar-inner{height:92px;}}

/* Logo */
.site-logo{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0;white-space:nowrap;margin-right:1.5rem;}
.site-logo__text{display:flex;flex-direction:column;line-height:1;}
.site-logo__line1{font-family:var(--f-heading);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.7);}
.site-logo__line2{font-family:var(--f-heading);font-weight:700;font-size:1.25rem;text-transform:uppercase;letter-spacing:-.01em;color:#fff;margin-top:-2px;}
.site-logo:not(.site-logo--light) .site-logo__line1{color:var(--c-body);}
.site-logo:not(.site-logo--light) .site-logo__line2{color:var(--c-ink);}
.site-logo__dot{width:.5rem;height:.5rem;border-radius:9999px;background:var(--c-base);flex-shrink:0;}

/* Desktop nav */
.site-nav{display:none;}
@media(min-width:1024px){
  .site-nav{display:block;}
  .site-nav > ul{display:flex;align-items:center;gap:.75rem;}
}
@media(min-width:1280px){.site-nav > ul{gap:1rem;}}
.site-nav__item{position:relative;}
.site-nav__link{
  display:flex;align-items:center;gap:.25rem;
  padding-block:2.25rem;
  font-family:var(--f-heading);font-weight:700;font-size:13px;
  text-transform:uppercase;letter-spacing:.02em;
  color:rgba(255,255,255,.9);white-space:nowrap;
  transition:color .2s;
}
@media(min-width:1280px){.site-nav__link{font-size:.875rem;}}
.site-nav__link:hover{color:var(--c-base);}
.site-nav__link .chev{transition:transform .2s;}
.site-nav__item:hover .chev{transform:rotate(180deg);}
.site-nav__dropdown{
  position:absolute;left:0;top:100%;z-index:40;
  width:16rem;padding-top:.75rem;
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s,transform .2s,visibility .2s;
}
.site-nav__item:hover .site-nav__dropdown{opacity:1;visibility:visible;transform:none;}
.site-nav__dropdown{
  background:#fff;border:1px solid var(--c-line);border-radius:.75rem;
  overflow:hidden;box-shadow:0 25px 50px -12px rgba(4,23,26,.15);
  padding-block:.5rem;
}
.site-nav__dropdown a{display:block;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--c-ink);transition:background-color .2s,color .2s;}
.site-nav__dropdown a:hover{background:var(--c-primary);color:var(--c-base);}

/* Mega menu */
.megamenu{
  position:absolute;left:50%;top:100%;z-index:40;
  width:min(760px,90vw);transform:translate(-50%,6px);
  padding-top:.75rem;opacity:0;visibility:hidden;
  transition:opacity .2s,transform .2s,visibility .2s;
}
.site-nav__item--megamenu:hover .megamenu{opacity:1;visibility:visible;transform:translate(-50%,0);}
.megamenu__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--c-line);
  background:#fff;border:1px solid var(--c-line);border-radius:1rem;overflow:hidden;
  box-shadow:0 25px 50px -12px rgba(4,23,26,.18);
}
.megamenu__card{display:flex;flex-direction:column;padding:1rem;transition:background-color .2s;}
.megamenu__card:hover{background:var(--c-primary);}
.megamenu__thumb{display:block;aspect-ratio:1/1;border-radius:.5rem;overflow:hidden;margin-bottom:.625rem;}
.megamenu__thumb img{width:100%;height:100%;object-fit:cover;}
.megamenu__title{font-family:var(--f-heading);font-weight:700;font-size:.8125rem;color:var(--c-ink);}

/* Header actions */
.site-header__actions{display:flex;align-items:center;gap:.5rem;}
@media(min-width:1280px){.site-header__actions{gap:.75rem;}}
.site-header__search-btn{display:none;}
@media(min-width:1024px){.site-header__search-btn{display:flex;}}
.site-header__quote-btn{display:none;}
@media(min-width:1280px){.site-header__quote-btn{display:inline-flex;padding:.75rem 1.25rem;}}
.site-header__burger{display:flex;}
@media(min-width:1024px){.site-header__burger{display:none;}}

/* =========================================================
   Mobile menu drawer
   ========================================================= */
.mobile-menu{position:fixed;inset:0;z-index:70;visibility:hidden;pointer-events:none;}
.mobile-menu.is-open{visibility:visible;pointer-events:auto;}
.mobile-menu__overlay{position:absolute;inset:0;background:rgba(4,23,26,.6);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s;}
.mobile-menu.is-open .mobile-menu__overlay{opacity:1;}
.mobile-menu__panel{
  position:absolute;inset-block:0;right:0;z-index:71;
  width:88%;max-width:24rem;overflow-y:auto;
  background:var(--c-ink);color:#fff;padding:1.5rem;
  transform:translateX(100%);transition:transform .45s var(--ease-thm);
}
@media(min-width:640px){.mobile-menu__panel{padding:1.5rem 2rem;}}
.mobile-menu.is-open .mobile-menu__panel{transform:none;}
.mobile-menu__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem;}
.mobile-menu__nav ul{display:flex;flex-direction:column;}
.mobile-menu__item{border-bottom:1px solid rgba(255,255,255,.1);padding-block:.75rem;}
.mobile-menu__row{display:flex;align-items:center;justify-content:space-between;}
.mobile-menu__row a{font-family:var(--f-heading);font-weight:700;font-size:1rem;text-transform:uppercase;letter-spacing:.02em;}
.mobile-menu__toggle{padding:.5rem;}
.mobile-menu__toggle svg{transition:transform .2s;}
.mobile-menu__item.is-open .mobile-menu__toggle svg{transform:rotate(180deg);}
.mobile-menu__sub{overflow:hidden;max-height:0;transition:max-height .3s var(--ease-thm);padding-left:.75rem;}
.mobile-menu__item.is-open .mobile-menu__sub{max-height:24rem;}
.mobile-menu__sub li{padding-block:.5rem;}
.mobile-menu__sub a{font-size:.875rem;color:rgba(255,255,255,.7);}
.mobile-menu__sub a:hover{color:var(--c-base);}
.mobile-menu__footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.75rem;font-size:.875rem;color:rgba(255,255,255,.7);}
.mobile-menu__footer a{display:flex;align-items:center;gap:.5rem;}
.mobile-menu__footer a:hover{color:var(--c-base);}
.mobile-menu__social{display:flex;align-items:center;gap:1rem;padding-top:.5rem;}

/* =========================================================
   Search popup
   ========================================================= */
.search-popup{
  position:fixed;inset:0;z-index:80;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(4,23,26,.97);
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;
}
.search-popup.is-open{opacity:1;visibility:visible;}
.search-popup__close{position:absolute;top:1.5rem;right:1.5rem;background:rgba(255,255,255,.1);}
.search-popup__form{display:flex;align-items:center;gap:1rem;width:min(700px,90vw);border-bottom:2px solid rgba(255,255,255,.2);padding-bottom:1rem;}
.search-popup__form input{flex:1;background:transparent;border:0;color:#fff;font-size:1.5rem;font-family:var(--f-heading);outline:none;}
.search-popup__form input::placeholder{color:rgba(255,255,255,.4);}
.search-popup__form button{color:#fff;}

/* =========================================================
   Cookie notice + scroll-to-top
   ========================================================= */
.cookie-notice{
  position:fixed;inset-inline:0;bottom:0;z-index:90;
  border-top:1px solid var(--c-line);background:rgba(255,255,255,.97);backdrop-filter:blur(8px);
  transform:translateY(100%);opacity:0;transition:transform .4s ease-out,opacity .4s ease-out;
}
.cookie-notice.is-visible{transform:none;opacity:1;}
.cookie-notice__inner{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;}
@media(min-width:640px){.cookie-notice__inner{flex-direction:row;}}
.cookie-notice__inner p{max-width:42rem;font-size:.875rem;text-align:center;}
@media(min-width:640px){.cookie-notice__inner p{text-align:left;}}
.cookie-notice__actions{display:flex;gap:.75rem;flex-shrink:0;}

.scroll-top-btn{
  position:fixed;right:1.5rem;bottom:1.5rem;z-index:60;
  width:2.75rem;height:2.75rem;border-radius:9999px;
  background:var(--c-base);color:var(--c-ink);
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-btn);
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .3s,transform .3s,visibility .3s;
}
.scroll-top-btn.is-visible{opacity:1;visibility:visible;transform:none;}

/* =========================================================
   Footer
   ========================================================= */
.site-footer{background:var(--c-ink);color:rgba(255,255,255,.7);}
.site-footer__grid{display:grid;grid-template-columns:1fr;gap:3rem;padding-block:4rem;}
@media(min-width:640px){.site-footer__grid{grid-template-columns:1fr 1fr;}}
@media(min-width:1024px){.site-footer__grid{grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:2.5rem;padding-block:5rem;}}
.site-footer__about{margin-top:1.25rem;font-size:.875rem;line-height:1.7;color:rgba(255,255,255,.6);}
.site-footer__social{display:flex;gap:.75rem;margin-top:1.5rem;}
.site-footer h4{color:#fff;font-size:1.125rem;margin-bottom:1.25rem;}
.site-footer__links{display:flex;flex-direction:column;gap:.75rem;font-size:.875rem;}
.site-footer__links a:hover{color:var(--c-base);}
.site-footer__contact{display:flex;flex-direction:column;gap:.75rem;font-size:.875rem;}
.site-footer__contact-item{display:flex;align-items:flex-start;gap:.75rem;}
.site-footer__contact-item svg{flex-shrink:0;color:var(--c-base);margin-top:2px;}
.site-footer__contact-item a:hover{color:var(--c-base);}
.site-footer__newsletter-copy{font-size:.875rem;color:rgba(255,255,255,.6);margin-bottom:1rem;}
.site-footer__newsletter{display:flex;align-items:center;gap:.5rem;}
.site-footer__newsletter input{
  width:100%;border-radius:9999px;border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05);padding:.625rem 1rem;color:#fff;font-size:.875rem;
}
.site-footer__newsletter input::placeholder{color:rgba(255,255,255,.4);}
.site-footer__newsletter button{
  flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:9999px;background:var(--c-base);color:var(--c-ink);
  display:flex;align-items:center;justify-content:center;transition:transform .2s;
}
.site-footer__newsletter button:hover{transform:scale(1.05);}
.site-footer__newsletter-msg{margin-top:.5rem;font-size:.75rem;color:var(--c-base);}
.site-footer__terms{margin-top:1rem;display:flex;align-items:flex-start;gap:.5rem;font-size:.75rem;color:rgba(255,255,255,.5);}
.site-footer__bottom{border-top:1px solid rgba(255,255,255,.1);}
.site-footer__bottom .container-thm{padding-block:1.5rem;text-align:center;font-size:.75rem;color:rgba(255,255,255,.5);}

/* =========================================================
   Page header (inner pages)
   ========================================================= */
.page-header{position:relative;overflow:hidden;background:var(--c-ink);padding-block:4rem 4rem;padding-top:200px;}
@media(min-width:1024px){.page-header{padding-top:230px;padding-bottom:5rem;}}
.page-header__blur{position:absolute;width:18rem;height:18rem;border-radius:9999px;background:rgba(255,151,56,.1);filter:blur(64px);pointer-events:none;}
.page-header__blur--tr{right:-6rem;top:-6rem;}
.page-header__blur--bl{left:-4rem;bottom:0;}
.page-header__inner{position:relative;text-align:center;}
.page-header h1{font-size:2.25rem;color:#fff;}
@media(min-width:640px){.page-header h1{font-size:2.875rem;}}
@media(min-width:1024px){.page-header h1{font-size:3.375rem;}}
.page-header__crumb{margin-top:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.875rem;font-weight:500;color:rgba(255,255,255,.6);}
.page-header__crumb a:hover{color:var(--c-base);}
.page-header__crumb span{color:var(--c-base);}

/* =========================================================
   Grid/card system shared across sections
   ========================================================= */
.grid-2{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;}
@media(min-width:1024px){.grid-2{grid-template-columns:1fr 1fr;}}
.media-box{position:relative;overflow:hidden;border-radius:1rem;}
.media-box img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-thm);}
.ratio-4-3{aspect-ratio:4/3;}
.ratio-3-4{aspect-ratio:3/4;}
.ratio-1-1{aspect-ratio:1/1;}
.ratio-21-9{aspect-ratio:21/9;}

.card{background:#fff;border-radius:1rem;box-shadow:var(--shadow-card);padding:1.75rem;}
.card:hover .media-box img{transform:scale(1.08);}

/* Tags/benefit pills */
.pill{display:inline-flex;align-items:center;border-radius:9999px;background:var(--c-primary);padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;color:var(--c-ink);box-shadow:inset 0 0 0 1px var(--c-line);}

/* =========================================================
   Hero
   ========================================================= */
.hero{position:relative;height:640px;width:100%;overflow:hidden;background:var(--c-ink);}
@media(min-width:640px){.hero{height:720px;}}
@media(min-width:1024px){.hero{height:860px;}}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease;}
.hero__slide.is-active{opacity:1;z-index:1;}
.hero__bg{position:absolute;inset:0;overflow:hidden;}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 7s linear;}
.hero__slide.is-active .hero__bg img{transform:scale(1.12);}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(to top,var(--c-ink),rgba(4,23,26,.6) 55%,rgba(4,23,26,.3));}
.hero__overlay2{position:absolute;inset:0;background:rgba(4,23,26,.25);}
.hero__content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;height:100%;padding-top:4rem;text-align:left;}
.hero__tagline{
  display:inline-block;margin-bottom:1rem;font-family:var(--f-heading);font-weight:700;font-size:.875rem;
  text-transform:uppercase;letter-spacing:.2em;color:var(--c-base);
  opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s;
}
.hero__heading{
  max-width:48rem;font-size:2.375rem;font-weight:700;line-height:1.1;color:#fff;
  opacity:0;transform:translateY(40px);transition:opacity .7s,transform .7s;transition-delay:.1s;
}
@media(min-width:640px){.hero__heading{font-size:3.375rem;}}
@media(min-width:1024px){.hero__heading{font-size:4.25rem;}}
.hero__cta{margin-top:2.5rem;opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s;transition-delay:.2s;}
.hero__slide.is-active .hero__tagline,
.hero__slide.is-active .hero__heading,
.hero__slide.is-active .hero__cta{opacity:1;transform:none;}
.hero__nav{position:absolute;left:0;right:0;bottom:2rem;z-index:3;display:flex;justify-content:center;gap:.75rem;}
.hero__dot{width:2.5rem;height:3px;border-radius:9999px;background:rgba(255,255,255,.3);overflow:hidden;position:relative;}
.hero__dot span{position:absolute;inset:0;background:var(--c-base);transform-origin:left;transform:scaleX(0);}
.hero__dot.is-active span{animation:hero-progress 6s linear forwards;}
@keyframes hero-progress{from{transform:scaleX(0);}to{transform:scaleX(1);}}

/* =========================================================
   Logo marquee
   ========================================================= */
.logo-marquee{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);}
.logo-marquee__track{display:flex;width:max-content;animation:marquee 32s linear infinite;}
.logo-marquee:hover .logo-marquee__track{animation-play-state:paused;}
.logo-marquee__item{flex-shrink:0;padding-inline:2.5rem;font-family:var(--f-heading);font-weight:700;font-size:1.125rem;color:var(--c-body);opacity:.6;white-space:nowrap;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* =========================================================
   Accordion (FAQ)
   ========================================================= */
.accordion__item{border-bottom:1px solid var(--c-line);}
.accordion__question{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding-block:1.25rem;text-align:left;font-family:var(--f-heading);font-weight:700;font-size:1rem;color:var(--c-ink);
}
.accordion__question svg{flex-shrink:0;transition:transform .3s var(--ease-thm);color:var(--c-base);}
.accordion__item.is-open .accordion__question svg{transform:rotate(45deg);}
.accordion__answer{max-height:0;overflow:hidden;transition:max-height .35s var(--ease-thm);}
.accordion__answer-inner{padding-bottom:1.25rem;font-size:.9375rem;line-height:1.7;}

/* =========================================================
   Gallery + lightbox
   ========================================================= */
.gallery__grid{columns:2;gap:1rem;}
@media(min-width:640px){.gallery__grid{columns:3;}}
@media(min-width:1024px){.gallery__grid{columns:4;}}
.gallery__item{margin-bottom:1rem;break-inside:avoid;}
.gallery__btn{position:relative;display:block;width:100%;overflow:hidden;border-radius:.75rem;}
.gallery__btn img{transition:transform .7s var(--ease-thm);}
.gallery__btn:hover img{transform:scale(1.1);}
.gallery__hover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(4,23,26,0);opacity:0;transition:all .3s;color:#fff;}
.gallery__btn:hover .gallery__hover{background:rgba(4,23,26,.4);opacity:1;}
.lightbox{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;background:rgba(4,23,26,.9);padding:1.5rem;backdrop-filter:blur(6px);}
.lightbox.is-open{display:flex;}
.lightbox__close{position:absolute;right:1.5rem;top:1.5rem;background:rgba(255,255,255,.1);color:#fff;}
.lightbox__frame{position:relative;width:100%;max-width:48rem;height:70vh;}
.lightbox__frame img{width:100%;height:100%;object-fit:contain;}

/* =========================================================
   Testimonials
   ========================================================= */
.testimonials{position:relative;}
.testimonials__track{display:flex;transition:transform .5s var(--ease-thm);}
.testimonials__slide{flex:0 0 100%;padding:.5rem;}
@media(min-width:768px){.testimonials__slide{flex:0 0 50%;}}
@media(min-width:1024px){.testimonials__slide{flex:0 0 33.3333%;}}
.testimonial-card{height:100%;background:#fff;border:1px solid var(--c-line);border-radius:1rem;padding:2rem;box-shadow:var(--shadow-card);}
.testimonial-card__stars{color:var(--c-base);margin-bottom:1rem;display:flex;gap:2px;}
.testimonial-card p{font-size:.9375rem;line-height:1.7;margin-bottom:1.5rem;color:var(--c-body);}
.testimonial-card__author{display:flex;align-items:center;gap:.75rem;}
.testimonial-card__avatar{width:2.75rem;height:2.75rem;border-radius:9999px;background:var(--c-base);color:var(--c-ink);display:flex;align-items:center;justify-content:center;font-family:var(--f-heading);font-weight:700;}
.testimonials__nav{display:flex;justify-content:center;gap:.75rem;margin-top:2rem;}
.testimonials__nav button{width:.625rem;height:.625rem;border-radius:9999px;background:var(--c-line);transition:background-color .2s,width .2s;}
.testimonials__nav button.is-active{background:var(--c-base);width:1.75rem;}

/* =========================================================
   Utility layout helpers used across page templates
   ========================================================= */
.stack{display:flex;flex-direction:column;}
.gap-3{gap:.75rem;}
.gap-4{gap:1rem;}
.gap-6{gap:1.5rem;}
.grid-3{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media(min-width:640px){.grid-3{grid-template-columns:repeat(3,1fr);}}
.grid-4{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
@media(min-width:1024px){.grid-4{grid-template-columns:repeat(4,1fr);}}
.grid-6{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
@media(min-width:640px){.grid-6{grid-template-columns:repeat(3,1fr);}}
@media(min-width:1024px){.grid-6{grid-template-columns:repeat(6,1fr);}}

/* Gutenberg's flow-layout block-gap emulation adds margin-block to non-first
   children; that fights the grid gap above and misaligns rows, so reset it. */
.grid-2 > *,.grid-3 > *,.grid-4 > *,.grid-6 > *{margin-block:0;}

.badge-icon{display:flex;flex-direction:column;align-items:center;gap:.75rem;border-radius:1rem;background:#fff;padding:1.75rem;text-align:center;box-shadow:var(--shadow-card);}
.badge-icon svg{color:var(--c-base);}
.badge-icon span{font-family:var(--f-heading);font-weight:700;font-size:.875rem;color:var(--c-ink);}

.feature-card{position:relative;border-radius:1rem;overflow:hidden;height:22rem;}
.feature-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-thm);}
.feature-card:hover img{transform:scale(1.1);}
.feature-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,23,26,.92),rgba(4,23,26,.3) 60%,transparent);}
.feature-card__body{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;color:#fff;}
.feature-card__body h3{color:#fff;font-size:1.125rem;margin-bottom:.5rem;}
.feature-card__body p{color:rgba(255,255,255,.7);font-size:.875rem;}

.category-card{position:relative;border-radius:1rem;overflow:hidden;aspect-ratio:4/3;}
.category-card .wp-block-post-featured-image{position:absolute;inset:0;}
.category-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-thm);}
.category-card:hover img{transform:scale(1.08);}
.category-card__label{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1.25rem;background:linear-gradient(to top,rgba(4,23,26,.85),transparent 60%);pointer-events:none;}
.category-card__label span,.category-card__label p,.category-card__label a{font-family:var(--f-heading);font-weight:700;color:#fff;margin:0;}
.category-card__label a{pointer-events:auto;}

/* CTA banner */
.cta-banner{position:relative;overflow:hidden;padding-block:5rem;}
.cta-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cta-banner__overlay{position:absolute;inset:0;background:rgba(4,23,26,.75);}
.cta-banner__inner{position:relative;max-width:40rem;margin-inline:auto;text-align:center;}
.cta-banner__inner h2{color:#fff;font-size:1.875rem;}
@media(min-width:640px){.cta-banner__inner h2{font-size:2.5rem;}}
.cta-banner__inner p{color:rgba(255,255,255,.7);margin-top:1.5rem;max-width:36rem;margin-inline:auto;}
.cta-banner__inner .btn{margin-top:2.25rem;}

/* Post grid / cards */
.fsp-post-grid{display:grid;grid-template-columns:1fr;gap:2rem;}
@media(min-width:640px){.fsp-post-grid{grid-template-columns:1fr 1fr;}}
.post-card{border-radius:1rem;overflow:hidden;background:#fff;box-shadow:var(--shadow-card);}
.post-card__thumb{display:block;aspect-ratio:4/3;overflow:hidden;}
.post-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-thm);}
.post-card:hover .post-card__thumb img{transform:scale(1.08);}
.post-card__body{padding:1.5rem;}
.post-card__meta{display:flex;gap:.5rem;font-size:.75rem;color:var(--c-body);margin-bottom:.75rem;}
.post-card__title{font-size:1.125rem;margin-bottom:.75rem;}
.post-card__title a:hover{color:var(--c-base);}
.post-card__excerpt{font-size:.875rem;margin-bottom:1rem;}
.post-card__link{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--f-heading);font-weight:700;font-size:.8125rem;text-transform:uppercase;color:var(--c-base);}

/* Services sidebar / banner */
.services-layout{display:grid;grid-template-columns:1fr;gap:2rem;}
@media(min-width:1024px){.services-layout{grid-template-columns:300px 1fr;}}
.services-sidebar{background:var(--c-primary);border-radius:1rem;padding:1.5rem;align-self:start;}
.services-sidebar h3{font-size:1.125rem;margin-bottom:1rem;}
.services-sidebar ul{display:flex;flex-direction:column;gap:.5rem;}
.services-sidebar a{display:block;padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:600;color:var(--c-ink);transition:background-color .2s,color .2s;}
.services-sidebar a:hover,.services-sidebar a.is-active{background:var(--c-base);color:var(--c-ink);}
.services-banner{position:relative;border-radius:1rem;overflow:hidden;margin-top:1.5rem;min-height:16rem;display:flex;align-items:flex-end;}
.services-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.services-banner__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(4,23,26,.9),rgba(4,23,26,.3));}
.services-banner__body{position:relative;padding:1.75rem;color:#fff;}
.services-banner__body h4{color:#fff;font-size:1.25rem;margin-bottom:1rem;}

/* Contact */
.contact-layout{display:grid;grid-template-columns:1fr;gap:3.5rem;}
@media(min-width:1024px){.contact-layout{grid-template-columns:380px 1fr;}}
.contact-info-card{border-radius:1rem;border:1px solid var(--c-line);background:rgba(245,243,238,.5);padding:1.5rem;margin-bottom:1.5rem;}
.contact-info-card__icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:9999px;background:var(--c-base);color:var(--c-ink);margin-bottom:1rem;}
.contact-info-card h3{font-size:1rem;margin-bottom:.5rem;}
.contact-info-card p{font-size:.875rem;line-height:1.7;}
.contact-form-wrap{border-radius:1rem;border:1px solid var(--c-line);background:rgba(245,243,238,.4);padding:1.75rem;}
@media(min-width:640px){.contact-form-wrap{padding:2.5rem;}}
.contact-form-wrap h2{font-size:1.75rem;margin-bottom:.5rem;}
@media(min-width:640px){.contact-form-wrap h2{font-size:2.125rem;}}
.form-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:640px){.form-grid{grid-template-columns:1fr 1fr;}}
.form-field{display:flex;flex-direction:column;}
.form-field.span-2{grid-column:1/-1;}
.form-field label{margin-bottom:.375rem;font-size:.875rem;font-weight:600;color:var(--c-ink);}
.form-field input,.form-field textarea,.form-field select{
  width:100%;border-radius:.75rem;border:1px solid var(--c-line);background:#fff;
  padding:.75rem 1rem;font-size:.875rem;font-family:var(--f-body);color:var(--c-ink);
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--c-base);}
.form-subjects{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:.75rem;}
@media(min-width:640px){.form-subjects{grid-template-columns:1fr 1fr;}}
.form-subjects label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;}
.form-msg{margin-top:1rem;padding:1rem;border-radius:.75rem;background:rgba(255,151,56,.15);color:var(--c-ink);display:flex;align-items:center;gap:.75rem;}

/* Misc */
.map-embed{border-radius:1rem;overflow:hidden;border:1px solid var(--c-line);}
.map-embed iframe{width:100%;height:380px;border:0;display:block;}
.mb-6{margin-bottom:1.5rem;}
.mb-8{margin-bottom:2rem;}
.mb-12{margin-bottom:3rem;}
.mb-14{margin-bottom:3.5rem;}
.mt-8{margin-top:2rem;}
.mx-auto{margin-inline:auto;}
.max-w-2xl{max-width:42rem;}
.max-w-3xl{max-width:48rem;}
