/* Professional centered layout — Black / White / Gold theme */

:root{
  --bg: #ffffff;
  --surface: #ffffff;
  --text: #0b0b0b;
  --muted: #6b6b6b;
  --gold: #FFB400; /* brighter gold accent */
  --black: #000000;
  --radius: 10px;
  --max-width: 900px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;line-height:1.6;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}

/* Centering wrapper */
.container{width:92%;max-width:var(--max-width);margin:0 auto}
.site-header{background:transparent}
.header-inner{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}
.logo{font-weight:800;color:var(--black);text-decoration:none;font-size:1.2rem;letter-spacing:0.06em}
.site-nav ul{list-style:none;display:flex;gap:1rem;align-items:center}
.site-nav a{text-decoration:none;color:var(--text);padding:.25rem .5rem;border-radius:6px}
.site-nav a:hover{color:var(--gold)}
.nav-toggle{display:none;background:none;border:0;font-size:1.25rem;color:#ffffff}

/* Header (logo background & nav contrast) */
.site-header{background:#000;position:relative;z-index:10}
.site-header .header-inner{padding:0.9rem 0}
.site-header .logo{display:block}
.site-logo{height:260px;width:auto;display:block}
.site-header .site-nav a{color:#ffffff}
.site-header .site-nav a:hover{color:var(--gold)}
.site-header .logo img{display:block}

/* Hero */
.hero{min-height:56vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:4rem 0}
.hero h1{font-size:2.25rem;margin-bottom:.5rem;color:var(--black);letter-spacing:0.02em}
.lead{color:var(--muted);margin-bottom:1.25rem;font-size:1.05rem}

.btn{display:inline-block;padding:.7rem 1.1rem;background:var(--black);color:var(--gold);border-radius:8px;text-decoration:none;border:2px solid var(--black);cursor:pointer;font-weight:600}
.btn.secondary{background:transparent;color:var(--black);border:2px solid var(--black)}
.btn:hover{filter:brightness(0.98)}

/* Services centered grid */
.services{padding:2.25rem 0}
.services h2{text-align:center;margin-bottom:1rem;color:#ffffff;text-shadow:0 1px 2px rgba(0,0,0,0.45);-webkit-text-stroke:1.2px #000000;font-size:3rem}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;justify-items:center}
.service{background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid rgba(0,0,0,0.06);width:100%;max-width:280px;text-align:left}
.service h3{margin-bottom:.5rem;color:var(--black)}

/* Remove underline from service card links */
a.service {
  text-decoration: none;
  color: inherit;
  box-shadow: none;
}
a.service:hover {
  box-shadow: 0 2px 16px rgba(0,0,0,0.08);
  border-color: var(--gold);
}
.service p{color:var(--muted);font-size:.98rem}

/* homepage falling black banner behind services */
.home .services{position:relative;overflow:visible}
.home .services > *{position:relative;z-index:2}
/* textured falling banner with white maze/labyrinth pattern */
.home .services::before{
  content:"";
  position:absolute;
  left:calc(-50vw + 50%);
  right:calc(-50vw + 50%);
  top:0;
  width:100vw;
  height:70%;
  background-color:#000;
  /* single continuous staircase arrow with arrowhead open (no base), no rotation */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='200' viewBox='0 0 220 200'><defs><g id='stairArrow'><path d='M10,110 L40,110 Q50,110 50,100 L50,70 Q50,60 60,60 L90,60 Q100,60 100,50 L100,20 Q100,10 110,10 L140,10' stroke='%23FFA321' stroke-width='11' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M155,5 L140,25' stroke='%23FFA321' stroke-width='11' fill='none' stroke-linecap='round' stroke-linejoin='round'/><path d='M155,5 L140,-5' stroke='%23FFA321' stroke-width='11' fill='none' stroke-linecap='round' stroke-linejoin='round'/></g></defs><use href='%23stairArrow' x='0' y='30' opacity='1'/></svg>"),
    linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,1) 70%);
  background-repeat:repeat, no-repeat;
  background-size:200px 200px, cover;
  background-position:0 0, center;
  background-blend-mode:normal;
  z-index:1;
  transform:translateY(0);
  opacity:1;
}

/* animation triggers only when .banner-playing class is present on .services */
.home .services.banner-playing::before{animation: fallAway 1.5s ease-out 0.6s forwards}

@keyframes fallAway{
  0%{transform:translateY(0)}
  100%{transform:translateY(0)}
}

.contact{padding:2rem 0;text-align:center}
.contact .contact-form{max-width:520px;margin:0 auto}
.contact form{display:flex;gap:.25rem;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;flex-direction:column}
.contact input[type="text"],
.contact input[type="email"]{width:100%;padding:.6rem .75rem;border:1px solid #e6e6e6;border-radius:8px}
.contact label{min-width:100%;text-align:left;margin:0 0 0.25rem 0;color:var(--text);display:block}
#formMessage{margin-top:.5rem;color:var(--gold)}

.owner{display:flex;gap:2rem;align-items:center;padding:2rem 0;justify-content:center;position:relative}
.owner-photo{width:320px;height:320px;object-fit:cover;border-radius:6px;position:relative;z-index:2}
.owner > div{position:relative;z-index:2}
.owner::before{content:"";position:absolute;left:calc(50% - 628px);top:50%;transform:translateY(-50%);width:0;height:0;border-left:200px solid transparent;border-right:200px solid transparent;border-bottom:346px solid #000;z-index:1}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;align-items:start}
.gallery img{width:100%;height:auto;border-radius:8px;cursor:pointer;display:block;object-fit:cover}

.site-footer{padding:1.25rem 0;color:var(--muted);border-top:1px solid rgba(0,0,0,0.04);text-align:center}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.88);display:flex;align-items:center;justify-content:center;padding:2rem;z-index:999}
.lightbox img{max-width:95%;max-height:90%;border-radius:8px}

/* Responsive */
@media (max-width:980px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .site-logo{height:140px}
}
@media (max-width:640px){
  html{font-size:17px}
  .container{width:94%}
  .header-inner{flex-direction:column;align-items:center}
  /* Show nav links directly on mobile */
  .site-nav{position:static;background:transparent;padding:.5rem 0;display:block}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:row;gap:1rem;justify-content:center}
  .nav-toggle{display:none}
  .services-grid{grid-template-columns:1fr;justify-items:stretch}
  .service{max-width:none}
  .gallery{grid-template-columns:1fr}
  .hero h1{font-size:1.6rem}
  .owner{flex-direction:column}
  .owner::before{display:none}
  .owner-photo{width:260px;height:260px}
  .owner > div{padding:0 0.5rem}
  .contact form{flex-direction:column;width:100%;align-items:stretch;gap:.5rem;justify-content:flex-start}
  .contact .btn{width:100%}
  .contact input[type="text"], .contact input[type="email"]{flex:1 1 auto;width:100%}
  .site-logo{height:180px}
}
