/* CSS local ARLEN, extrait de rendez-vous/index.php et mis en cache. */
:root {
            --arlen-blue: #2f5fab;
            --arlen-blue-deep: #173f7e;
            --arlen-blue-night: #10294f;
            --arlen-orange: #f18745;
            --arlen-orange-soft: #ffe3d0;
            --ink: #172033;
            --steel: #475569;
            --muted: #64748b;
            --paper: #f7f9fc;
            --paper-2: #eef4fb;
            --white: #ffffff;
            --line: rgba(47,95,171,.16);
            --radius-sm: 12px;
            --radius: 20px;
            --radius-lg: 34px;
            --shadow: 0 22px 60px rgba(16, 41, 79, .14);
            --shadow-soft: 0 14px 34px rgba(16, 41, 79, .10);
            --container-max: 1180px;
        }

        * { box-sizing: border-box; }

        html,
        body {
            margin: 0;
            padding: 0;
            min-height: 100%;
            width: 100%;
            overflow-x: hidden;
            max-width: 100vw;
        }

        html { scroll-behavior: smooth; }

        body {
            font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            color: var(--ink);
            background:
                radial-gradient(circle at top left, rgba(47,95,171,.10), transparent 34rem),
                radial-gradient(circle at 92% 10%, rgba(241,135,69,.14), transparent 24rem),
                linear-gradient(180deg, #fff 0, var(--paper) 42rem, #fff 100%);
        }

        a { text-decoration: none; }

        .container { max-width: var(--container-max); }

        .rdv-hero {
            position: relative;
            overflow: hidden;
            color: #fff;
            padding: clamp(4rem, 6vw, 6rem) 0 clamp(3rem, 5vw, 4.5rem);
            background:
                linear-gradient(115deg, rgba(16,41,79,.96) 0%, rgba(47,95,171,.92) 54%, rgba(47,95,171,.80) 100%),
                radial-gradient(circle at 80% 20%, rgba(241,135,69,.56), transparent 24rem);
        }

        .rdv-hero::before {
            content: "";
            position: absolute;
            inset: 0;
            pointer-events: none;
            opacity: .42;
            background:
                radial-gradient(circle at 12% 22%, rgba(255,255,255,.18) 0 0.45rem, transparent .5rem),
                radial-gradient(circle at 20% 34%, rgba(241,135,69,.50) 0 .62rem, transparent .68rem),
                radial-gradient(circle at 30% 34%, rgba(16,41,79,.32) 0 .62rem, transparent .68rem),
                linear-gradient(135deg, transparent 0 52%, rgba(255,255,255,.06) 52% 52.4%, transparent 52.4%);
            background-size: auto, auto, auto, 78px 78px;
        }

        .rdv-hero .container {
            position: relative;
            z-index: 1;
        }

        .hero-actions {
            display: flex;
            align-items: center;
            gap: .75rem;
            flex-wrap: wrap;
        }

        .hero-back-btn {
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            color: #fff;
            border: 1px solid rgba(255,255,255,.34);
            background: rgba(255,255,255,.08);
            border-radius: 999px;
            padding: .58rem .9rem;
            font-weight: 900;
            font-size: .9rem;
            backdrop-filter: blur(10px);
            transition: background .15s ease, transform .15s ease, border-color .15s ease;
        }

        .hero-back-btn:hover {
            color: var(--arlen-blue-night);
            background: #fff;
            border-color: rgba(255,255,255,.64);
            transform: translateY(-1px);
        }

        .rdv-title {
            max-width: 900px;
            font-size: clamp(2.5rem, 5.2vw, 5.2rem);
            font-weight: 950;
            letter-spacing: -.065em;
            line-height: .95;
            color: #fff;
        }

        .rdv-lead {
            color: rgba(255,255,255,.88);
            max-width: 760px;
            line-height: 1.65;
            font-size: clamp(1.02rem, 1.35vw, 1.18rem);
        }

        .section-kicker {
            display: inline-flex;
            align-items: center;
            gap: .5rem;
            color: #fff;
            background: rgba(255,255,255,.12);
            border: 1px solid rgba(255,255,255,.25);
            border-radius: 999px;
            padding: .52rem .82rem;
            font-weight: 900;
            font-size: .88rem;
            margin-bottom: 1rem;
            backdrop-filter: blur(10px);
        }

        main > section.py-5 {
            padding-block: clamp(3.6rem, 6vw, 6.4rem) !important;
        }

        .rdv-card {
            border: 1px solid var(--line);
            border-radius: var(--radius);
            background: rgba(255,255,255,.88);
            box-shadow: var(--shadow-soft);
            padding: clamp(1.45rem, 2.8vw, 2.25rem);
            backdrop-filter: blur(14px);
            transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
        }

        .rdv-card:hover {
            box-shadow: var(--shadow);
            border-color: rgba(241,135,69,.34);
        }

        .step-pill {
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            border-radius: 999px;
            border: 1px solid var(--line);
            background: #fff;
            color: var(--arlen-blue-night);
            padding: .68rem .95rem;
            font-weight: 900;
            font-size: .9rem;
            transition: .18s ease;
        }

        .step-pill.active {
            background: var(--arlen-blue);
            border-color: var(--arlen-blue);
            color: #fff;
            box-shadow: 0 12px 26px rgba(47,95,171,.22);
            transform: translateY(-1px);
        }

        .step h2 {
            color: var(--ink);
            font-weight: 950 !important;
            letter-spacing: -.035em;
        }

        .form-label {
            font-weight: 900;
            color: var(--ink);
        }

        .form-control,
        .form-select {
            border-radius: 14px;
            border-color: var(--line);
            padding: .78rem .92rem;
            color: var(--ink);
            background-color: rgba(255,255,255,.96);
            box-shadow: none !important;
        }

        .form-control:focus,
        .form-select:focus {
            border-color: rgba(47,95,171,.52);
            box-shadow: 0 0 0 .25rem rgba(47,95,171,.12) !important;
        }

        .form-check-input {
            border-color: rgba(47,95,171,.35);
        }

        .form-check-input:checked {
            background-color: var(--arlen-blue);
            border-color: var(--arlen-blue);
        }

        .btn-modern-primary {
            border-radius: 16px;
            padding: .85rem 1.15rem;
            font-weight: 900;
            letter-spacing: -.01em;
            background: var(--arlen-orange) !important;
            border-color: var(--arlen-orange) !important;
            color: #121826 !important;
            box-shadow: 0 16px 32px rgba(241,135,69,.30);
            transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
        }

        .btn-modern-primary:hover {
            background: #ff9a5f !important;
            border-color: #ff9a5f !important;
            color: #121826 !important;
            transform: translateY(-1px);
            box-shadow: 0 18px 38px rgba(241,135,69,.34);
        }

        .btn-soft {
            border-radius: 16px;
            padding: .85rem 1.15rem;
            font-weight: 900;
            background: #fff;
            border: 1px solid var(--line);
            color: var(--arlen-blue-night);
            transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
        }

        .btn-soft:hover {
            transform: translateY(-1px);
            box-shadow: var(--shadow-soft);
            border-color: rgba(47,95,171,.28);
            color: var(--arlen-blue-night);
        }

        .btn-outline-primary {
            border-color: rgba(47,95,171,.30);
            color: var(--arlen-blue-deep);
            background: #fff;
        }

        .btn-outline-primary:hover {
            background: var(--arlen-blue);
            border-color: var(--arlen-blue);
            color: #fff;
        }

        .slot-day {
            border: 1px solid var(--line);
            border-radius: 18px;
            padding: 1rem;
            background: #fff;
            margin-bottom: 1rem;
            box-shadow: var(--shadow-soft);
        }

        .slot-button {
            border-radius: 999px;
            font-weight: 900;
            padding-inline: .9rem;
        }

        .slot-button.active {
            background: var(--arlen-orange) !important;
            border-color: var(--arlen-orange) !important;
            color: #121826 !important;
            box-shadow: 0 12px 26px rgba(241,135,69,.28);
        }

        .notice-box {
            position: relative;
            overflow: hidden;
            border-radius: 22px;
            border: 1px solid rgba(241,135,69,.26);
            background:
                linear-gradient(135deg, rgba(47,95,171,.08), rgba(241,135,69,.12)),
                #fff;
            padding: 1.15rem;
            color: var(--arlen-blue-night);
        }

        .notice-box h3,
        .notice-box h4 {
            color: var(--arlen-blue-night);
            font-weight: 950 !important;
        }

        .summary-box {
            border-radius: 22px;
            border: 1px solid var(--line);
            background: #fff;
            padding: 1.15rem;
            box-shadow: var(--shadow-soft);
        }

        .summary-box strong {
            color: var(--arlen-blue-night);
        }

        .hidden-step { display: none; }

        .text-muted-strong {
            color: var(--steel);
            line-height: 1.6;
        }

        .calendar-grid {
            display: grid;
            grid-template-columns: repeat(7, minmax(0, 1fr));
            gap: .75rem;
        }

        .calendar-weekday {
            text-align: center;
            font-weight: 950;
            color: var(--arlen-blue-night);
            font-size: .85rem;
        }

        .calendar-day {
            border: 1px solid var(--line);
            border-radius: 18px;
            background: #fff;
            padding: .9rem;
            min-height: 105px;
            cursor: pointer;
            color: var(--ink);
            box-shadow: 0 8px 18px rgba(16,41,79,.05);
            transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
        }

        .calendar-day:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-soft);
            border-color: rgba(241,135,69,.42);
        }

        .calendar-day.disabled {
            cursor: not-allowed;
            opacity: .56;
            background:
                repeating-linear-gradient(
                    135deg,
                    rgba(238,244,251,.88),
                    rgba(238,244,251,.88) 8px,
                    rgba(47,95,171,.08) 8px,
                    rgba(47,95,171,.08) 16px
                );
            box-shadow: none;
        }

        .calendar-day.selected {
            border-color: var(--arlen-orange);
            box-shadow: 0 0 0 3px rgba(241,135,69,.18), var(--shadow-soft);
        }

        .calendar-day-number {
            font-size: 1.35rem;
            font-weight: 950;
            color: var(--arlen-blue-night);
        }

        .calendar-day-label {
            font-size: .85rem;
            color: var(--muted);
        }

        .calendar-day-status {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            font-size: .78rem;
            font-weight: 900;
            margin-top: .5rem;
            color: var(--arlen-blue-deep);
            background: rgba(47,95,171,.08);
            border: 1px solid rgba(47,95,171,.12);
            border-radius: 999px;
            padding: .26rem .48rem;
        }

        .calendar-day.disabled .calendar-day-status {
            color: var(--muted);
            background: rgba(255,255,255,.52);
        }

        .slot-panel {
            border: 1px solid var(--line);
            border-radius: 20px;
            background: rgba(255,255,255,.92);
            padding: 1rem;
            margin-top: 1rem;
            box-shadow: var(--shadow-soft);
        }

        .calendar-day-hours {
            font-size: .76rem;
            color: var(--muted);
            margin-top: .35rem;
            font-weight: 800;
        }

        .alert {
            border: 0;
            box-shadow: var(--shadow-soft);
        }

        .alert-info {
            background: rgba(47,95,171,.10);
            color: var(--arlen-blue-night);
        }

        .alert-success {
            background: rgba(25,135,84,.10);
        }

        .alert-warning {
            background: rgba(241,135,69,.14);
            color: var(--arlen-blue-night);
        }

        .alert-danger {
            background: rgba(220,53,69,.10);
        }

        hr {
            border-color: var(--line);
            opacity: 1;
        }

        @media (max-width: 991.98px) {
            .calendar-grid {
                gap: .55rem;
            }

            .calendar-day {
                min-height: 98px;
                padding: .75rem;
            }
        }

        @media (max-width: 767.98px) {
            .rdv-hero {
                padding: 3.4rem 0 3rem;
            }

            .hero-actions {
                align-items: flex-start;
            }

            .calendar-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .calendar-weekday {
                display: none;
            }

            .step-pill {
                width: 100%;
                justify-content: center;
            }
        }

        @media (max-width: 420px) {
            .calendar-grid {
                grid-template-columns: 1fr;
            }
        }
