/* SBB Web Font */
@font-face {
    font-family: 'SBBWeb-Roman';
    src: url('https://www.sbb.ch/fonts/SBBWeb-Roman.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

/* Base Styles */
body {
    font-family: 'SBBWeb-Roman', Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Smooth Scroll */
html {
    scroll-behavior: smooth;
}

/* Custom Focus Styles */
*:focus {
    outline: none;
    box-shadow: 0 0 0 2px #EC0000;
}

/* Typography Refinements */
h1, h2, h3, h4, h5, h6 {
    font-family: 'SBBWeb-Roman', Arial, sans-serif;
    letter-spacing: -0.02em;
}

/* Button Hover Effects */
.bg-sbb-red {
    transition: background-color 0.2s ease-in-out;
}

.bg-sbb-red:hover {
    background-color: #CC0000;
}

/* Form Input Styles */
input, textarea {
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

input:focus, textarea:focus {
    border-color: #EC0000;
    box-shadow: 0 0 0 1px #EC0000;
}

/* Link Hover Effects */
a {
    transition: color 0.2s ease-in-out;
}

/* Image Styles */
img {
    max-width: 100%;
    height: auto;
}

/* Section Spacing */
section {
    overflow: hidden;
}

/* Navigation Links */
nav a {
    position: relative;
}

nav a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #EC0000;
    transition: width 0.2s ease-in-out;
}

nav a:hover::after {
    width: 100%;
}

/* Card Hover Effects */
.border-l-4 {
    transition: transform 0.2s ease-in-out;
}

.border-l-4:hover {
    transform: translateX(4px);
}

/* Footer Links */
footer a {
    transition: color 0.2s ease-in-out;
}

footer a:hover {
    color: #ffffff;
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    h1 {
        font-size: 2.5rem;
    }
    
    h2 {
        font-size: 2rem;
    }
    
    .grid {
        gap: 1.5rem;
    }
}