/*!
Theme Name: Ehitusload Theme
Theme URI: http://underscores.me/
Author: Veiko Teekel
Author URI: http://underscores.me/
Description: Custom theme: Ehitusload Theme, developed by Veiko Teekel
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ehitusload-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Ehitusload Theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

@media (min-width: 1024px) {
    .section-padding {
        padding: 4rem 3rem !important;
    }
}

.hentry p {
    margin-bottom: 1rem;
}

/* Tailwind Dropdown Classes */
.absolute {
    position: absolute;
}

.top-full {
    top: 100%;
}

.left-0 {
    left: 0;
}

.mt-1 {
    margin-top: 0.25rem;
}

/* Mobile Menu CSS - Tailwind Classes */

/* Layout & Positioning */
.fixed {
    position: fixed;
}

.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.top-0 {
    top: 0;
}

.right-0 {
    right: 0;
}

.bottom-0 {
    bottom: 0;
}

/* Sizing */
.w-80 {
    width: 20rem;
}

.max-w-85vw {
    max-width: 85vw;
}

.h-full {
    height: 100%;
}

/* Z-index */
.z-40 {
    z-index: 40;
}

.z-50 {
    z-index: 50;
}

/* Background & Colors */
.bg-black\/50 {
    background-color: rgba(0, 0, 0, 0.5);
}

.bg-card {
    background-color: #ffffff;
}

.bg-secondary\/50 {
    background-color: rgba(241, 245, 249, 0.5);
}

.text-foreground {
    color: #0f172a;
}

.text-muted-foreground {
    color: #64748b;
}

.text-accent {
    color: #2d765e;
}

/* Borders & Shadows */
.border-b {
    border-bottom: 1px solid;
}

.border-border {
    border-color: #e2e8f0;
}

.border {
    border: 1px solid;
}

.border-input {
    border-color: #e2e8f0;
}

.shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Flexbox */
.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-1 {
    flex: 1 1 0%;
}

.items-center {
    align-items: center;
}

.justify-between {
    justify-content: space-between;
}

/* Spacing */
.p-5 {
    padding: 1.25rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 0.75rem;
}

.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem}

.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.pl-4 {
    padding-left: 1rem;
}

.-mr-2 {
    margin-right: -0.5rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.space-y-1 > * + * {
    margin-top: 0.25rem;
}

.space-y-2 > * + * {
    margin-top: 0.5rem;
}

/* Typography */
.font-semibold {
    font-weight: 600;
}

.font-medium {
    font-weight: 500;
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}

.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.block {
    display: block;
}

.inline-flex {
    display: inline-flex;
}

/* Transforms & Transitions */
.transform {
    transform: translateX(0);
}

.translate-x-full {
    transform: translateX(100%);
}

.transition-transform {
    transition-property: transform;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.transition-opacity {
    transition-property: opacity;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-duration: 150ms;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.duration-300 {
    transition-duration: 300ms;
}

.duration-200 {
    transition-duration: 200ms;
}

.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Visibility */
.hidden {
    display: none;
}

.opacity-100 {
    opacity: 1;
}

/* Overflow */
.overflow-y-auto {
    overflow-y: auto;
}

/* Hover States */
.hover\:text-foreground:hover {
    color: #0f172a;
}

.hover\:text-accent:hover {
    color: #2d765e;
}

.hover\:bg-secondary\/50:hover {
    background-color: rgba(241, 245, 249, 0.5);
}

/* Responsive - Hide on medium screens and up */
@media (min-width: 768px) {
    .md\:hidden {
        display: none;
    }
    
    .md\:flex {
        display: flex;
    }
}

/* Mobile Menu Specific Styles */
.mobile-menu-item {
    border-bottom: 1px solid transparent;
}

.submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}

.submenu:not(.hidden) {
    max-height: 500px;
}

.submenu-toggle svg {
    transition: transform 0.2s ease-in-out;
}

.submenu-toggle[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

/* Button Styles */
.rounded-md {
    border-radius: 0.375rem;
}

.rounded-lg {
    border-radius: 0.5rem;
}

/* Focus States */
.focus-visible\:outline-none:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.focus-visible\:ring-2:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(45, 118, 94, 0.2);
}

/* Disabled States */
.disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
}

.disabled\:opacity-50:disabled {
    opacity: 0.5;
}

/* SVG Icon Styles */
.lucide {
    display: inline-block;
    vertical-align: middle;
}

/* Scroll Lock Prevention */
body.scroll-locked {
    overflow: hidden;
}

/* Mobile Menu Animation */
#mobile-menu {
    will-change: transform;
    /* Ensure menu is hidden by default */
    transform: translateX(100%) !important;
}

#mobile-menu-overlay {
    will-change: opacity;
    /* Ensure overlay is hidden by default */
    opacity: 0 !important;
    visibility: hidden !important;
}

/* Override any conflicting styles */
#mobile-menu:not(.hidden) {
    transform: translateX(100%);
}

#mobile-menu.menu-open {
    transform: translateX(0) !important;
}

#mobile-menu-overlay.overlay-open {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Mobile Menu Button Styles */
button {
    background: none;
    border: none;
    cursor: pointer;
}

button:focus {
    outline: 2px solid #2d765e;
    outline-offset: 2px;
}

/* Accessibility */
[aria-hidden="true"] {
    visibility: hidden;
}

[aria-expanded="false"] .submenu {
    display: none;
}

[aria-expanded="true"] .submenu {
    display: block;
}

/* "Küsi pakkumist" Button Styles */
.inline-flex {
    display: inline-flex;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.gap-2 {
    gap: 0.5rem;
}

.whitespace-nowrap {
    white-space: nowrap;
}

.ring-offset-background {
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-color: #ffffff;
}

.focus-visible\:outline-none:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
}

.focus-visible\:ring-2:focus-visible {
    --tw-ring-width: 2px;
    --tw-ring-color: rgba(45, 118, 94, 0.5);
    box-shadow: var(--tw-ring-offset-width) 0 0 0 var(--tw-ring-width) var(--tw-ring-color);
}

.focus-visible\:ring-ring:focus-visible {
    --tw-ring-color: rgba(45, 118, 94, 0.5);
}

.focus-visible\:ring-offset-2:focus-visible {
    --tw-ring-offset-width: 2px;
}

.disabled\:pointer-events-none:disabled {
    pointer-events: none;
}

.disabled\:opacity-50:disabled {
    opacity: 0.5;
}

.bg-accent {
    background-color: #2d765e;
}

.text-accent-foreground {
    color: #ffffff;
}

.hover\:bg-accent\/90:hover {
    background-color: rgba(45, 118, 94, 0.9);
}

.font-semibold {
    font-weight: 600;
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.h-12 {
    height: 3rem;
}

.rounded-lg {
    border-radius: 0.5rem;
}

.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}

/* SVG specific styles */
[&_svg]:pointer-events-none svg {
    pointer-events: none;
}

[&_svg]:size-4 svg {
    width: 1rem;
    height: 1rem;
}

[&_svg]:shrink-0 svg {
    flex-shrink: 0;
}

.w-48 {
    width: 12rem;
}

.bg-popover {
    background-color: hsl(var(--popover));
}

.border {
    border: 1px solid;
}

.border-border {
    border-color: hsl(var(--border));
}

.rounded-lg {
    border-radius: 0.5rem;
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.opacity-0 {
    opacity: 0;
}

.invisible {
    visibility: hidden;
}

.visibility-hidden {
    visibility: hidden;
}

.group:hover .group-hover\:visible {
    visibility: visible;
}

.group:hover .group-hover\:opacity-100 {
    opacity: 1;
}

.group:hover .group-hover\:visibility-visible {
    visibility: visible;
}

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.duration-200 {
    transition-duration: 200ms;
}

.min-w-\[20rem\] {
    min-width: 20rem;
}

.z-50 {
    z-index: 50;
}

.bg-white {
    background-color: white;
}

.kkk-dropdown {
    margin-left: -1rem;
    border-radius: 0.5rem;
    border: 1px solid #e5e7eb;
    padding: 10px;
}

/* Admin Bar compensation */
.admin-bar .pt-24 {
    padding-top: calc(6rem + 32px);
}

.admin-bar .fixed.top-0 {
    top: 32px;
}


#kontakt-info p {
    margin-bottom: 0;
}

/* Side by side layout for contact panels */
.wp-block-ehitusload-theme-contact-info,
.wp-block-acf-inquiry-panel {
    width: 100%;
}

@media (min-width: 768px) {
    .wp-block-ehitusload-theme-contact-info + .wp-block-acf-inquiry-panel,
    .wp-block-acf-inquiry-panel + .wp-block-ehitusload-theme-contact-info {
        margin-left: 1.5rem;
    }
    
    .wp-block-ehitusload-theme-contact-info,
    .wp-block-acf-inquiry-panel {
        width: calc(50% - 0.75rem);
        display: inline-block;
        vertical-align: top;
    }
}

/* H1 styling */
h1 {
    font-size: 2.25rem;
    line-height: 2.5rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 1rem;
}

@media (min-width: 768px) {
    h1 {
        font-size: 3rem;
        line-height: 1;
    }
}

/* H2 styling */
h2 {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
    color: #0f172a;
}

/* H3 styling */
h3 {
    font-size: 1.875rem;
    line-height: 2.25rem;
    font-weight: 700;
    color: #0f172a;
}

/* H4 styling */
h4 {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 600;
    color: #0f172a;
}

/* H5 styling */
h5 {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: #0f172a;
}

/* H6 styling */
h6 {
    font-size: 1.125rem;
    line-height: 1.75rem;
    font-weight: 500;
    color: #0f172a;
}

/* Blockquote styling */
blockquote {
   margin-top: 40px !important;
   margin-bottom: 40px !important;
    border-left: 4px solid #66758a;
    padding-left: 1rem;
    font-style: italic;
    color: #64748b;
   
}

/* HR styling */
hr {
    border: none;
    background-color: #e2e8f0;
    height: 1px;
    width: 100%;
    margin: 3rem 0;
}

/* Button styling */
.button-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-default:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-default:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-default svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-default {
    background-color: #3b82f6;
    color: white;
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-default:hover {
    background-color: #2563eb;
}

/* Button secondary styling */
.button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-secondary:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-secondary:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-secondary svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-secondary {
    background-color: #f1f5f9;
    color: #0f172a;
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-secondary:hover {
    background-color: #e2e8f0;
}

/* Button outline styling */
.button-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: colors 0.2s;
    cursor: pointer;
    outline: none;
}

.button-outline:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-outline:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-outline svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-outline {
    border: 1px solid #e2e8f0;
    background-color: white;
    color: #0f172a;
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-outline:hover {
    background-color: #3b82f6;
    color: white;
}

/* Button destructive styling */
.button-destructive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-destructive:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-destructive:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-destructive svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-destructive {
    background-color: #ef4444;
    color: white;
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-destructive:hover {
    background-color: #dc2626;
}

/* Button hero styling */
.button-hero {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-hero:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-hero:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-hero svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-hero {
    background-color: #3b82f6;
    color: white;
    font-weight: 600;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-hero:hover {
    background-color: #2563eb;
}

/* Button hero outline styling */
.button-hero-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    border-radius: 0.375rem;
    font-size: 0.875rem;
    transition: colors 0.2s;
    cursor: pointer;
    outline: none;
}

.button-hero-outline:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-hero-outline:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-hero-outline svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-hero-outline {
    border: 2px solid #3b82f6;
    background-color: transparent;
    color: #3b82f6;
    font-weight: 600;
    height: 2.5rem;
    padding: 0.5rem 1rem;
}

.button-hero-outline:hover {
    background-color: #3b82f6;
    color: white;
}

/* Button large styling */
.button-large {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    font-weight: 500;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-large:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-large:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-large svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-large {
    background-color: #3b82f6;
    color: white;
    height: 3rem;
    border-radius: 0.5rem;
    padding: 0 2rem;
    font-size: 1rem;
}

.button-large:hover {
    background-color: #2563eb;
}

/* Button extra large styling */
.button-extra-large {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    white-space: nowrap;
    font-weight: 500;
    transition: colors 0.2s;
    border: none;
    cursor: pointer;
    outline: none;
}

.button-extra-large:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.button-extra-large:disabled {
    pointer-events: none;
    opacity: 0.5;
}

.button-extra-large svg {
    pointer-events: none;
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.button-extra-large {
    background-color: #3b82f6;
    color: white;
    height: 3.5rem;
    border-radius: 0.5rem;
    padding: 0 2.5rem;
    font-size: 1rem;
}

.button-extra-large:hover {
    background-color: #2563eb;
}

/* Badge styling */
.badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    border: 1px solid transparent;
    padding: 0.125rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    transition: colors 0.2s;
}

.badge:focus {
    outline: none;
}

.badge:focus-visible {
    outline: 2px solid #3b82f6;
    outline-offset: 2px;
}

.badge {
    background-color: #3b82f6;
    color: white;
}

.badge:hover {
    background-color: #2563eb;
}

/* Table styling */
.table {
    width: 100%;
    caption-side: bottom;
    font-size: 0.875rem;
    border-collapse: collapse;
}

.table thead tr {
    border-bottom: 1px solid #e2e8f0;
}

.table th {
    height: 3rem;
    padding: 0 1rem;
    text-align: left;
    vertical-align: middle;
    font-weight: 500;
    color: #64748b;
}

.table th:has([role="checkbox"]) {
    padding-right: 0;
}

.table tbody tr:last-child {
    border-bottom: none;
}

.table tbody tr {
    border-bottom: 1px solid #e2e8f0;
    transition: background-color 0.2s;
}

.table tbody tr:hover {
    background-color: #f8fafc;
}

.table td {
    padding: 1rem;
    vertical-align: middle;
}

.table td:has([role="checkbox"]) {
    padding-right: 0;
}

.table td.font-medium {
    font-weight: 500;
}

.table td.text-right {
    text-align: right;
}

.text-muted-foreground {
    color: hsl(var(--muted-foreground));
}