
/* Site modernization layer – keeps the original Argo visual identity */
html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #33cc66; outline-offset: 2px; }
.site-navbar .navbar-inner { background: url(../img/header-bg.png) no-repeat center bottom transparent; background-size: cover; }
.site-navbar .brand { padding: 10px 24px 5px 10px; }
.site-navbar .brand img { max-height: 43px; width: auto; }
.site-navbar .nav > li { margin-right: 0; }
.site-navbar .nav > li > a { padding: 15px 13px; font-size: 13px; white-space: nowrap; }
.site-navbar .nav > li > a i { display: none; }
.site-navbar .nav > li:hover:before, .site-navbar .nav > li.active:before { content: ''; border-top: 3px solid #33cc66; display:block; width:100%; position:absolute; top:-1px; }
.site-navbar .nav > .active > a { color:#33cc66; }

.site-page-header { background: url(../img/header-bg.jpg) no-repeat center center; background-size: cover; color:#fff; border-bottom:8px solid #33cc66; }
.inner-header-wrap { min-height:280px; display:flex; align-items:center; gap:40px; }
.inner-logo { width:195px; height:195px; display:block; flex:0 0 195px; }
.inner-logo img { width:100%; height:100%; object-fit:cover; }
.inner-heading { max-width:760px; background:rgba(0,0,0,.45); padding:24px 30px; border-left:8px solid #33cc66; }
.inner-heading h1 { color:#fff; font-size:42px; line-height:1.08; margin:0 0 12px; }
.inner-heading p { font-size:18px; line-height:1.55; margin:0; }

.page-content { color:#333; }
.page-content a { color:#238a49; }
.content-section { padding:55px 0; }
.intro-section { background:#fff; }
.gallery-section { background:#f4f4f4; border-top:1px solid #ddd; }
.breadcrumbs { margin:0 0 24px; color:#777; font-size:14px; }
.breadcrumbs a { color:#238a49; }
.breadcrumbs span { margin-right:7px; }
.service-intro { max-width:900px; }
.service-intro h2, .section-heading h2 { font-size:34px; line-height:1.2; margin-bottom:15px; }
.service-intro p, .section-heading p { font-size:17px; line-height:1.7; }
.feature-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin:35px 0 10px; }
.feature-card { background:#eee; border-top:5px solid #33cc66; padding:22px; min-height:145px; box-sizing:border-box; }
.feature-card:nth-child(even) { border-top-color:#339966; }
.feature-card h3 { margin:0 0 10px; font-size:21px; }
.feature-card p { margin:0; line-height:1.55; }
.section-heading { max-width:850px; margin-bottom:28px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
.gallery-card { margin:0; background:#fff; border-bottom:5px solid #33cc66; box-shadow:0 1px 4px rgba(0,0,0,.13); overflow:hidden; }
.gallery-card a { display:block; background:#222; height:280px; overflow:hidden; }
.gallery-card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.gallery-card:hover img { transform:scale(1.025); }
.gallery-card figcaption { padding:10px 12px; color:#444; font-size:14px; }
.cta-strip { background:#333; color:#fff; padding:35px 0; border-top:8px solid #33cc66; }
.cta-strip .container { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.cta-strip h2 { color:#fff; margin:0 0 7px; }
.cta-strip p { margin:0; max-width:700px; }
.cta-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.cta-actions .btn { color:#fff; padding:12px 16px; text-decoration:none; border-radius:0; border:0; text-shadow:none; box-shadow:none; }
.cta-actions .btn-primary { background:#33cc66; }
.cta-actions .btn-secondary { background:#339966; }

.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:35px; align-items:start; }
.contact-card { background:#f1f1f1; padding:25px; border-top:5px solid #33cc66; }
.contact-card h2 { margin-top:0; }
.contact-list { list-style:none; margin:0; padding:0; }
.contact-list li { padding:7px 0; line-height:1.5; }
.contact-list a { color:#238a49; }
.contact-form input, .contact-form textarea { width:100%; box-sizing:border-box; border:0; background:#e2e2e2; padding:13px; margin-bottom:12px; min-height:48px; }
.contact-form textarea { min-height:150px; resize:vertical; }
.contact-form button { width:100%; background:#33cc66; color:#fff; border:0; padding:14px; font-size:16px; }
.contact-form .hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.map-embed { margin-top:35px; }
.map-embed iframe { width:100%; min-height:420px; border:0; }

.site-footer .container { display:flex; justify-content:space-between; gap:20px; align-items:center; }
.site-footer .footer-links { text-align:right; }
.site-footer a { color:#fff; text-decoration:underline; }

.home-service-links { margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.home-service-links a { display:inline-block; background:#33cc66; color:#fff; padding:9px 13px; }
.home-service-links a:nth-child(even) { background:#339966; }
#services .sev_list .brick2 a.service-more { color:#238a49; font-weight:600; }
#blog .article { color:#fff; }
#blog .article:focus { outline:3px solid #fff; }

.status-message { background:#f1f1f1; border-left:7px solid #33cc66; padding:28px; margin:45px auto; max-width:760px; }
.status-message h1 { margin-top:0; }
.status-message a { color:#238a49; }

@media (max-width: 1200px) {
  .site-navbar .navbar-inner .container { width:auto; padding-left:15px; padding-right:15px; }
  .site-navbar .nav > li > a { padding:15px 9px; font-size:12px; }
  .site-navbar .brand { padding-right:12px; }
}
@media (max-width: 979px) {
  .site-navbar .brand { padding-top:8px; }
  .site-navbar .nav > li > a { padding:10px 15px; font-size:14px; }
  .site-navbar .nav > li:hover:before, .site-navbar .nav > li.active:before { display:none; }
  .inner-header-wrap { min-height:230px; gap:20px; padding-top:20px; padding-bottom:20px; }
  .inner-logo { width:145px; height:145px; flex-basis:145px; }
  .inner-heading h1 { font-size:34px; }
  .feature-grid, .gallery-grid { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .contact-grid { grid-template-columns:1fr; }
  .cta-strip .container, .site-footer .container { flex-direction:column; align-items:flex-start; }
  .site-footer .footer-links { text-align:left; }
}
@media (max-width: 767px) {
  .site-page-header { padding-left:15px; padding-right:15px; }
  .inner-header-wrap { display:block; min-height:0; padding:25px 0; }
  .inner-logo { width:105px; height:105px; margin-bottom:18px; }
  .inner-heading { padding:18px; }
  .inner-heading h1 { font-size:30px; }
  .inner-heading p { font-size:16px; }
  .content-section { padding:38px 15px; }
  .feature-grid, .gallery-grid { grid-template-columns:1fr; }
  .gallery-card a { height:300px; }
  .cta-strip { padding-left:15px; padding-right:15px; }
  .cta-actions { justify-content:flex-start; }
  #header .header-holder { height:auto; min-height:780px; }
}


/* 2026-09-13 refinement pass */
/* Keep the three service icons in the original line-icon family, but make them semantically relevant. */
#services .sev_list .brick2 > i { line-height: 1; }

/* The old theme used 30px type inside 200px CTA buttons, which caused the two-line labels to collide. */
#purchase .hero .btn { width:auto; min-width:190px; padding:12px 20px; }
#purchase .hero a.btn { display:inline-block; box-sizing:border-box; color:#fff; font-size:22px; line-height:1.12; text-decoration:none; text-transform:uppercase; }
#purchase .hero a.btn:hover, #purchase .hero a.btn:focus { color:#fff; text-decoration:none; }

/* Inner-page image slider / lightbox. */
html.lightbox-open, html.lightbox-open body { overflow:hidden; }
.gallery-card a[data-gallery] { cursor:zoom-in; position:relative; }
.gallery-card a[data-gallery]::after {
  content:'+'; position:absolute; right:10px; bottom:10px; width:34px; height:34px;
  line-height:32px; text-align:center; border:1px solid rgba(255,255,255,.8);
  background:rgba(0,0,0,.55); color:#fff; font-size:25px; opacity:0;
  transition:opacity .2s ease;
}
.gallery-card:hover a[data-gallery]::after { opacity:1; }
.gallery-lightbox {
  position:fixed; inset:0; z-index:100000; display:none; align-items:center; justify-content:center;
  background:rgba(0,0,0,.92); padding:58px 80px 40px; box-sizing:border-box;
}
.gallery-lightbox.is-open { display:flex; }
.gallery-lightbox-stage { max-width:min(1180px, 86vw); max-height:86vh; display:flex; flex-direction:column; align-items:center; }
.gallery-lightbox-image { max-width:100%; max-height:76vh; width:auto; height:auto; object-fit:contain; box-shadow:0 8px 35px rgba(0,0,0,.5); }
.gallery-lightbox-meta { width:100%; box-sizing:border-box; display:flex; justify-content:space-between; gap:20px; padding:12px 2px 0; color:#fff; font-size:15px; }
.gallery-lightbox-counter { white-space:nowrap; color:#bdebc9; }
.gallery-lightbox button { border:0; color:#fff; background:transparent; cursor:pointer; text-shadow:0 1px 4px #000; }
.gallery-lightbox-close { position:absolute; top:12px; right:24px; width:48px; height:48px; font-size:44px; line-height:44px; }
.gallery-lightbox-prev, .gallery-lightbox-next { position:absolute; top:50%; transform:translateY(-50%); width:62px; height:86px; font-size:70px; line-height:70px; }
.gallery-lightbox-prev { left:12px; }
.gallery-lightbox-next { right:12px; }
.gallery-lightbox button:focus-visible { outline:3px solid #33cc66; outline-offset:2px; }

/* Facebook icon on the contact page, matching the original homepage social icon. */
.contact-card .social { margin-top:18px; }
.contact-card .social a { text-decoration:none; }

@media (max-width:767px) {
  #purchase .hero .btn { min-width:0; width:auto; padding:10px 14px; }
  #purchase .hero a.btn { font-size:19px; }
  .gallery-lightbox { padding:54px 42px 26px; }
  .gallery-lightbox-stage { max-width:94vw; }
  .gallery-lightbox-image { max-height:72vh; }
  .gallery-lightbox-prev, .gallery-lightbox-next { width:42px; font-size:55px; }
  .gallery-lightbox-prev { left:0; }
  .gallery-lightbox-next { right:0; }
  .gallery-lightbox-meta { font-size:13px; }
}


/* 2026-09-13 service icons + aligned summaries */
#services .sev_list .brick2 .service-icon-svg { display:block; width:88px; height:88px; margin:0 auto 14px; }
#services .sev_list .brick2 .service-icon-svg svg { width:100%; height:100%; stroke:#33cc66; fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
#services .sev_list .brick2 .service-summary { max-width:300px; margin:0 auto 12px; min-height:4.2em; line-height:1.35; }
#services .sev_list .brick2 > i { display:none; }
@media (max-width: 767px) {
  #services .sev_list .brick2 .service-summary { min-height:0; }
}


/* 2026-09-13 selected PNG service icons */
#services .sev_list .brick2 .service-icon-img {
  display:block;
  width:118px;
  height:118px;
  object-fit:contain;
  margin:0 auto 16px;
}
#services .sev_list .brick2 .service-icon-svg,
#services .sev_list .brick2 > i { display:none !important; }
#services .sev_list .brick2 .service-summary {
  max-width:300px;
  margin:0 auto 12px;
  min-height:4.2em;
  line-height:1.35;
}
#services .sev_list .brick2 h3 {
  margin-bottom:14px;
}
@media (max-width: 767px) {
  #services .sev_list .brick2 .service-icon-img { width:96px; height:96px; }
  #services .sev_list .brick2 .service-summary { min-height:0; }
}


/* 2026-09-13 hover + tighter spacing for selected PNG service icons */
#services .sev_list .brick2 {
  padding: 6px 10px 4px;
}
#services .sev_list .brick2 .service-icon-img {
  margin: 0 auto 8px;
}
#services .sev_list .brick2 h3 {
  margin-top: 0;
  margin-bottom: 10px;
}
#services .sev_list .brick2 .service-summary {
  margin: 0 auto 8px;
}
#services .sev_list .brick2 p {
  margin-bottom: 0;
}
#services .sev_list .brick2:hover .service-icon-img {
  filter: brightness(0) invert(1);
}
#services .sev_list .brick2:hover h3,
#services .sev_list .brick2:hover .service-summary,
#services .sev_list .brick2:hover a.service-more {
  color: #ffffff;
}


/* 2026-09-13 service cards layout stability fix */
#services .sev_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
}
#services .sev_list .brick2 {
  float: none;
  width: calc(33.333% - 30px);
  max-width: 390px;
  min-height: 320px;
  height: auto;
  margin: 0 15px;
  padding: 8px 18px 12px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
}
#services .sev_list .brick2 > p:last-child {
  margin-top: auto;
}
#services .sev_list .brick2 .service-icon-img {
  margin: 0 auto 6px;
}
#services .sev_list .brick2 h3 {
  margin-top: 0;
  margin-bottom: 8px;
}
#services .sev_list .brick2 .service-summary {
  margin: 0 auto 8px;
}
@media (max-width: 1199px) {
  #services .sev_list .brick2 {
    width: calc(33.333% - 20px);
    margin: 0 10px;
  }
}
@media (max-width: 991px) {
  #services .sev_list .brick2 {
    width: 100%;
    max-width: 420px;
    min-height: 0;
    margin: 0 auto 24px;
  }
}


/* CNC engraving content block */
.cnc-service-block {
  margin-top: 42px;
  padding-top: 34px;
  border-top: 1px solid #dddddd;
}
.cnc-service-block .section-heading {
  max-width: 980px;
  margin: 0 auto 24px;
}
.cnc-service-block .section-heading h2 {
  margin-bottom: 12px;
}
.cnc-copy {
  max-width: 1050px;
  margin: 0 auto 30px;
}
.cnc-copy p {
  margin-bottom: 14px;
  line-height: 1.7;
}
.cnc-feature-grid {
  margin-top: 22px;
}
@media (max-width: 767px) {
  .cnc-service-block { margin-top: 30px; padding-top: 26px; }
}


/* CNC service expansion */
.cnc-process-block, .cnc-applications, .cnc-faq { margin-top:32px; }
.cnc-process-block h3, .cnc-applications h3, .cnc-faq h3 { margin-bottom:16px; }
.cnc-process-list { margin:0; padding-left:24px; }
.cnc-process-list li { margin:0 0 12px; padding-left:5px; line-height:1.6; }
.cnc-faq .faq-item { border-top:1px solid #ddd; padding:16px 0 8px; }
.cnc-faq .faq-item:last-child { border-bottom:1px solid #ddd; }
.cnc-faq h4 { margin:0 0 8px; font-size:20px; }
.cnc-faq p { margin:0 0 8px; }


/* 2026-09-13 local SEO content sections */
.local-seo-section, .home-local-seo {
  max-width: 980px;
  margin: 34px auto 4px;
  padding: 24px 28px;
  background: #f7f7f7;
  border-left: 4px solid #33cc66;
  box-sizing: border-box;
}
.local-seo-section h2, .home-local-seo h2 { margin-top:0; font-size:26px; }
.local-seo-section p, .home-local-seo p { margin-bottom:0; line-height:1.6; }
.coverage-note { margin: 8px 0 20px; line-height:1.55; }
@media (max-width: 767px) {
  .local-seo-section, .home-local-seo { margin-top:24px; padding:18px; }
  .local-seo-section h2, .home-local-seo h2 { font-size:22px; }
}
