* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    font-family:"Open Sans",Arial,sans-serif;
    color:#555;
    background:#fff;
    font-size:13px;
    line-height:1.7
}

a {
    text-decoration:none;
    color:inherit
}

img {
    max-width:100%;
    display:block
}

.container {
    width:min(1140px,calc(100% - 80px));
    margin:auto
}

.topbar {
    height:42px;
    border-bottom:1px solid #bbb;
    color:#777;
    background:#fff;
    display:flex;
    align-items:center;
    font-size:13px;
    letter-spacing:1px
}

.topbar .container {
    display:flex;
    justify-content:space-between;
    align-items:center
}

.top-info {
    display:flex;
    gap:30px;
    align-items:center
}

.top-info span b {
    color:#929292
}

.social {
    display:flex;
    gap:18px;
    font-weight:700
}

.site-header {
    height:82px;
    background:#fff;
    position:sticky;
    top:0;
    z-index:50;
    box-shadow:0 1px 0 rgba(0,0,0,.08)
}

.site-header .container {
    height:100%;
    display:flex;
    align-items:center;
    justify-content:space-between
}

.logo img {
    width:300px;
    max-height:69px;
    object-fit:contain
}

.nav {
    display:flex;
    align-items:center;
    gap:0
}

.nav a {
    font-family:Raleway,Arial,sans-serif;
    font-size:11px;
    letter-spacing:3px;
    font-weight:700;
    color:#111;
    padding:30px 14px 28px;
    text-transform:uppercase;
    white-space:nowrap
}

.nav a:not(:last-child)::after {
    content:'•';
    margin-left:22px;
    color:#aaa
}

.nav a.active,.nav a:hover {
    color:#111
}

.menu-btn {
    display:none;
    border:0;
    background:#333;
    color:#fff;
    width:40px;
    height:40px;
    font-size:20px
}

.hero {
    position:relative;
    height:515px;
    overflow:hidden;
    background:#ddd
}

.slide {
    position:absolute;
    inset:0;
    opacity:0;
    transition:opacity .7s ease
}

.slide.active {
    opacity:1
}

.slide img {
    width:100%;
    height:100%;
    object-fit:cover
}

.dots {
    position:absolute;
    bottom:18px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    gap:7px;
    z-index:4
}

.dot {
    width:18px;
    height:18px;
    border:3px solid #fff;
    background:#aaa;
    border-radius:50%;
    cursor:pointer;
    box-shadow:0 0 2px #333
}

.dot.active {
    background:#fff
}

.section {
    padding:48px 0 66px
}

.section-title {
    text-align:center;
    font-family:Raleway,Arial,sans-serif;
    font-size:34px;
    font-weight:400;
    color:#333;
    line-height:1.2;
    margin:0 0 22px
}

.title-divider {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:15px;
    margin-bottom:50px
}

.title-divider::before,.title-divider::after {
    content:'';
    width:300px;
    height:1px;
    background:#ccc
}

.title-divider span {
    color:#aaa
}

.two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px
}

.service-intro h3 {
    font-size:19px;
    margin:0 0 4px;
    color:#999
}

.service-intro h3 span {
    font-weight:400;
    color:#333
}

.service-intro p {
    margin:0 0 28px;
    letter-spacing:.2px
}

.service-intro img {
    width:100%;
    height:318px;
    object-fit:cover
}

.gallery-filter {
    padding:75px 0 28px;
    text-align:center
}

.filter-btn {
    border:0;
    background:none;
    padding:10px 18px;
    letter-spacing:4px;
    font-size:11px;
    color:#999;
    cursor:pointer
}

.filter-btn.active {
    background:#999;
    color:#111
}

.gallery {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    min-height:196px
}

.gallery-item {
    overflow:hidden;
    position:relative;
    border-right:1px solid #aaa
}

.gallery-item img {
    width:100%;
    height:196px;
    object-fit:cover;
    transition:transform .5s
}

.gallery-item:hover img {
    transform:scale(1.06)
}

.gallery-item.hidden {
    display:none
}

.cta {
    background:#aaa;
    text-align:center;
    padding:60px 0
}

.btn-outline {
    display:inline-block;
    border:1px solid #222;
    padding:9px 30px;
    color:#222;
    letter-spacing:2px;
    text-transform:uppercase;
    font-size:13px;
    min-width:235px
}

.btn-outline::after {
    content:'›';
    font-size:28px;
    line-height:0;
    vertical-align:-3px;
    margin-left:18px;
    font-weight:700
}

.btn-outline:hover {
    background:#222;
    color:#fff
}

.subfooter {
    background:#0c0c0c;
    color:#ddd;
    padding:30px 0 20px
}

.subfooter .container {
    display:flex;
    justify-content:space-between;
    align-items:center
}

.copyright {
    font-size:13px
}

.copyright small {
    font-size:10px;
    color:#888
}

.footer-social {
    display:flex;
    gap:18px;
    font-weight:700
}

.page-banner {
    height:180px;
    background-size:cover;
    background-position:center;
    position:relative;
    color:#fff
}

.page-banner .overlay {
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.12)
}

.page-banner .container {
    height:100%;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between
}

.page-banner h1 {
    font-family:Raleway,Arial,sans-serif;
    font-size:33px;
    font-weight:300;
    letter-spacing:4px;
    margin:0
}

.breadcrumb {
    font-size:10px;
    letter-spacing:3px;
    text-transform:uppercase
}

.about-content {
    padding:18px 0 38px
}

.about-content h2 {
    text-align:center;
    font-size:30px;
    color:#333;
    margin:0 0 25px
}

.about-content> .container >p {
    margin:0 0 50px
}

.values-grid {
    display:grid;
    grid-template-columns:1fr 2fr 1fr;
    gap:28px;
    text-align:center
}

.value-icon {
    font-size:34px;
    color:#333;
    margin-bottom:38px
}

.value h3 {
    font-size:19px;
    color:#333;
    margin:0 0 30px
}

.value p {
    text-align:left
}

.core-box {
    border:1px solid #222;
    display:grid;
    grid-template-columns:1fr 1fr;
    font-size:18px;
    line-height:1.08;
    padding:10px 0
}

.core-box div+div {
    border-left:1px solid #222
}

.services-page {
    padding:80px 0 80px
}

.services-page .two-col {
    gap:30px
}

.service-card h2 {
    font-size:20px;
    font-weight:400;
    color:#333;
    margin:0 0 6px
}

.service-card p {
    margin:0 0 30px
}

.service-card img {
    height:318px;
    width:100%;
    object-fit:cover;
    margin-bottom:30px
}

.service-card .btn-outline {
    min-width:178px;
    padding:6px 22px;
    font-size:12px
}

.contact-map iframe {
    width:100%;
    height:450px;
    border:0;
    display:block
}

.contact-lead {
    text-align:center;
    font-size:20px;
    margin:27px 0
}

.contact-wrap {
    padding:0 0 120px
}

.contact-grid {
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:30px
}

.contact-grid h2 {
    font-size:20px;
    font-weight:400;
    color:#333;
    margin:0 0 34px
}

.form-grid {
    display:grid;
    grid-template-columns:230px 1fr;
    gap:30px
}

.fields {
    display:flex;
    flex-direction:column;
    gap:40px
}

.form-control {
    width:100%;
    padding:12px 10px;
    border:1px solid #ddd;
    background:#f7f7f7;
    font:inherit
}

.message {
    height:176px;
    resize:vertical
}

.submit {
    margin-top:44px;
    border:1px solid #ccc;
    background:#fff;
    padding:7px 30px;
    letter-spacing:2px;
    font-size:11px;
    cursor:pointer
}

.contact-info {
    border-collapse:collapse;
    width:100%;
    font-size:13px
}

.contact-info td {
    padding:4px 0;
    border-bottom:1px solid #ddd
}

.contact-info td:first-child {
    font-weight:700;
    color:#999;
    width:70px
}

.form-note {
    display:none;
    margin-top:12px;
    color:#4c7a4c
}

.backtop {
    position:fixed;
    right:33px;
    bottom:24px;
    width:34px;
    height:34px;
    background:#ddd;
    color:#333;
    display:grid;
    place-items:center;
    border-radius:2px;
    z-index:20
}

.backtop:hover {
    background:#111;
    color:#fff
}

@media(max-width:900px) {
    .container {
        width:min(100% - 40px,1140px)
    }
    .topbar {
        display:none
    }
    .site-header {
        height:auto;
        min-height:82px
    }
    .menu-btn {
        display:block
    }
    .nav {
        display:none;
        position:absolute;
        top:82px;
        left:0;
        right:0;
        background:#111;
        flex-direction:column;
        align-items:stretch
    }
    .nav.open {
        display:flex
    }
    .nav a {
        color:#fff;
        padding:14px 25px;
        border-bottom:1px solid #333
    }
    .nav a::after {
        display:none
    }
    .hero {
        height:430px
    }
    .two-col,.values-grid,.contact-grid {
        grid-template-columns:1fr
    }
    .gallery {
        grid-template-columns:repeat(2,1fr)
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .fields {
        gap:20px
    }
    .subfooter .container {
        flex-direction:column;
        gap:16px;
        text-align:center
    }
    .value p {
        text-align:center
    }
}

@media(max-width:560px) {
    .container {
        width:calc(100% - 30px)
    }
    .logo img {
        width:250px
    }
    .hero {
        height:330px
    }
    .gallery {
        grid-template-columns:1fr
    }
    .title-divider::before,.title-divider::after {
        width:80px
    }
    .service-intro img,.service-card img {
        height:260px
    }
    .page-banner {
        height:150px
    }
    .page-banner .container {
        align-items:flex-start;
        justify-content:center;
        flex-direction:column;
        gap:10px
    }
    .page-banner h1 {
        font-size:26px
    }
    .contact-map iframe {
        height:340px
    }
}

/* Restored Archi-style icons, dropdowns and service hover interactions */
.icon {
    width:15px;
    height:15px;
    vertical-align:-3px;
    margin-right:8px;
    fill:currentColor
}

.top-info span {
    display:flex;
    align-items:center
}

.social-links a {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:inherit;
    width:20px;
    height:20px;
    transition:opacity .25s,color .25s
}

.social-links a:hover {
    opacity:.55
}

.social-icon {
    width:15px;
    height:15px;
    fill:currentColor
}

.footer-social .social-icon {
    width:16px;
    height:16px
}

.nav-item {
    position:relative;
    display:flex;
    align-items:center
}

.nav-item>.nav-parent {
    display:block
}

.dropdown {
    position:absolute;
    top:100%;
    left:0;
    width:220px;
    background:#222327;
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:opacity .25s ease,transform .25s ease,visibility .25s;
    z-index:100;
    box-shadow:0 8px 20px rgba(0,0,0,.16)
}

.dropdown a {
    display:block!important;
    color:#d8d8d8!important;
    padding:13px 16px!important;
    line-height:1.4!important;
    text-align:left!important;
    border-bottom:1px solid #343538;
    font-size:10px!important;
    letter-spacing:3px!important
}

.dropdown a::after {
    display:none!important
}

.dropdown a:last-child {
    border-bottom:0
}

.dropdown a:hover {
    background:#2d2e31;
    color:#fff!important
}

.has-dropdown:hover .dropdown,.has-dropdown:focus-within .dropdown {
    opacity:1;
    visibility:visible;
    transform:translateY(0)
}

.gallery-item {
    display:block
}

.gallery-overlay {
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.72);
    color:#fff;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-transform:uppercase;
    letter-spacing:4px;
    opacity:0;
    transition:opacity .35s
}

.gallery-overlay b {
    font-size:12px
}

.gallery-overlay small {
    font-size:9px;
    margin-top:8px;
    letter-spacing:2px
}

.gallery-item:hover .gallery-overlay {
    opacity:1
}

.gallery-item:hover img {
    transform:scale(1.12)
}

.service-image {
    display:block;
    position:relative;
    overflow:hidden;
    margin-bottom:30px
}

.service-image img {
    margin:0!important;
    transition:transform .55s ease,filter .4s ease
}

.service-image span {
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.62);
    color:#fff;
    letter-spacing:4px;
    font-size:12px;
    opacity:0;
    transition:opacity .35s
}

.service-image:hover img {
    transform:scale(1.08)
}

.service-image:hover span {
    opacity:1
}

.value-icon svg {
    width:38px;
    height:38px;
    fill:#333
}

.service-detail {
    padding:65px 0 85px
}

.service-detail h2 {
    text-align:center;
    color:#333;
    font-size:30px;
    font-weight:400;
    margin:0 0 12px
}

.detail-lead {
    max-width:820px;
    margin:0 auto 45px;
    text-align:center;
    font-size:15px
}

.detail-gallery {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px
}

.detail-gallery-item {
    height:250px;
    overflow:hidden
}

.detail-gallery-item img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s
}

.detail-gallery-item:hover img {
    transform:scale(1.06)
}

.detail-actions {
    text-align:center;
    margin-top:45px;
    display:flex;
    gap:14px;
    justify-content:center;
    flex-wrap:wrap
}

.form-note {
    margin-top:14px;
    padding:9px 12px;
    border:1px solid #ddd;
    background:#f7f7f7
}

.form-note.success {
    color:#376b37;
    border-color:#b9d5b9
}

.form-note.error {
    color:#9b2d2d;
    border-color:#e1b2b2
}

.submit[disabled] {
    opacity:.55;
    cursor:not-allowed
}

@media(max-width:900px) {
    .nav-item {
        display:block
    }
    .dropdown {
        position:static;
        width:100%;
        opacity:1;
        visibility:visible;
        transform:none;
        display:none;
        box-shadow:none
    }
    .has-dropdown.open .dropdown {
        display:block
    }
    .dropdown a {
        padding-left:45px!important;
        background:#1a1a1a
    }
    .detail-gallery {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:560px) {
    .detail-gallery {
        grid-template-columns:1fr
    }
    .detail-gallery-item {
        height:240px
    }
}

/* Final functionality pass - faithful to original WordPress settings */
.top-info a,.contact-info a {
    color:inherit
}

.copyright a {
    color:inherit
}

.hero-arrow {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:6;
    width:44px;
    height:64px;
    border:0;
    background:rgba(0,0,0,.18);
    color:#fff;
    font-size:44px;
    line-height:1;
    opacity:0;
    transition:opacity .25s,background .25s;
    cursor:pointer
}

.hero:hover .hero-arrow,.hero-arrow:focus {
    opacity:1
}

.hero-arrow:hover {
    background:rgba(0,0,0,.48)
}

.hero-prev {
    left:18px
}

.hero-next {
    right:18px
}

.hero:focus-within .hero-arrow {
    opacity:1
}

.dot:focus-visible,.filter-btn:focus-visible,.menu-btn:focus-visible,.hero-arrow:focus-visible {
    outline:2px solid #555;
    outline-offset:2px
}

.gallery-filter {
    display:flex;
    justify-content:center;
    gap:0;
    flex-wrap:wrap
}

.service-copy-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px;
    align-items:start;
    margin-bottom:45px
}

.service-copy-grid h2 {
    text-align:left;
    margin:0 0 20px;
    font-size:28px
}

.detail-copy {
    font-size:14px;
    line-height:1.9;
    margin:0 0 18px
}

.service-list-title {
    font-size:14px;
    color:#555;
    letter-spacing:0;
    text-transform:none;
    margin:15px 0 8px
}

.service-list {
    padding-left:20px;
    margin:0 0 22px;
    columns:1
}

.service-list li {
    margin:3px 0
}

.service-feature img {
    width:100%;
    height:370px;
    object-fit:cover
}

.detail-gallery-item {
    position:relative;
    display:block;
    cursor:zoom-in
}

.detail-gallery-item:after {
    content:'+';
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.42);
    color:#fff;
    display:grid;
    place-items:center;
    font-size:30px;
    opacity:0;
    transition:opacity .3s
}

.detail-gallery-item:hover:after {
    opacity:1
}

.lightbox {
    position:fixed;
    inset:0;
    z-index:1000;
    background:rgba(0,0,0,.92);
    display:none;
    align-items:center;
    justify-content:center;
    padding:50px 80px
}

.lightbox.open {
    display:flex
}

.lightbox-image {
    max-width:min(1100px,90vw);
    max-height:86vh;
    object-fit:contain
}

.lightbox-close,.lightbox-nav {
    position:absolute;
    border:0;
    background:transparent;
    color:#fff;
    cursor:pointer
}

.lightbox-close {
    right:25px;
    top:15px;
    font-size:48px
}

.lightbox-nav {
    top:50%;
    transform:translateY(-50%);
    font-size:60px;
    padding:15px
}

.lightbox-prev {
    left:18px
}

.lightbox-next {
    right:18px
}

.hp-field {
    position:absolute!important;
    left:-9999px!important;
    width:1px!important;
    height:1px!important;
    opacity:0!important
}

.form-control.invalid {
    border-color:#b94a48;
    background:#fff8f8
}

.form-error {
    display:block;
    color:#a94442;
    font-size:11px;
    margin-top:-32px;
    margin-bottom:15px
}

.form-note {
    display:none
}

.contact-info a:hover {
    text-decoration:underline
}

.dropdown a.active-sub {
    background:#2d2e31;
    color:#fff!important
}

@media(max-width:900px) {
    .service-copy-grid {
        grid-template-columns:1fr;
        gap:25px
    }
    .service-feature {
        order:-1
    }
    .service-feature img {
        height:360px
    }
    .hero-arrow {
        opacity:.8
    }
    .lightbox {
        padding:50px 45px
    }
}

@media(max-width:560px) {
    .service-feature img {
        height:270px
    }
    .lightbox {
        padding:55px 15px
    }
    .lightbox-nav {
        font-size:42px;
        padding:8px
    }
    .lightbox-prev {
        left:2px
    }
    .lightbox-next {
        right:2px
    }
    .hero-arrow {
        width:34px;
        height:52px;
        font-size:36px
    }
    .hero-prev {
        left:4px
    }
    .hero-next {
        right:4px
    }
}

/* Inline SVG reliability fix */
.icon path,.social-icon path,.value-icon svg path {
    fill:currentColor
}

.social-links svg {
    display:block;
    flex:0 0 auto
}

.top-info .icon {
    flex:0 0 auto
}

.value-icon svg {
    display:inline-block
}


/* Contact request type dropdown and quotation anchor */
#contact-form {
    scroll-margin-top: 110px;
}

.request-select {
    cursor: pointer;
    appearance: auto;
    -webkit-appearance: menulist;
    color: #777;
}

.request-select:valid {
    color: #333;
}
