/* 
  If you have a licensed Trajan Pro webfont kit, place it in your project
  and update the src URLs below to match your files.
*/
@font-face{
  font-family:"Trajan Pro";
  src:
    url("fonts/TrajanPro-Regular.woff2") format("woff2"),
    url("fonts/TrajanPro-Regular.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:"Trajan Pro";
  src:
    url("fonts/TrajanPro-Bold.woff2") format("woff2"),
    url("fonts/TrajanPro-Bold.woff") format("woff");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

:root{
  --lux-font: "Trajan Pro","Times New Roman",serif;
  --body-font: "Times New Roman", serif;
  --gold: #c9a227;
  --gold-light: #e2c46b;
  --gold-mid: #d3ae3b;
  --gold-deep: #a8841f;
  --beige: #e8dcc3;
  --beige-soft: #f3ead9;
  --text: #ffffff;
  --text-soft: #eadfca;
  --line: rgba(232,220,195,.18);
}

*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html{
  scroll-behavior:smooth;
}

body{
  font-family:var(--body-font);
  background:#000;
  color:var(--text);
  overflow-x:hidden;
  position:relative;
  -webkit-font-smoothing:antialiased;
}

img, video{
  display:block;
  max-width:100%;
}

a{
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

/* Background */
#bg-video{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:-3;
}

.bg-overlay{
  position:fixed;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.40), rgba(0,0,0,.85));
  z-index:-2;
}

body::before,
body::after{
  content:"";
  position:fixed;
  top:0;
  height:100%;
  width:180px;
  z-index:3;
  pointer-events:none;
}

body::before{
  left:0;
  background:linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,.82) 35%, rgba(0,0,0,0) 100%);
}

body::after{
  right:0;
  background:linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,.82) 35%, rgba(0,0,0,0) 100%);
}

/* NAV */
.navbar{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  z-index:50;
  background:rgba(0,0,0,.52);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(232,220,195,.12);
}

.nav-container{
  max-width:1680px;
  margin:0 auto;
  padding:26px 50px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:30px;
}

.nav-left{
  display:flex;
  justify-content:flex-start;
  align-items:center;
}

.nav-right{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:16px;
}

.nav-logo-stack{
  display:flex;
  flex-direction:column;
  line-height:1;
}

.nav-main{
  font-family:var(--lux-font);
  font-weight:700;
  font-size:34px;
  letter-spacing:4px;
  text-transform:uppercase;
  line-height:.88;
  color:transparent;
  background:
    linear-gradient(90deg,
      #8f6a16 0%,
      #d7b64b 18%,
      #f2df96 30%,
      #cfa52b 45%,
      #f3e4ab 52%,
      #bf9424 63%,
      #e5c96c 78%,
      #8d6716 100%);
  -webkit-background-clip:text;
  background-clip:text;
  position:relative;
  animation:goldShine 7s linear infinite, softGlow 5s ease-in-out infinite;
  background-size:220% auto;
}

.nav-sub-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:4px;
}

.nav-sub{
  font-family:var(--lux-font);
  font-weight:700;
  font-size:12px;
  letter-spacing:7px;
  text-transform:uppercase;
  color:transparent;
  background:
    linear-gradient(90deg,
      #8f6a16 0%,
      #d7b64b 18%,
      #f2df96 30%,
      #cfa52b 45%,
      #f3e4ab 52%,
      #bf9424 63%,
      #e5c96c 78%,
      #8d6716 100%);
  -webkit-background-clip:text;
  background-clip:text;
  background-size:220% auto;
  animation:goldShine 7s linear infinite;
}

.nav-line{
  width:40px;
  height:1px;
  background:linear-gradient(to right, rgba(201,162,39,.2), rgba(226,196,107,.8), rgba(201,162,39,.2));
}

.center-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:34px;
  flex-wrap:wrap;
}

.center-nav a{
  color:var(--beige-soft);
  font-family:var(--lux-font);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:21px;
  font-weight:700;
  transition:.25s ease;
}

.center-nav a:hover{
  color:var(--gold-light);
  transform:translateY(-1px);
}

.top-logo{
  width:120px;
  height:auto;
}

/* HERO */
.hero{
  max-width:1680px;
  margin:0 auto;
  padding:230px 30px 110px;
  text-align:center;
  position:relative;
  z-index:5;
}

.hero-box{
  max-width:1450px;
  margin:0 auto;
  padding:120px 90px;
  border:1px solid rgba(232,220,195,.14);
  background:linear-gradient(180deg, rgba(0,0,0,.76) 0%, rgba(15,15,15,.70) 50%, rgba(0,0,0,.80) 100%);
  box-shadow:0 20px 55px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.04);
  backdrop-filter:blur(4px);
  border-radius:28px;
}

.hero-logo-stack{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin-bottom:26px;
}

.hero-title-main{
  font-family:var(--lux-font);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:6px;
  line-height:.9;
  font-size:clamp(6rem, 10vw, 11rem);
  margin:0;
  color:transparent;
  background:
    linear-gradient(90deg,
      #8f6a16 0%,
      #d7b64b 18%,
      #f2df96 30%,
      #cfa52b 45%,
      #f3e4ab 52%,
      #bf9424 63%,
      #e5c96c 78%,
      #8d6716 100%);
  -webkit-background-clip:text;
  background-clip:text;
  background-size:220% auto;
  animation:goldShine 7s linear infinite, softGlow 5s ease-in-out infinite;
  position:relative;
}

.hero-divider{
  display:flex;
  align-items:center;
  gap:20px;
  margin-top:10px;
}

.hero-divider span{
  width:120px;
  height:2px;
  background:linear-gradient(to right, rgba(201,162,39,.15), rgba(226,196,107,.85), rgba(201,162,39,.15));
  opacity:.8;
}

.hero-divider h2{
  font-family:var(--lux-font);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:8px;
  line-height:.95;
  font-size:clamp(2rem, 4vw, 3.5rem);
  margin:0;
  color:transparent;
  background:
    linear-gradient(90deg,
      #8f6a16 0%,
      #d7b64b 18%,
      #f2df96 30%,
      #cfa52b 45%,
      #f3e4ab 52%,
      #bf9424 63%,
      #e5c96c 78%,
      #8d6716 100%);
  -webkit-background-clip:text;
  background-clip:text;
  background-size:220% auto;
  animation:goldShine 7s linear infinite;
}

.hero-tagline{
  font-family:var(--lux-font);
  max-width:none;
  margin:0 auto;
  font-size:clamp(1.25rem, 1.9vw, 2rem);
  line-height:1.35;
  letter-spacing:1px;
  color:var(--beige-soft);
  white-space:nowrap;
}

.hero-actions{
  display:none;
}

/* Gold animation */
@keyframes goldShine{
  0%{
    background-position:200% center;
  }
  100%{
    background-position:-200% center;
  }
}

@keyframes softGlow{
  0%, 100%{
    filter:
      drop-shadow(0 0 4px rgba(201,162,39,.22))
      drop-shadow(0 0 10px rgba(226,196,107,.10));
  }
  50%{
    filter:
      drop-shadow(0 0 10px rgba(226,196,107,.35))
      drop-shadow(0 0 20px rgba(201,162,39,.20));
  }
}

/* Buttons */
.service-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:18px 34px;
  background:linear-gradient(180deg, var(--beige-soft), var(--gold-light));
  color:#000;
  font-weight:700;
  font-size:18px;
  border-radius:999px;
  box-shadow:0 8px 20px rgba(201,162,39,.18);
  transition:.25s ease;
  border:none;
  cursor:pointer;
}

.service-btn:hover{
  transform:translateY(-2px);
  opacity:.96;
}

.service-btn-dark{
  background:rgba(255,255,255,.06);
  color:var(--beige-soft);
  border:1px solid rgba(232,220,195,.28);
  box-shadow:0 8px 20px rgba(0,0,0,.28);
}

.btn-icon{
  font-size:18px;
  line-height:1;
  display:inline-block;
}

/* Sections */
.services-section,
.owner-section,
.trust-section,
.reviews-section,
.contact-section{
  position:relative;
  z-index:5;
}

.services-section{
  max-width:1480px;
  margin:0 auto;
  padding:40px 30px 70px;
}

.services-heading,
.section-title{
  text-align:center;
  font-family:var(--lux-font);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:2px;
}

.services-heading{
  font-size:58px;
  margin-bottom:40px;
}

.section-title{
  font-size:44px;
  line-height:1.15;
  margin-bottom:30px;
}

/* Service cards */
.services-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:28px;
}

.service-card,
.owner-box,
.trust-box,
.review-card,
.lead-form-wrap{
  border-radius:28px;
  overflow:hidden;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(0,0,0,.90) 0%, rgba(8,8,8,.84) 55%, rgba(0,0,0,.90) 100%);
  box-shadow:0 10px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.03);
  backdrop-filter:blur(4px);
}

.service-card{
  transition:.35s ease;
}

.service-card:hover{
  transform:translateY(-8px);
  box-shadow:0 16px 40px rgba(0,0,0,.42), 0 0 24px rgba(226,196,107,.10);
}

.service-media{
  position:relative;
  width:100%;
  height:320px;
  overflow:hidden;
  background:#111;
}

.service-video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.08);
  filter:brightness(.58) contrast(1.08) saturate(.92);
  transition:transform .65s ease;
  pointer-events:none;
}

.service-card:hover .service-video{
  transform:scale(1.12);
}

.service-video-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom, rgba(0,0,0,.08), rgba(0,0,0,.74)),
    linear-gradient(135deg, rgba(226,196,107,.14), rgba(226,196,107,.03) 45%, transparent 72%);
}

.service-content{
  padding:34px 28px 34px;
}

.service-content h3{
  font-family:var(--lux-font);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:32px;
  line-height:1.2;
  margin-bottom:18px;
}

.service-content p{
  font-size:19px;
  line-height:1.85;
  color:var(--beige-soft);
  margin-bottom:18px;
}

.service-content ul{
  padding-left:22px;
  margin-bottom:24px;
  color:var(--text-soft);
  font-size:17px;
  line-height:2;
}

.service-content li{
  margin-bottom:6px;
}

/* Owner */
.owner-section{
  max-width:1480px;
  margin:0 auto;
  padding:20px 30px 40px;
}

.owner-box{
  padding:50px 42px;
}

.owner-layout{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:44px;
  align-items:start;
}

.owner-profile-photo{
  width:100%;
  max-width:280px;
  height:auto;
  border-radius:16px;
  border:1px solid rgba(232,220,195,.18);
}

.owner-name-heading{
  font-family:var(--lux-font);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:38px;
  margin-bottom:10px;
}

.owner-role-line{
  font-size:22px;
  color:#fff;
  line-height:1.7;
  margin-bottom:24px;
}

.owner-bio p{
  color:var(--beige-soft);
  line-height:1.95;
  font-size:18px;
  margin-bottom:20px;
}

.owner-subtitle{
  font-family:var(--lux-font);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:1.2px;
  font-size:26px;
  margin:30px 0 16px;
}

.brand-statement{
  margin-top:28px;
  padding:22px 24px;
  border-left:4px solid var(--gold);
  background:rgba(226,196,107,.06);
  color:#fff;
  font-style:italic;
  line-height:1.9;
  font-size:18px;
}

/* Trust */
.trust-section,
.reviews-section,
.contact-section{
  max-width:1200px;
  margin:0 auto;
  text-align:center;
  padding:70px 24px;
}

.trust-box{
  max-width:980px;
  margin:20px auto 0;
  padding:30px 32px;
  border-left:4px solid var(--gold);
  border-radius:16px;
}

.trust-box p{
  font-size:20px;
  line-height:1.95;
  color:var(--beige-soft);
}

/* Reviews */
.reviews-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  margin-top:20px;
}

.review-card{
  padding:34px 28px;
  text-align:left;
}

.review-stars{
  color:var(--gold-light);
  letter-spacing:2px;
  margin-bottom:16px;
  font-size:22px;
}

.review-card p{
  color:var(--beige-soft);
  line-height:1.9;
  margin-bottom:20px;
  font-size:18px;
}

.review-name{
  color:var(--gold);
  font-weight:bold;
  font-size:17px;
}

.reviews-action{
  margin-top:28px;
}

/* Contact */
.contact-actions{
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:22px;
  margin-bottom:34px;
}

.lead-form-wrap{
  max-width:980px;
  margin:0 auto;
  padding:40px 30px;
}

.lead-form-title{
  font-family:var(--lux-font);
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:34px;
  margin-bottom:12px;
}

.lead-form-subtitle{
  color:var(--beige-soft);
  line-height:1.85;
  margin-bottom:26px;
  font-size:18px;
}

.lead-form{
  text-align:left;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
  margin-bottom:24px;
}

.form-group{
  display:flex;
  flex-direction:column;
}

.form-group-full{
  grid-column:1 / -1;
}

.form-group label{
  margin-bottom:10px;
  color:var(--gold-light);
  font-size:16px;
  letter-spacing:.4px;
}

.form-group input,
.form-group textarea{
  width:100%;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(232,220,195,.16);
  border-radius:14px;
  padding:16px 18px;
  color:#fff;
  outline:none;
  font-size:17px;
}

.form-group select{
  width:100%;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(232,220,195,.16);
  border-radius:14px;
  padding:16px 18px;
  color:#fff;
  outline:none;
  font-size:17px;
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
}

.form-group select option{
  background:#111;
  color:#f3ead9;
}

select{
  background-color:#111;
  color:#f3ead9;
}

.form-group input::placeholder,
.form-group textarea::placeholder{
  color:rgba(243,234,217,.62);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{
  border-color:rgba(226,196,107,.55);
  box-shadow:0 0 0 2px rgba(226,196,107,.12);
}

.bottom-contact-bar{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-top:28px;
  font-size:18px;
  color:var(--beige-soft);
}

.bottom-contact-bar a{
  color:var(--beige-soft);
  text-decoration:none;
}

.bottom-contact-bar a:hover{
  color:var(--gold-light);
}

.contact-note{
  margin-top:20px;
  font-size:18px;
  color:var(--beige-soft);
  opacity:.92;
  line-height:1.85;
}

/* Hide old floating buttons */
.floating-call,
.floating-email,
.floating-text{
  display:none;
}

/* Responsive */
@media (max-width: 1280px){
  .services-grid,
  .reviews-grid{
    grid-template-columns:1fr;
  }

  .owner-layout{
    grid-template-columns:1fr;
  }

  .owner-profile-photo{
    max-width:260px;
  }

  .hero-tagline{
    white-space:normal;
  }
}

@media (max-width: 1100px){
  .nav-container{
    grid-template-columns:1fr;
    gap:16px;
    text-align:center;
    padding:20px 24px;
  }

  .nav-left,
  .nav-right,
  .center-nav{
    justify-content:center;
  }

  .hero-box{
    padding:70px 34px;
  }

  .form-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  .hero-tagline{
    white-space:normal;
  }

  .hero-divider span{
    width:60px;
  }
}

@media (max-width: 640px){
  body::before,
  body::after{
    width:70px;
  }

  .nav-main{
    font-size:24px;
    letter-spacing:3px;
  }

  .nav-sub{
    font-size:10px;
    letter-spacing:5px;
  }

  .nav-line{
    width:24px;
  }

  .center-nav{
    gap:16px;
  }

  .center-nav a{
    font-size:15px;
  }

  .top-logo{
    width:82px;
  }

  .hero{
    padding:170px 16px 50px;
  }

  .hero-box{
    padding:44px 20px;
  }

  .hero-title-main{
    font-size:clamp(3.4rem, 14vw, 5.5rem);
    letter-spacing:4px;
  }

  .hero-title-sub{
    font-size:clamp(2rem, 9vw, 3.4rem);
    letter-spacing:5px;
  }

  .hero-tagline{
    font-size:1.1rem;
    white-space:normal;
  }

  .services-heading{
    font-size:34px;
  }

  .section-title{
    font-size:30px;
  }

  .service-media{
    height:220px;
  }

  .service-content{
    padding:24px 18px;
  }

  .service-content h3{
    font-size:24px;
  }

  .service-content p,
  .service-content ul,
  .owner-bio p,
  .review-card p,
  .trust-box p,
  .lead-form-subtitle,
  .contact-note{
    font-size:16px;
  }

  .owner-name-heading{
    font-size:28px;
  }

  .owner-role-line{
    font-size:17px;
  }

  .lead-form-title{
    font-size:28px;
  }

  .bottom-contact-bar{
    font-size:15px;
    gap:8px;
  }
}