
:root{
  --tt-dark:        #727071;
  --tt-dark-2:      #2f2116;
  --tt-dark-soft:   #3a2a1c;
  --tt-cream:       #f7f2e7;
  --tt-cream-2:     #efe8d8;
  --tt-white:       #ffffff;
  --tt-orange:      #ed8230;
  --tt-orange-dark: #b8631f;
  --tt-green:       #566b3e;
  --tt-green-dark:  #445530;
  --tt-text:        #2c241c;
  --tt-text-muted:  #766a5c;
  --tt-border:      #e5dcc7;

  --tt-font-display: "Roboto Slab", serif;
  --tt-font-body: "Jost", "Helvetica Neue", Arial, sans-serif;

  --tt-radius: .5rem;
  --tt-radius-lg: 1rem;
  --tt-shadow: 0 .75rem 2rem rgba(36,26,18,.10);
  --tt-shadow-sm: 0 .25rem .75rem rgba(36,26,18,.08);
}

/* =========================================================
   Base
   ========================================================= */
html{ scroll-behavior:smooth; }
body{
  font-family: var(--tt-font-body);
  color: var(--tt-text);
  background: var(--tt-cream);
  font-size: 1.2rem;
  line-height: 1.75;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5,h6{
  font-family: var(--tt-font-display);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--tt-dark);
  line-height: 1.15;
}
p{ color: var(--tt-text-muted); }
a{ color: var(--tt-orange); text-decoration:none; transition:.2s ease; }
a:hover{ color: var(--tt-orange-dark); }
::selection{ background: var(--tt-orange); color:#fff; }

.section{ padding: 3.5rem 0; position:relative; }
.section-sm{ padding: 3.5rem 0; }
@media (max-width: 767.98px){
  .section{ padding: 3.5rem 0; }
}
.bg-cream{ background: var(--tt-cream); }
.bg-cream-2{ background: var(--tt-cream-2); }
.bg-dark-brand{ background: var(--tt-dark); }
.bg-dark-brand-2{ background: var(--tt-dark-2); }
.text-orange{ color: var(--tt-orange) !important; }
.text-green{ color: var(--tt-green) !important; }

.container-narrow{ max-width: 780px; }

/* =========================================================
   Section headings
   ========================================================= */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family: var(--tt-font-body);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:.78rem;
  color: var(--tt-orange);
  margin-bottom: .75rem;
}
.eyebrow::before{
  content:"";
  width:28px; height:2px;
  background: var(--tt-orange);
  display:inline-block;
}
.section-title{
  font-size: clamp(1.9rem, 3.2vw, 2.75rem);
  margin-bottom: .5rem;
  position:relative;
}
.section-title--underline{
  padding-bottom: 1.1rem;
}
.section-title--underline::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:70px; height:10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 70 10'%3E%3Cpath d='M1 7c6-8 12 6 18-2s12 6 18-2 12 6 18-2 12 6 18-2' fill='none' stroke='%23d97a34' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left center;
}
.text-center.section-title--underline::after,
.section-title--underline.mx-auto::after{
  left:50%; transform:translateX(-50%);
}
.section-sub{
  color: var(--tt-text-muted);
  max-width:720px;
}
.text-center .section-sub{ margin-left:auto; margin-right:auto; }

/* =========================================================
   Buttons
   ========================================================= */
.btn{ font-family: var(--tt-font-body); font-weight:600; letter-spacing:.02em; }
.btn-brand{
  background: var(--tt-orange);
  border: 1px solid var(--tt-orange);
  color:#fff;
  border-radius: 50rem;
  padding: .75rem 1.75rem;
  box-shadow: 0 .5rem 1.25rem rgba(217,122,52,.35);
}
.btn-brand:hover, .btn-brand:focus{
  background: var(--tt-orange-dark);
  border-color: var(--tt-orange-dark);
  color:#fff;
}
.btn-outline-brand{
  background: transparent;
  border: 1px solid rgba(255,255,255,.5);
  color:#fff;
  border-radius: 50rem;
  padding: .75rem 1.75rem;
}
.btn-outline-brand:hover{
  background: #fff;
  color: var(--tt-dark);
  border-color:#fff;
}
.btn-dark-outline{
  background: transparent;
  border: 1px solid var(--tt-dark);
  color: var(--tt-dark);
  border-radius: 50rem;
  padding: .7rem 1.6rem;
}
.btn-dark-outline:hover{ background: var(--tt-dark); color:#fff; }
.btn-sm-pill{ border-radius: 50rem; padding:.4rem 1rem; font-size:1rem; }

/* =========================================================
   PRO badge
   ========================================================= */
.badge-pro{
  display:inline-block;
  font-family: var(--tt-font-body);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color:#fff;
  background: linear-gradient(135deg, var(--tt-orange), var(--tt-orange-dark));
  border-radius: 4px;
  padding: .12rem .38rem;
  vertical-align: middle;
  line-height: 1.4;
  margin-left: .35rem;
}

/* =========================================================
   Topbar + Navbar
   ========================================================= */
.topbar{
  background: var(--tt-dark);
  color: rgba(255,255,255,.75);
  font-size: 1rem;
  padding: .5rem 0;
}
.topbar a{ color: rgba(255,255,255,.75); }
.topbar a:hover{ color:#fff; }
.topbar .divider{ opacity:.25; margin: 0 .85rem; }
.topbar .social-links a{
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.25);
  margin-left:.4rem;
  font-size:.75rem;
}
.topbar .social-links a:hover{ background: var(--tt-orange); border-color: var(--tt-orange); color:#fff; }

.site-navbar{
  padding: 1rem 0;
  background: transparent;
  transition: all .3s ease;
  position: relative;
  z-index: 1030;
  background: rgba(114,112,113,0.3);
}
.site-navbar.is-sticky{
  position: fixed;
  top:0; left:0; right:0;
  background: rgba(114,112,113,1);
  box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.18);
  padding: .65rem 0;
  animation: ttSlideDown .35s ease;
}
@keyframes ttSlideDown{ from{ transform:translateY(-100%);} to{ transform:translateY(0);} }


.navbar-brand.tt-logo .tt-logo-mark{
  width:40px; height:40px;
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--tt-orange);
  border-radius: 50%;
  color:#fff;
}
.navbar-brand.tt-logo span{ color: var(--tt-orange); }

.site-navbar .navbar-nav .nav-link{
  color: rgba(255,255,255,.88);
  font-weight: 600;
  
  font-size: 1.2rem;
  
  padding: .5rem 0.6rem !important;
  position: relative;
}
.site-navbar .navbar-nav .nav-link:hover,
.site-navbar .navbar-nav .nav-link.active{ color: var(--tt-orange); }
.site-navbar .navbar-nav .nav-item.disabled-page .nav-link{ opacity:.75; }

.dropdown-menu-tt{
  background: var(--tt-dark-2);
  border: 0;
  border-radius: var(--tt-radius);
  padding: .6rem;
  margin-top: .5rem !important;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.35);
  min-width: 230px;
}
.dropdown-menu-tt .dropdown-item{
  color: rgba(255,255,255,.82);
  font-size: .85rem;
  font-weight:500;
  border-radius: .4rem;
  padding: .55rem .75rem;
  display:flex; align-items:center; justify-content:space-between;
}
.dropdown-menu-tt .dropdown-item:hover,
.dropdown-menu-tt .dropdown-item:focus{
  background: rgba(217,122,52,.15);
  color:#fff;
}

.navbar-toggler.tt-toggler{
  border:0; padding:.25rem;
  color:#fff;
}
.navbar-toggler.tt-toggler:focus{ box-shadow:none; }

/* Navbar sits over hero on home page */
.navbar-overlay{
  position: relative;
}
/* Pull the hero/page-banner up underneath the transparent navbar instead of
   absolutely positioning the navbar itself (which would overlap the topbar
   above it). Keeps topbar -> navbar -> hero in normal document flow. */
.navbar-overlay + .hero,
.navbar-overlay + .page-banner{
  margin-top: -5rem;
}

/* =========================================================
   Hero (home)
   ========================================================= */
.hero{
  position:relative;
  min-height: 92vh;
  display:flex;
  align-items:center;
  color:#fff;
  overflow:hidden;
}
.hero-slide{
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  opacity:0;
  transition: opacity 1.1s ease;
}
.hero-slide.active{ opacity:1; }
.hero-slide::after{
  content:"";
  position:absolute; inset:0;
  /*background: linear-gradient(180deg, rgba(24,17,11,.25) 0%, rgba(24,17,11,.35) 45%, rgba(24,17,11,.45) 100%);*/
}
.hero .container{ position:relative; z-index:2; }
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  backdrop-filter: blur(4px);
  border-radius: 50rem;
  padding: .4rem 1rem;
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:1.5rem;
}
.hero h1{
  font-size: clamp(2.1rem, 5vw, 4rem);
  color:#fff;
  margin-bottom: 1.25rem;
  text-shadow: 0 .25rem 1rem rgba(0,0,0,.25);
}
.hero h1 span{ color: var(--tt-orange); }
.hero p.lead{
  max-width: 720px;
  margin: 0 auto 2rem;
  color: rgba(255,255,255,.85);
  font-size: 1.5rem;
}
.hero-arrows{
  position:absolute;
  bottom: 2.5rem; right: 2.5rem;
  z-index:5;
  display:flex; gap:.6rem;
}
.hero-arrows button{
  width:46px;height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background: rgba(255,255,255,.08);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.hero-arrows button:hover{ background: var(--tt-orange); border-color: var(--tt-orange); }
.hero-scroll{
  position:absolute; left:50%; bottom:1.75rem; transform:translateX(-50%);
  z-index:5; color:rgba(255,255,255,.75); font-size:1.5rem;
  animation: ttBounce 2s infinite;
}
@keyframes ttBounce{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,10px);} }

/* =========================================================
   Page banner (inner pages)
   ========================================================= */
.page-banner{
  position: relative;
  padding: 9.5rem 0 5.5rem;
  color:#fff;
  background-size: cover;
  background-position: center;
  overflow:hidden;
}
.page-banner::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(24,17,11,.72), rgba(24,17,11,.86));
}
.page-banner .container{ position:relative; z-index:2; }
.page-banner h1{ color:#fff; font-size: clamp(2.1rem, 4vw, 3.25rem); margin-bottom:.75rem;}
.breadcrumb-tt{
  display:flex; gap:.5rem; list-style:none; padding:0; margin:0;
  font-size:.85rem; text-transform:uppercase; letter-spacing:.05em; font-weight:600;
}
.breadcrumb-tt li:not(:last-child)::after{ content:"/"; margin-left:.5rem; color: rgba(255,255,255,.4); }
.breadcrumb-tt a{ color: rgba(255,255,255,.7); }
.breadcrumb-tt li:last-child{ color: var(--tt-orange); }

/* =========================================================
   Wave divider
   ========================================================= */
.wave-divider{ position:relative; height:70px; width:100%; overflow:hidden; line-height:0; }
.wave-divider svg{ width: 100%; height:100%; display:block; }
.wave-divider--top{ margin-bottom:-1px; }
.wave-divider--bottom{ margin-top:-1px; transform: rotate(180deg); }

/* =========================================================
   Feature strip (3 col over image)
   ========================================================= */
.feature-strip{
  position:relative;
  background: linear-gradient(rgba(36,25,16,.62), rgba(36,25,16,.62)), url("../images/slide2.jpg") center/cover no-repeat;
  color:#fff;
  margin-top: -20px;
}
.feature-strip .feature-col{
  padding: 3rem 2rem;
  text-align:center;
  border-left: 1px solid rgba(255,255,255,.12);
  height:100%;
}
.feature-strip .col-lg-4:first-child .feature-col{ border-left:0; }
.feature-strip .feature-icon{
  width:64px;height:64px;
  margin:0 auto 1.25rem;
  border-radius:50%;
  background: rgba(217,122,52,.18);
  color: var(--tt-orange);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
}
.feature-strip h3{ color:#fff; font-size:1.5rem; margin-bottom:.75rem; }
.feature-strip p{ color: rgba(255,255,255,.65); font-size:1.1rem; margin-bottom:0; }

/* =========================================================
   Cards: services
   ========================================================= */
.service-card{
  background:#fff;
  border-radius: var(--tt-radius-lg);
  overflow:hidden;
  box-shadow: var(--tt-shadow-sm);
  transition: transform .35s ease, box-shadow .35s ease;
  height:100%;
  border: 1px solid var(--tt-border);
}
.service-card:hover{ transform: translateY(-8px); box-shadow: var(--tt-shadow); }
.service-card .service-img{
  position:relative; height:210px; overflow:hidden;
}
.service-card .service-img img{
  width:100%; height:100%; object-fit:cover; transition: transform .5s ease;
}
.service-card:hover .service-img img{ transform: scale(1.08); }
.service-card .service-num{
  position:absolute; top:1rem; left:1rem;
  background: rgba(255,255,255,.9);
  color: var(--tt-orange);
  font-family: var(--tt-font-display);
  width:42px;height:42px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.service-card .service-body{ padding: 1.5rem 1.5rem 1.75rem; }
.service-card h3{ font-size: 1.15rem; margin-bottom:.65rem; }
.service-card p{ font-size:.92rem; margin-bottom:1rem; }
.service-card .service-link{
  font-weight:700; font-size:.82rem; text-transform:uppercase; letter-spacing:.04em;
  display:inline-flex; align-items:center; gap:.4rem;
}
.service-card .service-link:hover{ gap:.6rem; }

.icon-tile{
  width:52px;height:52px;
  border-radius: .65rem;
  background: rgba(86,107,62,.1);
  color: var(--tt-green);
  display:flex; align-items:center; justify-content:center;
  font-size: 1.4rem;
}

/* =========================================================
   Video / working team section
   ========================================================= */
.video-box{
  position: relative;
  border-radius: var(--tt-radius-lg);
  overflow: hidden;
  box-shadow: var(--tt-shadow);
  max-width: 900px;
  margin: 0 auto;
}
.video-box img{ width:100%; display:block; }
.video-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:84px;height:84px;
  border-radius:50%;
  background: rgba(255,255,255,.92);
  color: var(--tt-orange);
  display:flex; align-items:center; justify-content:center;
  font-size:1.6rem;
  box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.3);
}
.video-play::before{
  content:"";
  position:absolute; inset:-14px;
  border-radius:50%;
  border: 2px solid rgba(255,255,255,.6);
  animation: ttPulse 2.2s infinite;
}
@keyframes ttPulse{ 0%{ transform:scale(.85); opacity:1;} 100%{ transform:scale(1.3); opacity:0;} }

/* =========================================================
   Gallery
   ========================================================= */
.gallery-item{
  position:relative;
  border-radius: var(--tt-radius);
  overflow:hidden;
  height: 260px;
}
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img{ transform: scale(1.1); }
.gallery-item .gallery-overlay{
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(24,17,11,.85), rgba(24,17,11,0) 60%);
  display:flex; align-items:flex-end;
  padding: 1.25rem;
  opacity:0; transition:.3s ease;
  pointer-events:none;
}
.gallery-item:hover .gallery-overlay{ opacity:1; }
.gallery-overlay h5{ color:#fff; font-size:1rem; margin-bottom:0; }
.gallery-overlay span{ color: var(--tt-orange); font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.gallery-zoom{
  position:absolute; top:1rem; right:1rem;
  width:38px;height:38px;
  border-radius:50%;
  background: rgba(255,255,255,.9);
  color: var(--tt-dark);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:.3s ease;
}
.gallery-item:hover .gallery-zoom{ opacity:1; }

/* Lightbox modal: dark overlay + prev/next navigation */
.modal-backdrop.show{ opacity:.92; }
.lightbox-stage{ position:relative; }
.lightbox-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:46px; height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background: rgba(255,255,255,.08);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  z-index:2;
}
.lightbox-nav:hover{ background: var(--tt-orange); border-color: var(--tt-orange); }
.lightbox-prev{ left:-1rem; }
.lightbox-next{ right:-1rem; }
.lightbox-count{
  text-align:center;
  color: rgba(255,255,255,.75);
  font-size:.8rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-top:.85rem;
}
@media (max-width:575.98px){
  .lightbox-prev{ left:.25rem; }
  .lightbox-next{ right:.25rem; }
}

/* =========================================================
   Testimonials (dark section)
   ========================================================= */
.testimonial-section{ background: var(--tt-cream); color: rgba(255,255,255,.85); }
.testimonial-card{
  background: var(--tt-dark-2);
  border-radius: var(--tt-radius-lg);
  padding: 2rem;
  height:100%;
  border: 1px solid rgba(255,255,255,.06);
}
.testimonial-card .stars{ color: var(--tt-orange); letter-spacing:.15rem; margin-bottom:1rem; font-size:.9rem; }
.testimonial-card p{ color: rgba(255,255,255,.75); font-size:1.3rem; }
/*.testimonial-author{ display:flex; align-items:center; gap:.85rem; margin-top:1.25rem; }*/
.avatar-initial{
  width:46px;height:46px;
  border-radius:50%;
  background: var(--tt-orange);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700;
  font-family: var(--tt-font-body);
  flex-shrink:0;
}
.avatar-initial.lg{ width:74px; height:74px; font-size:1.4rem; }
.testimonial-author strong{ color:#fff; display:block; font-size:1.6rem; }
.testimonial-author span{ font-size:.78rem; color: rgba(255,255,255,.5); }

/* =========================================================
   Quote form
   ========================================================= */
.quote-form-card{
  background:#fff;
  border-radius: var(--tt-radius-lg);
  box-shadow: var(--tt-shadow);
  padding: 2.5rem;
  border: 1px solid var(--tt-border);
}
.form-control-tt, .form-select-tt{
  border: 1px solid var(--tt-border);
  border-radius: .6rem;
  padding: .8rem 1rem;
  background: var(--tt-cream);
  font-size:.92rem;
}
.form-control-tt:focus, .form-select-tt:focus{
  border-color: var(--tt-orange);
  box-shadow: 0 0 0 .2rem rgba(217,122,52,.15);
  background:#fff;
}
label.form-label-tt{
  font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; font-weight:600;
  color: var(--tt-dark); margin-bottom:.4rem;
}

/* =========================================================
   Blog cards
   ========================================================= */
.blog-card{
  background:#fff;
  border-radius: var(--tt-radius-lg);
  overflow:hidden;
  box-shadow: var(--tt-shadow-sm);
  height:100%;
  transition: transform .3s ease, box-shadow .3s ease;
  border: 1px solid var(--tt-border);
}
.blog-card:hover{ transform: translateY(-6px); box-shadow: var(--tt-shadow); }
.blog-card .blog-img{ height:210px; overflow:hidden; position:relative; }
.blog-card .blog-img img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.blog-card:hover .blog-img img{ transform: scale(1.08); }
.blog-card .blog-date{
  position:absolute; left:1rem; bottom:-1.1rem;
  background: var(--tt-orange);
  color:#fff;
  border-radius:.5rem;
  text-align:center;
  padding:.4rem .7rem;
  font-family: var(--tt-font-display);
  line-height:1.1;
  box-shadow: 0 .4rem 1rem rgba(0,0,0,.2);
}
.blog-card .blog-date small{ display:block; font-family: var(--tt-font-body); font-size:.6rem; text-transform:uppercase; }
.blog-card .blog-body{ padding: 1.75rem 1.5rem 1.5rem; }
.blog-card .blog-meta{ font-size:.78rem; color: var(--tt-text-muted); margin-bottom:.6rem; display:flex; gap:1rem; }
.blog-card h3{ font-size:1.1rem; margin-bottom:.75rem; }
.blog-card h3 a{ color: var(--tt-dark); }
.blog-card h3 a:hover{ color: var(--tt-orange); }

/* =========================================================
   Map / contact strip
   ========================================================= */
.map-section{ position:relative; }
.map-section img{ width:100%; display:block; filter: sepia(.15) saturate(1.1); }
.contact-strip{ background: var(--tt-dark-2); color:#fff; padding: 2.25rem 0; }
.contact-strip .item{ display:flex; align-items:center; gap:1rem; }
.contact-strip .icon-round{
  width:52px;height:52px; border-radius:50%;
  background: rgba(217,122,52,.18); color: var(--tt-orange);
  display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;
}
.contact-strip small{ text-transform:uppercase; letter-spacing:.06em; font-size:1rem; color: rgba(255,255,255,.5); }
.contact-strip strong{ display:block; font-size:1.2rem; color:#fff; }

/* =========================================================
   Footer
   ========================================================= */
.site-footer{ background: var(--tt-dark); color: rgba(255,255,255,.65); padding-top: 4.5rem; }
.site-footer h5{ color:#fff; font-size:1rem; margin-bottom:1.35rem; }
.site-footer .footer-logo{
  font-family: var(--tt-font-display);
  color:#fff; font-size:1.5rem;
  display:flex; align-items:center; gap:.5rem;
}
.site-footer .footer-logo span{ color: var(--tt-orange); }
.site-footer p{ color: rgba(255,255,255,.55); font-size:1.3rem; }
.footer-links{ list-style:none; padding:0; margin:0; }
.footer-links li{ margin-bottom:.7rem; }
.footer-links a{ color: rgba(255,255,255,.62); font-size:1.2rem; }
.footer-links a::before{ content:"\2192"; margin-right:.5rem; color: var(--tt-orange); }
.footer-links a:hover{ color: var(--tt-orange); }
.footer-social a{
  width:38px;height:38px; border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; margin-right:.5rem;
}
.footer-social a:hover{ background: var(--tt-orange); border-color: var(--tt-orange); }
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.08);
  margin-top: 3rem;
  padding: 1.5rem 0;
  font-size: .85rem;
}
.footer-bottom a{ color: var(--tt-orange); font-weight:400; }
.back-to-top{
  position:fixed; right:1.5rem; bottom:1.5rem; z-index:999;
  width:48px;height:48px; border-radius:50%;
  background: var(--tt-orange); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.25);
  opacity:0; visibility:hidden; transform: translateY(10px);
  transition:.3s ease;
}
.back-to-top.show{ opacity:1; visibility:visible; transform:none; }

/* =========================================================
   Misc: stats / counters / pricing / team / faq
   ========================================================= */
.stat-box{ text-align:center; }
.stat-box .num{
  font-family: var(--tt-font-display);
  font-size: clamp(2.25rem,4vw,3.25rem);
  color: var(--tt-orange);
  display:block;
}
.stat-box span.label{ text-transform:uppercase; letter-spacing:.05em; font-size:.78rem; font-weight:600; color: var(--tt-text-muted); }

.pricing-card{
  background:#fff; border-radius: var(--tt-radius-lg);
  border: 1px solid var(--tt-border);
  padding: 2.5rem 2rem; text-align:center; height:100%;
  transition:.3s ease; position:relative; overflow:hidden;
}
.pricing-card.featured{ background: var(--tt-dark); border-color: var(--tt-dark); transform: scale(1.04); box-shadow: var(--tt-shadow); }
.pricing-card.featured h3, .pricing-card.featured .price{ color:#fff; }
.pricing-card.featured p, .pricing-card.featured li{ color: rgba(255,255,255,.65); }
.pricing-card .ribbon{
  position:absolute; top:1.25rem; right:-2.75rem;
  background: var(--tt-orange); color:#fff;
  padding:.3rem 3rem; transform: rotate(45deg);
  font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700;
}
.pricing-card .price{
  font-family: var(--tt-font-display);
  font-size: 3rem; color: var(--tt-dark); margin: 1rem 0 .25rem;
}
.pricing-card .price sup{ font-size:1.1rem; top:-1.2rem; }
.pricing-card .price sub{ font-size:.85rem; font-family: var(--tt-font-body); color: var(--tt-text-muted); }
.pricing-card ul{ list-style:none; padding:0; margin: 1.5rem 0 2rem; text-align:left; }
.pricing-card ul li{ padding:.5rem 0; border-bottom: 1px dashed var(--tt-border); font-size:.9rem; }
.pricing-card.featured ul li{ border-color: rgba(255,255,255,.12); }
.pricing-card ul li i{ color: var(--tt-green); margin-right:.6rem; }
.pricing-card.featured ul li i{ color: var(--tt-orange); }

.team-card{
  background:#fff; border-radius: var(--tt-radius-lg);
  overflow:hidden; box-shadow: var(--tt-shadow-sm); text-align:center;
  border: 1px solid var(--tt-border);
}
.team-card .team-photo{
  height:180px; width:180px; border-radius:50%;
  margin: 2rem auto 0;
  background: linear-gradient(135deg, var(--tt-green), var(--tt-dark-2));
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-family: var(--tt-font-display); font-size:2.75rem;
}
.team-card .team-body{ padding: 1.5rem; }
.team-card h3{ font-size:1.05rem; margin-bottom:.15rem; }
.team-card .role{ color: var(--tt-orange); font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; font-weight:600; }
.team-card .team-social{ margin-top:1rem; }
.team-card .team-social a{
  width:34px;height:34px; border-radius:50%;
  border:1px solid var(--tt-border);
  display:inline-flex; align-items:center; justify-content:center;
  margin: 0 .2rem; color: var(--tt-dark); font-size:.85rem;
}
.team-card .team-social a:hover{ background: var(--tt-orange); border-color: var(--tt-orange); color:#fff; }

.accordion-tt .accordion-item{
  background: transparent;
  border: 0; border-bottom: 1px solid var(--tt-border);
  margin-bottom: .5rem;
}
.accordion-tt .accordion-button{
  background: transparent; box-shadow:none;
  font-family: var(--tt-font-display);
  text-transform: uppercase; letter-spacing:.02em;
  font-size: 1.05rem; color: var(--tt-dark);
  padding: 1.25rem 0;
}
.accordion-tt .accordion-button:not(.collapsed){ color: var(--tt-orange); }
.accordion-tt .accordion-button::after{ flex-shrink:0; }
.accordion-tt .accordion-body{ padding: 0 0 1.5rem; color: var(--tt-text-muted); }

/* Process steps */
.process-step{ text-align:center; position:relative; }
.process-step .step-num{
  width:70px;height:70px; border-radius:50%;
  background:#fff; border: 2px dashed var(--tt-orange);
  color: var(--tt-orange); font-family: var(--tt-font-display); font-size:1.5rem;
  display:flex; align-items:center; justify-content:center;
  margin: 0 auto 1.25rem;
}
.process-step h4{ font-size:1.05rem; }

/* Sidebar (blog) */
.widget{ background:#fff; border:1px solid var(--tt-border); border-radius: var(--tt-radius-lg); padding:1.75rem; margin-bottom:1.75rem; }
.widget h5{ margin-bottom:1.25rem; font-size:1.05rem; }
.widget .search-box{ position:relative; }
.widget .search-box input{ padding-right: 3rem; }
.widget .search-box button{ position:absolute; right:.4rem; top:50%; transform:translateY(-50%); background:none; border:0; color: var(--tt-orange); }
.widget .cat-list{ list-style:none; padding:0; margin:0; }
.widget .cat-list li{ border-bottom: 1px dashed var(--tt-border); padding:.6rem 0; display:flex; justify-content:space-between; font-size:.9rem; }
.widget .cat-list li:last-child{ border-bottom:0; }
.widget .cat-list a{ color: var(--tt-text); }
.widget .cat-list a:hover{ color: var(--tt-orange); }
.widget .tag-list a{
  display:inline-block; border:1px solid var(--tt-border); border-radius:50rem;
  padding:.3rem .9rem; font-size:.8rem; margin:0 .35rem .5rem 0; color: var(--tt-text);
}
.widget .tag-list a:hover{ background: var(--tt-orange); border-color: var(--tt-orange); color:#fff; }
.widget .recent-post{ display:flex; gap:.85rem; margin-bottom:1.1rem; }
.widget .recent-post img{ width:64px;height:64px;border-radius:.5rem;object-fit:cover; flex-shrink:0; }
.widget .recent-post h6{ font-size:.85rem; margin-bottom:.25rem; line-height:1.4; }
.widget .recent-post span{ font-size:.75rem; color: var(--tt-text-muted); }

/* Blog details content */
.post-content p{ margin-bottom:1.35rem; }
.post-content blockquote{
  border-left: 4px solid var(--tt-orange);
  background: var(--tt-cream-2);
  padding: 1.5rem 1.75rem; border-radius: 0 var(--tt-radius) var(--tt-radius) 0;
  font-style: italic; color: var(--tt-dark); margin: 1.75rem 0;
}
.post-tags a{
  display:inline-block; border:1px solid var(--tt-border); border-radius:50rem;
  padding:.3rem .9rem; font-size:.8rem; margin: 0 .35rem .35rem 0; color: var(--tt-text);
}

/* 404 page */
.error-page{ text-align:center; padding: 7rem 0; }
.error-page .big-num{
  font-family: var(--tt-font-display);
  font-size: clamp(6rem, 18vw, 11rem);
  color: var(--tt-orange);
  line-height:1;
}

/* Utility */
.rounded-tt{ border-radius: var(--tt-radius-lg) !important; }
.shadow-tt{ box-shadow: var(--tt-shadow) !important; }
.object-cover{ object-fit:cover; }

/* Reveal-on-scroll */
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* Preloader */
.tt-preloader{
  position:fixed; inset:0; z-index:9999;
  background: var(--tt-cream);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .4s ease, visibility .4s ease;
}
.tt-preloader.loaded{ opacity:0; visibility:hidden; }
.tt-preloader .spinner{
  width:52px;height:52px; border-radius:50%;
  border: 4px solid var(--tt-border);
  border-top-color: var(--tt-orange);
  animation: ttSpin 1s linear infinite;
}
@keyframes ttSpin{ to{ transform: rotate(360deg); } }


@media (min-width:1200px) and (max-width: 1399.98px) {
  .site-navbar .navbar-nav .nav-link {
    font-size: 16px;
  }

  .navbar-brand img {
    max-width: 220px;
    object-fit: contain;
    height: auto;
  }

  .navbar a.btn.btn-brand {
    font-size: 17px;
  }
}

@media only screen and (min-width:1200px) {
    .hamburger,
    .kebab-toggler,
    .social-menu {
        display: none;
    }
}
@media only screen and (max-width:1199.98px) {
    .hamburger {
        padding: 10px 15px;
        display: inline-block;
        cursor: pointer;
        transition-property: opacity, filter;
        transition-duration: .15s;
        transition-timing-function: linear;
        font: inherit;
        color: inherit;
        text-transform: none;
        background-color: transparent;
        border: 0;
        margin: 0;
        overflow: visible;
        position: absolute;
        top: 49%;
        right: 5px;
        z-index: 99999;
        transform: translateY(-50%);
        margin-top: 5px;
    }
    .hamburger-box {
        width: 32px;
        height: 21px;
        display: inline-block;
        position: relative;
    }
    .hamburger-inner {
        display: block;
        top: 50%;
        margin-top: -1.5px;
    }
    .hamburger-inner,
    .hamburger-inner::before,
    .hamburger-inner::after {
        width: 32px;
        height: 3px;
        background-color: #ed8230;
        border-radius: 4px;
        position: absolute;
        transition-property: transform;
        transition-duration: .15s;
        transition-timing-function: ease;
    }

    .hamburger--collapse .hamburger-inner::before {
      background-color: #fff;
    }
    .hamburger-inner::before,
    .hamburger-inner::after {
        content: "";
        display: block;
    }
    .hamburger-inner::before {
        top: -9px;
    }
    .hamburger-inner::after {
        bottom: -9px;
    }
    .hamburger--collapse .hamburger-inner {
        top: auto;
        bottom: 0;
        transition-duration: .13s;
        transition-delay: .13s;
        transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    .hamburger--collapse .hamburger-inner::after {
        top: -18px;
        transition: top .2s .2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), opacity .1s linear;
    }
    .hamburger--collapse .hamburger-inner::before {
        transition: top .12s .2s cubic-bezier(0.33333, 0.66667, 0.66667, 1), transform .13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    .hamburger--collapse.is-active .hamburger-inner {
        transform: translate3d(0, -9px, 0) rotate(-45deg);
        transition-delay: .22s;
        transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    .hamburger--collapse.is-active .hamburger-inner::after {
        top: 0;
        opacity: 0;
        transition: top .2s cubic-bezier(0.33333, 0, 0.66667, 0.33333), opacity .1s .22s linear;
    }
    .hamburger--collapse.is-active .hamburger-inner::before {
        top: 0;
        transform: rotate(-90deg);
        transition: top .1s .16s cubic-bezier(0.33333, 0, 0.66667, 0.33333), transform .13s .25s cubic-bezier(0.215, 0.61, 0.355, 1);        background-color: #ed8230;
        
    }
    .slide-out-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        width: 100%;
        height: 20px;
        padding: 30px 20px !important;
        background-color: rgb(114 112 113);
        z-index: 999;
        visibility: hidden;
        opacity: 0;
        border: 0;
        transform: translateY(100%) perspective(1px);
        transition: height .8s ease-in-out;
        border: 0;
        border-radius: 0;
        text-align: center;
        font-size: 18px;
        justify-content: unset !important;
    }
    .slide-out-nav.nav-open {
        height: calc(100% - 0px);
        opacity: 1;
        transform: translateY(0) perspective(1px);
        visibility: visible;
        opacity: 1;
        padding: 30px 20px !important;
    }
    .site-navbar .navbar-nav .nav-link,
    .sticky-top .navbar-nav .nav-link {
        font-size: 18px;
        padding: 10px 20px;
        color: #fff;
    }

    .navbar-brand {
      max-width: 235px;
    }

    .navbar-nav .nav-item {
      display: block;
    }

    .slide-out-nav a.btn.btn-brand {
      display: block;
        max-width: 133px;
        margin: 0 auto;
        text-align: center;
        margin-left: 0 !important;
        margin-right: 0 !important;
        position: relative;
        transform: translateX(-50%);
        left: 50%;
    } 
    .site-navbar .navbar .navbar-nav .nav-link:hover,
    ..site-navbar navbar .navbar-nav .nav-link.active {
        color: var(--bs-primary);
    }
    .slide-out-nav.fadeInDown {
        -webkit-animation-name: unset;
        animation-name: unset;
    }
     .navbar-nav .nav-link {
        padding: 10px 15px;
    }

    .slide-out-nav .navbar-nav {
      align-items: unset !important;
    width: 100%;
    min-width: 100%;
    position: relative;
    display: block;
    }
    body.nav-open {
        overflow: hidden;
        margin: 0;
        touch-action: none;
        -ms-touch-action: none;
        height: 100vh;
    }
    .dropdown-item {
        padding: 0.5rem 1rem;
    }

    .navbar{
        padding: 10px 0;
    }
    .sticky-top{
        position: relative;
        top: auto !important;
    }


    .mobile-show a {
      color: #ffffff;
      font-weight: 400;
      font-size: 16px;
    }

    .mobile-show .divider {
      opacity: .25;
    margin: 0 .85rem;
    }

    .cont-address i {
      color: #fff;
    }

    .cont-address {
      color: rgba(255,255,255,.55);
    }

    .mobile-brand .navbar-brand img {
      max-width: 235px;
      object-fit: contain;
      height: auto;
    }

    .cont-social .social-links a {
      display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .25);
    font-size: .75rem;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .slide-out-nav .navbar-nav {
      align-items: unset !important;
  }
  .navbar-expand-lg .navbar-collapse {
    display: block !important;
  }
}

@media only screen and (max-width:991.98px) {
    
}

@media only screen and (max-width:768.98px) {
    #mapid{
        height: 350px;
    }

}

@media (max-width: 767.98px) {
  .site-footer a.btn-brand {
    max-width: 133px;
    margin: 0 auto;
    text-align: center;
    margin-left: 0 !important;
    margin-right: 0 !important;
    position: relative;
    transform: translateX(0);
    left: 0;
  }
}

@media only screen and (max-width: 380px) {
   .navbar-brand {
    position: relative;
    max-width: 100%;
   }

   .navbar-brand img {
    position: relative;
    right: 30px;
   }
}


