.template-sign-shop {
    --sign-navy: #082b62;
    --sign-deep: #031b3d;
    --sign-orange: #ff6b00;
    --sign-sky: #eef7ff;
    --sign-ink: #102446;
    color: var(--sign-ink);
}

.template-sign-shop .site-nav {
    position: sticky;
    z-index: 40;
    top: 0;
    width: 100%;
    max-width: none;
    min-height: 74px;
    margin: 0;
    padding-inline: max(22px,calc((100% - 1180px)/2));
    border-bottom: 1px solid rgba(8,43,98,.1);
    background: rgba(255,255,255,.97);
    box-shadow: 0 8px 28px rgba(3,27,61,.06);
    backdrop-filter: blur(12px);
}

.template-sign-shop .site-brand > span { background: linear-gradient(135deg,var(--sign-navy),#1768d8 58%,var(--sign-orange) 59%); color:#fff; }
.template-sign-shop .site-brand strong { color:var(--sign-navy); font-weight:900; }
.template-sign-shop .site-nav > nav { gap:2px; }
.template-sign-shop .site-nav > nav a:not(.nav-contact) { padding:10px 11px; color:#344967; font-size:14px; font-weight:700; }
.template-sign-shop .site-nav > nav a:not(.nav-contact):hover { color:var(--sign-orange); }
.template-sign-shop .nav-contact,
.template-sign-shop .site-button { border-radius:10px; background:var(--sign-orange); box-shadow:0 10px 24px rgba(255,107,0,.2); font-weight:800; }
.template-sign-shop .site-nav .nav-contact { padding:11px 17px; font-size:14px; }

.template-sign-shop .customer-hero {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    min-height:540px;
    max-width:none;
    padding:0;
    overflow:hidden;
    background:var(--sign-deep);
}
.template-sign-shop .customer-hero::before { position:absolute; z-index:2; inset:0; content:""; pointer-events:none; background:linear-gradient(90deg,rgba(3,27,61,.96) 0%,rgba(5,37,82,.82) 40%,rgba(5,37,82,.18) 72%,rgba(5,37,82,.08)); }
.template-sign-shop .customer-hero::after { position:absolute; z-index:2; right:-8%; bottom:-35%; width:48%; aspect-ratio:1; border:1px solid rgba(255,107,0,.45); border-radius:50%; content:""; pointer-events:none; box-shadow:0 0 0 55px rgba(255,107,0,.05),0 0 0 110px rgba(255,107,0,.035); }
.template-sign-shop .customer-hero.section-layout-image-background .hero-inner { z-index:3; align-self:center; width:min(1180px,100%); max-width:none; margin:auto; padding:72px 24px 92px; }
.template-sign-shop .customer-hero h1 { max-width:720px; margin:14px 0 16px; color:#fff; font-size:clamp(42px,4.7vw,64px); line-height:1.08; letter-spacing:-2px; }
.template-sign-shop .customer-hero .hero-inner > p:not(.site-eyebrow) { max-width:610px; margin:0; color:rgba(255,255,255,.86); font-size:17px; line-height:1.65; }
.template-sign-shop .site-eyebrow { display:inline-flex; width:fit-content; margin:0; padding:8px 13px; border:1px solid rgba(255,255,255,.25); border-radius:999px; background:rgba(255,255,255,.1); color:#ffb26f; font-size:12px; font-weight:800; letter-spacing:.5px; }
.template-sign-shop .hero-actions { margin-top:24px; gap:12px; }
.template-sign-shop .hero-actions .site-button { padding:15px 22px; }
.template-sign-shop .hero-actions .site-button:first-child { background:var(--sign-orange); box-shadow:0 12px 30px rgba(255,107,0,.3); }
.template-sign-shop .hero-actions .site-button-secondary { border-color:rgba(255,255,255,.75); background:rgba(3,27,61,.28); color:#fff; box-shadow:none; }
.template-sign-shop .hero-media { position:absolute; z-index:1; inset:0; max-width:none; height:100%; border-radius:0; }
.template-sign-shop .hero-media img { width:100%; height:100%; object-fit:cover; object-position:center; }

.sign-quick-services { position:relative; z-index:5; margin-top:-38px; padding:0 22px; }
.sign-quick-services-inner { display:grid; grid-template-columns:repeat(6,1fr); width:min(1180px,100%); margin:auto; overflow:hidden; border:1px solid #e3ebf5; border-radius:18px; background:#fff; box-shadow:0 22px 55px rgba(3,27,61,.15); }
.sign-quick-services a { display:flex; min-width:0; align-items:center; justify-content:center; gap:9px; padding:17px 9px; border-right:1px solid #e8eef6; color:var(--sign-navy); text-decoration:none; }
.sign-quick-services a:last-child { border-right:0; }
.sign-quick-services a:hover { background:var(--sign-sky); }
.sign-quick-services span { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border-radius:10px; background:linear-gradient(135deg,var(--sign-navy),#1768d8); color:#fff; font-size:12px; font-weight:900; }
.sign-quick-services a:nth-child(even) span { background:linear-gradient(135deg,var(--sign-orange),#ff9a3d); }
.sign-quick-services strong { font-size:13px; }

.template-sign-shop .customer-section { width:min(1180px,calc(100% - 44px)); padding-block:76px; }
.template-sign-shop .section-heading span,
.template-sign-shop .section-kicker { color:var(--sign-orange); font-weight:800; }
.template-sign-shop .section-heading h2,
.template-sign-shop .about-section h2 { color:var(--sign-navy); letter-spacing:-1px; }
.template-sign-shop .services-section { width:100%; max-width:none; padding-inline:max(22px,calc((100% - 1180px)/2)); background:linear-gradient(180deg,#f5faff,#eef6ff); }
.template-sign-shop .service-grid { gap:20px; }
.template-sign-shop .service-grid article { overflow:hidden; border:1px solid #dfe9f5; border-radius:18px; background:#fff; box-shadow:0 12px 34px rgba(8,43,98,.08); transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.template-sign-shop .service-grid article:hover { border-color:rgba(23,104,216,.35); box-shadow:0 20px 42px rgba(8,43,98,.13); transform:translateY(-4px); }
.template-sign-shop .service-grid .service-image { width:calc(100% + 56px); height:auto; aspect-ratio:16/10; object-fit:cover; }
.template-sign-shop .service-grid h3 { margin:24px 0 9px; color:var(--sign-navy); font-size:22px; line-height:1.3; }
.template-sign-shop .service-grid p { display:-webkit-box; min-height:4.8em; overflow:hidden; line-height:1.6; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.template-sign-shop .service-number { color:var(--sign-orange); }
.template-sign-shop .service-card-link { color:var(--sign-navy); font-weight:800; }
.template-sign-shop .feature-grid article,
.template-sign-shop .steps-grid article,
.template-sign-shop .review-grid blockquote { border:1px solid #e0e8f2; border-radius:18px; box-shadow:0 12px 34px rgba(8,43,98,.07); }
.template-sign-shop .feature-grid article::before { background:var(--sign-orange); }
.template-sign-shop .feature-grid article { padding:32px 28px; }
.template-sign-shop .feature-grid .standard-section-icon { display:grid; width:54px; height:54px; place-items:center; border-radius:16px; background:#eaf3ff; color:#1768d8; font-size:24px; }
.template-sign-shop .feature-grid h3 { margin-top:19px; color:var(--sign-navy); font-size:21px; }
.template-sign-shop .feature-grid p { line-height:1.65; }
.sign-installation-section { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); width:min(1180px,calc(100% - 44px)); margin:-42px auto 76px; overflow:hidden; border:1px solid #dce7f3; border-radius:24px; background:#fff; box-shadow:0 18px 50px rgba(8,43,98,.09); }
.sign-installation-media img { display:block; width:100%; height:100%; min-height:430px; object-fit:cover; }
.sign-installation-copy { align-self:center; padding:46px; }
.sign-installation-copy > span { color:var(--sign-orange); font-size:12px; font-weight:900; letter-spacing:1.4px; text-transform:uppercase; }
.sign-installation-copy h2 { margin:12px 0 15px; color:var(--sign-navy); font-size:clamp(30px,3.2vw,44px); line-height:1.18; }
.sign-installation-copy p { margin:0; color:#61718a; line-height:1.75; }
.sign-installation-copy ul { display:grid; gap:11px; margin:24px 0 28px; padding:0; list-style:none; }
.sign-installation-copy li { position:relative; padding-left:29px; color:#314865; font-weight:700; }
.sign-installation-copy li::before { position:absolute; top:1px; left:0; display:grid; width:20px; height:20px; place-items:center; border-radius:50%; background:#eaf3ff; color:#1768d8; content:"✓"; font-size:11px; font-weight:900; }

.template-sign-shop .portfolio-section { width:100%; max-width:none; padding-inline:max(22px,calc((100% - 1180px)/2)); background:var(--sign-deep); }
.template-sign-shop .portfolio-section .section-heading h2,
.template-sign-shop .portfolio-section .section-heading span,
.template-sign-shop .portfolio-section .section-heading p { color:#fff; }
.template-sign-shop .portfolio-grid { gap:22px !important; }
.template-sign-shop .portfolio-grid article { display:flex; height:100%; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:#fff; }
.template-sign-shop .portfolio-grid img { height:auto; aspect-ratio:4/3; object-fit:cover; }
.template-sign-shop .portfolio-grid article > div:last-child { display:flex; flex:1; flex-direction:column; padding:20px; }
.template-sign-shop .portfolio-grid h3 { min-height:2.6em; margin:0 0 12px; color:var(--sign-navy); font-size:19px; line-height:1.3; }
.portfolio-card-meta { display:flex; flex-wrap:wrap; gap:7px; }
.portfolio-card-meta span { padding:5px 9px; border-radius:999px; background:#edf4fd; color:#2b527f; font-size:11px; font-weight:700; }
.portfolio-card-meta span:last-child { background:#fff0e5; color:#a84800; }
.portfolio-detail-link { display:inline-flex; width:fit-content; margin-top:auto; padding-top:17px; color:var(--sign-navy); font-size:13px; font-weight:900; text-decoration:none; }
.portfolio-detail-link:hover { color:var(--sign-orange); }
.template-sign-shop .portfolio-lightbox-hint { background:var(--sign-orange); }

.sign-gallery-section { padding-top:74px !important; }
.sign-gallery-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.sign-gallery-grid button { position:relative; min-width:0; padding:0; overflow:hidden; border:0; border-radius:14px; background:var(--sign-deep); cursor:pointer; aspect-ratio:1; }
.sign-gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.sign-gallery-grid button:hover img { transform:scale(1.045); }
.sign-gallery-grid span { position:absolute; right:9px; bottom:9px; display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:rgba(3,27,61,.82); color:#fff; font-size:11px; font-weight:800; }

.template-sign-shop .steps-section { width:100%; max-width:none; padding-inline:max(22px,calc((100% - 1180px)/2)); background:linear-gradient(135deg,#f2f8ff,#fff7f1); }
.template-sign-shop .steps-grid { position:relative; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.template-sign-shop .steps-grid::before { position:absolute; top:49px; right:8%; left:8%; height:2px; background:linear-gradient(90deg,var(--sign-orange),#1768d8); content:""; }
.template-sign-shop .steps-grid li { position:relative; min-height:245px; padding:28px 22px; background:#fff; }
.template-sign-shop .steps-grid .step-number { position:relative; z-index:1; display:grid; width:44px; height:44px; place-items:center; border-radius:50%; background:var(--sign-navy); color:#fff; font-size:13px; font-weight:900; box-shadow:0 0 0 7px #f4f8fd; }
.template-sign-shop .steps-grid .standard-section-icon { display:none; }
.template-sign-shop .steps-grid h3 { margin-top:24px; color:var(--sign-navy); }
.template-sign-shop .stars { color:#ffad28; }
.template-sign-shop .review-grid { align-items:stretch; }
.template-sign-shop .review-grid blockquote { position:relative; display:flex; height:100%; min-height:290px; flex-direction:column; }
.template-sign-shop .review-grid blockquote > p { flex:1; min-height:0; line-height:1.75; }
.template-sign-shop .reviewer-initial { width:40px; height:40px; background:linear-gradient(135deg,var(--sign-navy),#1768d8); color:#fff; }
.review-demo-badge { position:absolute; top:22px; right:22px; padding:5px 9px; border-radius:999px; background:#eef4fb; color:#5b6f88; font-size:10px; font-weight:800; }
.template-sign-shop .call-to-action-section { width:min(1180px,calc(100% - 44px)); border-radius:24px; background:linear-gradient(125deg,var(--sign-navy),#0751aa 72%,#0b65c7); color:#fff; }
.template-sign-shop .call-to-action-buttons .site-button:first-child { background:var(--sign-orange); }
.template-sign-shop .call-to-action-buttons .site-button-secondary { border-color:rgba(255,255,255,.65); background:transparent; color:#fff; box-shadow:none; }
.template-sign-shop .contact-section { grid-template-columns:minmax(0,.8fr) minmax(520px,1.2fr); gap:54px; padding-block:86px; border-top:1px solid #e1e9f2; background:var(--sign-deep); }
.template-sign-shop .contact-form-card { padding:34px; }
.template-sign-shop .contact-form-note { margin:-4px 0 22px; color:#64748b; font-size:13px; line-height:1.6; }
.template-sign-shop .contact-section form button { background:var(--sign-orange); }
.template-sign-shop .map-section { padding-bottom:26px; }
.template-sign-shop .map-heading { padding-top:54px; padding-bottom:24px; }
.template-sign-shop .map-section iframe { height:350px; }
.sign-map-details { display:grid; grid-template-columns:1.3fr 1fr .75fr; gap:12px; width:min(1180px,calc(100% - 48px)); margin:16px auto 44px; }
.sign-map-details > div { display:grid; gap:5px; padding:18px 20px; border:1px solid #dfe8f2; border-radius:14px; background:#f7faff; }
.sign-map-details small { color:#6b7d95; font-size:11px; }
.sign-map-details strong,.sign-map-details a { color:var(--sign-navy); font-size:14px; font-weight:800; text-decoration:none; }
.template-sign-shop .site-footer { background:var(--sign-deep); }
.template-sign-shop .site-footer-standard .site-footer-inner { gap:48px; padding-top:58px; padding-bottom:46px; }
.template-sign-shop .site-footer-standard .footer-links ul,
.template-sign-shop .site-footer-standard .footer-contact ul { gap:13px; line-height:1.65; }
.template-sign-shop .site-footer-standard .footer-contact { padding:20px; border:1px solid rgba(255,255,255,.12); border-radius:16px; background:rgba(255,255,255,.035); }
.template-sign-shop .site-footer-standard .footer-social-links a[aria-label="LINE"] { border-color:#22c55e; background:#22c55e; color:#fff; }
.sign-articles-section { padding-top:36px !important; }
.sign-article-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.sign-article-grid article { padding:28px; border:1px solid #dfe9f5; border-radius:18px; background:#fff; box-shadow:0 12px 34px rgba(8,43,98,.07); }
.sign-article-grid article > span { color:var(--sign-orange); font-size:12px; font-weight:900; }
.sign-article-grid h3 { margin:12px 0; color:var(--sign-navy); font-size:20px; }
.sign-article-grid p { color:#61718a; line-height:1.7; }
.sign-article-grid a { color:var(--sign-navy); font-weight:800; text-decoration:none; }

@media (max-width:1024px) {
    .template-sign-shop .site-nav > nav a:not(.nav-contact) { padding-inline:8px; font-size:13px; }
    .sign-quick-services-inner { grid-template-columns:repeat(3,1fr); }
    .sign-quick-services a:nth-child(3) { border-right:0; }
    .sign-quick-services a:nth-child(-n+3) { border-bottom:1px solid #e8eef6; }
    .sign-gallery-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .template-sign-shop .steps-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .template-sign-shop .steps-grid::before { display:none; }
}

@media (max-width:768px) {
    .template-sign-shop .customer-hero { min-height:520px; }
    .template-sign-shop .customer-hero::before { background:linear-gradient(90deg,rgba(3,27,61,.96),rgba(3,27,61,.67)); }
    .template-sign-shop .customer-hero.section-layout-image-background .hero-inner { padding:62px 22px 88px; }
    .template-sign-shop .customer-hero h1 { font-size:clamp(38px,10vw,54px); }
    .template-sign-shop .customer-hero .hero-inner > p:not(.site-eyebrow) { font-size:16px; }
    .sign-quick-services { margin-top:-36px; }
    .sign-quick-services a { padding:18px 8px; }
    .sign-gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .sign-article-grid { grid-template-columns:1fr; }
    .sign-installation-section { grid-template-columns:1fr; }
    .sign-installation-media img { min-height:0; height:330px; }
    .sign-installation-copy { padding:34px; }
    .template-sign-shop .steps-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .template-sign-shop .contact-section { grid-template-columns:1fr; gap:36px; padding:70px 22px; }
    .sign-map-details { grid-template-columns:1fr; }
}

@media (max-width:520px) {
    .template-sign-shop .customer-section { width:min(100% - 28px,1180px); padding-block:62px; }
    .template-sign-shop .hero-actions { display:grid; }
    .template-sign-shop .hero-actions .site-button { width:100%; justify-content:center; }
    .sign-quick-services { padding-inline:14px; }
    .sign-quick-services-inner { grid-template-columns:repeat(2,1fr); }
    .sign-quick-services a:nth-child(3) { border-right:1px solid #e8eef6; }
    .sign-quick-services a:nth-child(even) { border-right:0; }
    .sign-quick-services a:nth-child(-n+4) { border-bottom:1px solid #e8eef6; }
    .sign-quick-services a { flex-direction:column; gap:7px; text-align:center; }
    .sign-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    .sign-installation-section { width:calc(100% - 28px); margin-top:-28px; }
    .sign-installation-media img { height:240px; }
    .sign-installation-copy { padding:27px 22px; }
    .template-sign-shop .steps-grid { grid-template-columns:1fr; gap:12px; }
    .template-sign-shop .steps-grid li { display:grid; grid-template-columns:44px minmax(0,1fr); min-height:0; column-gap:16px; padding:22px; }
    .template-sign-shop .steps-grid .step-number { grid-row:1 / span 2; }
    .template-sign-shop .steps-grid h3 { margin:2px 0 7px; }
    .template-sign-shop .steps-grid p { grid-column:2; }
    .template-sign-shop .review-grid blockquote { min-height:270px; }
    .template-sign-shop .contact-section { padding:62px 14px; }
    .template-sign-shop .contact-form-card { padding:24px 18px; }
    .template-sign-shop .map-section iframe { height:260px; }
    .sign-map-details { width:calc(100% - 32px); margin-bottom:32px; }
    .template-sign-shop .portfolio-grid img,
    .template-sign-shop .portfolio-grid article:nth-child(3n+1) img { height:230px; }
}
