/* =========================================================
   Theme: Vintage
   Activated by: <body class="theme-vintage">

   Clean editorial / warm minimal — coral accent, flat,
   geometric sans-serif headings, zero 3D effects.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;600;700;800&display=swap');

/* ----- Palette reference --------------------------
   bg:           #e8d9c0  aged paper / warm tan
   bg-alt:       #dfd0b0  slightly deeper tan
   bg-raised:    #f5eed8  lighter cream (cards, modals)
   navbar:       #2a2a2a  dark charcoal
   text:         #2a2a2a  dark charcoal
   text-muted:   #80786a  warm medium gray
   accent:       #d4604a  coral / terracotta
   accent-hover: #be4d3a  deeper coral
   border:       #cec0a0  warm tan border
   font:         'Raleway', sans-serif
   -------------------------------------------------- */

/* ----- CSS variable overrides — replaces all inherited greens ----- */
body.theme-vintage {
    --font-vintage: 'Raleway', sans-serif;
    /* Redirect green design tokens → coral */
    --color-primary:       #d4604a;
    --color-primary-light: #e07860;
    --color-primary-dark:  #be4d3a;
    --color-secondary:     #d4604a;
    --color-secondary-light: #e07860;
    /* Bootstrap success → coral (fixes text-success, alert-success badges) */
    --bs-success:          #d4604a;
    --bs-success-rgb:      212, 96, 74;
    --bs-link-color:       #d4604a;
    --bs-link-hover-color: #be4d3a;
}

/* ----- Toggle button ----- */
.theme-toggle-btn {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.7);
    width: 30px;
    height: 30px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s, border-color 0.2s;
    cursor: pointer;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.theme-toggle-btn:hover {
    color: var(--color-accent);
    border-color: var(--color-accent);
}

body.theme-vintage .theme-toggle-btn {
    border-color: rgba(212, 96, 74, 0.6);
    color: #d4604a;
}

body.theme-vintage .theme-toggle-btn:hover {
    border-color: #d4604a;
    color: #be4d3a;
}

/* =========================================================
   Base
   ========================================================= */

body.theme-vintage {
    background-color: #e8d9c0;
    color: #2a2a2a;
}

body.theme-vintage .main-content {
    color: #2a2a2a;
}

/* ----- Typography ----- */
body.theme-vintage h1,
body.theme-vintage h2,
body.theme-vintage h3,
body.theme-vintage h4,
body.theme-vintage h5,
body.theme-vintage h6,
body.theme-vintage .card-title,
body.theme-vintage .modal-title {
    font-family: var(--font-vintage);
    color: #2a2a2a;
    letter-spacing: 0.01em;
    font-weight: 700;
}

body.theme-vintage p,
body.theme-vintage li {
    color: #2a2a2a;
}

body.theme-vintage .text-muted,
body.theme-vintage .text-secondary {
    color: #909088 !important;
}

body.theme-vintage a:not(.btn):not(.nav-link):not(.dropdown-item) {
    color: #d4604a;
}

body.theme-vintage a:not(.btn):not(.nav-link):not(.dropdown-item):hover {
    color: #be4d3a;
}

body.theme-vintage hr {
    border-color: #cec0a0;
    opacity: 1;
}

/* =========================================================
   Navbar — dark charcoal, coral accent line
   ========================================================= */

body.theme-vintage .navbar-bridge {
    background: #2a2a2a !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: 3px solid #d4604a;
    box-shadow: none;
}

body.theme-vintage .navbar-bridge .nav-link {
    font-family: var(--font-vintage);
    font-weight: 600;
    letter-spacing: 0.05em;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.85) !important;
}

body.theme-vintage .navbar-bridge .nav-link:hover,
body.theme-vintage .navbar-bridge .nav-link.active {
    color: #d4604a !important;
}

body.theme-vintage .navbar-bridge .navbar-brand {
    font-family: var(--font-vintage);
    font-weight: 800;
}

/* Dropdown */
body.theme-vintage .navbar-bridge .dropdown-menu {
    background: #f5eed8;
    border: 1px solid #cec0a0;
    border-top: 3px solid #d4604a;
    border-radius: 3px;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.theme-vintage .navbar-bridge .dropdown-item {
    color: #2a2a2a;
    font-family: var(--font-vintage);
    font-size: 0.88rem;
    font-weight: 600;
    text-shadow: none;
}

body.theme-vintage .navbar-bridge .dropdown-item:hover,
body.theme-vintage .navbar-bridge .dropdown-item:focus {
    background: #f5eed8;
    color: #d4604a;
}

body.theme-vintage .navbar-bridge .dropdown-item.active,
body.theme-vintage .navbar-bridge .dropdown-item:active {
    background: #d4604a;
    color: #ffffff;
}

body.theme-vintage .dropdown-divider {
    border-color: #cec0a0;
}

/* Language switcher */
body.theme-vintage .btn-outline-light {
    color: rgba(255, 255, 255, 0.8);
    border-color: rgba(255, 255, 255, 0.25);
}

body.theme-vintage .btn-outline-light.active-lang {
    background: #d4604a;
    border-color: #d4604a;
    color: #ffffff;
}

/* =========================================================
   Cards
   ========================================================= */

body.theme-vintage .card {
    background: #f5eed8;
    border: 1px solid #cec0a0;
    border-top: 3px solid #d4604a;
    border-radius: 3px;
    box-shadow: none;
}

body.theme-vintage .card-header {
    background: #dfd0b0;
    border-bottom: 1px solid #cec0a0;
    font-family: var(--font-vintage);
    font-weight: 700;
    color: #2a2a2a;
    border-radius: 0 !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.78rem;
}

body.theme-vintage .card-body {
    color: #2a2a2a;
}

body.theme-vintage .card-text {
    color: #555550;
}

body.theme-vintage .card-title {
    color: #2a2a2a;
    font-family: var(--font-vintage);
    font-weight: 700;
}

/* Archive cards */
body.theme-vintage .archive-card {
    background: #f5eed8;
    border: 1px solid #cec0a0;
    border-left: 3px solid #d4604a;
    box-shadow: none;
    color: #2a2a2a;
}

body.theme-vintage .archive-card:hover {
    background: #f5eed8;
    border-left-color: #be4d3a;
    box-shadow: none;
    transform: none;
}

body.theme-vintage .archive-card .text-muted,
body.theme-vintage .archive-card small {
    color: #909088 !important;
}

/* Registration list */
body.theme-vintage ul.inscrieri li {
    background: #ffffff !important;
    border-color: #cec0a0 !important;
    color: #2a2a2a;
}

/* =========================================================
   Buttons — flat, no shadows, no transforms
   ========================================================= */

body.theme-vintage .btn-primary {
    background: #d4604a;
    border: 1px solid #be4d3a;
    border-radius: 3px;
    box-shadow: none;
    color: #ffffff;
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.06em;
    transition: background 0.15s;
}

body.theme-vintage .btn-primary:hover,
body.theme-vintage .btn-primary:focus {
    background: #be4d3a;
    border-color: #a83d2e;
    color: #ffffff;
    box-shadow: none;
    transform: none;
}

body.theme-vintage .btn-outline-primary {
    background: transparent;
    border: 1px solid #d4604a;
    border-radius: 3px;
    color: #d4604a;
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.06em;
}

body.theme-vintage .btn-outline-primary:hover,
body.theme-vintage .btn-outline-primary:focus {
    background: #d4604a;
    color: #ffffff;
    border-color: #d4604a;
    box-shadow: none;
    transform: none;
}

body.theme-vintage .btn-outline-secondary {
    background: transparent;
    border: 1px solid #b8aa90;
    border-radius: 3px;
    color: #555550;
    box-shadow: none;
}

body.theme-vintage .btn-outline-secondary:hover {
    background: #dfd0b0;
    border-color: #a8a49c;
    color: #2a2a2a;
    box-shadow: none;
    transform: none;
}

body.theme-vintage .btn-danger {
    background: #c8403a;
    border: 1px solid #a83030;
    border-radius: 3px;
    color: #ffffff;
    box-shadow: none;
    font-family: var(--font-vintage);
    font-weight: 700;
}

body.theme-vintage .btn-danger:hover {
    background: #a83030;
    color: #ffffff;
    box-shadow: none;
    transform: none;
}

/* Custom template buttons — green variants → coral */
body.theme-vintage .btn-submit,
body.theme-vintage .btn-save,
body.theme-vintage .btn-add,
body.theme-vintage .btn-green,
body.theme-vintage .btn-submit-pin {
    background: #d4604a !important;
    border: 1px solid #be4d3a !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-family: var(--font-vintage) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    transition: background 0.15s !important;
    transform: none !important;
}

body.theme-vintage .btn-submit:hover,
body.theme-vintage .btn-save:hover,
body.theme-vintage .btn-add:hover,
body.theme-vintage .btn-green:hover,
body.theme-vintage .btn-submit-pin:hover {
    background: #be4d3a !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Custom template buttons — gold variants → coral outline */
body.theme-vintage .btn-pair,
body.theme-vintage .btn-gold,
body.theme-vintage .btn-portfolio-cta {
    background: transparent !important;
    border: 1px solid #d4604a !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    color: #d4604a !important;
    font-family: var(--font-vintage) !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    transition: background 0.15s !important;
}

body.theme-vintage .btn-pair:hover,
body.theme-vintage .btn-gold:hover,
body.theme-vintage .btn-portfolio-cta:hover {
    background: #d4604a !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}

body.theme-vintage .btn-green-outline {
    background: transparent !important;
    border: 1px solid #d4604a !important;
    border-radius: 3px !important;
    color: #d4604a !important;
    box-shadow: none !important;
}

/* Session date badge */
body.theme-vintage .session-date-badge {
    background: #d4604a !important;
    border: none;
    color: #ffffff !important;
    font-family: var(--font-vintage);
    font-weight: 700;
    box-shadow: none;
}

/* Hero buttons */
body.theme-vintage .btn-hero {
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.06em;
    box-shadow: none;
    transform: none;
}

body.theme-vintage .btn-hero:hover {
    box-shadow: none;
    transform: none;
}

body.theme-vintage .btn-hero-outline {
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.06em;
}

/* =========================================================
   Tables
   ========================================================= */

body.theme-vintage .table-responsive {
    border-radius: 3px;
    overflow: hidden;
    border: 1px solid #cec0a0;
    box-shadow: none;
}

body.theme-vintage .table {
    margin-bottom: 0;
    --bs-table-bg: #f5eed8;
    --bs-table-striped-bg: #f5eed8;
    --bs-table-hover-bg: #dfd0b0;
    --bs-table-border-color: #cec0a0;
    color: #2a2a2a;
}

body.theme-vintage .table thead th,
body.theme-vintage .table > thead > tr > th {
    background: #2a2a2a;
    border-bottom: 3px solid #d4604a;
    color: #ffffff;
    font-family: var(--font-vintage);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.76rem;
}

body.theme-vintage .table > tbody > tr > td,
body.theme-vintage .table > tbody > tr > th {
    border-color: #cec0a0;
    color: #2a2a2a;
}

body.theme-vintage .table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: transparent;
    background: #dfd0b0;
}

body.theme-vintage .table-dark,
body.theme-vintage .table thead.table-dark th {
    background: #2a2a2a !important;
    color: #ffffff !important;
    font-family: var(--font-vintage);
}

/* =========================================================
   Modals
   ========================================================= */

body.theme-vintage .modal-content {
    background: #f5eed8;
    border: 1px solid #cec0a0;
    border-top: 3px solid #d4604a;
    border-radius: 4px;
    box-shadow: none;
    color: #2a2a2a;
}

body.theme-vintage .modal-header {
    background: #f5eed8;
    border-bottom: 1px solid #cec0a0;
}

body.theme-vintage .modal-footer {
    border-top: 1px solid #cec0a0;
    background: #f5eed8;
}

body.theme-vintage .modal-title {
    font-family: var(--font-vintage);
    font-weight: 700;
    color: #2a2a2a;
    letter-spacing: 0.02em;
}

body.theme-vintage .btn-close {
    filter: none;
    opacity: 0.5;
}

/* =========================================================
   Alerts
   ========================================================= */

body.theme-vintage .alert {
    border-radius: 3px;
    border-left-width: 4px;
    border-top-width: 1px;
    border-right-width: 1px;
    border-bottom-width: 1px;
    box-shadow: none;
}

body.theme-vintage .alert-success {
    background: #f0f7f0;
    border-color: #5a9a60;
    color: #2a5a30;
}

body.theme-vintage .alert-danger {
    background: #fdf0ee;
    border-color: #d4604a;
    color: #8a2a20;
}

body.theme-vintage .alert-warning {
    background: #fdf6ee;
    border-color: #d4904a;
    color: #7a4a18;
}

body.theme-vintage .alert-info {
    background: #eef4f8;
    border-color: #4a8aae;
    color: #1a4a6a;
}

/* =========================================================
   Badges
   ========================================================= */

body.theme-vintage .badge {
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.06em;
    border-radius: 3px;
    box-shadow: none;
}

body.theme-vintage .badge.bg-primary,
body.theme-vintage .badge.rounded-pill {
    background: #d4604a !important;
    color: #ffffff !important;
}

/* =========================================================
   ALL green hero / header sections — override to warm tan
   ========================================================= */

body.theme-vintage .hero-section {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .hero-section::before,
body.theme-vintage .hero-section::after {
    display: none;
}

body.theme-vintage .hero-title {
    color: #2a2a2a !important;
    font-family: var(--font-vintage) !important;
    font-weight: 800 !important;
    text-shadow: none;
}

body.theme-vintage .hero-title .gold {
    color: #d4604a !important;
}

body.theme-vintage .hero-tagline {
    color: #555550 !important;
    text-shadow: none;
}

body.theme-vintage .hero-badge {
    color: #d4604a !important;
    border-color: rgba(212, 96, 74, 0.35) !important;
    background: rgba(212, 96, 74, 0.08) !important;
    font-family: var(--font-vintage) !important;
}

body.theme-vintage .hero-schedule-box {
    background: rgba(212, 96, 74, 0.08) !important;
    border-color: rgba(212, 96, 74, 0.3) !important;
    color: #2a2a2a !important;
    box-shadow: none !important;
}

body.theme-vintage .hero-schedule-box strong {
    color: #d4604a !important;
}

body.theme-vintage .hero-section h1,
body.theme-vintage .hero-section h2,
body.theme-vintage .hero-section h3 {
    color: #2a2a2a;
    font-family: var(--font-vintage);
    text-shadow: none;
}

body.theme-vintage .btn-hero {
    background-color: #d4604a !important;
    color: #ffffff !important;
    border: none !important;
}

body.theme-vintage .btn-hero:hover {
    background-color: #be4d3a !important;
    box-shadow: none !important;
    transform: none !important;
}

body.theme-vintage .btn-hero-outline {
    color: #2a2a2a !important;
    border-color: rgba(42, 42, 42, 0.4) !important;
}

body.theme-vintage .btn-hero-outline:hover {
    background: rgba(42, 42, 42, 0.08) !important;
    border-color: #2a2a2a !important;
    color: #2a2a2a !important;
}

/* Tournament banner */
body.theme-vintage .tournament-banner {
    background: #dfd0b0;
    color: #2a2a2a;
    border-top: 1px solid #cec0a0;
    border-bottom: 1px solid #cec0a0;
}

body.theme-vintage .tournament-banner h3,
body.theme-vintage .tournament-banner h4,
body.theme-vintage .tournament-banner h5 {
    color: #d4604a !important;
    font-family: var(--font-vintage);
}

body.theme-vintage .tournament-banner .text-white-50 {
    color: #80786a !important;
}

body.theme-vintage .tournament-banner .text-white {
    color: #2a2a2a !important;
}

/* =========================================================
   Forms
   ========================================================= */

body.theme-vintage .form-label,
body.theme-vintage .form-check-label,
body.theme-vintage .col-form-label {
    color: #2a2a2a;
    font-family: var(--font-vintage);
    font-weight: 600;
}

body.theme-vintage .form-control,
body.theme-vintage .form-select {
    background: #f5eed8;
    border: 1px solid #b8aa90;
    border-radius: 3px;
    color: #2a2a2a;
    box-shadow: none;
}

body.theme-vintage .form-control:focus,
body.theme-vintage .form-select:focus {
    background: #f5eed8;
    border-color: #d4604a;
    box-shadow: none;
    outline: 2px solid rgba(212, 96, 74, 0.25);
    color: #2a2a2a;
}

body.theme-vintage .form-control::placeholder {
    color: #aea9a0;
}

body.theme-vintage .input-group-text {
    background: #dfd0b0;
    border: 1px solid #b8aa90;
    color: #555550;
    box-shadow: none;
}

/* =========================================================
   Pagination
   ========================================================= */

body.theme-vintage .page-link {
    background: #f5eed8;
    border-color: #cec0a0;
    color: #d4604a;
    font-family: var(--font-vintage);
    font-weight: 600;
    border-radius: 2px;
    box-shadow: none;
}

body.theme-vintage .page-link:hover {
    background: #f5eed8;
    border-color: #b8aa90;
    color: #be4d3a;
    box-shadow: none;
}

body.theme-vintage .page-item.active .page-link {
    background: #d4604a;
    border-color: #be4d3a;
    color: #ffffff;
    font-weight: 700;
    box-shadow: none;
}

/* =========================================================
   List groups
   ========================================================= */

body.theme-vintage .list-group-item {
    background: #f5eed8;
    border-color: #cec0a0;
    color: #2a2a2a;
    box-shadow: none;
}

body.theme-vintage .list-group-item:hover {
    background: #f5eed8;
}

/* =========================================================
   Footer
   ========================================================= */

body.theme-vintage .site-footer {
    background: #2a2a2a;
    border-top: 3px solid #d4604a;
    color: #b8aa90;
    box-shadow: none;
}

body.theme-vintage .site-footer h6 {
    color: #ffffff;
    font-family: var(--font-vintage);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.8rem;
}

body.theme-vintage .site-footer a {
    color: #b8aa90;
}

body.theme-vintage .site-footer a:hover {
    color: #d4604a;
}

body.theme-vintage .footer-divider {
    border-color: rgba(255, 255, 255, 0.1);
}

body.theme-vintage .footer-logo {
    color: #d4604a;
    font-family: var(--font-vintage);
    font-weight: 700;
}

/* =========================================================
   Portfolio hero / small hero
   ========================================================= */

body.theme-vintage .portfolio-hero {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .portfolio-hero::before,
body.theme-vintage .portfolio-hero::after {
    display: none;
}

body.theme-vintage .portfolio-hero-title {
    color: #2a2a2a !important;
    font-family: var(--font-vintage);
    font-weight: 800;
}

body.theme-vintage .portfolio-hero-subtitle {
    color: #555550 !important;
}

body.theme-vintage .portfolio-hero-badge {
    color: #d4604a !important;
    border-color: rgba(212, 96, 74, 0.35) !important;
    background: rgba(212, 96, 74, 0.08) !important;
}

/* =========================================================
   Contest hero (inline <style> in contest-detail.html)
   ========================================================= */

body.theme-vintage .contest-hero {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .contest-hero::before {
    display: none;
}

body.theme-vintage .contest-hero h1 {
    color: #2a2a2a !important;
    font-family: var(--font-vintage);
    font-weight: 800;
}

body.theme-vintage .contest-hero h1 .gold {
    color: #d4604a !important;
}

body.theme-vintage .contest-hero .edition-badge {
    color: #d4604a !important;
    border-color: rgba(212, 96, 74, 0.35) !important;
    background: rgba(212, 96, 74, 0.08) !important;
}

body.theme-vintage .contest-hero .hero-dates,
body.theme-vintage .contest-hero .hero-location,
body.theme-vintage .contest-hero .hero-tagline {
    color: #555550 !important;
}

body.theme-vintage .contest-hero .btn-gold {
    background: #d4604a !important;
    border-color: #be4d3a !important;
    color: #ffffff !important;
}

body.theme-vintage .contest-hero .btn-outline-light {
    color: #2a2a2a !important;
    border-color: rgba(42, 42, 42, 0.4) !important;
}

/* =========================================================
   Booking hero (inline <style> in contest-booking.html)
   ========================================================= */

body.theme-vintage .booking-hero {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .booking-hero h1 {
    color: #2a2a2a !important;
    font-family: var(--font-vintage);
    font-weight: 800;
}

body.theme-vintage .booking-hero p {
    color: #555550 !important;
}

/* =========================================================
   Board page header / scorecard header
   ========================================================= */

body.theme-vintage .board-page-header,
body.theme-vintage .scorecard-header {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .board-page-header::after,
body.theme-vintage .scorecard-header::after {
    display: none;
}

body.theme-vintage .board-page-header h1,
body.theme-vintage .board-page-header h2,
body.theme-vintage .board-page-header h3,
body.theme-vintage .scorecard-header h1,
body.theme-vintage .scorecard-header h2,
body.theme-vintage .scorecard-header h3 {
    color: #2a2a2a !important;
    font-family: var(--font-vintage);
}

body.theme-vintage .board-page-header .text-muted,
body.theme-vintage .scorecard-header .text-muted {
    color: #80786a !important;
}

/* =========================================================
   Lesson hero (inline <style> in lesson-de-ce-bridge.html)
   ========================================================= */

body.theme-vintage .lesson-hero {
    background: #e8d9c0 !important;
    color: #2a2a2a;
}

body.theme-vintage .lesson-hero h1 {
    color: #d4604a !important;
    font-family: var(--font-vintage);
    font-weight: 800;
    text-shadow: none;
}

body.theme-vintage .lesson-hero .eyebrow,
body.theme-vintage .lesson-hero .lesson-sub {
    color: #555550 !important;
    opacity: 1;
}

/* =========================================================
   Footer — ensure p/li/i text is light on dark bg
   ========================================================= */

body.theme-vintage .site-footer p,
body.theme-vintage .site-footer li,
body.theme-vintage .site-footer span,
body.theme-vintage .site-footer i {
    color: #c8c4bc;
}
