/*
 * Gastro Booking System - Custom Styles (cleaned)
 * Structured, no redundant !important, clearer selector specificity.
 */

:root {
    /* Theme tokens */
    --gastro-primary: #f59e0b;
    --gastro-primary-dark: #d97706;
    --gastro-secondary: #fb923c;
    --gastro-accent: #f97316;
    --gastro-bg-light: #fff8eb;
    --gastro-bg-cream: #fffdf8;
    --gastro-bg-white: #ffffff;
    --gastro-text-dark: #2f343a;
    --gastro-text-light: #5f6770;
    --gastro-border: #f0d7a6;
    --gastro-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --gastro-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --gastro-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --gastro-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

/* Header styles have been moved to gastro-header.css
   To edit header rules, open web/public/css/gastro-header.css */

/* ======================================================================
   Hero / Marketing
   ====================================================================== */
.hero-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--gastro-text-dark);
    text-align: center;
    line-height: 1.2;
}
.hero-subtitle {
    font-size: 1.25rem;
    color: var(--gastro-text-light);
    text-align: center;
    line-height: 1.4;
}
.hero-intro {
    font-size: 1rem;
    color: var(--gastro-text-light);
    text-align: center;
}

.hero-marketing {
    position: relative;
    overflow: hidden;
    min-height: 360px;
    background: linear-gradient(115deg, rgba(255,248,235,0.78) 5%, rgba(255,243,224,0.60) 50%, rgba(254,235,200,0.40) 100%), var(--hero-bg, none) center/cover no-repeat;
}
.hero-marketing-content { position: relative; z-index: 2; max-width: 760px; }

/* ======================================================================
   Cards / Boxes
   ====================================================================== */
.gastro-box,
.feature-card.gastro-box {
    background: var(--gastro-bg-cream);
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: var(--gastro-shadow-md);
    border: 2px solid transparent;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.gastro-box:hover,
.feature-card.gastro-box:hover {
    transform: translateY(-3px);
    box-shadow: var(--gastro-shadow-xl);
    border-color: var(--gastro-primary);
}
.gastro-box-static {
    background: var(--gastro-bg-cream);
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: var(--gastro-shadow-md);
    border: 2px solid var(--gastro-border);
}

/* Confirmation box */
.gastro-confirmation {
    background: var(--gastro-bg-cream);
    border: 2px solid var(--gastro-border);
    border-radius: 1rem;
    padding: 2.5rem;
    box-shadow: var(--gastro-shadow-md);
}
.gastro-confirmation.success { border-color: #10b981; }
.gastro-confirmation.pending { border-color: #f59e0b; }
.gastro-confirmation.error { border-color: #ef4444; }

.gastro-details-box { background: #ffffff; border: 1px solid var(--gastro-border); border-radius: 0.75rem; padding: 1.5rem; }

/* Badges */
.gastro-badge { display: inline-block; padding: 0.5rem 1rem; border-radius: 2rem; font-size: 0.875rem; font-weight: 600; box-shadow: var(--gastro-shadow-sm); }
.gastro-badge-success { background: linear-gradient(135deg, #10b981, #059669); color: white; }
.gastro-badge-pending { background: linear-gradient(135deg, #fcd34d, #fb923c); color: var(--gastro-text-dark); }
.gastro-badge-error { background: linear-gradient(135deg, #ef4444, #dc2626); color: white; }
.gastro-badge-cancelled { background: linear-gradient(135deg, #9ca3af, #6b7280); color: white; }

/* ======================================================================
   Buttons / Forms
   ====================================================================== */
.gastro-btn { display: inline-block; padding: 0.875rem 2rem; border-radius: 0.5rem; text-decoration: none; font-weight: 600; transition: all 0.3s; border: none; cursor: pointer; font-size: 1rem; }
.gastro-btn-primary { background-color: var(--gastro-accent); color: var(--gastro-text-dark); }
.gastro-btn-primary:hover { background-color: var(--gastro-primary-dark); color: white; transform: translateY(-2px); box-shadow: var(--gastro-shadow-lg); }
.gastro-btn-secondary { background-color: rgba(255,255,255,0.65); color: var(--gastro-text-dark); border: 2px solid rgba(47,52,58,0.2); }
.gastro-btn-secondary:hover { background-color: white; color: var(--gastro-text-dark); }

.gastro-input { width:100%; padding:0.75rem; border:2px solid var(--gastro-border); border-radius:0.5rem; font-size:1rem; font-family:inherit; color:var(--gastro-text-dark); background:var(--gastro-bg-white); transition: all 0.3s; }
.gastro-input:focus { outline:none; border-color:var(--gastro-primary); box-shadow:0 0 0 3px rgba(245,158,11,0.18); }

/* Alerts */
.gastro-alert { padding:1rem; border-radius:0.5rem; margin-bottom:1rem; }
.gastro-alert-info { background:#dbeafe; border:1px solid #93c5fd; color:#1e40af; }
.gastro-alert-success { background:#d1fae5; border:1px solid #6ee7b7; color:#065f46; }
.gastro-alert-warning { background:#fef3c7; border:1px solid #fcd34d; color:#92400e; }
.gastro-alert-error { background:#fee2e2; border:1px solid #fca5a5; color:#991b1b; }

/* ======================================================================
   Layout utilities & Typography
   ====================================================================== */
.gastro-section { padding:3rem 0; }
.gastro-section-alt { background-color: var(--gastro-bg-light); }
.gastro-heading-1 { font-size:2.5rem; font-weight:700; color:var(--gastro-text-dark); margin-bottom:1rem; }
.gastro-heading-2 { font-size:2rem; font-weight:700; color:var(--gastro-text-dark); margin-bottom:0.75rem; }
.gastro-heading-3 { font-size:1.5rem; font-weight:600; color:var(--gastro-text-dark); margin-bottom:0.5rem; }
.gastro-text-light { color:var(--gastro-text-light); }
.gastro-text-primary { color:var(--gastro-primary); }

/* Calendar / Time-slot */
.gastro-calendar-day.available:hover { background-color:var(--gastro-primary); color:white; transform:scale(1.05); }
.gastro-calendar-day.selected { background-color:var(--gastro-primary-dark); color:white; box-shadow:var(--gastro-shadow-md); }
.gastro-time-slot { background:var(--gastro-bg-cream); border:2px solid var(--gastro-border); border-radius:0.5rem; padding:0.75rem; transition: all 0.2s; }
.gastro-time-slot:hover { background:var(--gastro-primary); color:white; border-color:var(--gastro-primary-dark); transform:scale(1.03); }
.gastro-time-slot.selected { background:var(--gastro-primary-dark); color:white; border-color:var(--gastro-primary-dark); }

/* Responsive */
@media (max-width: 768px) {
    .hero-title { font-size:1.875rem; }
    .hero-subtitle { font-size:1.125rem; }
    .gastro-box, .gastro-box-static, .gastro-confirmation { padding:1.5rem; }
    .gastro-heading-1 { font-size:2rem; }
    .gastro-heading-2 { font-size:1.5rem; }
}
