/*
Theme Name: NORDLEC Clean
Theme URI: https://www.nordlec.ee/
Author: OpenAI for NORDLEC
Description: Clean, responsive NORDLEC WordPress theme with bundled demo content, mapped media and Contact Form 7 integration.
Version: 1.1.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: nordlec
*/

:root{
  --nl-blue:#0a82ff;
  --nl-blue-2:#00b8ff;
  --nl-navy:#07131f;
  --nl-ink:#0d1722;
  --nl-muted:#6c7785;
  --nl-line:#dfe6ee;
  --nl-bg:#f5f8fb;
  --nl-white:#fff;
  --nl-radius:18px;
  --nl-shadow:0 18px 50px rgba(9,28,48,.10);
  --nl-container:1180px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--nl-ink);background:#fff;line-height:1.55}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}.nl-container{width:min(var(--nl-container),calc(100% - 40px));margin:auto}.nl-section{padding:84px 0}.nl-section-tight{padding:54px 0}.nl-kicker{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--nl-blue)}.nl-title{font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;margin:.35rem 0 1rem;letter-spacing:-.035em}.nl-subtitle{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.1;margin:.25rem 0 1.1rem;letter-spacing:-.025em}.nl-copy{color:var(--nl-muted);max-width:760px}.nl-btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border-radius:10px;padding:14px 20px;font-weight:800;border:1px solid transparent;transition:.2s ease}.nl-btn:hover{transform:translateY(-1px)}.nl-btn-primary{background:linear-gradient(135deg,var(--nl-blue),#0967ef);color:#fff;box-shadow:0 12px 30px rgba(10,130,255,.28)}.nl-btn-outline{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(6,16,26,.22);backdrop-filter:blur(8px)}.nl-btn-dark{background:var(--nl-navy);color:#fff}.nl-card{background:#fff;border:1px solid var(--nl-line);border-radius:var(--nl-radius);overflow:hidden;box-shadow:0 10px 32px rgba(15,35,55,.06)}

.nl-header{position:sticky;top:0;z-index:1000;background:rgba(5,14,23,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}.nl-header .nl-container{height:78px;display:flex;align-items:center;gap:34px}.nl-logo{display:flex;align-items:center;gap:11px;color:#fff;font-weight:900;letter-spacing:.02em;margin-right:auto}.nl-logo-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#03223e,#0a82ff);display:grid;place-items:center;color:#fff;font-weight:950;font-size:1.1rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.nl-logo-text strong{display:block;font-size:1.28rem;line-height:1}.nl-logo-text span{font-size:.58rem;opacity:.72;letter-spacing:.08em}.nl-nav ul{display:flex;list-style:none;gap:28px;margin:0;padding:0}.nl-nav a{color:#fff;font-size:.84rem;font-weight:750;opacity:.88}.nl-nav a:hover,.nl-nav .current-menu-item>a{color:#5ac5ff}.nl-mobile-toggle{display:none;border:0;background:transparent;color:#fff;font-size:1.7rem}

.nl-hero{position:relative;min-height:640px;color:#fff;display:flex;align-items:center;background-image:linear-gradient(90deg,rgba(3,13,23,.96) 0%,rgba(3,13,23,.76) 42%,rgba(3,13,23,.32) 72%,rgba(3,13,23,.52) 100%),var(--nl-hero-image,none);background-size:cover;background-position:center}.nl-hero:after{content:"";position:absolute;inset:auto 0 0;height:140px;background:linear-gradient(180deg,transparent,rgba(4,14,24,.45))}.nl-hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.nl-hero .nl-title{font-size:clamp(2.6rem,5vw,4.5rem);max-width:760px}.nl-hero .nl-title em{font-style:normal;color:#2d9cff}.nl-hero p{font-size:1.12rem;max-width:590px;color:rgba(255,255,255,.84)}.nl-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.nl-benefits{margin-left:auto;width:min(430px,100%);padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(5,17,28,.62);backdrop-filter:blur(12px)}.nl-benefit{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.08)}.nl-benefit:last-child{border-bottom:0}.nl-check{width:34px;height:34px;border-radius:10px;background:rgba(10,130,255,.16);color:#4bb4ff;display:grid;place-items:center;font-weight:900}

.nl-services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}.nl-service-card{transition:.2s ease}.nl-service-card:hover{transform:translateY(-4px);box-shadow:var(--nl-shadow)}.nl-service-card img{width:100%;height:180px;object-fit:cover}.nl-card-body{padding:20px}.nl-service-card h3{margin:0 0 6px;font-size:1.05rem}.nl-service-card p{font-size:.89rem;color:var(--nl-muted);margin:0}.nl-arrow{color:var(--nl-blue);font-weight:900}.nl-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.nl-link{color:var(--nl-blue);font-weight:800;font-size:.86rem}

.nl-about{background:var(--nl-bg)}.nl-about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:0;overflow:hidden;border-radius:24px;background:#fff;border:1px solid var(--nl-line)}.nl-about-image{min-height:430px;position:relative;background:transparent}.nl-about-copy{padding:52px}.nl-icon-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}.nl-icon-item{padding:18px;border:1px solid var(--nl-line);border-radius:14px}.nl-icon{font-size:1.4rem;color:var(--nl-blue);margin-bottom:8px}.nl-icon-item strong{display:block}.nl-icon-item span{color:var(--nl-muted);font-size:.86rem}

.nl-projects-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:28px}.nl-project-card{position:relative;border-radius:16px;overflow:hidden;min-height:250px;background:#ddd}.nl-project-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.nl-project-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(4,13,22,.86))}.nl-project-card .label{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;color:#fff;font-weight:800}.nl-project-card .label small{display:block;color:#7bd0ff;font-weight:700;margin-bottom:3px}

.nl-cta{background:linear-gradient(90deg,#07131f,#0b1e31);color:#fff}.nl-cta-grid{display:flex;align-items:center;justify-content:space-between;gap:40px}.nl-cta h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 10px}.nl-cta p{color:rgba(255,255,255,.72);margin:0}

.nl-page-hero{padding:86px 0;background:linear-gradient(135deg,#07131f,#0d2a42);color:#fff}.nl-page-hero .nl-copy{color:rgba(255,255,255,.73)}.nl-breadcrumbs{font-size:.82rem;color:#83cfff;margin-bottom:20px}.nl-content{max-width:860px}.nl-content h2{font-size:2rem;margin-top:2rem}.nl-content ul{padding-left:1.2rem}.nl-content li{margin:.5rem 0}.nl-two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.nl-feature-image{border-radius:18px;overflow:hidden;box-shadow:var(--nl-shadow)}.nl-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.nl-gallery img{width:100%;height:240px;object-fit:cover;border-radius:16px}.nl-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}.nl-pill{padding:9px 14px;border-radius:999px;background:#eef5fb;color:#32506b;font-size:.83rem;font-weight:800}.nl-pill.active{background:var(--nl-blue);color:#fff}

.nl-contact-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:36px}.nl-contact-box{padding:28px;border:1px solid var(--nl-line);border-radius:18px;background:#fff}.nl-contact-list{display:grid;gap:16px}.nl-contact-item{display:flex;gap:12px;align-items:flex-start}.nl-contact-item b{display:block}.nl-contact-item span{color:var(--nl-muted)}.wpcf7-form p{margin:0 0 16px}.wpcf7-form label{font-weight:700;font-size:.9rem}.wpcf7-form input,.wpcf7-form textarea{width:100%;margin-top:7px;border:1px solid #ced8e2;border-radius:10px;padding:13px 14px;font:inherit}.wpcf7-form input[type=submit]{background:var(--nl-blue);color:#fff;border:0;font-weight:800;cursor:pointer}.nl-cf7-missing{padding:20px;border-radius:12px;background:#fff4db;border:1px solid #f4d58b;color:#604a11}

.nl-footer{background:#06111c;color:#fff;padding:58px 0 18px}.nl-footer-grid{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));column-gap:clamp(28px,4vw,56px);row-gap:32px}.nl-footer h4{margin:0 0 14px}.nl-footer p,.nl-footer li,.nl-footer a{color:rgba(255,255,255,.68);font-size:.9rem}.nl-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}.nl-footer-bottom{margin-top:38px;padding-top:18px;border-top:1px solid rgba(255,255,255,.09);display:flex;justify-content:space-between;gap:20px;color:rgba(255,255,255,.45);font-size:.8rem}

@media (max-width:1024px){.nl-services-grid{grid-template-columns:repeat(2,1fr)}.nl-projects-grid{grid-template-columns:repeat(3,1fr)}.nl-nav{display:none}.nl-mobile-toggle{display:block}.nl-header .nl-btn{display:none}.nl-hero-grid,.nl-two-col,.nl-contact-grid,.nl-about-grid{grid-template-columns:1fr}.nl-benefits{margin:0}.nl-about-image{min-height:320px}.nl-footer-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.nl-container{width:min(100% - 28px,var(--nl-container))}.nl-section{padding:62px 0}.nl-header .nl-container{height:68px}.nl-logo-text span{display:none}.nl-hero{min-height:760px;background-position:62% center}.nl-hero-grid{gap:34px}.nl-hero .nl-title{font-size:3.2rem}.nl-services-grid,.nl-projects-grid,.nl-gallery,.nl-icon-grid,.nl-footer-grid{grid-template-columns:1fr}.nl-project-card{min-height:290px}.nl-section-head,.nl-cta-grid,.nl-footer-bottom{align-items:flex-start;flex-direction:column}.nl-about-copy{padding:30px}.nl-actions{flex-direction:column;align-items:stretch}.nl-actions .nl-btn{width:100%}.nl-nav.open{display:block;position:absolute;top:68px;left:0;right:0;background:#07131f;padding:18px}.nl-nav.open ul{flex-direction:column;gap:4px}.nl-nav.open a{display:block;padding:12px}}

/* 1.0.1: Customizer logo. Other page/layout styles are unchanged. */
.nl-logo-custom{
  width:var(--nl-logo-width,280px);
  max-width:100%;
  min-width:0;
  flex:0 1 var(--nl-logo-width,280px);
}
.nl-logo-custom .custom-logo-link{
  display:flex;
  align-items:center;
  width:100%;
  max-width:100%;
  line-height:0;
}
.nl-logo-custom .custom-logo{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:60px;
  object-fit:contain;
  object-position:left center;
}
.nl-header .nl-logo-custom~.nl-nav,
.nl-header .nl-logo-custom~.nl-btn,
.nl-header .nl-logo-custom~.nl-mobile-toggle{flex-shrink:0}
.nl-footer .nl-logo-custom .custom-logo{max-height:100px}
@media(max-width:700px){
  .nl-header .nl-logo-custom .custom-logo{max-height:50px}
}

/* 1.0.2: Optional company details, without changing the existing page grid. */
.nl-contact-grid > *,
.nl-footer-grid > *,
.nl-contact-item > div{min-width:0}
.nl-contact-item .nl-check{flex:0 0 34px;color:#4bb4ff}
.nl-detail-value{display:block;overflow-wrap:anywhere}
.nl-footer-contact li,
.nl-footer-bottom > span{overflow-wrap:anywhere}
.nl-footer-contact .nl-company-name{color:#fff}
.nl-contact-item a:hover,
.nl-footer-contact a:hover{color:var(--nl-blue)}

/* Keep the existing mobile navigation usable at tablet widths as well. */
@media(max-width:1024px){
  .nl-nav.open{display:block;position:absolute;top:100%;left:0;right:0;background:#07131f;padding:18px}
  .nl-nav.open ul{flex-direction:column;gap:4px}
  .nl-nav.open a{display:block;padding:12px}
}

/* 1.0.3: Header-only logo sizing. Footer rules and its saved width are unchanged.
   Remove the old 60/50px cap so the chosen header width actually takes effect.
   Let the header grow with the image instead of overlapping the page or menu. */
.nl-header > .nl-container{
  height:auto;
  min-height:90px;
  padding-top:10px;
  padding-bottom:10px;
}
.nl-header .nl-logo-custom{
  width:var(--nl-header-logo-width,360px);
  flex:0 1 var(--nl-header-logo-width,360px);
}
.nl-header .nl-logo-custom .custom-logo{
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
}
.nl-header .nl-nav a,
.nl-header .nl-btn{white-space:nowrap}
@media(max-width:1024px){
  .nl-header > .nl-container{gap:16px}
  .nl-header .nl-logo-custom{max-width:calc(100% - 60px)}
  .nl-header .nl-mobile-toggle{min-width:44px;min-height:44px;padding:4px}
}
@media(max-width:700px){
  .nl-header > .nl-container{min-height:76px;padding-top:8px;padding-bottom:8px}
  .nl-header .nl-logo-custom{
    width:var(--nl-header-logo-mobile-width,240px);
    flex-basis:var(--nl-header-logo-mobile-width,240px);
  }
}

/* 1.0.4: Three balanced footer columns; the duplicate menu is removed.
   Logo dimensions, contact details, header and page styles stay unchanged. */
.nl-footer-brand p{max-width:34ch;margin:16px 0 0}
@media(min-width:701px) and (max-width:1024px){
  .nl-footer-brand{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:inherit;
    align-items:center;
  }
  .nl-footer-brand > *{min-width:0}
  .nl-footer-brand p{margin:0}
}
@media(max-width:700px){
  .nl-footer-grid{row-gap:28px}
}

/* 1.1.0: Editable images keep the existing containers and responsive geometry. */
.nl-about-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.nl-about-no-image,.nl-two-col.nl-no-image{grid-template-columns:1fr}
.nl-gallery-item{display:block;min-width:0;margin:0}
.nl-gallery-item[hidden]{display:none!important}
.nl-gallery-caption{padding:12px 2px;font-weight:700;overflow-wrap:anywhere}
.nl-gallery-caption small{display:block;color:var(--nl-blue);font-weight:600}
button.nl-pill{border:0;font-family:inherit;cursor:pointer;line-height:inherit}
button.nl-pill:focus-visible,.nl-btn:focus-visible,.nl-link:focus-visible{outline:3px solid var(--nl-blue);outline-offset:4px}
.nl-hero-grid>*,.nl-about-grid>*,.nl-services-grid>*,.nl-projects-grid>*,.nl-cta-grid>*,.nl-two-col>*{min-width:0}
.nl-title,.nl-subtitle,.nl-card-body,.nl-about-copy,.nl-copy,.nl-footer h4,.nl-footer-brand p,.nl-footer li,.nl-gallery-caption,.nl-benefit>span:last-child{overflow-wrap:anywhere}
.nl-benefit .nl-check{flex:0 0 34px}
.nl-copy{white-space:pre-line}
.nl-page-hero .nl-copy p:first-child{margin-top:0}
.nl-hero{padding-top:36px;padding-bottom:36px}
@media(max-width:700px){.nl-hero .nl-title{font-size:clamp(2.6rem,10vw,3.2rem)}.nl-hero-grid{gap:28px}}
