/* =========================================================================
   Atelier Pilates — Orar (vedere calendar)
   Implementare proprie. Fontul de titlu (DM Serif Display) e încărcat din PHP
   (handle „ap-orar-fonts", dependență a acestui stil).
   Tokeni, layout full-width, grilă pe desktop + vedere pe zile pe mobil.
   ========================================================================= */

.ap-orar-wrap {
	/* Paletă — culorile brandului site-ului */
	--ap-green: #435540;
	--ap-green-dark: #334234;
	--ap-green-mid: #596b55;
	--ap-green-soft: #eef1ea;
	--ap-cream: rgba(255, 253, 246, .92);
	--ap-line: rgba(48, 68, 51, .12);
	--ap-line-strong: rgba(48, 68, 51, .18);
	--ap-empty: #b7bcb2;
	--ap-serif: "DM Serif Display", Georgia, "Times New Roman", serif;
	--ap-sans: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;

	font-family: var(--ap-sans);
	color: #172116;
	background: var(--ap-cream);
	padding: 18px 0 0;
	overflow: hidden;
	width: 100%;
}
.ap-orar-wrap, .ap-orar-wrap *, .ap-modal, .ap-modal * { box-sizing: border-box; }
/* Lățimea secțiunii „Programare" (homepage) — ca în mockup: max 1480px, cu gutter 16px. */
.elementor-17 .elementor-element.elementor-element-1da9550 > .elementor-container { max-width: min(1480px, calc(100% - 32px)); }
.ap-orar { position: relative; min-width: 0; padding-left: 40px; padding-right: 40px; }
.ap-orar.is-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }

/* ---- Bara de control (navigare săptămâni) ----------------------------- */
.ap-orar-controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 22px; padding: 0 10px; }
.ap-nav-btn { width: 54px; height: 54px; flex: none; display: inline-grid; place-items: center; border-radius: 50%; border: 1px solid var(--ap-line); background: #fffefa; color: var(--ap-green-dark); box-shadow: 0 8px 20px rgba(34, 48, 36, .08); cursor: pointer; transition: background .2s, opacity .2s; }
.ap-nav-btn:hover { background: #f3f7ea; }
.ap-nav-btn:disabled { opacity: .32; cursor: default; }

.ap-week-pill { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 380px; height: 58px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--ap-line); background: #fffefa; box-shadow: 0 8px 22px rgba(34, 48, 36, .07); color: var(--ap-green-dark); cursor: pointer; }
.ap-week-pill > span { display: inline-flex; align-items: center; gap: 14px; }
.ap-week-label { font-size: 22px; font-weight: 800; white-space: nowrap; }
.ap-week-cal, .ap-week-chev { flex: none; }
.ap-week-select { position: absolute; inset: 0; opacity: 0; border: 0; cursor: pointer; } /* select nativ suprapus, invizibil */

/* ---- Banner intro ----------------------------------------------------- */
.ap-orar-wrap .ap-hero-banner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 200px; margin-bottom: 18px; padding: 30px 52px; overflow: hidden; border-radius: 20px; color: #fffdf5; background: radial-gradient(circle at 72% 44%, rgba(255, 255, 255, .12), transparent 34%), linear-gradient(105deg, #4b614e, #66785f 55%, #3b513d); }
/* textură fină de petale, jos */
.ap-orar-wrap .ap-hero-banner::before { content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none; transform: scale(1.7); background: radial-gradient(ellipse at 63% 95%, transparent 0 22%, rgba(255, 255, 255, .65) 23% 24%, transparent 25%), radial-gradient(ellipse at 69% 100%, transparent 0 22%, rgba(255, 255, 255, .55) 23% 24%, transparent 25%), radial-gradient(ellipse at 75% 95%, transparent 0 22%, rgba(255, 255, 255, .45) 23% 24%, transparent 25%); }
.ap-orar-wrap .ap-hero-content { position: relative; z-index: 1; flex: 1 1 auto; min-width: 0; }
.ap-orar-wrap .ap-hero-title { margin: 0 0 8px; font-family: var(--ap-serif); font-weight: 400; font-size: clamp(26px, 2.7vw, 42px); line-height: 1.05; letter-spacing: -.015em; color: #fffdf5; }
.ap-orar-wrap .ap-hero-text { margin: 0; font-size: 16px; line-height: 1.5; color: rgba(255, 253, 245, .86); }
.ap-orar-wrap .ap-hero-icon { position: relative; z-index: 1; flex: none; display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .68); }

/* ---- Grilă calendar (desktop) ----------------------------------------- */
.ap-grid-scroll { overflow-x: auto; overflow-y: hidden; border: 1px solid var(--ap-line); border-radius: 20px; background: rgba(255, 253, 248, .86); }
.ap-grid { display: grid; grid-template-columns: 92px repeat(7, minmax(122px, 1fr)); min-width: 1050px; }
.ap-grid-corner, .ap-grid-day, .ap-grid-time, .ap-grid-cell { border-right: 1px solid var(--ap-line); border-bottom: 1px solid var(--ap-line); }
.ap-grid > :nth-child(8n) { border-right: 0; }            /* ultima coloană (zi) */
.ap-grid > :nth-last-child(-n + 8) { border-bottom: 0; }  /* ultimul rând de ore */
.ap-grid-corner { min-height: 78px; background: rgba(251, 250, 245, .64); }
.ap-grid-day { display: grid; align-content: center; justify-items: center; gap: 6px; min-height: 78px; text-align: center; background: rgba(251, 250, 245, .72); }
.ap-grid-day strong { font-family: var(--ap-serif); font-weight: 400; font-size: 19px; color: var(--ap-green-dark); }
.ap-grid-day span { font-size: 13px; color: #5d655a; }
.ap-grid-day.ap-today { background: var(--ap-green-soft); }
.ap-grid-day.ap-past { opacity: .5; }
.ap-grid-time { display: flex; align-items: center; justify-content: center; min-height: 120px; font-family: var(--ap-serif); font-size: 27px; color: var(--ap-green-dark); background: rgba(255, 253, 248, .65); }
.ap-grid-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 120px; padding: 12px; background: rgba(255, 253, 248, .46); }
.ap-grid-cell.ap-today { background: rgba(89, 107, 85, .06); }
.ap-grid-empty-week { padding: 40px 20px; text-align: center; font-size: 15px; color: #7d8578; }
.ap-empty { font-size: 11px; color: #cdd1c6; text-align: center; }

/* ---- Cardul unei ședințe ---------------------------------------------- */
.ap-slot { width: 100%; min-height: 104px; padding: 12px 10px 13px !important; border: 1px solid var(--ap-line-strong); border-left: 4px solid var(--ap-color, var(--ap-green-mid)); border-radius: 12px; background: rgba(255, 254, 250, .94); box-shadow: 0 10px 24px rgba(34, 48, 36, .08); transition: transform .15s ease, box-shadow .15s ease; }
.ap-slot:not(.ap-past):not(.ap-closed):hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(34, 48, 36, .14); }
.ap-slot.ap-full { opacity: .6; }
.ap-slot.ap-past { opacity: .45; filter: grayscale(.35); }
/* Ședința urmează, dar a trecut termenul de rezervare: mai vizibilă decât „Trecut”,
   ca să se vadă că lecția are loc — doar că nu se mai poate rezerva online. */
.ap-slot.ap-closed { opacity: .62; filter: grayscale(.45); }
.ap-slot.ap-closed .ap-libere { font-weight: 700; color: #7a6250; }
.ap-ora { margin-bottom: 6px; font-size: 14px; font-weight: 800; letter-spacing: -.01em; color: #1b271c; }
.ap-lectie { margin-bottom: 8px; font-size: 14px; font-weight: 800; line-height: 1.2; color: #121a12; }
.ap-slot-bottom { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "meta spots" "button button"; align-items: center; gap: 8px; }
.ap-instructor { grid-area: meta; justify-self: start; display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; color: var(--ap-green-dark); background: #e5e9df; }
.ap-libere { grid-area: spots; justify-self: end; font-size: 11px; line-height: 1.25; text-align: right; white-space: nowrap; color: #3b4438; }
.ap-btn-rezerva { grid-area: button; justify-self: end; margin-top: 2px; padding: 6px 11px; border: 0; border-radius: 8px; font-size: 11px; font-weight: 800; line-height: 1; color: #fffefa; background: var(--ap-green-dark); box-shadow: 0 6px 12px rgba(35, 59, 44, .22); cursor: pointer; transition: background .2s; }
.ap-btn-rezerva:hover { background: var(--ap-green); }

/* ---- Vedere mobil (chip-uri zile + timeline) -------------------------- */
.ap-mobile { display: none; min-width: 0; }
.ap-daychips { display: flex; gap: 8px; padding: 0 2px 14px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--ap-line); }
.ap-daychips::-webkit-scrollbar { display: none; }
.ap-daychip { display: grid; place-items: center; align-content: center; gap: 5px; flex: none; min-width: 70px; height: 86px; border-radius: 13px; border: 1px solid var(--ap-line); background: #fffefa; color: var(--ap-green-dark); cursor: pointer; font: inherit; }
.ap-daychip small { font-size: 12px; font-weight: 600; }
.ap-daychip strong { font-family: var(--ap-serif); font-weight: 400; font-size: 34px; line-height: 1; }
.ap-daychip.is-active { background: var(--ap-green); border-color: var(--ap-green); color: #fffdf5; }
.ap-daychip.ap-past { opacity: .45; }
.ap-daypanels { min-width: 0; padding-top: 12px; }
.ap-m-row { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: 14px; min-width: 0; min-height: 60px; padding: 4px 0; border-bottom: 1px dashed var(--ap-line); }
.ap-m-hour { font-size: 18px; color: var(--ap-green-dark); }
.ap-m-empty { padding: 20px 4px; font-size: 14px; color: var(--ap-empty); }

/* Buton submit (modal) — definit aici fiindcă modalul nu moștenește variabilele din .ap-orar-wrap */
.ap-btn-submit { font-family: Inter, sans-serif; font-weight: 800; margin-top: 8px; border: 0; border-radius: 999px; padding: 11px 20px; background: #596b55; color: #fff; cursor: pointer; }
.ap-btn-submit:hover { background: #435540; }

/* Modal */
.ap-modal {
	position: fixed; inset: 0;
	background: rgba(0,0,0,0.45);
	display: flex; align-items: center; justify-content: center;
	z-index: 9999; padding: 16px;
}
.ap-modal[hidden] { display: none; }
.ap-modal-box {
	background: #f7faeb;
	border-radius: 16px;
	padding: 26px 28px;
	width: 100%; max-width: 520px;
	max-height: 90vh; overflow-y: auto;
	position: relative;
	font-family: "Trebuchet MS", sans-serif;
}
.ap-modal-box h3 { font-family: "Baloo", sans-serif; color: #758270; margin: 0 0 4px; }
.ap-modal-detalii { font-size: 13px; color: #5c6657; margin: 0 0 16px; }
.ap-modal-close {
	position: absolute; top: 10px; right: 14px;
	background: none; border: none; font-size: 26px; line-height: 1;
	cursor: pointer; color: #758270;
}
.ap-field { margin-bottom: 12px; }
.ap-field label { display: block; font-size: 13px; font-weight: 700; color: #3a4238; }
.ap-field input[type="text"],
.ap-field input[type="tel"],
.ap-field input[type="email"] {
	width: 100%; margin-top: 4px;
	padding: 9px 10px; border: 1px solid #c8cfc4; border-radius: 8px;
	font-size: 14px; box-sizing: border-box;
}
.ap-consent label { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; font-size: 13px; }
.ap-consent input { margin-top: 3px; }
.ap-mesaj { font-size: 13px; margin-top: 10px; min-height: 18px; }
.ap-mesaj.ok { color: #2e7d32; }
.ap-mesaj.err { color: #c0392b; }

/* Comutare desktop (grilă) ↔ mobil (chip-uri + timeline) */
@media (max-width: 760px) {
	.ap-grid-scroll { display: none; }
	.ap-mobile { display: block; }
	.ap-orar-controls { padding: 0; }
	.ap-nav-next { margin-left: 0; }
	.ap-week-pill { min-width: 0; height: 50px; padding: 0 14px; gap: 8px; font-size: 18px; }
	.ap-week-label { font-size: 18px; }
	.ap-nav-btn { width: 46px; height: 46px; }
	.ap-hero-banner { padding: 22px 24px; min-height: 0; }
	.ap-orar-wrap .ap-hero-icon { display: none; }
}
@media (max-width: 640px) {
	.ap-orar-wrap { padding: 20px 10px 10px; }
}

/* ===== Formular de bun-venit (popup rezervare + pagină /formular) ===== */
.ap-welcome-back{margin:6px 0 4px;padding:11px 14px;background:#eef5e4;border:1px solid #cfe0bb;border-radius:10px;color:#3c5230;font-size:14px;font-weight:600;}
.ap-welcome{margin-top:6px;}
.ap-health-note{display:flex;gap:8px;background:#fbf3e9;border:1px solid #ecd9c2;border-radius:11px;padding:11px 13px;font-size:12px;line-height:1.5;color:#7a5235;margin:6px 0 14px;}
.ap-health-note strong{color:#9a5a2c;}
.ap-consent{border:1px solid #dde4d0;border-radius:12px;padding:12px 14px;margin:12px 0;background:#f6f9ef;}
.ap-consent-title{font-weight:800;font-size:12.5px;color:#435540;margin-bottom:7px;}
.ap-rules{height:118px;overflow-y:auto;background:#fff;border:1px solid #e2e8d6;border-radius:8px;padding:9px 12px;font-size:11.5px;line-height:1.6;color:#3f4a3a;}
.ap-chk{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.45;color:#3a4438;margin:11px 0;cursor:pointer;}
.ap-chk input{width:18px;height:18px;min-width:18px;margin-top:1px;accent-color:#596b55;}
.ap-chk a{color:#596b55;font-weight:700;}
.ap-photo{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:12px 0;font-size:13px;color:#3a4438;}
.ap-photo-lbl{font-weight:700;}
.ap-radio{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.ap-radio input{width:17px;height:17px;accent-color:#596b55;}

/* ===== Pagina /formular (intake walk-in) ===== */
.ap-formular-wrap{max-width:600px;margin:32px auto;padding:0 16px;font-family:Inter,"Trebuchet MS",sans-serif;}
.ap-formular-card{background:#fffdf6;border:1px solid #e6e2d3;border-radius:22px;box-shadow:0 24px 60px rgba(31,41,30,.10);overflow:hidden;}
.ap-formular-head{background:linear-gradient(135deg,#435540,#334234);color:#fff;padding:30px 32px 26px;text-align:center;}
.ap-formular-kick{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:rgba(255,255,255,.72);}
.ap-formular-head h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:30px;font-weight:600;margin:6px 0 6px;color:#fff;line-height:1.1;}
.ap-formular-head p{font-size:14px;color:rgba(255,255,255,.9);margin:0;max-width:420px;margin-left:auto;margin-right:auto;}
.ap-formular{padding:24px 30px 28px;}
.ap-formular .ap-field{margin-bottom:14px;}
.ap-formular .ap-field label{display:block;font-size:13px;font-weight:700;color:#46504a;}
.ap-formular .ap-field input{display:block;width:100%;height:44px;margin-top:5px;border:1px solid #d8ddca;border-radius:10px;padding:0 14px;font-size:15px;color:#23291f;background:#fff;font-family:inherit;box-sizing:border-box;}
.ap-formular .ap-field input:focus{border-color:#596b55;outline:none;box-shadow:0 0 0 2px rgba(89,107,85,.18);}
.ap-formular .ap-formular-submit{width:100%;height:50px;margin-top:14px;border:0;border-radius:999px;background:#596b55;color:#fff;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 14px 30px rgba(67,85,64,.24);}
.ap-formular .ap-formular-submit:hover{background:#435540;}
.ap-formular .ap-formular-submit:disabled{opacity:.6;cursor:default;}
.ap-formular .ap-mesaj{margin:14px 0 0;font-size:14px;font-weight:600;text-align:center;}
.ap-formular .ap-mesaj.ok{color:#3c5230;}
.ap-formular .ap-mesaj.err{color:#b5673f;}

/* ===== Persoane suplimentare (rezervare pe mai multe locuri) ===== */
.ap-people{margin:4px 0 8px;}
.ap-people-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;}
.ap-person{display:flex;align-items:center;gap:8px;}
.ap-person input{flex:1;height:42px;border:1px solid #d8ddca;border-radius:9px;padding:0 13px;font-size:14px;background:#fff;font-family:inherit;box-sizing:border-box;}
.ap-person input:focus{border-color:#596b55;outline:none;box-shadow:0 0 0 2px rgba(89,107,85,.16);}
.ap-person-remove{width:34px;height:34px;min-width:34px;border:0;border-radius:50%;background:rgba(181,103,63,.12);color:#b5673f;font-size:20px;line-height:1;cursor:pointer;}
.ap-add-person{display:inline-flex;align-items:center;gap:6px;border:1px dashed #9fb08c;background:#f3f7ea;color:#435540;font-weight:700;font-size:13.5px;border-radius:999px;padding:8px 16px;cursor:pointer;font-family:inherit;}
.ap-add-person:hover{background:#e9f1da;border-color:#7d9168;}
.ap-add-person:disabled{opacity:.45;cursor:default;}
.ap-people-hint{display:inline-block;margin-left:10px;font-size:12px;color:#7a8170;}

/* Tip de lecție (alegere: Individuală / Dublă / Triplă …) */
.ap-mode{margin:2px 0 16px;}
.ap-mode-label{font-size:13px;font-weight:700;color:#3a4238;margin-bottom:8px;}
.ap-mode-buttons{display:flex;gap:10px;flex-wrap:wrap;}
.ap-mode-btn{flex:1 1 0;min-width:120px;border:1.5px solid #cdd6bf;background:#fbfdf5;color:#435540;font-weight:700;font-size:14px;border-radius:12px;padding:13px 14px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s;}
.ap-mode-btn:hover{border-color:#7d9168;background:#f3f7ea;}
.ap-mode-btn.is-active{border-color:#596b55;background:#596b55;color:#fff;box-shadow:0 6px 16px rgba(67,85,64,.22);}

/* Nume însoțitori (categorii exclusive) */
.ap-guests{margin:0 0 10px;}
.ap-guests-label{font-size:13px;font-weight:700;color:#3a4238;margin-bottom:6px;}
.ap-guests-list{display:flex;flex-direction:column;gap:8px;}
.ap-guest-input{width:100%;height:44px;border:1px solid #d8ddca;border-radius:10px;padding:0 14px;font-size:15px;color:#23291f;background:#fff;font-family:inherit;box-sizing:border-box;}
.ap-guest-input:focus{border-color:#596b55;outline:none;box-shadow:0 0 0 2px rgba(89,107,85,.18);}
