/* Shared layout for single service pages (/infrastrukturos-saugumo-mokymai/ etc.) */ :root { --color-bg: #ffffff; --color-text: #000000; --color-gray: #767676; --color-light-gray: #f9f9f9; --color-border: #e0e0e0; --color-accent: #6c262b; --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --font-mono: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace; --spacing-xs: clamp(0.5rem, 1vw, 0.75rem); --spacing-sm: clamp(1rem, 2vw, 1.5rem); --spacing-md: clamp(1.5rem, 4vw, 2.5rem); --spacing-lg: clamp(3rem, 6vw, 5rem); --container-width: 1400px; --radius-sm: 4px; --radius-md: 8px; --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.05); --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.05); } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { scroll-behavior: smooth; } body { font-family: var(--font-primary); background-color: var(--color-bg); color: var(--color-text); line-height: 1.6; font-size: clamp(16px, 1.2vw, 18px); -webkit-font-smoothing: antialiased; overflow-x: hidden; } a { color: var(--color-text); text-decoration: none; transition: all 0.2s ease; } ul { list-style: none; } img { max-width: 100%; height: auto; display: block; } .container { width: 100%; max-width: var(--container-width); margin: 0 auto; padding: 0 var(--spacing-sm); } /* Header and navigation */ header { padding: var(--spacing-xs) 0; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid var(--color-border); } header .container { display: flex; justify-content: space-between; align-items: center; } .logo { font-weight: 800; font-size: 1.2rem; display: flex; align-items: center; } nav ul { display: flex; gap: var(--spacing-md); align-items: center; } nav a { font-weight: 600; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; position: relative; padding: 0.5rem 0; } nav a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: var(--color-text); transition: width 0.3s ease; } nav a:hover::after { width: 100%; } #menu-toggle { display: none; } .menu-icon { display: none; cursor: pointer; font-size: 1.5rem; } @media (max-width: 900px) { .menu-icon { display: block; } nav { position: fixed; top: 70px; left: 0; width: 100%; height: calc(100vh - 70px); background: #fff; padding: 40px 20px; transform: translateX(100%); transition: transform 0.3s ease; border-top: 1px solid #eee; overflow-y: auto; } nav ul { flex-direction: column; align-items: flex-start; } #menu-toggle:checked ~ nav { transform: translateX(0); } } /* Breadcrumbs */ .breadcrumbs { padding-top: var(--spacing-sm); font-size: 0.82rem; color: #888; font-family: var(--font-mono); } .breadcrumbs a { color: #888; text-decoration: underline; } .breadcrumbs a:hover { color: #000; } /* Typography */ h1 { font-size: clamp(1.85rem, 4.2vw, 2.5rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.03em; margin-bottom: var(--spacing-sm); } h2 { font-size: clamp(1.5rem, 3vw, 1.95rem); font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; margin-bottom: 1.35rem; padding-bottom: 10px; border-bottom: 2px solid #000; } h3 { font-size: clamp(1.1rem, 2vw, 1.25rem); font-weight: 700; line-height: 1.3; margin-bottom: 0.55rem; color: var(--color-accent); } h4 { font-size: 1.02rem; font-weight: 700; margin-bottom: 0.45rem; } p { margin-bottom: 1.1rem; color: #444; } .service-content { padding-bottom: var(--spacing-lg); } .service-content > section { margin-bottom: 3.5rem; } .section-lead { font-size: 1.05rem; color: #333; margin-bottom: 1.6rem; max-width: 78ch; } .prose-strong { color: #111; font-weight: 700; } /* Hero */ .hero-banner { display: grid; grid-template-columns: 1.4fr 0.85fr; gap: 2.5rem; align-items: stretch; padding: 2.5rem; margin: 1.75rem 0 3rem; border-left: 5px solid var(--color-accent); background: #f9f9f9; } .hero-main { min-width: 0; } .hero-hook { font-size: clamp(1.02rem, 1.9vw, 1.15rem); font-weight: 600; color: #222; line-height: 1.5; margin-bottom: 1.1rem; } .service-meta { display: block; color: #555; font-size: 1rem; line-height: 1.55; margin-bottom: 0.75rem; } .hero-badges { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.35rem; } .hero-badge { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--color-border); border-radius: 50px; padding: 0.4rem 0.95rem; font-size: 0.82rem; font-weight: 600; color: #333; } .hero-badge strong { color: var(--color-accent); } .hero-aside { background: #fff; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 1.6rem; display: flex; flex-direction: column; justify-content: center; gap: 0.85rem; box-shadow: var(--shadow-sm); } .aside-label { font-family: var(--font-mono); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: #999; } .aside-question { font-size: 1.1rem; font-weight: 800; line-height: 1.3; color: #111; margin: 0; } .cta-group { display: flex; flex-direction: column; gap: 0.6rem; } .cta-group .btn { width: 100%; } .cta-hint { font-size: 0.85rem; color: #666; margin: 0; line-height: 1.4; } /* Buttons */ .btn { display: inline-flex; align-items: center; justify-content: center; padding: 0.85rem 1.65rem; border: 1px solid #000; background: #000; color: #fff; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.82rem; border-radius: var(--radius-sm); cursor: pointer; transition: 0.25s; font-family: inherit; text-align: center; } .btn:hover { background: transparent; color: #000; transform: translateY(-2px); } .btn-outline { background: transparent; color: #000; } .btn-outline:hover { background: #000; color: #fff; } /* Content blocks */ .card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.35rem; } .info-card { background: #fff; border: 1px solid var(--color-border); border-radius: 12px; padding: 1.5rem 1.6rem; box-shadow: var(--shadow-sm); transition: transform 0.25s ease, box-shadow 0.25s ease; } .info-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); } .info-card h3 { color: #000; font-size: 1.08rem; } .info-card p:last-child, .info-card ul:last-child { margin-bottom: 0; } .info-card p { font-size: 0.93rem; margin-bottom: 0.65rem; } .check-list li { position: relative; padding-left: 1.4rem; margin-bottom: 0.5rem; font-size: 0.93rem; color: #444; line-height: 1.5; } .check-list li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 7px; height: 7px; border-radius: 50%; background: var(--color-accent); } .check-list li:last-child { margin-bottom: 0; } .module-label { display: block; font-family: var(--font-mono); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-accent); margin-bottom: 0.55rem; } .split-layout { display: grid; grid-template-columns: 1.25fr 0.95fr; gap: 2.25rem; align-items: start; } .note-box { border-left: 4px solid var(--color-accent); background: #f9f4f4; padding: 1.4rem 1.6rem; border-radius: 0 var(--radius-md) var(--radius-md) 0; margin: 1.6rem 0; } .note-box strong { color: var(--color-accent); } .note-box p:last-child { margin-bottom: 0; } .split-layout .note-box { margin: 0; } .side-panel { background: var(--color-light-gray); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 1.5rem 1.6rem; } .side-panel .panel-title { font-family: var(--font-mono); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: #999; margin-bottom: 0.9rem; } .side-panel p { font-size: 0.93rem; margin-bottom: 0.8rem; } .side-panel p:last-child { margin-bottom: 0; } /* Steps */ .process-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; } .step-card { display: grid; grid-template-columns: 52px 1fr; gap: 1.1rem; align-items: start; border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 1.35rem 1.4rem; background: #fff; transition: border-color 0.25s ease, transform 0.25s ease; } .step-card:hover { border-color: var(--color-accent); transform: translateY(-2px); box-shadow: var(--shadow-md); } .step-card.step-wide { grid-column: 1 / -1; } .step-num { width: 48px; height: 48px; border-radius: 50%; background: #111; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 800; line-height: 1.1; text-align: center; flex-shrink: 0; } .step-body h3 { color: #111; margin-bottom: 0.35rem; } .step-body p { margin-bottom: 0; font-size: 0.93rem; } /* Tables */ .data-table-wrap { overflow-x: auto; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; margin-bottom: 1.25rem; } .data-table { width: 100%; border-collapse: collapse; min-width: 620px; font-size: 0.94rem; } .data-table th, .data-table td { padding: 0.9rem 1.2rem; text-align: left; border-bottom: 1px solid var(--color-border); vertical-align: top; } .data-table th { background: #f4f4f4; font-weight: 700; color: #111; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; } .data-table tr:last-child td { border-bottom: none; } .data-table tbody tr:hover { background: #fafafa; } .data-table.pricing-table td:last-child { font-weight: 700; color: var(--color-accent); white-space: nowrap; width: 24%; } .price-note { font-size: 0.92rem; color: #555; margin: 0; padding: 1.2rem 1.4rem; background: #f9f9f9; border: 1px solid var(--color-border); border-radius: var(--radius-md); } /* FAQ */ .faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; } .faq-item { border-bottom: 1px solid var(--color-border); padding: 1.3rem 0; } .faq-item h3 { font-size: 1.02rem; color: #000; margin-bottom: 0.5rem; } .faq-item p { margin-bottom: 0; color: #555; font-size: 0.93rem; } /* Related services */ .related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.1rem; } .related-card { border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 1.2rem 1.35rem; background: #fff; transition: border-color 0.25s ease, transform 0.25s ease; } .related-card:hover { border-color: #000; transform: translateY(-3px); } .related-card h3 { font-size: 1rem; color: #000; margin-bottom: 0.35rem; } .related-card p { font-size: 0.88rem; color: #666; margin-bottom: 0.6rem; } .related-card .related-price { display: block; font-family: var(--font-mono); font-size: 0.78rem; color: var(--color-accent); font-weight: 700; margin-bottom: 0.5rem; } .related-card a.related-link { font-size: 0.85rem; font-weight: 600; color: var(--color-accent); text-decoration: underline; } /* Final CTA */ .cta-section { background: #f4f4f4; padding: 3rem 2.5rem; text-align: center; border-radius: 12px; border-top: 5px solid var(--color-accent); } .cta-section h2 { border-bottom: none; padding-bottom: 0; margin-bottom: 0.75rem; } .cta-section p { max-width: 62ch; margin-left: auto; margin-right: auto; } .cta-section .cta-group { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 1.25rem; } .cta-section .cta-group .btn { width: auto; min-width: 240px; } .cta-section a.inline-link { color: var(--color-accent); text-decoration: underline; font-weight: 600; } /* Footer */ footer { padding: 50px 0; background: #111; color: #fff; border-top: 2px solid #000; margin-top: 60px; } footer p { margin-bottom: 0; } .footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; } .footer-col h4 { text-transform: uppercase; font-size: 0.9rem; letter-spacing: 0.1em; margin-bottom: 25px; color: #fff; } .footer-col ul li { margin-bottom: 12px; } .footer-col a { color: #aaa; } .footer-col a:hover { color: #fff; } .footer-bottom { margin-top: 40px; padding-top: 20px; border-top: 1px solid #333; color: #777; font-size: 0.85rem; } /* Modal */ .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.55); z-index: 3000; align-items: center; justify-content: center; padding: 20px; } .modal-content { background: #fff; padding: var(--spacing-md) var(--spacing-sm); border-radius: var(--radius-md); width: 100%; max-width: 640px; position: relative; max-height: 92vh; overflow-y: auto; box-shadow: var(--shadow-lg); } .close-modal { position: absolute; top: 12px; right: 18px; font-size: 1.6rem; cursor: pointer; color: var(--color-gray); line-height: 1; } .close-modal:hover { color: #000; } .form-group { margin-bottom: 1.1rem; } .form-group label { display: block; margin-bottom: 0.4rem; font-weight: 600; font-size: 0.88rem; } .form-group input, .form-group select, .form-group textarea { width: 100%; padding: 0.8rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-family: inherit; font-size: 1rem; background: #fff; } .form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline: none; border-color: #000; } .form-message { display: none; margin-bottom: 1rem; padding: 0.85rem 1rem; border-radius: var(--radius-sm); font-size: 0.9rem; } .form-error { background: #fee; color: #c00; border: 1px solid #fcc; } .form-success { background: #efe; color: #060; border: 1px solid #cfc; } .service-fields { margin-bottom: 1rem; } @media (max-width: 1000px) { .hero-banner, .split-layout, .faq-grid, .process-steps { grid-template-columns: 1fr; } .step-card.step-wide { grid-column: auto; } .hero-banner { gap: 1.75rem; } } @media (max-width: 700px) { .hero-banner { padding: 1.9rem 1.35rem; } .cta-section { padding: 2.2rem 1.35rem; } .step-card { grid-template-columns: 1fr; gap: 0.8rem; } .cta-section .cta-group .btn { width: 100%; min-width: 0; } }