/* ==========================================================================
   JACSONS VENEERS & PANELS — "Warm Natural Luxury" design system
   Replaces the BizPage template skin (assets/css/style.css) site-wide.
   Vendor libraries (bootstrap grid + modal, AOS, venobox, owl carousel,
   icofont/font-awesome/ionicons) remain wired through main.js untouched —
   this file only restyles their visual presentation.
   ========================================================================== */

:root{
  /* -- palette: warm natural luxury -- */
  --ivory:        #fbf7f1;   /* page background */
  --sand:         #f3ece0;   /* alternate section background */
  --surface:      #ffffff;   /* cards / modals */
  --ink:          #2e2a25;   /* primary text / headings */
  --ink-soft:     #6b6055;   /* secondary text */
  --walnut:       #5c3a1b;   /* deep brown — primary brand colour */
  --walnut-2:     #7a4a23;   /* lighter brown variant */
  --bronze:       #b9803f;   /* accent: links, borders, eyebrows */
  --bronze-light: #e8d2b0;   /* light accent background / borders */
  --sage:         #4f7a6a;   /* secondary accent, used sparingly */
  --line:         #e4d9c8;   /* hairline dividers */
  --shadow:       0 20px 50px -20px rgba(46,42,37,0.25);
  --shadow-sm:    0 8px 24px -12px rgba(46,42,37,0.22);

  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-body:    "Jost", "Helvetica Neue", Arial, sans-serif;

  --radius: 2px;
  --container-pad: 24px;
}

/* -------------------------------------------------------------------- */
/* Reset / base                                                          */
/* -------------------------------------------------------------------- */
*{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }

body{
  font-family: var(--font-body) !important;
  color: var(--ink);
  background: var(--ivory);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

a{
  color: var(--walnut);
  text-decoration: none;
  transition: color .25s ease;
}
a:hover{ color: var(--bronze); text-decoration: none; }

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

h1,h2,h3,h4,h5,h6{
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--ink);
  letter-spacing: .02em;
  margin: 0 0 .5em;
}
h1{ font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.15; }
h2{ font-size: clamp(1.9rem, 3vw, 2.6rem); line-height: 1.2; }
h3{ font-size: 1.6rem; }
h4{ font-size: 1.35rem; }
h5{ font-size: 1.1rem; letter-spacing: .08em; text-transform: uppercase; }
h6{ font-size: .95rem; letter-spacing: .12em; text-transform: uppercase; color: var(--walnut); }

p{ color: var(--ink-soft); margin: 0 0 1em; }

::selection{ background: var(--bronze-light); color: var(--ink); }

/* -------------------------------------------------------------------- */
/* Eyebrow / section heading kit                                         */
/* -------------------------------------------------------------------- */
.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--bronze);
  margin-bottom: 14px;
}
.eyebrow::before{
  content: "";
  width: 28px;
  height: 1px;
  background: var(--bronze);
  display: inline-block;
}

.section-head{
  max-width: 720px;
  margin: 0 0 50px;
}
.section-head.text-center{ margin-left: auto; margin-right: auto; text-align: center; }
.section-head.text-center .eyebrow::before{ display: none; }
.section-head p{ font-size: 1.05rem; }

.divider{
  width: 56px;
  height: 2px;
  background: var(--bronze);
  margin: 18px 0;
}
.text-center .divider{ margin: 18px auto; }

/* -------------------------------------------------------------------- */
/* Buttons                                                                */
/* -------------------------------------------------------------------- */
.btn-luxury,
.button,
a.button{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-body);
  font-size: .85rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ivory) !important;
  background: var(--walnut);
  border: 1px solid var(--walnut);
  border-radius: var(--radius);
  padding: 14px 30px;
  transition: all .3s ease;
  cursor: pointer;
  width: auto;
  height: auto;
}
.btn-luxury:hover,
.button:hover,
a.button:hover{
  background: var(--bronze);
  border-color: var(--bronze);
  color: var(--ivory) !important;
  transform: translateY(-2px);
}
.btn-luxury-outline{
  background: transparent;
  color: var(--walnut) !important;
  border: 1px solid var(--walnut);
}
.btn-luxury-outline:hover{
  background: var(--walnut);
  color: var(--ivory) !important;
}

/* -------------------------------------------------------------------- */
/* Header / Navigation                                                    */
/* -------------------------------------------------------------------- */
#header{
  background: rgba(251,247,241,0.96);
  border-bottom: 1px solid transparent;
  transition: all .35s ease;
  padding: 18px 0;
  z-index: 997;
}
#header.header-scrolled{
  padding: 10px 0;
  border-bottom-color: var(--line);
  box-shadow: var(--shadow-sm);
}
#header .logo{ margin: 0; }
#header .logo img{ height: 48px; width: auto; transition: height .3s ease; }
#header.header-scrolled .logo img{ height: 38px; }

.nav-menu{ margin: 0; padding: 0; }
.nav-menu ul{
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
}
.nav-menu li{ position: relative; margin-left: 38px; }
.nav-menu a{
  display: block;
  font-family: var(--font-body);
  font-size: .85rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink);
  padding: 8px 2px;
  white-space: nowrap;
}
.nav-menu a:hover,
.nav-menu li.active > a{
  color: var(--bronze);
}
.nav-menu li.active > a::after{
  content: "";
  display: block;
  height: 1px;
  background: var(--bronze);
  margin-top: 4px;
}

.nav-menu .drop-down ul{
  display: block;
  position: absolute;
  left: -20px;
  top: calc(100% + 14px);
  margin: 0;
  padding: 14px 0;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  background: var(--surface);
  box-shadow: var(--shadow);
  transition: .25s ease;
  min-width: 220px;
  border-top: 2px solid var(--bronze);
}
.nav-menu .drop-down:hover > ul{ opacity: 1; visibility: visible; top: 100%; }
.nav-menu .drop-down ul li{ margin: 0; }
.nav-menu .drop-down ul a{
  padding: 10px 24px;
  font-size: .78rem;
  color: var(--ink-soft);
}
.nav-menu .drop-down ul a:hover{ color: var(--bronze); background: var(--sand); }
.nav-menu .drop-down > a::after{
  font-family: "Font Awesome 5 Free", FontAwesome, sans-serif;
  content: "\f107";
  margin-left: 6px;
  font-size: .7em;
}

/* Mobile nav (cloned by main.js into body.mobile-nav / .mobile-nav-toggle) */
.mobile-nav-toggle{
  position: fixed;
  right: 18px;
  top: 16px;
  z-index: 9999;
  border: 0;
  background: var(--walnut);
  color: var(--ivory);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  font-size: 1.1rem;
  display: none;
  align-items: center;
  justify-content: center;
}
body.mobile-nav-active .mobile-nav-toggle{ background: var(--bronze); }

.mobile-nav{
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 9998;
  width: 280px;
  background: var(--ivory);
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform .35s ease;
  padding: 80px 0 30px;
  box-shadow: var(--shadow);
}
body.mobile-nav-active .mobile-nav{ transform: translateX(0); }
.mobile-nav ul{ list-style: none; margin: 0; padding: 0; }
.mobile-nav > ul{ padding: 0 10px; }
.mobile-nav li{ position: relative; }
.mobile-nav a{
  display: block;
  padding: 12px 16px;
  font-family: var(--font-body);
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}
.mobile-nav .drop-down ul{ display: none; padding-left: 14px; }
.mobile-nav .drop-down.active ul{ display: block; }

.mobile-nav-overly{
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9997;
  background: rgba(46,42,37,0.55);
}
body.mobile-nav-active .mobile-nav-overly{ display: block; }

@media (max-width: 991px){
  .nav-menu{ display: none !important; }
  .mobile-nav-toggle{ display: flex; }
}

/* -------------------------------------------------------------------- */
/* Hero banners (replaces .door / .imagetext)                            */
/* -------------------------------------------------------------------- */
.hero-luxury{
  position: relative;
  height: 56vh;
  min-height: 360px;
  width: 100%;
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-luxury::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,42,37,.55) 0%, rgba(46,42,37,.35) 50%, rgba(46,42,37,.6) 100%);
}
.hero-luxury .hero-inner{
  position: relative;
  z-index: 2;
  text-align: center;
  color: #fff;
  padding: 0 20px;
}
.hero-luxury .hero-inner h1{
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  letter-spacing: .06em;
  margin-bottom: 0;
}
.hero-luxury .hero-inner .eyebrow{ color: var(--bronze-light); justify-content: center; }
.hero-luxury .hero-inner .eyebrow::before{ background: var(--bronze-light); }
.hero-luxury.hero-short{ height: 38vh; min-height: 240px; }

/* -------------------------------------------------------------------- */
/* Home intro carousel (#introCarousel) — kept functionally identical    */
/* -------------------------------------------------------------------- */
.intro-container{ position: relative; }
#introCarousel,
#introCarousel .carousel-inner,
#introCarousel .carousel-item{ height: 86vh; min-height: 480px; }
#introCarousel .carousel-item{
  background-size: cover;
  background-position: center;
  position: relative;
}
#introCarousel .carousel-item::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,42,37,.45) 0%, rgba(46,42,37,.25) 45%, rgba(46,42,37,.55) 100%);
}
.carousel-container{
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.carousel-container .container{ text-align: center; }
#introCarousel h2{
  color: #fff !important;
  font-size: clamp(2rem, 5vw, 3.4rem);
  letter-spacing: .08em;
}
#introCarousel .carousel-indicators{ z-index: 3; }
#introCarousel .carousel-indicators li{
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(255,255,255,.55);
  border: 0;
}
#introCarousel .carousel-indicators li.active{ background: var(--bronze); }
#introCarousel .carousel-control-prev,
#introCarousel .carousel-control-next{ z-index: 3; width: 6%; opacity: .8; }

/* -------------------------------------------------------------------- */
/* Split rows (image + text), used heavily on index/aboutus               */
/* -------------------------------------------------------------------- */
.split-row{ align-items: center; }
.split-panel{
  padding: 48px;
  text-align: center;
  letter-spacing: .03em;
  color: var(--ivory);
}
.split-panel h2,.split-panel h1,.split-panel h3,.split-panel h4{ color: var(--ivory); }
.split-panel p{ color: rgba(255,255,255,.88); }
.split-panel.walnut{ background: var(--walnut); }
.split-panel.bronze{ background: var(--bronze); }
.split-panel.sage{ background: var(--sage); }

.rich-block{ text-align: center; letter-spacing: .02em; color: var(--ink-soft); }
.rich-block p{ font-size: 1.05rem; line-height: 1.8; }

/* -------------------------------------------------------------------- */
/* Generic content sections                                              */
/* -------------------------------------------------------------------- */
.section-alt{ background: var(--sand); }
.section-pad{ padding: 90px 0; }
.section-pad-sm{ padding: 56px 0; }

/* -------------------------------------------------------------------- */
/* Rich text / long-form prose (door descriptions, about, faq)           */
/* -------------------------------------------------------------------- */
.prose{ max-width: 880px; }
.prose p{ color: var(--ink-soft); font-size: 1rem; line-height: 1.85; }
.prose ul,.prose ol{ color: var(--ink-soft); padding-left: 22px; margin-bottom: 1.2em; }
.prose ul{ list-style: none; }
.prose ul li{ position: relative; padding-left: 26px; margin-bottom: 10px; }
.prose ul li::before{
  content: "";
  position: absolute;
  left: 0; top: 10px;
  width: 8px; height: 8px;
  background: var(--bronze);
  border-radius: 50%;
}
.prose ol li{ margin-bottom: 10px; padding-left: 6px; }
.prose strong, .prose b{ color: var(--walnut); }

/* FAQ list (plain bold question + answer, no accordion in source site) */
.faq-block .prose p strong,
.faq-block .prose p b{
  display: block;
  font-family: var(--font-display);
  font-size: 1.15rem;
  color: var(--walnut);
  margin-bottom: 6px;
  letter-spacing: .01em;
}
.faq-block .prose p{ margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.faq-block .prose p:last-child{ border-bottom: 0; }

/* -------------------------------------------------------------------- */
/* Product / gallery grids (veneer swatches, door category tiles)        */
/* -------------------------------------------------------------------- */
.product-grid{
  display: block;
  margin-bottom: 36px;
}
.product-tile{
  position: relative;
  display: block;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
}
.product-tile .tile-img{
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.product-tile img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s ease;
}
.product-tile:hover img{ transform: scale(1.08); }
.product-tile .tile-cap{
  padding: 16px 18px;
  text-align: center;
  border-top: 1px solid var(--line);
}
.product-tile .tile-cap h6{ margin: 0; }
.product-tile .tile-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(46,42,37,0) 55%, rgba(46,42,37,.78) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  transition: opacity .3s ease;
}
.product-tile:hover .tile-overlay{ opacity: 1; }
.product-tile .tile-overlay span{
  color: #fff;
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding-bottom: 14px;
}

/* simple image-only grid used on door detail pages (.door-grid) */
.door-grid{
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 14px;
  margin-bottom: 30px;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .3s ease, box-shadow .3s ease;
}
.door-grid:hover{ transform: translateY(-4px); box-shadow: var(--shadow); }
.door-grid img{ width: 100%; border-radius: var(--radius); }

/* -------------------------------------------------------------------- */
/* Modals — bootstrap .modal restyle for product / FAQ / lightbox        */
/* -------------------------------------------------------------------- */
.modal{ color: var(--ink); }
.modal-content{
  background: var(--ivory);
  border: none;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.modal-header{
  background: var(--walnut);
  color: var(--ivory);
  border-bottom: none;
  padding: 22px 28px;
}
.modal-header .modal-title{
  font-family: var(--font-display);
  letter-spacing: .04em;
  margin: 0;
  color: var(--ivory);
}
.modal-header .close{
  color: var(--ivory);
  opacity: .85;
  text-shadow: none;
}
.modal-header .close:hover{ opacity: 1; color: var(--bronze-light); }
.modal-body{ padding: 30px 32px; }
.modal-body p{ color: var(--ink-soft); }
.modal-body p b, .modal-body p strong{ color: var(--bronze); }
.modal-body ul, .modal-body ol{ color: var(--ink-soft); padding-left: 20px; }

/* product image inside modal */
#imagemodal .modal-content{ background: var(--surface); }
#imagemodal img{ width: 100%; border-radius: var(--radius); }
#imagemodal .modal-header{ background: transparent; position: absolute; right: 0; z-index: 5; border: 0; }
#imagemodal .modal-header .close{ color: var(--ink); background: var(--ivory); border-radius: 50%; width: 34px; height: 34px; display:flex; align-items:center; justify-content:center; margin: 10px; opacity:1; }

/* -------------------------------------------------------------------- */
/* Testimonial card                                                       */
/* -------------------------------------------------------------------- */
.testimonial-client{
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 50px;
  box-shadow: var(--shadow-sm);
}
.testimonial-content{ position: relative; padding-left: 30px; }
.testimonial-content::before{
  content: "\201C";
  font-family: var(--font-display);
  font-size: 4rem;
  color: var(--bronze-light);
  position: absolute;
  left: -20px;
  top: -30px;
  line-height: 1;
}
.testimonial-content p{ font-style: italic; font-size: 1.15rem; color: var(--ink); }
.testimonial-content span{ color: var(--bronze); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }

/* -------------------------------------------------------------------- */
/* Contact form                                                           */
/* -------------------------------------------------------------------- */
.contact-panel{
  background: var(--walnut);
  color: rgba(255,255,255,.9);
  padding: 60px;
}
.contact-panel p{ color: rgba(255,255,255,.9); font-size: 1.05rem; }
.contact-panel i{ color: var(--bronze-light); margin-right: 8px; }

.luxury-form input,
.luxury-form textarea{
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  padding: 12px 4px;
  margin-top: 18px;
  font-family: var(--font-body);
  color: var(--ink);
}
.luxury-form input:focus,
.luxury-form textarea:focus{
  outline: none;
  border-bottom-color: var(--bronze);
}
.luxury-form input::placeholder,
.luxury-form textarea::placeholder{ color: var(--ink-soft); }

.map-frame{ border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.map-frame iframe{ width: 100%; height: 420px; border: 0; display: block; }

/* -------------------------------------------------------------------- */
/* Footer                                                                  */
/* -------------------------------------------------------------------- */
#footer{ background: var(--ink); color: rgba(255,255,255,.7); }
#footer .footer-top{ padding: 64px 0 40px; }
#footer a{ color: rgba(255,255,255,.78); }
#footer a:hover{ color: var(--bronze-light); }
#footer .footer-links-row a{
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
#footer .social-links a{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  margin: 0 5px;
  color: #fff;
  transition: all .3s ease;
}
#footer .social-links a:hover{ background: var(--bronze); border-color: var(--bronze); }
#footer .social-links a.brochure{
  width: auto !important;
  height: auto !important;
  border-radius: 20px !important;
  padding: 10px 22px !important;
  margin-top: 22px;
  border: 1px solid var(--bronze);
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
#footer .copyline{ color: rgba(255,255,255,.5); font-size: .82rem; letter-spacing: .04em; }

/* -------------------------------------------------------------------- */
/* Back to top                                                            */
/* -------------------------------------------------------------------- */
.back-to-top{
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 998;
  display: none;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--walnut);
  color: var(--ivory) !important;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm);
}
.back-to-top:hover{ background: var(--bronze); }

/* -------------------------------------------------------------------- */
/* Responsive                                                             */
/* -------------------------------------------------------------------- */
@media (max-width: 767px){
  .section-pad{ padding: 60px 0; }
  .split-panel,.contact-panel{ padding: 36px 24px; }
  #introCarousel,
  #introCarousel .carousel-inner,
  #introCarousel .carousel-item{ height: 70vh; }
}
