.colorlib-services { padding-top:2em; padding-bottom:2em; }
/* Separacion visual comun entre el menu lateral y el contenido en escritorio. */
@media (min-width:768px) {
  #colorlib-main { border-left:16px solid #fff; box-sizing:border-box; }
}
.extra-view-switcher { display:flex; flex-wrap:wrap; gap:8px; margin:0; border-bottom:1px solid #e6dfd7; }
.extra-view-button { border:0; border-bottom:3px solid transparent; background:#f5f2ee; color:#52201f; padding:12px 18px; font-weight:700; letter-spacing:.04em; }
.extra-view-button:hover, .extra-view-button:focus, .extra-view-button.is-active { background:#fff; border-bottom-color:#bd9a54; outline:none; }
.extra-view-panel[hidden] { display:none !important; }
.extra-view-panel { padding-top:20px; }
.extra-view-switcher + #extra-view-calendar,
#extra-view-calendar { display:block; min-height:0 !important; height:auto !important; margin:0 !important; padding:0 !important; }
#extra-view-calendar[hidden] { display:none !important; }
.extra-timeline-tools { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; }
.extra-milestone-timeline { position:relative; display:flex; flex:1 1 auto; align-items:flex-start; gap:0; min-width:0; overflow-x:auto; padding:3px 0 10px; scroll-behavior:smooth; scrollbar-width:thin; scrollbar-color:#bd9a54 #eee9e3; }
.extra-milestone-timeline::before { content:""; position:absolute; top:18px; left:18px; right:18px; height:2px; background:#d8c8ab; }
.extra-milestone { position:relative; z-index:1; flex:0 0 92px; border:0; background:transparent; color:#77665f; padding:0 4px; text-align:center; }
.extra-milestone-dot { display:block; width:13px; height:13px; margin:9px auto 7px; border:3px solid #fff; border-radius:50%; background:#bd9a54; box-shadow:0 0 0 2px #bd9a54; transition:transform .2s, background .2s; }
.extra-milestone-date { display:block; font-size:10px; line-height:1.15; white-space:nowrap; }
.extra-milestone-count { display:block; width:20px; height:20px; margin:4px auto 0; border-radius:50%; background:#eee6d8; color:#52201f; font-size:10px; line-height:20px; font-weight:700; }
.extra-milestone:hover, .extra-milestone:focus, .extra-milestone.is-active { color:#52201f; outline:none; font-weight:700; }
.extra-milestone:hover .extra-milestone-dot, .extra-milestone:focus .extra-milestone-dot, .extra-milestone.is-active .extra-milestone-dot { background:#52201f; box-shadow:0 0 0 3px #bd9a54; transform:scale(1.18); }
.extra-scroll-controls { display:flex; gap:5px; }
.extra-scroll-button, .extra-calendar-toolbar button { width:40px; height:40px; border:1px solid #bd9a54; background:#fff; color:#52201f; font-size:24px; line-height:1; }
.extra-scroll-edge { background:#52201f; color:#fff; }
.extra-timeline-track > .col-md-12 { float:none; width:100%; }
.extra-timeline-track > .col-md-12 > .row { display:flex; gap:24px; overflow-x:auto; padding:4px 4px 24px; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-color:#bd9a54 #eee9e3; }
.extra-timeline-track .extra-event-card { flex:0 0 min(900px, 88%); min-width:0; margin:0; padding:24px; border:1px solid #e3ddd6; background:#fff; box-shadow:0 8px 24px rgba(57,30,24,.08); scroll-snap-align:start; overflow:hidden; }
.extra-timeline-track .extra-event-card::after, .extra-selected-results .extra-event-card::after { content:""; display:block; clear:both; }
.extra-calendar-toolbar { display:flex; align-items:center; justify-content:center; gap:20px; min-height:0; margin:0 0 10px !important; padding:0 !important; }
.extra-calendar-toolbar h3 { min-width:230px; margin:0; text-align:center; text-transform:capitalize; }
.extra-calendar-weekdays, .extra-calendar-grid { display:grid; grid-template-columns:repeat(7, minmax(34px, 1fr)); }
.extra-calendar-weekdays span { padding:9px; color:#8a756d; text-align:center; font-weight:700; }
.extra-calendar-day { position:relative; min-height:88px; border:1px solid #eee9e3; background:#fff; padding:38px 9px 9px; text-align:left; vertical-align:top; }
.extra-calendar-day-number { position:absolute; top:7px; left:7px; display:flex; align-items:center; justify-content:center; width:25px; height:25px; border:1px solid #d8cfc6; background:#f6f3ef; color:#52201f; font-size:11px; font-weight:700; }
.extra-calendar-day.is-outside { opacity:.28; }
.extra-calendar-day.has-events { background:#fffaf0; cursor:pointer; }
.extra-calendar-day.has-events:hover, .extra-calendar-day.has-events:focus, .extra-calendar-day.is-selected { border-color:#bd9a54; box-shadow:inset 0 0 0 2px #bd9a54; outline:none; }
.extra-calendar-event-name { display:block; margin-top:5px; color:#52201f; font-size:10px; line-height:1.25; }
.extra-calendar-event-name strong { font-weight:700; }
.extra-calendar-loading { grid-column:1 / -1; padding:45px 20px; border:1px solid #eee9e3; color:#77665f; text-align:center; }
.extra-selected-results { margin-top:24px; }
.extra-calendar-results { margin:0 0 12px; }
.extra-calendar-prompt { margin:0; padding:10px 14px; border-left:3px solid #bd9a54; background:#f7f4f0; color:#77665f; font-size:12px; text-align:center; }
.extra-calendar-carousel-tools { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 8px; }
.extra-calendar-carousel-tools[hidden] { display:none; }
.extra-calendar-carousel-tools + .extra-selected-results { margin-top:0; }
.extra-selected-results .extra-event-card { margin-bottom:20px; padding:24px; border:1px solid #e3ddd6; background:#fff; overflow:hidden; }
.extra-selected-results.is-carousel { display:flex; gap:24px; overflow-x:auto; padding:4px 4px 24px; scroll-snap-type:x mandatory; scroll-behavior:smooth; }
.extra-selected-results.is-carousel .extra-event-card { flex:0 0 min(900px, 88%); margin:0; scroll-snap-align:start; }
.extra-empty-state { padding:22px; border:1px dashed #cfc5bb; color:#7b6b64; text-align:center; }
.extra-map { height:560px; border:1px solid #d9d1c8; background:#f5f2ee; }
.extra-map .leaflet-control-zoom a { color:#52201f; }
.extra-map .leaflet-control-attribution { color:#786a63; font-size:9px; }
.extra-map-marker-wrap { background:transparent; border:0; }
.extra-map-marker { position:relative; display:block; width:27px; height:27px; border:3px solid #fff; border-radius:50% 50% 50% 0; background:#52201f; box-shadow:0 3px 10px rgba(55,26,22,.35); transform:rotate(-45deg); }
.extra-map-marker > span { position:absolute; width:8px; height:8px; top:7px; left:7px; border-radius:50%; background:#d4ad58; }
.extra-map-leaflet-popup .leaflet-popup-content-wrapper { border-radius:2px; border-top:4px solid #bd9a54; color:#3f2926; box-shadow:0 10px 28px rgba(57,30,24,.2); }
.extra-map-leaflet-popup .leaflet-popup-tip { background:#fff; }
.extra-map-popup, .extra-map-popup button { font-family:"Quicksand", Arial, sans-serif; }
.extra-map-popup button { display:block; width:100%; margin:7px 0 0; border:0; background:#f5f2ee; color:#52201f; padding:7px; text-align:left; }
.extra-map-popup button:hover { background:#bd9a54; color:#fff; }
.extra-map-event-date { display:block; margin:3px 0 7px; color:#7d6d66; font-family:inherit; font-size:1.25em; line-height:1.3; font-weight:400; }
.extra-event-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:30px; }
.extra-event-modal[hidden] { display:none; }
.extra-event-modal-backdrop { position:absolute; inset:0; background:rgba(34,19,17,.72); }
.extra-event-modal-dialog { position:relative; width:min(1000px, 95vw); max-height:90vh; overflow:auto; padding:36px 28px 24px; background:#fff; box-shadow:0 20px 70px rgba(0,0,0,.35); }
.extra-event-modal-dialog .extra-event-card { overflow:hidden; }
.extra-event-modal-dialog .extra-event-card::after { content:""; display:block; clear:both; }
.extra-event-modal-close { position:absolute; top:8px; right:12px; z-index:2; border:0; background:transparent; color:#52201f; font-size:32px; line-height:1; }
body.extra-modal-open { overflow:hidden; }
.extra-history-form { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:14px; padding:20px; border:1px solid #e3ddd6; background:#f8f5f1; }
.extra-history-field { display:flex; flex-direction:column; gap:5px; }
.extra-history-wide { grid-column:span 2; }
.extra-history-field label { margin:0; color:#52201f; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.extra-history-field input, .extra-history-field select { width:100%; min-height:40px; border:1px solid #d8cfc6; background:#fff; padding:8px 10px; color:#3f2926; }
.extra-history-field select:disabled { background:#eeeae6; color:#9a8e87; cursor:not-allowed; }
.extra-history-date-row, .extra-history-territory-row { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.extra-history-actions { grid-column:1 / -1; display:flex; gap:9px; justify-content:flex-end; }
.extra-history-actions button, .extra-compact-event form button { border:1px solid #52201f; background:#52201f; color:#fff; padding:9px 16px; font-weight:700; }
.extra-history-actions .extra-history-reset { background:#fff; color:#52201f; }
.extra-history-status { margin:16px 0 10px; color:#77665f; }
.extra-history-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.extra-compact-event { display:grid; grid-template-columns:132px minmax(0,1fr); min-height:176px; padding:0; overflow:hidden; border:1px solid #e3ddd6; background:#fff; box-shadow:0 4px 14px rgba(57,30,24,.06); }
.extra-compact-poster { width:132px; height:100%; min-height:176px; object-fit:cover; object-position:center; background:#f1ede9; }
.extra-compact-content { min-width:0; padding:18px; display:flex; flex-direction:column; justify-content:space-between; gap:14px; }
.extra-compact-event time { color:#8a756d; font-size:12px; font-weight:700; text-transform:capitalize; }
.extra-compact-type { display:inline-block; margin-left:8px; padding:2px 6px; background:#eee6d8; color:#52201f; font-size:10px; text-transform:uppercase; }
.extra-compact-event h3 { margin:7px 0 4px; color:#52201f; font-size:17px; }
.extra-compact-event p { margin:0; color:#77665f; font-size:12px; }
.extra-compact-event form { flex:0 0 auto; margin:0; }
@media (max-width:767px) {
  #colorlib-main { border-left:0; }
  .colorlib-services { padding-top:1.25em; padding-bottom:2em; }
  .extra-view-button { flex:1 1 100%; }
  .extra-timeline-tools { align-items:flex-end; gap:10px; }
  .extra-milestone { flex-basis:74px; }
  .extra-scroll-controls { flex-shrink:0; }
  .extra-scroll-button { width:34px; height:34px; }
  .extra-timeline-track .extra-event-card { flex-basis:94%; padding:16px; }
  .extra-timeline-track .extra-event-card > .col-md-4 { float:none !important; width:100% !important; margin-bottom:16px; }
  .extra-calendar-day { min-height:72px; padding:34px 5px 5px; }
  .extra-calendar-day-number { top:5px; left:5px; width:22px; height:22px; }
  .extra-calendar-event-name { display:-webkit-box; overflow:hidden; font-size:8px; line-height:1.15; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
  .extra-map { height:440px; }
  .extra-event-modal { padding:10px; }
  .extra-event-modal-dialog { padding:38px 16px 18px; }
  .extra-history-form { grid-template-columns:1fr; padding:14px; }
  .extra-history-wide, .extra-history-actions, .extra-history-date-row, .extra-history-territory-row { grid-column:auto; }
  .extra-history-date-row, .extra-history-territory-row { grid-template-columns:1fr; }
  .extra-history-results { grid-template-columns:1fr; }
  .extra-compact-event { grid-template-columns:100px minmax(0,1fr); }
  .extra-compact-poster { width:100px; }
}
.extra-event-title-link {
  color: inherit;
  text-decoration: none;
}

.extra-event-title-link:hover,
.extra-event-title-link:focus {
  color: #b58a2a;
  text-decoration: underline;
}

.extra-event-detail-action {
  margin: 14px 0 0;
  text-align: right;
}

.extra-event-detail-action a {
  display: inline-block;
  padding: 7px 12px;
  border: 1px solid #b58a2a;
  color: #8f6816;
  font-size: 78%;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.extra-event-detail-action a:hover,
.extra-event-detail-action a:focus {
  background: #b58a2a;
  color: #fff;
  text-decoration: none;
}
