.atlantis-availability-calendar {
	--aac-ink: #061824;
	--aac-blue: #0878f9;
	--aac-border: #d9e0e4;
	box-sizing: border-box;
	max-width: 100%;
	padding: clamp(1rem, 3vw, 2rem);
	border: 1px solid var(--aac-border);
	border-radius: 16px;
	background: #fff;
	color: var(--aac-ink);
	box-shadow: 0 18px 50px rgba(6, 24, 36, 0.08);
}

.atlantis-availability-calendar *,
.atlantis-availability-calendar *::before,
.atlantis-availability-calendar *::after { box-sizing: border-box; }
.atlantis-calendar__header { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 1rem; margin-bottom: 1.25rem; }
.atlantis-calendar__notice { margin-bottom: 1rem; padding: 0.75rem 1rem; border-left: 4px solid #d63638; background: #fcf0f1; color: #8a2424; font-size: 0.875rem; }
.atlantis-calendar__title { margin: 0; text-align: center; font-size: clamp(1.35rem, 3vw, 2rem); }
.atlantis-calendar__navigation { width: 44px; height: 44px; border: 1px solid var(--aac-border); border-radius: 50%; background: #fff; color: var(--aac-ink); cursor: pointer; font-size: 1.15rem; }
.atlantis-calendar__navigation:hover:not(:disabled), .atlantis-calendar__navigation:focus-visible { border-color: var(--aac-blue); background: var(--aac-blue); color: #fff; }
.atlantis-calendar__navigation:disabled { cursor: not-allowed; opacity: 0.35; }
.atlantis-calendar__weekdays, .atlantis-calendar__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.atlantis-calendar__weekdays { margin-bottom: 6px; }
.atlantis-calendar__weekdays span { padding: 0.45rem; color: #60727c; text-align: center; text-transform: uppercase; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; }
.atlantis-calendar__day, .atlantis-calendar__empty { min-height: 96px; border-radius: 9px; }
.atlantis-calendar__day { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 0.7rem; border: 1px solid transparent; }
.atlantis-calendar__day:is(a) { text-decoration: none; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease; }
.atlantis-calendar__day:is(a):hover, .atlantis-calendar__day:is(a):focus-visible { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(6, 24, 36, 0.16); outline: 2px solid var(--aac-blue); outline-offset: 1px; }
.atlantis-calendar__day strong { font-size: 1rem; }
.atlantis-calendar__day span { font-size: 0.7rem; line-height: 1.25; }
.atlantis-calendar__day.is-today { outline: 2px solid var(--aac-blue); outline-offset: 1px; }
.atlantis-calendar__day.is-available, .atlantis-calendar__legend .is-available { background: #dcfce7; color: #166534; }
.atlantis-calendar__day.is-limited, .atlantis-calendar__legend .is-limited { background: #fef3c7; color: #92400e; }
.atlantis-calendar__day.is-fully_booked, .atlantis-calendar__legend .is-fully_booked { background: #fee2e2; color: #991b1b; }
.atlantis-calendar__day.is-holiday, .atlantis-calendar__legend .is-holiday { background: #dbeafe; color: #1e40af; }
.atlantis-calendar__day.is-office_closed, .atlantis-calendar__legend .is-office_closed { background: #e5e7eb; color: #4b5563; }
.atlantis-calendar__legend { display: flex; flex-wrap: wrap; gap: 0.8rem 1.2rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--aac-border); }
.atlantis-calendar__legend span { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.8rem; }
.atlantis-calendar__legend i { width: 13px; height: 13px; border-radius: 50%; }
.atlantis-calendar__enquiry { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 1.5rem; padding: 1.25rem; border-radius: 12px; background: #061824; color: #fff; }
.atlantis-calendar__enquiry strong { display: block; font-size: 1.05rem; }
.atlantis-calendar__enquiry p { margin: 0.3rem 0 0; color: #b9c8cd; font-size: 0.82rem; line-height: 1.5; }
.atlantis-calendar__enquiry-button { flex: 0 0 auto; min-height: 44px; padding: 0.85rem 1.1rem; border: 1px solid #16d9d0; border-radius: 6px; background: #16d9d0; color: #061824; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.04em; text-decoration: none; text-transform: uppercase; }
.atlantis-calendar__enquiry-button:hover, .atlantis-calendar__enquiry-button:focus-visible { background: #fff; border-color: #fff; outline: 3px solid rgba(22,217,208,.35); outline-offset: 2px; }
.atlantis-calendar__disclaimer { margin: 1rem 0 0; color: #586a73; font-size: 0.78rem; line-height: 1.55; }

@media (max-width: 680px) {
	.atlantis-availability-calendar { padding: 0.75rem; border-radius: 10px; }
	.atlantis-calendar__header { grid-template-columns: 38px 1fr 38px; gap: 0.4rem; }
	.atlantis-calendar__navigation { width: 38px; height: 38px; }
	.atlantis-calendar__weekdays, .atlantis-calendar__grid { gap: 3px; }
	.atlantis-calendar__weekdays span { padding: 0.25rem 0; font-size: 0.62rem; letter-spacing: 0; }
	.atlantis-calendar__day, .atlantis-calendar__empty { min-height: 72px; }
	.atlantis-calendar__day { padding: 0.38rem; }
	.atlantis-calendar__day span { display: block; font-size: 0.53rem; line-height: 1.1; overflow-wrap: anywhere; }
	.atlantis-calendar__legend { gap: 0.65rem; }
	.atlantis-calendar__enquiry { display: block; padding: 1rem; }
	.atlantis-calendar__enquiry-button { display: inline-flex; align-items: center; margin-top: 1rem; }
}

@media (max-width: 420px) {
	.atlantis-calendar__day, .atlantis-calendar__empty { min-height: 66px; }
	.atlantis-calendar__day { padding: 0.3rem; }
	.atlantis-calendar__day strong { font-size: 0.9rem; }
	.atlantis-calendar__day span { font-size: 0.48rem; }
}
