:root{
  --df-bg:#0a0e13;
  --df-bg-2:#101821;
  --df-bg-3:#16212c;
  --df-bg-4:#1d2a37;
  --df-line:rgba(255,255,255,.12);
  --df-line-strong:rgba(255,255,255,.24);
  --df-text:#f2f6fa;
  --df-text-soft:#c6d2dd;
  --df-accent:#14c2ad;
  --df-accent-strong:#0d9a8b;
  --df-amber:#ffb020;
  --df-danger:#ff7a7a;
  --df-radius:20px;
  --df-radius-sm:12px;
  --df-radius-pill:999px;
  --df-shadow-sm:0 10px 24px rgba(0,0,0,.3);
  --df-shadow:0 24px 52px rgba(0,0,0,.48);
  --df-container:1200px;
  --df-font:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --df-font-display:"Trebuchet MS","Segoe UI",Roboto,sans-serif;
  --df-header-h:84px;
  --df-ease:cubic-bezier(.22,.61,.36,1);
}

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--df-bg);
  color:var(--df-text);
  font-family:var(--df-font);
  font-size:17px;
  line-height:1.7;
  overflow-x:hidden;
}

body.df-no-scroll{
  overflow:hidden;
}

::selection{
  background:var(--df-accent);
  color:#04140f;
}

img{
  max-width:100%;
  height:auto;
  display:block;
}

a{
  color:var(--df-accent);
  text-decoration:none;
  transition:color .25s var(--df-ease),opacity .25s var(--df-ease);
}

a:hover,
a:focus{
  color:#7ff0e1;
}

:focus-visible{
  outline:3px solid var(--df-amber);
  outline-offset:3px;
  border-radius:6px;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--df-font-display);
  color:var(--df-text);
  font-weight:800;
  letter-spacing:-.02em;
  line-height:1.15;
  margin:0 0 .6em;
}

h1{font-size:clamp(2.1rem,5vw,3.6rem);}
h2{font-size:clamp(1.7rem,3.6vw,2.6rem);}
h3{font-size:clamp(1.25rem,2.2vw,1.6rem);}
h4{font-size:1.15rem;}

p{margin:0 0 1.1rem;}

main{
  display:block;
  padding-top:var(--df-header-h);
}

.df-section{
  position:relative;
  padding:clamp(56px,8vw,110px) 0;
  background:var(--df-bg);
}

.df-section--alt{background:var(--df-bg-2);}
.df-section--deep{background:var(--df-bg-3);}

.df-section--photo{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:var(--df-text);
}

.df-section--light{
  background:#f4f7fa;
  color:#0d141b;
}

.df-section--light h1,
.df-section--light h2,
.df-section--light h3,
.df-section--light h4,
.df-section--light h5{
  color:#0d141b;
}

.df-section--light p,
.df-section--light li{
  color:#2b3a48;
}

.df-section--light a{
  color:#0a7c70;
}

.df-section--light a:hover{
  color:#075a52;
}

.df-container{
  width:100%;
  max-width:var(--df-container);
  margin:0 auto;
  padding:0 20px;
  position:relative;
  z-index:2;
}

.df-container--narrow{
  max-width:860px;
}

.df-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--df-accent);
  margin-bottom:18px;
}

.df-eyebrow i{
  font-size:.85rem;
}

.df-section--light .df-eyebrow{
  color:#0a7c70;
}

.df-title{margin-bottom:20px;}
.df-title--center{text-align:center;}

.df-lead{
  font-size:1.06rem;
  color:var(--df-text-soft);
  max-width:70ch;
  margin-bottom:1.4rem;
}

.df-section--light .df-lead{color:#3a4a58;}

.df-divider{
  width:78px;
  height:4px;
  border-radius:4px;
  background:linear-gradient(90deg,var(--df-accent),var(--df-amber));
  margin:0 0 26px;
}

.df-divider--center{margin-left:auto;margin-right:auto;}

.df-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:15px 30px;
  border-radius:var(--df-radius-pill);
  border:2px solid transparent;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .25s var(--df-ease),background-color .25s var(--df-ease),color .25s var(--df-ease),border-color .25s var(--df-ease),box-shadow .25s var(--df-ease);
  background:transparent;
  line-height:1;
  text-align:center;
}

.df-btn i{
  font-size:.95rem;
}

.df-btn--primary{
  background:var(--df-accent);
  color:#04140f;
  box-shadow:0 14px 30px rgba(20,194,173,.32);
}

.df-btn--primary:hover,
.df-btn--primary:focus{
  background:#3fdfcb;
  color:#04140f;
  transform:translateY(-3px);
}

.df-btn--ghost{
  border-color:var(--df-line-strong);
  color:var(--df-text);
}

.df-btn--ghost:hover,
.df-btn--ghost:focus{
  border-color:var(--df-accent);
  color:var(--df-accent);
  transform:translateY(-3px);
}

.df-btn--amber{
  background:var(--df-amber);
  color:#22160a;
}

.df-btn--amber:hover,
.df-btn--amber:focus{
  background:#ffc752;
  color:#22160a;
  transform:translateY(-3px);
}

.df-btn--sm{
  padding:11px 20px;
  font-size:.8rem;
}

.df-btn--block{
  width:100%;
}

.df-btn--light-outline{
  border-color:rgba(13,20,27,.25);
  color:#0d141b;
}

.df-btn--light-outline:hover,
.df-btn--light-outline:focus{
  border-color:#0a7c70;
  color:#0a7c70;
}

.df-btn.is-loading{
  opacity:.65;
  pointer-events:none;
}

.df-btn.is-loading::after{
  content:"";
  width:16px;
  height:16px;
  border-radius:50%;
  border:2px solid currentColor;
  border-top-color:transparent;
  animation:df-spin .7s linear infinite;
}

@keyframes df-spin{
  to{transform:rotate(360deg);}
}

.df-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1040;
  background:rgba(10,14,19,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--df-line);
  transition:background-color .3s var(--df-ease),box-shadow .3s var(--df-ease),padding .3s var(--df-ease);
}

.df-header.is-stuck{
  background:rgba(8,12,17,.96);
  box-shadow:0 14px 34px rgba(0,0,0,.45);
}

.df-header__top{
  border-bottom:1px solid var(--df-line);
  font-size:.82rem;
  color:var(--df-text-soft);
}

.df-header__top-inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px 26px;
  min-height:38px;
  padding:6px 0;
}

.df-header__meta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--df-text-soft);
  white-space:nowrap;
}

.df-header__meta i{
  color:var(--df-accent);
}

.df-header__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  min-height:66px;
}

.df-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--df-font-display);
  font-weight:800;
  font-size:1.32rem;
  letter-spacing:.02em;
  color:var(--df-text);
  text-transform:uppercase;
}

.df-brand:hover{
  color:var(--df-text);
}

.df-brand img{
  height:40px;
  width:auto;
}

.df-nav{
  display:flex;
  align-items:center;
  gap:4px;
  list-style:none;
  margin:0;
  padding:0;
}

.df-nav__link{
  display:inline-block;
  padding:10px 14px;
  border-radius:var(--df-radius-pill);
  color:var(--df-text-soft);
  font-size:.9rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.df-nav__link:hover,
.df-nav__link:focus,
.df-nav__link.is-active{
  color:var(--df-text);
  background:rgba(255,255,255,.08);
}

.df-nav__toggle{
  display:none;
  width:48px;
  height:48px;
  border-radius:14px;
  border:1px solid var(--df-line-strong);
  background:transparent;
  color:var(--df-text);
  font-size:1.2rem;
  cursor:pointer;
}

.df-hero{
  position:relative;
  min-height:min(88vh,780px);
  display:flex;
  align-items:center;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  padding:120px 0 90px;
  overflow:hidden;
}

.df-hero--compact{
  min-height:min(58vh,520px);
  padding:110px 0 70px;
}

.df-hero__inner{
  position:relative;
  z-index:3;
  max-width:760px;
}

.df-hero__title{
  font-size:clamp(2.3rem,5.6vw,4.1rem);
  text-transform:uppercase;
  letter-spacing:-.03em;
}

.df-hero__text{
  font-size:1.1rem;
  color:#dde6ef;
  max-width:62ch;
}

.df-hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:28px;
}

.df-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px 26px;
  margin-top:34px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.22);
}

.df-hero__badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:.88rem;
  font-weight:600;
  color:#e3ecf4;
  letter-spacing:.02em;
}

.df-hero__badge i{
  color:var(--df-accent);
  font-size:1.05rem;
}

.df-hero__scroll{
  position:absolute;
  left:50%;
  bottom:26px;
  transform:translateX(-50%);
  z-index:3;
  color:#dfe8f1;
  font-size:1.3rem;
  animation:df-bounce 2.2s infinite;
}

@keyframes df-bounce{
  0%,100%{transform:translate(-50%,0);}
  50%{transform:translate(-50%,12px);}
}

.df-slider{
  position:relative;
  overflow:hidden;
  border-radius:var(--df-radius);
  box-shadow:var(--df-shadow);
  background:var(--df-bg-3);
}

.df-slider__track{
  position:relative;
  min-height:360px;
}

.df-slider__slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .7s var(--df-ease);
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
}

.df-slider__slide.is-active{
  opacity:1;
  visibility:visible;
  position:relative;
}

.df-slider__caption{
  width:100%;
  padding:34px 32px;
  background:linear-gradient(0deg,rgba(6,10,14,.92),rgba(6,10,14,.1));
}

.df-slider__caption h3{
  margin-bottom:8px;
  text-transform:uppercase;
}

.df-slider__caption p{
  color:#d8e2ec;
  margin:0;
  max-width:60ch;
  font-size:.98rem;
}

.df-slider__nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:4;
  width:50px;
  height:50px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(6,10,14,.55);
  color:#fff;
  font-size:1rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition:background-color .25s var(--df-ease),transform .25s var(--df-ease);
}

.df-slider__nav:hover{
  background:var(--df-accent);
  color:#04140f;
  transform:translateY(-50%) scale(1.06);
}

.df-slider__nav--prev{left:18px;}
.df-slider__nav--next{right:18px;}

.df-slider__dots{
  position:absolute;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:4;
  display:flex;
  gap:10px;
}

.df-slider__dot{
  width:11px;
  height:11px;
  border-radius:50%;
  border:0;
  background:rgba(255,255,255,.45);
  cursor:pointer;
  padding:0;
  transition:background-color .25s var(--df-ease),transform .25s var(--df-ease);
}

.df-slider__dot.is-active{
  background:var(--df-accent);
  transform:scale(1.25);
}

.df-grid{
  display:grid;
  gap:24px;
}

.df-grid--2{grid-template-columns:repeat(2,1fr);}
.df-grid--3{grid-template-columns:repeat(3,1fr);}
.df-grid--4{grid-template-columns:repeat(4,1fr);}

.df-card{
  position:relative;
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  border-radius:var(--df-radius);
  padding:32px 28px;
  height:100%;
  transition:transform .3s var(--df-ease),border-color .3s var(--df-ease),box-shadow .3s var(--df-ease);
}

.df-card:hover{
  transform:translateY(-6px);
  border-color:rgba(20,194,173,.55);
  box-shadow:var(--df-shadow-sm);
}

.df-card--plain{
  background:transparent;
  border:0;
  padding:0;
}

.df-card--plain:hover{
  transform:none;
  box-shadow:none;
}

.df-card__icon{
  width:62px;
  height:62px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.5rem;
  color:#04140f;
  background:linear-gradient(140deg,var(--df-accent),#7ff0e1);
  margin-bottom:20px;
}

.df-card__icon--amber{
  background:linear-gradient(140deg,var(--df-amber),#ffd88a);
  color:#22160a;
}

.df-card p:last-child{
  margin-bottom:0;
  color:var(--df-text-soft);
}

.df-service-card{
  position:relative;
  border-radius:var(--df-radius);
  overflow:hidden;
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  display:flex;
  flex-direction:column;
  height:100%;
  transition:transform .35s var(--df-ease),border-color .35s var(--df-ease);
}

.df-service-card:hover{
  transform:translateY(-8px);
  border-color:rgba(20,194,173,.55);
}

.df-service-card__media{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:linear-gradient(140deg,var(--df-bg-4),var(--df-bg-2));
}

.df-service-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s var(--df-ease);
}

.df-service-card:hover .df-service-card__media img{
  transform:scale(1.06);
}

.df-service-card__tag{
  position:absolute;
  top:16px;
  left:16px;
  padding:7px 14px;
  border-radius:var(--df-radius-pill);
  background:rgba(6,10,14,.78);
  color:var(--df-accent);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.df-service-card__body{
  padding:26px 24px 28px;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.df-service-card__body h3{
  margin-bottom:10px;
}

.df-service-card__body p{
  color:var(--df-text-soft);
  font-size:.96rem;
  flex:1 1 auto;
}

.df-service-card__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding-top:18px;
  margin-top:auto;
  border-top:1px solid var(--df-line);
}

.df-service-card__price{
  font-family:var(--df-font-display);
  font-weight:800;
  font-size:1.22rem;
  color:var(--df-amber);
}

.df-link-arrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:700;
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.df-link-arrow i{
  transition:transform .25s var(--df-ease);
}

.df-link-arrow:hover i{
  transform:translateX(5px);
}

.df-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.df-stat{
  text-align:center;
  padding:26px 18px;
  border-radius:var(--df-radius);
  border:1px solid var(--df-line);
  background:rgba(255,255,255,.03);
}

.df-stat__value{
  display:block;
  font-family:var(--df-font-display);
  font-size:clamp(2rem,4vw,2.9rem);
  font-weight:800;
  color:var(--df-accent);
  line-height:1;
  margin-bottom:10px;
}

.df-stat__label{
  display:block;
  font-size:.82rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--df-text-soft);
}

.df-section--light .df-stat{
  background:#fff;
  border-color:rgba(13,20,27,.1);
}

.df-section--light .df-stat__label{color:#4b5b69;}
.df-section--light .df-stat__value{color:#0a7c70;}

.df-steps{
  display:grid;
  gap:22px;
  counter-reset:df-step;
}

.df-step{
  position:relative;
  display:flex;
  gap:22px;
  padding:26px 26px 26px 30px;
  border-radius:var(--df-radius);
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  transition:border-color .3s var(--df-ease),transform .3s var(--df-ease);
}

.df-step:hover{
  border-color:rgba(20,194,173,.5);
  transform:translateX(6px);
}

.df-step__num{
  flex:0 0 auto;
  width:52px;
  height:52px;
  border-radius:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--df-font-display);
  font-weight:800;
  font-size:1.25rem;
  background:linear-gradient(140deg,var(--df-accent),#63e2d2);
  color:#04140f;
}

.df-step__body h3{
  margin-bottom:8px;
  font-size:1.12rem;
}

.df-step__body p{
  margin:0;
  color:var(--df-text-soft);
  font-size:.96rem;
}

.df-price-card{
  position:relative;
  height:100%;
  padding:34px 28px;
  border-radius:var(--df-radius);
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  display:flex;
  flex-direction:column;
  transition:transform .3s var(--df-ease),border-color .3s var(--df-ease);
}

.df-price-card:hover{
  transform:translateY(-6px);
  border-color:rgba(20,194,173,.55);
}

.df-price-card--featured{
  border-color:var(--df-accent);
  background:linear-gradient(160deg,var(--df-bg-4),var(--df-bg-2));
  box-shadow:var(--df-shadow);
}

.df-price-card__flag{
  position:absolute;
  top:-14px;
  left:28px;
  padding:6px 16px;
  border-radius:var(--df-radius-pill);
  background:var(--df-amber);
  color:#22160a;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.df-price-card__name{
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--df-text-soft);
  margin-bottom:14px;
}

.df-price-card__amount{
  font-family:var(--df-font-display);
  font-size:clamp(2.1rem,4vw,2.8rem);
  font-weight:800;
  color:var(--df-text);
  line-height:1;
  margin-bottom:6px;
}

.df-price-card__amount span{
  font-size:1rem;
  font-weight:600;
  color:var(--df-text-soft);
  margin-left:6px;
}

.df-price-card__note{
  font-size:.88rem;
  color:var(--df-text-soft);
  margin-bottom:20px;
}

.df-list{
  list-style:none;
  margin:0 0 26px;
  padding:0;
}

.df-list li{
  position:relative;
  padding-left:30px;
  margin-bottom:12px;
  color:var(--df-text-soft);
  font-size:.96rem;
}

.df-list li::before{
  content:"\f00c";
  font-family:"Font Awesome 6 Free";
  font-weight:900;
  position:absolute;
  left:0;
  top:2px;
  color:var(--df-accent);
  font-size:.85rem;
}

.df-list--muted li::before{
  content:"\f068";
  color:var(--df-amber);
}

.df-price-card .df-btn{
  margin-top:auto;
}

.df-gallery{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}

.df-gallery__item{
  position:relative;
  border-radius:var(--df-radius-sm);
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--df-bg-4);
}

.df-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s var(--df-ease);
}

.df-gallery__item:hover img{
  transform:scale(1.08);
}

.df-gallery__caption{
  position:absolute;
  inset:auto 0 0 0;
  padding:18px 18px 16px;
  background:linear-gradient(0deg,rgba(4,8,12,.92),rgba(4,8,12,0));
  font-size:.9rem;
  font-weight:600;
  color:#eaf1f8;
}

.df-review{
  height:100%;
  padding:30px 26px;
  border-radius:var(--df-radius);
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  display:flex;
  flex-direction:column;
}

.df-review__stars{
  color:var(--df-amber);
  letter-spacing:3px;
  margin-bottom:16px;
  font-size:.95rem;
}

.df-review__text{
  color:var(--df-text-soft);
  font-style:italic;
  flex:1 1 auto;
}

.df-review__author{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--df-line);
}

.df-review__avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  overflow:hidden;
  flex:0 0 auto;
  background:var(--df-bg-4);
}

.df-review__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.df-review__name{
  display:block;
  font-weight:700;
  font-size:.95rem;
}

.df-review__role{
  display:block;
  font-size:.82rem;
  color:var(--df-text-soft);
}

.df-partners{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:22px 46px;
}

.df-partners__item{
  filter:grayscale(1);
  opacity:.62;
  transition:filter .3s var(--df-ease),opacity .3s var(--df-ease);
  max-width:150px;
}

.df-partners__item:hover{
  filter:grayscale(0);
  opacity:1;
}

.df-accordion{
  border-radius:var(--df-radius);
  overflow:hidden;
  border:1px solid var(--df-line);
  background:var(--df-bg-3);
}

.df-accordion .accordion-item{
  background:transparent;
  border:0;
  border-bottom:1px solid var(--df-line);
}

.df-accordion .accordion-item:last-child{
  border-bottom:0;
}

.df-accordion .accordion-button{
  background:transparent;
  color:var(--df-text);
  font-family:var(--df-font-display);
  font-weight:700;
  font-size:1.06rem;
  padding:22px 24px;
  box-shadow:none;
}

.df-accordion .accordion-button:not(.collapsed){
  color:var(--df-accent);
  background:rgba(20,194,173,.07);
}

.df-accordion .accordion-button::after{
  filter:invert(1) brightness(2);
}

.df-accordion .accordion-button:focus{
  box-shadow:none;
  border-color:transparent;
}

.df-accordion .accordion-body{
  color:var(--df-text-soft);
  padding:0 24px 24px;
  font-size:.96rem;
}

.df-map{
  position:relative;
  border-radius:var(--df-radius);
  overflow:hidden;
  border:1px solid var(--df-line);
  box-shadow:var(--df-shadow-sm);
  line-height:0;
}

.df-map iframe{
  width:100%;
  height:440px;
  border:0;
  display:block;
}

.df-form{
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  border-radius:var(--df-radius);
  padding:34px 30px;
}

.df-form--light{
  background:#fff;
  border-color:rgba(13,20,27,.1);
}

.df-form__label{
  display:block;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--df-text-soft);
  margin-bottom:8px;
}

.df-form--light .df-form__label{
  color:#43535f;
}

.df-form__control{
  width:100%;
  padding:14px 16px;
  border-radius:var(--df-radius-sm);
  border:1px solid var(--df-line-strong);
  background:rgba(255,255,255,.05);
  color:var(--df-text);
  font-size:.98rem;
  font-family:var(--df-font);
  transition:border-color .25s var(--df-ease),background-color .25s var(--df-ease);
}

.df-form__control::placeholder{
  color:#93a2b0;
}

.df-form__control:focus{
  outline:none;
  border-color:var(--df-accent);
  background:rgba(255,255,255,.09);
}

.df-form--light .df-form__control{
  background:#f7fafc;
  border-color:rgba(13,20,27,.18);
  color:#0d141b;
}

.df-form--light .df-form__control:focus{
  border-color:#0a7c70;
  background:#fff;
}

.df-form__check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:.88rem;
  color:var(--df-text-soft);
}

.df-form__check input{
  margin-top:5px;
  width:18px;
  height:18px;
  accent-color:var(--df-accent);
}

.df-form__hint{
  font-size:.82rem;
  color:var(--df-text-soft);
}

.df-form--light .df-form__hint{
  color:#4b5b69;
}

.was-validated .df-form__control:invalid{
  border-color:var(--df-danger);
}

.df-newsletter{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.df-newsletter .df-form__control{
  flex:1 1 260px;
}

.df-notice-host{
  position:relative;
}

.df-toast{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1090;
  display:flex;
  align-items:center;
  gap:14px;
  max-width:360px;
  padding:18px 22px;
  border-radius:var(--df-radius-sm);
  background:#13202b;
  border:1px solid var(--df-accent);
  color:#eaf4f2;
  font-size:.94rem;
  box-shadow:var(--df-shadow);
  transform:translateY(24px);
  opacity:0;
  transition:transform .35s var(--df-ease),opacity .35s var(--df-ease);
}

.df-toast.is-visible{
  transform:translateY(0);
  opacity:1;
}

.df-toast i{
  color:var(--df-accent);
  font-size:1.25rem;
}

.df-toast--error{
  border-color:var(--df-danger);
}

.df-toast--error i{
  color:var(--df-danger);
}

.df-cta{
  position:relative;
  background-size:cover;
  background-position:center;
  border-radius:var(--df-radius);
  padding:clamp(38px,6vw,68px);
  overflow:hidden;
}

.df-cta__inner{
  position:relative;
  z-index:2;
  max-width:640px;
}

.df-cta__actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:24px;
}

.df-feature-row{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:48px;
  align-items:center;
}

.df-feature-row--reverse .df-feature-row__media{
  order:2;
}

.df-feature-row__media{
  border-radius:var(--df-radius);
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--df-bg-4);
  box-shadow:var(--df-shadow);
}

.df-feature-row__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.df-tag-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:22px 0 0;
  padding:0;
  list-style:none;
}

.df-tag{
  padding:8px 16px;
  border-radius:var(--df-radius-pill);
  border:1px solid var(--df-line-strong);
  font-size:.82rem;
  font-weight:600;
  color:var(--df-text-soft);
}

.df-timeline{
  position:relative;
  margin:0;
  padding:0 0 0 34px;
  list-style:none;
}

.df-timeline::before{
  content:"";
  position:absolute;
  left:9px;
  top:8px;
  bottom:8px;
  width:2px;
  background:linear-gradient(180deg,var(--df-accent),rgba(20,194,173,0));
}

.df-timeline__item{
  position:relative;
  margin-bottom:32px;
}

.df-timeline__item::before{
  content:"";
  position:absolute;
  left:-33px;
  top:7px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:var(--df-bg);
  border:3px solid var(--df-accent);
}

.df-timeline__year{
  display:block;
  font-family:var(--df-font-display);
  font-weight:800;
  color:var(--df-amber);
  letter-spacing:.08em;
  margin-bottom:6px;
}

.df-timeline__item h3{
  font-size:1.1rem;
  margin-bottom:6px;
}

.df-timeline__item p{
  margin:0;
  color:var(--df-text-soft);
  font-size:.95rem;
}

.df-team{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.df-team__card{
  text-align:center;
  padding:26px 20px;
  border-radius:var(--df-radius);
  background:var(--df-bg-3);
  border:1px solid var(--df-line);
  transition:transform .3s var(--df-ease),border-color .3s var(--df-ease);
}

.df-team__card:hover{
  transform:translateY(-6px);
  border-color:rgba(20,194,173,.5);
}

.df-team__photo{
  width:112px;
  height:112px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 18px;
  background:var(--df-bg-4);
  border:3px solid rgba(20,194,173,.45);
}

.df-team__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.df-team__card h3{
  font-size:1.05rem;
  margin-bottom:4px;
}

.df-team__role{
  display:block;
  font-size:.82rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--df-accent);
}

.df-footer{
  background:#060a0e;
  border-top:1px solid var(--df-line);
  padding:70px 0 0;
  color:var(--df-text-soft);
}

.df-footer h3,
.df-footer h4{
  color:var(--df-text);
  font-size:1rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:20px;
}

.df-footer__brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--df-font-display);
  font-weight:800;
  font-size:1.35rem;
  color:var(--df-text);
  text-transform:uppercase;
  margin-bottom:18px;
}

.df-footer__brand img{
  height:40px;
  width:auto;
}

.df-footer p{
  font-size:.94rem;
}

.df-footer__list{
  list-style:none;
  margin:0;
  padding:0;
}

.df-footer__list li{
  margin-bottom:11px;
  font-size:.94rem;
}

.df-footer__list a{
  color:var(--df-text-soft);
}

.df-footer__list a:hover,
.df-footer__list a:focus{
  color:var(--df-accent);
}

.df-footer__contact-item{
  display:flex;
  gap:12px;
  margin-bottom:14px;
  font-size:.94rem;
}

.df-footer__contact-item i{
  color:var(--df-accent);
  margin-top:5px;
  width:16px;
  flex:0 0 auto;
}

.df-footer__bottom{
  margin-top:52px;
  padding:24px 0;
  border-top:1px solid var(--df-line);
  display:flex;
  flex-wrap:wrap;
  gap:14px 26px;
  align-items:center;
  justify-content:space-between;
  font-size:.86rem;
}

.df-footer__legal-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px 20px;
  list-style:none;
  margin:0;
  padding:0;
}

.df-footer__legal-links a{
  color:var(--df-text-soft);
}

.df-footer__legal-links a:hover,
.df-footer__legal-links a:focus{
  color:var(--df-accent);
}

.df-social{
  display:flex;
  gap:12px;
  margin-top:22px;
}

.df-social a{
  width:44px;
  height:44px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--df-line-strong);
  color:var(--df-text);
  font-size:1rem;
  transition:background-color .25s var(--df-ease),color .25s var(--df-ease),border-color .25s var(--df-ease);
}

.df-social a:hover,
.df-social a:focus{
  background:var(--df-accent);
  border-color:var(--df-accent);
  color:#04140f;
}

.df-cookie{
  position:fixed;
  left:20px;
  right:20px;
  bottom:20px;
  z-index:1095;
  background:rgba(12,19,26,.97);
  border:1px solid var(--df-line-strong);
  border-radius:var(--df-radius);
  box-shadow:var(--df-shadow);
  padding:24px;
  transform:translateY(28px);
  opacity:0;
  transition:transform .4s var(--df-ease),opacity .4s var(--df-ease);
}

.df-cookie.is-visible{
  transform:translateY(0);
  opacity:1;
}

.df-cookie__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:20px 30px;
  justify-content:space-between;
}

.df-cookie__text{
  display:flex;
  gap:16px;
  align-items:flex-start;
  flex:1 1 520px;
}

.df-cookie__icon{
  color:var(--df-amber);
  font-size:1.4rem;
  margin-top:4px;
}

.df-cookie__copy{
  font-size:.92rem;
  color:var(--df-text-soft);
  max-width:70ch;
}

.df-cookie__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}

.df-cookie__link{
  font-size:.85rem;
  font-weight:600;
  text-decoration:underline;
}

.df-back-top{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1030;
  width:52px;
  height:52px;
  border-radius:50%;
  border:0;
  background:var(--df-accent);
  color:#04140f;
  font-size:1.05rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(16px);
  transition:opacity .3s var(--df-ease),transform .3s var(--df-ease),visibility .3s var(--df-ease);
  box-shadow:0 14px 28px rgba(20,194,173,.34);
}

.df-back-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

body.df-has-cookie .df-back-top{
  bottom:130px;
}

.df-prose{
  font-size:1.02rem;
  color:var(--df-text-soft);
}

.df-prose h2{
  margin-top:44px;
  font-size:1.55rem;
}

.df-prose h3{
  margin-top:30px;
  font-size:1.2rem;
}

.df-prose ul,
.df-prose ol{
  padding-left:22px;
  margin-bottom:22px;
}

.df-prose li{
  margin-bottom:10px;
}

.df-prose a{
  text-decoration:underline;
}

.df-section--light .df-prose{
  color:#2b3a48;
}

.df-badge-soft{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 16px;
  border-radius:var(--df-radius-pill);
  background:rgba(20,194,173,.14);
  color:#7ff0e1;
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.df-section--light .df-badge-soft{
  background:rgba(10,124,112,.12);
  color:#0a7c70;
}

.df-muted-note{
  font-size:.86rem;
  color:var(--df-text-soft);
}

.df-section--light .df-muted-note{
  color:#4b5b69;
}

@media (max-width:1100px){
  .df-grid--4{grid-template-columns:repeat(2,1fr);}
  .df-stats{grid-template-columns:repeat(2,1fr);}
  .df-team{grid-template-columns:repeat(2,1fr);}
}

@media (max-width:991px){
  :root{--df-header-h:72px;}
  main{padding-top:var(--df-header-h);}
  .df-header__top{display:none;}
  .df-nav__toggle{display:inline-flex;align-items:center;justify-content:center;}
  .df-nav{
    position:fixed;
    top:var(--df-header-h);
    left:0;
    right:0;
    bottom:0;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:22px 20px 40px;
    background:rgba(8,12,17,.98);
    overflow-y:auto;
    transform:translateX(100%);
    transition:transform .35s var(--df-ease);
    z-index:1039;
  }
  .df-nav.is-open{transform:translateX(0);}
  .df-nav__link{
    display:block;
    padding:16px 8px;
    border-bottom:1px solid var(--df-line);
    border-radius:0;
    font-size:1rem;
  }
  .df-nav__cta{margin-top:22px;}
  .df-grid--2,
  .df-grid--3{grid-template-columns:1fr;}
  .df-gallery{grid-template-columns:repeat(2,1fr);}
  .df-feature-row{grid-template-columns:1fr;gap:30px;}
  .df-feature-row--reverse .df-feature-row__media{order:0;}
  .df-slider__track{min-height:300px;}
}

@media (max-width:767px){
  body{font-size:16px;}
  .df-section{padding:52px 0;}
  .df-stats{grid-template-columns:1fr;}
  .df-team{grid-template-columns:1fr;}
  .df-gallery{grid-template-columns:1fr;}
  .df-hero{padding:90px 0 70px;min-height:auto;}
  .df-hero__badges{gap:10px 18px;}
  .df-form{padding:26px 20px;}
  .df-price-card{padding:28px 22px;}
  .df-cookie{left:12px;right:12px;bottom:12px;padding:20px;}
  .df-cookie__actions .df-btn{width:100%;}
  .df-toast{left:12px;right:12px;bottom:96px;max-width:none;}
  .df-slider__nav{width:42px;height:42px;}
  .df-slider__caption{padding:24px 20px;}
  body.df-has-cookie .df-back-top{bottom:170px;}
}

@media (prefers-reduced-motion:reduce){
  *{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
}
/* --- Header overlap fix: keep page content clear of the fixed header --- */
@media (min-width:992px){
  :root{--df-header-h:134px;}
}
@media (max-width:991px){
  :root{--df-header-h:96px;}
}
@media (max-width:767px){
  :root{--df-header-h:96px;}
}
main{padding-top:var(--df-header-h);}
.df-hero--compact{padding-top:calc(var(--df-header-h) + 26px);}

/* ===== Fixes: fixed header overlap + light-form consent contrast ===== */

/* The fixed header is taller than --df-header-h (top bar + navbar on desktop,
   navbar + padding on mobile), so reserve the real height on <main>. */
main{
  padding-top:124px;
}

@media (max-width:991px){
  main{padding-top:100px;}
}

@media (max-width:767px){
  main{padding-top:100px;}
}

/* Consent checkbox text sits on a white form, so it must not use the
   dark-theme soft text colour (#c6d2dd) which fails contrast on white. */
.df-form--light .df-form__check,
.df-form--light .df-form__check span{
  color:#33424f;
}

.df-form--light .df-form__check a{
  color:#0a6f64;
  font-weight:600;
}

.df-form--light .df-form__check a:hover,
.df-form--light .df-form__check a:focus{
  color:#054b43;
}
