:root{
  /* Modern dark-blue / teal palette */
  --bg:#071022; /* deep navy */
  --card:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.015)); /* subtle glass */
  --muted:rgba(255,255,255,0.7);
  --accent:#1dd3c9; /* teal accent */
  --accent-2:#60a5fa; /* soft blue accent for gradients */
  --text:rgba(255,255,255,0.95);
  --radius:12px;
  --container:1100px;
  --header-h:64px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;color:var(--text)}

/* Continuous background image on root with a light translucent overlay so image remains visible */
html{
  background-image: linear-gradient(rgba(7,16,34,0.6), rgba(7,16,34,0.6)), url('../assets/hero-bg.jpg'), url('../assets/hero-bg.svg');
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  color-scheme: dark;
}
.container{max-width:var(--container);margin:0 auto;padding:1.25rem}
.container-full{max-width:none;width:100%;padding-left:1.25rem;padding-right:1.25rem}

.site-header{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--header-h);
  display:flex;align-items:center;
  z-index:1000;
  background: rgba(6,12,20,0.45);
  backdrop-filter: blur(8px) saturate(120%);
  border-bottom:1px solid rgba(255,255,255,0.03);
  transition:height 220ms ease, background 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}
.logo{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--text);text-decoration:none;font-size:1.125rem}
.logo-icon{width:32px;height:32px;display:inline-block;transition:width 220ms ease,height 220ms ease,transform 220ms ease}
.logo-text{display:inline-block;transition:transform 220ms ease,opacity 220ms ease}

.site-header.scrolled{
  height:calc(var(--header-h) - 8px);
  background: rgba(6,12,20,0.6);
  box-shadow: 0 8px 30px rgba(2,6,23,0.6);
  transform: translateZ(0);
}
.site-header.scrolled .logo-icon{width:28px;height:28px;transform:translateY(-1px)}
.site-header.scrolled .logo-text{transform:translateY(-1px);opacity:0.98}

.main-nav{display:flex;gap:1rem;flex:1;justify-content:center}
.main-nav a{color:var(--muted);text-decoration:none;padding:.5rem .75rem;border-radius:8px;font-weight:600}
.main-nav a:hover{color:var(--text);background:linear-gradient(90deg, rgba(255,255,255,0.02), rgba(255,255,255,0.03))}
.main-nav a.active{background:linear-gradient(90deg, rgba(29,211,201,0.12), rgba(96,165,250,0.06));color:var(--text);box-shadow:inset 0 -2px 0 rgba(255,255,255,0.02)}
.actions{display:flex;align-items:center;gap:.5rem;z-index:1001}
.lang-toggle button{background:transparent;border:1px solid rgba(0,0,0,0.06);color:var(--muted);padding:.2rem .5rem;border-radius:6px}
.lang-toggle button.active{background:var(--accent);color:#071022;border:none}
.hamburger{display:none;background:transparent;border:none;color:var(--text);font-size:1.25rem}

.hero{position:relative;padding:3rem 0}
.hero-inner{position:relative;z-index:1;max-width:var(--container);margin:0 auto;padding:3rem 1.25rem;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero-inner{background:transparent;border-radius:0;padding:3rem 2rem;border:none;backdrop-filter:none}
.hero-inner h1{font-size:clamp(1.75rem,3.5vw,3rem);margin:0 0 .5rem;color:var(--text);letter-spacing:-0.01em}
.hero-inner p{color:var(--muted);max-width:72ch;margin:18px auto;text-align:center;line-height:1.45;font-size:1.05rem}
/* Respect newline characters in localized paragraph text (\n -> line break) */
p[data-i18n]{white-space:pre-line}

/* Justify the home lead text for better reading flow */
[data-i18n="home.lead"],
[data-i18n="home.lead"] p,
[data-i18n="home.lead"] li{
  text-align:left;
  text-justify:inter-word;
}
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-top:1.25rem}
.lead-box{border:none;padding:1.25rem 1rem;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));max-width:var(--container);margin-top:1rem;color:var(--text);text-align:center;width:100%;margin-left:auto;margin-right:auto;backdrop-filter:blur(6px)}
.lead-box p{margin:0;color:var(--text);line-height:1.6;font-size:1rem;max-width:90ch;margin:0 auto;white-space:pre-line}
.card{background:transparent;padding:1rem;border-radius:var(--radius);text-align:center;border:1px solid rgba(255,255,255,0.03);backdrop-filter:blur(6px)}

.section{opacity:0;transform:translateY(18px);transition:opacity 560ms cubic-bezier(.2,.9,.2,1),transform 560ms cubic-bezier(.2,.9,.2,1)}
.section.visible{opacity:1;transform:none}

/* Make each section full-height hero and enable scroll-snap */
main{padding-top:calc(var(--header-h) + 0.5rem);text-align:center;scroll-snap-type:y mandatory;overflow-y:auto;height:calc(100vh - var(--header-h))}
.section{position:relative;min-height:calc(100vh - var(--header-h));display:flex;flex-direction:column;align-items:center;justify-content:center;scroll-snap-align:start;padding:2rem 0;gap:1rem}

/* Make non-hero section headings stick to the top of the viewport (below header) */
.section:not(.hero) h2{
  position:sticky;
  top:calc(var(--header-h) + 0.75rem);
  z-index:20;
  margin:0 0 1rem 0;
  background:transparent;
  padding:0.25rem 0;
  text-align:center;
  color:var(--text);
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:0.08em;
}

/* Hero title remains normal (not sticky) */
.hero-inner h1{margin-top:0}

/* Ensure all section headings are centered (covers hero-like sections too) */
.section h2{text-align:center}

.no-scrollbar{
  /* hide scrollbar while keeping scroll functionality */
  scrollbar-width: none; /* Firefox */
}
.no-scrollbar::-webkit-scrollbar{display:none} /* Chrome/Safari */

/* Section indicators (pagination dots) */
.section-indicators{position:fixed;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:1100}
.section-indicators button{width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,0.06);background:transparent;cursor:pointer;padding:0}
.section-indicators button.active{background:var(--accent);border-color:var(--accent)}
.section-indicators button:focus{outline:2px solid rgba(29,211,201,0.12)}

.posts{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:1rem;align-items:start}

/* Large screens: ensure each post does not exceed one third of the available width */
@media (min-width:1200px){
  .posts{grid-template-columns:repeat(2,minmax(240px,1fr));max-width:calc(100%);}
  .post{max-width:70%;margin:0 auto}
  /* Portfolio: 4 columns on wide screens */
  .grid{grid-template-columns:repeat(4,minmax(240px,1fr)) !important;gap:2rem;max-width:1200px;margin:0 auto;padding:0 1rem}
}
.post{background:transparent;padding:1rem;border-radius:8px;text-align:left;border:1px solid rgba(255,255,255,0.03)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;max-width:var(--container);margin:0 auto;padding:0 1rem}
.grid .card{text-align:center}
.thumb{height:160px;background:linear-gradient(135deg,var(--accent),var(--accent-2));border-radius:8px}

/* Portfolio item wrapper styling */
.portfolio-item{display:block;width:100%;outline:none;padding:.5rem}
.portfolio-item:focus{box-shadow:0 12px 30px rgba(29,211,201,0.08);transform:translateY(-6px);transition:transform 220ms ease,box-shadow 220ms ease}
.card-caption{color:var(--muted);font-weight:600;padding:0.75rem 0}

/* Portfolio image styling and lightbox */
.portfolio-img{width:100%;height:160px;object-fit:cover;border-radius:8px;display:block}
.portfolio-item .card{padding:0;overflow:hidden}

/* Lightbox overlay */
#lightbox{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:linear-gradient(rgba(2,6,23,0.85), rgba(2,6,23,0.95));z-index:2000}
#lightbox.show{display:flex}
#lightbox .lb-inner{max-width:1100px;width:95%;max-height:88vh;display:flex;flex-direction:column;gap:1rem;align-items:center}
#lightbox img{max-width:100%;max-height:76vh;border-radius:8px;box-shadow:0 20px 60px rgba(2,6,23,0.6)}
#lightbox .lb-caption{color:var(--muted);text-align:center}
#lightbox .lb-close{position:absolute;top:20px;right:20px;background:transparent;border:0;color:var(--muted);font-size:1.25rem}
#lightbox .lb-controls{position:absolute;left:20px;right:20px;top:50%;display:flex;justify-content:space-between;pointer-events:none}
#lightbox button.lb-btn{pointer-events:auto;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.04);color:var(--muted);padding:.5rem .75rem;border-radius:6px}

.contact-grid{display:grid;grid-template-columns:2.2fr 420px;gap:3rem;align-items:start}
.contact-left{display:flex;flex-direction:column;align-items:center}
.contact .contact-left h2{margin:0 0 1rem 0;text-align:center}
.contact-info{border-left:2px solid rgba(0,0,0,0.12);padding-left:3rem}
form{display:flex;flex-direction:column;gap:.5rem;text-align:center}
form label{display:block;text-align:center}
.contact form{width:100%;max-width:500px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.contact form input,.contact form textarea{
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.16);
  padding:1rem;border-radius:8px;color:var(--text);width:100%;box-sizing:border-box;backdrop-filter:blur(6px)
}
.contact form input::placeholder,.contact form textarea::placeholder{color:rgba(255,255,255,0.65)}
.contact form textarea{min-height:160px}
input,textarea{background:transparent;border:1px solid rgba(15,23,42,0.06);padding:.6rem;border-radius:6px;color:var(--text)}
.btn{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#071022;padding:.6rem;border:none;border-radius:8px;cursor:pointer;font-weight:700}
.contact-info{display:flex;flex-direction:column;gap:1rem}
.footer-col strong{display:block;color:var(--muted)}
.map-wrap{height:160px;border-radius:8px;overflow:hidden}
.map-wrap iframe{width:100%;height:100%;border:0}
.socials{display:flex;gap:.5rem;margin-top:.5rem}
.socials a{color:var(--muted);text-decoration:none}

.site-footer{border-top:1px solid rgba(255,255,255,0.03);padding:1rem 0;margin-top:2rem;text-align:center}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem}

@media (max-width:900px){
  .container{padding:1rem}
  .contact-grid{grid-template-columns:1fr}
  .hamburger{display:block}
  .main-nav{position:absolute;right:1rem;top:calc(var(--header-h) + 0.25rem);background:rgba(255,255,255,0.98);padding:.75rem;border-radius:8px;display:none;flex-direction:column;box-shadow:0 6px 18px rgba(15,23,42,0.06)}
  .main-nav.show{display:flex}
  /* Mobile menu contrast: dark background with light links */
  .main-nav{background:rgba(2,6,23,0.92);box-shadow:0 12px 30px rgba(2,6,23,0.6)}
  .main-nav a{color:var(--muted);padding:.6rem .9rem}
  .contact-info{border-left:none;padding-left:0;margin-top:1rem}
  .contact form{max-width:200px}
  /* Contact heading: center above form on small screens */
  #contact h2{
    position:static;
    transform:none;
    top:auto;
    z-index:inherit;
    margin:0 0 1rem 0;
    background:transparent;
    padding:0;
    text-align:center;
    width:100%;
  }
}

@media (max-width:900px){
  .posts{grid-template-columns:1fr}
}

@media (max-width:600px){
  /* add extra space above hero content on small screens for better visual breathing room */
  .hero-inner{margin-top:1.75rem;padding-top:0}
  .hero-inner{padding:1.25rem}
}
