*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-base);font-size:16px;line-height:1.6;color:var(--c-grey-dark);background:var(--c-white);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-primary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;margin:0 0 var(--sp-4);color:var(--c-primary)}
h1{font-size:2.25rem}
h2{font-size:1.75rem}
h3{font-size:1.25rem}
p{margin:0 0 var(--sp-4)}
ul,ol{margin:0 0 var(--sp-4);padding-left:1.5rem}
.container{width:min(var(--container),100% - var(--sp-6)*2);margin-inline:auto}

.top-bar{background:var(--c-dark);color:var(--c-accent);padding:var(--sp-2) 0;font-size:.875rem}
.top-bar .container{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4)}
.top-bar a{color:var(--c-accent);font-weight:600}
.top-bar a.btn{color:var(--c-dark)}
.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:var(--radius);font-family:var(--font-heading);font-weight:600;text-align:center;cursor:pointer;border:0;transition:background var(--transition),color var(--transition)}
.btn-primary{background:var(--c-accent);color:var(--c-dark)}
.btn-primary:hover{background:#e5c72a;color:var(--c-dark);text-decoration:none}
.btn-white{background:var(--c-white);color:var(--c-dark)}
.btn-outline-white{background:transparent;color:var(--c-white);border:2px solid var(--c-white)}

.site-header{background:var(--c-white);box-shadow:0 1px 0 rgba(0,0,0,.1);position:relative;z-index:100}
.site-header .container{display:flex;justify-content:space-between;align-items:center;min-height:80px;gap:var(--sp-4)}
.logo img{max-height:70px;width:auto}
.nav-toggle{display:none;background:none;border:0;font-size:1.5rem;cursor:pointer}
.nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:var(--sp-6)}
.nav-list a{font-family:var(--font-heading);font-size:.9375rem;font-weight:600;color:var(--c-dark);text-transform:uppercase;letter-spacing:.02em}
.nav-list a:hover,.nav-list a[aria-current="page"]{color:var(--c-primary)}
.nav-cta{margin-left:var(--sp-4)}

.hero{position:relative;min-height:500px;display:flex;align-items:center;background-size:cover;background-position:center;color:var(--c-white);padding:var(--sp-12) 0}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.25))}
.hero .container{position:relative;z-index:1;max-width:700px}
.hero h1{color:var(--c-white);font-size:2.75rem;margin-bottom:var(--sp-3)}
.hero p{font-size:1.25rem;margin-bottom:var(--sp-6)}
.hero-actions{display:flex;gap:var(--sp-4);flex-wrap:wrap}

section{padding:var(--sp-12) 0}
section.bg-light{background:var(--c-grey-light)}

.text-image-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:center}
.text-image-grid.reverse{direction:rtl}
.text-image-grid.reverse>*{direction:ltr}
.text-image-photo img{border-radius:var(--radius);box-shadow:var(--shadow)}

.services-grid .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
.service-card{background:var(--c-white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform var(--transition)}
.service-card:hover{transform:translateY(-4px)}
.service-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.service-card h3{padding:var(--sp-4);font-size:1.1rem;text-align:center;color:var(--c-primary)}

.cta-band{background:var(--c-primary);color:var(--c-white);text-align:center;padding:var(--sp-8) 0}
.cta-band h2{color:var(--c-white);margin-bottom:var(--sp-6)}
.cta-band .actions{display:flex;justify-content:center;gap:var(--sp-4);flex-wrap:wrap}

.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--sp-6)}
.team-card{text-align:center}
.team-card img{width:180px;height:180px;object-fit:cover;border-radius:50%;margin:0 auto var(--sp-4)}
.team-card h3{margin-bottom:var(--sp-1)}
.team-card .title{color:var(--c-grey);margin-bottom:var(--sp-2)}
.team-card a{font-weight:600}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--sp-4)}
.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);cursor:pointer;transition:transform var(--transition)}
.gallery-grid img:hover{transform:scale(1.02)}

.contact-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--sp-6)}
.contact-card{background:var(--c-grey-light);padding:var(--sp-6);border-radius:var(--radius);text-align:center}
.contact-card h3{margin-bottom:var(--sp-2)}
.contact-card .phone{font-size:1.25rem;font-weight:700;color:var(--c-primary)}

.site-footer{background:var(--c-dark);color:var(--c-white);padding:var(--sp-8) 0 var(--sp-4)}
.site-footer a{color:var(--c-accent)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--sp-6);margin-bottom:var(--sp-6)}
.footer-bar{border-top:1px solid rgba(255,255,255,.2);padding-top:var(--sp-4);text-align:center;font-size:.875rem;color:rgba(255,255,255,.7)}

.error-page{text-align:center;padding:var(--sp-16) 0}

.breadcrumbs{background:var(--c-grey-light);padding:var(--sp-2) 0;font-size:.85rem}
.breadcrumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.breadcrumbs li{display:flex;align-items:center;gap:var(--sp-2)}
.breadcrumbs li+li::before{content:'/';color:var(--c-grey)}
.breadcrumbs li[aria-current]{color:var(--c-grey)}

@media(max-width:1023px){
    .nav-toggle{display:block;margin-left:auto}
    .site-header .container{justify-content:flex-start}
    .nav-list{position:absolute;top:100%;left:0;right:0;background:var(--c-white);flex-direction:column;align-items:stretch;padding:var(--sp-4);box-shadow:var(--shadow);display:none}
    .nav-list.open{display:flex}
    .nav-list li{border-bottom:1px solid var(--c-border)}
    .nav-list a{display:block;padding:var(--sp-3) 0}
    .nav-cta{margin:var(--sp-4) 0 0}
    .text-image-grid,.services-grid .grid{grid-template-columns:1fr 1fr}
    .hero h1{font-size:2rem}
    .top-bar .container{flex-direction:column;gap:var(--sp-2);text-align:center}
}
@media(max-width:640px){
    .services-grid .grid{grid-template-columns:1fr}
    .text-image-grid{grid-template-columns:1fr}
    .hero{min-height:0;padding:var(--sp-8) 0}
    .hero p{font-size:1.05rem}
    h1{font-size:1.75rem}
    h2{font-size:1.45rem}
    section{padding:var(--sp-8) 0}
    .cta-band .actions .btn{flex:1 1 100%}
    .hero-actions .btn{flex:1 1 auto}
    .team-card img{width:140px;height:140px}
    .logo img{max-height:54px}
    .site-header .container{min-height:64px}
}
