


.btn, .quick-nav-item, .nav-link, button, input[type="submit"]{
 min-height:44px;
 min-width:44px;
 touch-action:manipulation;
}


.concert-card, .festival-card, .theater-card, .location-card{
 min-height:80px;
 cursor:pointer;
 transition:all 0.2s ease;
}

.concert-card:active, .festival-card:active, .theater-card:active, .location-card:active{
 transform:scale(0.98);
}


@media (max-width:768px){
 body{
 font-size:16px;
 line-height:1.5;
}
 
 h1, .hero-title{
 font-size:2rem !important;
 line-height:1.2;
 margin-bottom:1rem;
}
 
 h2, .content-section h2{
 font-size:1.5rem !important;
 line-height:1.3;
 margin-bottom:1rem;
}
 
 h3{
 font-size:1.25rem !important;
 line-height:1.4;
}
 
 p, .section-intro{
 font-size:1rem;
 line-height:1.6;
 margin-bottom:1rem;
}
 
 
 .price, .detail, .venue, .genre{
 font-size:0.875rem !important;
 font-weight:600;
}
}


@media (max-width:768px){
 .hero-stats{
 flex-direction:column;
 gap:1rem !important;
 text-align:center;
}
 
 .quick-nav-items{
 flex-wrap:nowrap;
 overflow-x:auto;
 scroll-snap-type:x mandatory;
 -webkit-overflow-scrolling:touch;
 padding-bottom:10px;
}
 
 .quick-nav-item{
 scroll-snap-align:start;
 flex-shrink:0;
}
 
 
 .today-concerts,
 .festival-grid,
 .theater-grid,
 .genres-grid,
 .locations-grid,
 .ticket-info-grid,
 .types-grid{
 grid-template-columns:1fr !important;
 gap:1rem;
}
 
 
 .concert-card,
 .festival-card,
 .theater-card,
 .location-card,
 .genre-card,
 .type-card{
 padding:1.25rem;
 margin-bottom:1rem;
}
}


@media (max-width:768px){
 .hero{
 padding:3rem 0 2rem 0 !important;
 text-align:center;
}
 
 .hero-container{
 padding:0 1rem;
}
 
 .hero-subtitle{
 font-size:1rem !important;
 margin-bottom:2rem;
}
 
 .hero-cta{
 flex-direction:column;
 align-items:center;
 gap:1rem;
}
 
 .hero-cta .btn{
 width:100%;
 max-width:280px;
 padding:1rem 2rem;
 font-size:1rem;
}
}


@media (max-width:768px){
 input[type="search"],
 input[type="text"],
 input[type="email"],
 textarea{
 font-size:16px;
 padding:12px 16px;
 border-radius:8px;
 border:2px solid #ddd;
 width:100%;
 box-sizing:border-box;
}
 
 input:focus,
 textarea:focus{
 border-color:#ff6b6b;
 outline:none;
 box-shadow:0 0 0 3px rgba(255, 107, 107, 0.1);
}
}


@media (max-width:768px){
 .quick-nav{
 position:static !important;
 padding:1rem 0;
}
 
 .quick-nav-items{
 justify-content:flex-start;
 gap:0.75rem;
}
 
 .quick-nav-item{
 padding:0.75rem 1rem;
 border-radius:20px;
 font-size:0.875rem;
 white-space:nowrap;
}
}


@media (max-width:768px){
 .faq-section,
 .content-section{
 padding:2rem 1rem;
 margin:1rem 0;
}
 
 .faq-item{
 padding:1.25rem;
 margin-bottom:1rem;
}
 
 .faq-item h3{
 font-size:1.1rem !important;
 margin-bottom:0.75rem;
}
}


@media (max-width:768px){
 .week-calendar,
 .calendar-grid{
 grid-template-columns:1fr !important;
 gap:1rem;
}
 
 .day-card,
 .month-card{
 padding:1rem;
}
 
 .day-card h3,
 .month-card h3{
 font-size:1.1rem !important;
 margin-bottom:0.75rem;
}
}


@media (max-width:768px){
 .price-breakdown{
 gap:1rem;
}
 
 .price-category{
 padding:1rem;
}
 
 .price-range{
 font-size:1.25rem !important;
 margin-bottom:1rem;
}
 
 .tips-grid{
 grid-template-columns:1fr !important;
 gap:1rem;
}
 
 .tip{
 padding:1rem;
 flex-direction:column;
 text-align:center;
 gap:0.75rem;
}
 
 .tip-icon{
 margin:0 auto;
}
}


@media (max-width:768px){
 
 *{
 transition-duration:0.2s !important;
}
 
 
 img{
 max-width:100%;
 height:auto;
 object-fit:cover;
}
 
 
 .container{
 padding:0 1rem;
 max-width:100%;
}
 
 
 .sticky{
 position:static !important;
}
}


@media (max-width:768px) and (prefers-color-scheme:dark){
 .concert-card,
 .festival-card,
 .theater-card,
 .location-card,
 .faq-item{
 background:#1a1a1a;
 color:#fff;
 border:1px solid #333;
}
 
 .price,
 .detail,
 .genre{
 background:#333;
 color:#fff;
}
}


@media (max-width:768px){
 
 a:focus,
 button:focus,
 input:focus{
 outline:3px solid #ff6b6b;
 outline-offset:2px;
}
 
 
 .skip-link{
 position:absolute;
 top:-40px;
 left:6px;
 background:#ff6b6b;
 color:white;
 padding:8px;
 text-decoration:none;
 border-radius:4px;
 z-index:9999;
}
 
 .skip-link:focus{
 top:6px;
}
}


@supports (display:grid) and (max-width:768px){
 .mobile-grid{
 display:grid;
 grid-template-columns:1fr;
 gap:1rem;
}
}


@media (max-width:768px){
 .loading{
 padding:2rem;
 text-align:center;
}
 
 .loading::after{
 content:"";
 width:40px;
 height:40px;
 border:4px solid #f3f3f3;
 border-top:4px solid #ff6b6b;
 border-radius:50%;
 animation:spin 1s linear infinite;
 display:inline-block;
 margin-top:1rem;
}
}

@keyframes spin{
 0%{transform:rotate(0deg);}
 100%{transform:rotate(360deg);}
}


@media (max-width:768px){
 .mobile-hidden{
 display:none !important;
}
 
 .mobile-only{
 display:block !important;
}
 
 .mobile-text-center{
 text-align:center !important;
}
 
 .mobile-full-width{
 width:100% !important;
}
 
 .mobile-margin-top{
 margin-top:1rem !important;
}
 
 .mobile-padding{
 padding:1rem !important;
}
}